You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When using ShaderGen as part of a task it tends to fail silently which is not a great experience for end users who can take time trying to figure out why their code isn't running correctly. I suggest adding options to ShaderGen.App for each backend type, to allow them to be specified as:
X | Exclude - Prevents the creation of the specific Shader - this allows for faster builds where certain Shaders are not required. A | Auto - [Default] Build if possible, but fails silently if not (current behavior). R | Require - Fail if the shader isn't successfully built.
The supported backends include hlsl, glsl330, glsles300, glsl450, metal and iOS (note this also requires some simple logic tweaks in the way metal currently builds both MacOS and iOS).
A suggested format could be: --glsl330 X --glsles300 Exclude --hlsl Require --ios X
Which would fail if HLSL failed, would not attempt OpenGL 330, ES, or iOS metal and would build MacOS Metal and Vulkan (glsl450) if possible.
This would then be backed by new build properties such as $(ShaderGenHlslMode) which are imported in ShaderGen.targets, e.g.
When using ShaderGen as part of a task it tends to fail silently which is not a great experience for end users who can take time trying to figure out why their code isn't running correctly. I suggest adding options to ShaderGen.App for each backend type, to allow them to be specified as:
X | Exclude - Prevents the creation of the specific Shader - this allows for faster builds where certain Shaders are not required.
A | Auto - [Default] Build if possible, but fails silently if not (current behavior).
R | Require - Fail if the shader isn't successfully built.
The supported backends include
hlsl
,glsl330
,glsles300
,glsl450
,metal
andiOS
(note this also requires some simple logic tweaks in the way metal currently builds both MacOS and iOS).A suggested format could be:
--glsl330 X --glsles300 Exclude --hlsl Require --ios X
Which would fail if HLSL failed, would not attempt OpenGL 330, ES, or iOS metal and would build MacOS Metal and Vulkan (glsl450) if possible.
This would then be backed by new build properties such as
$(ShaderGenHlslMode)
which are imported inShaderGen.targets
, e.g.Developers can then get the desired behaviour by adding the properties to their
.csproj
, e.g.The text was updated successfully, but these errors were encountered: