SPIRV-Cross/reference/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag.vk
Chip Davis 12a8654784 Don't forward uses of an OpIsHelperInvocationEXT op.
If this is computed *before* a `demote`, but used *after*, forwarding it
will produce the wrong value. This does make for uglier shaders, but
it's necessary right now to ensure correctness.

I needed to use an assembly shader to produce the test for this.
`spirv-opt` is not smart enough (or too smart?) to eliminate the
variable that would be used in GLSL to express this.
2019-07-18 17:32:35 -05:00

11 lines
158 B
Plaintext

#version 450
#extension GL_EXT_demote_to_helper_invocation : require
void main()
{
demote;
bool _9 = helperInvocationEXT();
bool helper = _9;
}