SPIRV-Cross/shaders/vulkan/frag/demote-to-helper.vk.nocompat.frag
Chip Davis 50dce10c5d Support the SPV_EXT_demote_to_helper_invocation extension.
This extension provides a new operation which causes a fragment to be
discarded without terminating the fragment shader invocation. The
invocation for the discarded fragment becomes a helper invocation, so
that derivatives will remain defined. The old `HelperInvocation` builtin
becomes undefined when this occurs, so a second new instruction queries
the current helper invocation status.

This is only fully supported for GLSL. HLSL doesn't support the
`IsHelperInvocation` operation and MSL doesn't support the
`DemoteToHelperInvocation` op.

Fixes #1052.
2019-07-17 09:12:22 -05:00

9 lines
133 B
GLSL

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