SPIRV-Cross/reference/shaders-msl/vulkan/frag/demote-to-helper.vk.nocompat.msl21.invalid.frag
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

12 lines
160 B
JavaScript

#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
fragment void main0()
{
bool _9 = simd_is_helper_thread();
bool helper = _9;
}