Commit 765cee84 by John Kessenich

GLSL/SPV: Pre SPIR-V 1.5, subgroupQuadBroadcast index must be constant

parent 101ca388
...@@ -114,12 +114,14 @@ void main (void) ...@@ -114,12 +114,14 @@ void main (void)
#extension GL_KHR_shader_subgroup_ballot: enable #extension GL_KHR_shader_subgroup_ballot: enable
void ballot_works(vec4 f4) { void ballot_works(vec4 f4) {
int i;
gl_SubgroupEqMask; gl_SubgroupEqMask;
gl_SubgroupGeMask; gl_SubgroupGeMask;
gl_SubgroupGtMask; gl_SubgroupGtMask;
gl_SubgroupLeMask; gl_SubgroupLeMask;
gl_SubgroupLtMask; gl_SubgroupLtMask;
subgroupBroadcast(f4, 0); subgroupBroadcast(f4, 0);
subgroupBroadcast(f4, i);
subgroupBroadcastFirst(f4); subgroupBroadcastFirst(f4);
uvec4 ballot = subgroupBallot(false); uvec4 ballot = subgroupBallot(false);
subgroupInverseBallot(uvec4(0x1)); subgroupInverseBallot(uvec4(0x1));
...@@ -192,7 +194,9 @@ void clustered_works(vec4 f4) ...@@ -192,7 +194,9 @@ void clustered_works(vec4 f4)
#extension GL_KHR_shader_subgroup_quad: enable #extension GL_KHR_shader_subgroup_quad: enable
void quad_works(vec4 f4) void quad_works(vec4 f4)
{ {
int i;
subgroupQuadBroadcast(f4, 0); subgroupQuadBroadcast(f4, 0);
subgroupQuadBroadcast(f4, i);
subgroupQuadSwapHorizontal(f4); subgroupQuadSwapHorizontal(f4);
subgroupQuadSwapVertical(f4); subgroupQuadSwapVertical(f4);
subgroupQuadSwapDiagonal(f4); subgroupQuadSwapDiagonal(f4);
......
...@@ -2155,6 +2155,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan ...@@ -2155,6 +2155,7 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
break; break;
case EOpSubgroupBroadcast: case EOpSubgroupBroadcast:
case EOpSubgroupQuadBroadcast:
if (spvVersion.spv < EShTargetSpv_1_5) { if (spvVersion.spv < EShTargetSpv_1_5) {
// <id> must be an integral constant expression. // <id> must be an integral constant expression.
if ((*argp)[1]->getAsConstantUnion() == nullptr) if ((*argp)[1]->getAsConstantUnion() == nullptr)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment