diff options
author | Hans-Kristian Arntzen <hans-kristian.arntzen@arm.com> | 2018-03-12 19:34:54 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <hans-kristian.arntzen@arm.com> | 2018-03-12 19:34:54 +0300 |
commit | 938c7debed1322e6b560ca4b89ef536e40be7953 (patch) | |
tree | 3f14f96e49d35b2c6dc87f2226b165c9e7c9a804 /reference/opt/shaders/desktop-only | |
parent | 012377f81111d4245071800c231888620a275940 (diff) |
Handle control-dependent temporaries.
Derivatives, subgroup and implicit-lod instructions all need to happen
in the block they were created.
Diffstat (limited to 'reference/opt/shaders/desktop-only')
-rw-r--r-- | reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag b/reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag new file mode 100644 index 00000000..29c59012 --- /dev/null +++ b/reference/opt/shaders/desktop-only/frag/control-dependent-in-branch.desktop.frag @@ -0,0 +1,37 @@ +#version 450 + +layout(binding = 0) uniform sampler2D uSampler; + +layout(location = 0) out vec4 FragColor; +layout(location = 0) in vec4 vInput; + +void main() +{ + FragColor = vInput; + vec4 _23 = texture(uSampler, vInput.xy); + vec4 _26 = dFdx(vInput); + vec4 _29 = dFdy(vInput); + vec4 _32 = fwidth(vInput); + vec4 _35 = dFdxCoarse(vInput); + vec4 _38 = dFdyCoarse(vInput); + vec4 _41 = fwidthCoarse(vInput); + vec4 _44 = dFdxFine(vInput); + vec4 _47 = dFdyFine(vInput); + vec4 _50 = fwidthFine(vInput); + vec2 _56 = textureQueryLod(uSampler, vInput.zw); + if (vInput.y > 10.0) + { + FragColor += _23; + FragColor += _26; + FragColor += _29; + FragColor += _32; + FragColor += _35; + FragColor += _38; + FragColor += _41; + FragColor += _44; + FragColor += _47; + FragColor += _50; + FragColor += _56.xyxy; + } +} + |