mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-19 12:19:53 +00:00
Fix 'maximally_reconverges' token to match the GLSL spec
This commit is contained in:
parent
8066fa086b
commit
79536da264
@ -1635,7 +1635,7 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(unsigned int spvVersion,
|
|||||||
builder.addExtension(spv::E_SPV_KHR_subgroup_uniform_control_flow);
|
builder.addExtension(spv::E_SPV_KHR_subgroup_uniform_control_flow);
|
||||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeSubgroupUniformControlFlowKHR);
|
builder.addExecutionMode(shaderEntry, spv::ExecutionModeSubgroupUniformControlFlowKHR);
|
||||||
}
|
}
|
||||||
if (glslangIntermediate->getMaximalReconvergence()) {
|
if (glslangIntermediate->getMaximallyReconverges()) {
|
||||||
builder.addExtension(spv::E_SPV_KHR_maximal_reconvergence);
|
builder.addExtension(spv::E_SPV_KHR_maximal_reconvergence);
|
||||||
builder.addExecutionMode(shaderEntry, spv::ExecutionModeMaximallyReconvergesKHR);
|
builder.addExecutionMode(shaderEntry, spv::ExecutionModeMaximallyReconvergesKHR);
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
|
|
||||||
#extension GL_EXT_maximal_reconvergence : enable
|
#extension GL_EXT_maximal_reconvergence : enable
|
||||||
|
|
||||||
[[random(4)]] void main() [[maximal_reconvergence]]
|
[[random(4)]] void main() [[maximally_reconverges]]
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -125,8 +125,8 @@ TAttributeType TParseContext::attributeFromName(const TString& name) const
|
|||||||
return EatSubgroupUniformControlFlow;
|
return EatSubgroupUniformControlFlow;
|
||||||
else if (name == "export")
|
else if (name == "export")
|
||||||
return EatExport;
|
return EatExport;
|
||||||
else if (name == "maximal_reconvergence")
|
else if (name == "maximally_reconverges")
|
||||||
return EatMaximalReconvergence;
|
return EatMaximallyReconverges;
|
||||||
else
|
else
|
||||||
return EatNone;
|
return EatNone;
|
||||||
}
|
}
|
||||||
@ -362,9 +362,9 @@ void TParseContext::handleFunctionAttributes(const TSourceLoc& loc, const TAttri
|
|||||||
requireExtensions(loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
|
requireExtensions(loc, 1, &E_GL_EXT_subgroup_uniform_control_flow, "attribute");
|
||||||
intermediate.setSubgroupUniformControlFlow();
|
intermediate.setSubgroupUniformControlFlow();
|
||||||
break;
|
break;
|
||||||
case EatMaximalReconvergence:
|
case EatMaximallyReconverges:
|
||||||
requireExtensions(loc, 1, &E_GL_EXT_maximal_reconvergence, "attribute");
|
requireExtensions(loc, 1, &E_GL_EXT_maximal_reconvergence, "attribute");
|
||||||
intermediate.setMaximalReconvergence();
|
intermediate.setMaximallyReconverges();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
warn(loc, "attribute does not apply to a function", "", "");
|
warn(loc, "attribute does not apply to a function", "", "");
|
||||||
|
@ -121,7 +121,7 @@ namespace glslang {
|
|||||||
EatNonReadable,
|
EatNonReadable,
|
||||||
EatSubgroupUniformControlFlow,
|
EatSubgroupUniformControlFlow,
|
||||||
EatExport,
|
EatExport,
|
||||||
EatMaximalReconvergence,
|
EatMaximallyReconverges,
|
||||||
};
|
};
|
||||||
|
|
||||||
class TIntermAggregate;
|
class TIntermAggregate;
|
||||||
|
@ -1512,8 +1512,8 @@ void TIntermediate::output(TInfoSink& infoSink, bool tree)
|
|||||||
if (getSubgroupUniformControlFlow())
|
if (getSubgroupUniformControlFlow())
|
||||||
infoSink.debug << "subgroup_uniform_control_flow\n";
|
infoSink.debug << "subgroup_uniform_control_flow\n";
|
||||||
|
|
||||||
if (getMaximalReconvergence())
|
if (getMaximallyReconverges())
|
||||||
infoSink.debug << "maximal_reconvergence\n";
|
infoSink.debug << "maximally_reconverges\n";
|
||||||
|
|
||||||
switch (language) {
|
switch (language) {
|
||||||
case EShLangVertex:
|
case EShLangVertex:
|
||||||
|
@ -345,7 +345,7 @@ public:
|
|||||||
needToLegalize(false),
|
needToLegalize(false),
|
||||||
binaryDoubleOutput(false),
|
binaryDoubleOutput(false),
|
||||||
subgroupUniformControlFlow(false),
|
subgroupUniformControlFlow(false),
|
||||||
maximalReconvergence(false),
|
maximallyReconverges(false),
|
||||||
usePhysicalStorageBuffer(false),
|
usePhysicalStorageBuffer(false),
|
||||||
spirvRequirement(nullptr),
|
spirvRequirement(nullptr),
|
||||||
spirvExecutionMode(nullptr),
|
spirvExecutionMode(nullptr),
|
||||||
@ -964,8 +964,8 @@ public:
|
|||||||
void setSubgroupUniformControlFlow() { subgroupUniformControlFlow = true; }
|
void setSubgroupUniformControlFlow() { subgroupUniformControlFlow = true; }
|
||||||
bool getSubgroupUniformControlFlow() const { return subgroupUniformControlFlow; }
|
bool getSubgroupUniformControlFlow() const { return subgroupUniformControlFlow; }
|
||||||
|
|
||||||
void setMaximalReconvergence() { maximalReconvergence = true; }
|
void setMaximallyReconverges() { maximallyReconverges = true; }
|
||||||
bool getMaximalReconvergence() const { return maximalReconvergence; }
|
bool getMaximallyReconverges() const { return maximallyReconverges; }
|
||||||
|
|
||||||
// GL_EXT_spirv_intrinsics
|
// GL_EXT_spirv_intrinsics
|
||||||
void insertSpirvRequirement(const TSpirvRequirement* spirvReq);
|
void insertSpirvRequirement(const TSpirvRequirement* spirvReq);
|
||||||
@ -1230,7 +1230,7 @@ protected:
|
|||||||
bool needToLegalize;
|
bool needToLegalize;
|
||||||
bool binaryDoubleOutput;
|
bool binaryDoubleOutput;
|
||||||
bool subgroupUniformControlFlow;
|
bool subgroupUniformControlFlow;
|
||||||
bool maximalReconvergence;
|
bool maximallyReconverges;
|
||||||
bool usePhysicalStorageBuffer;
|
bool usePhysicalStorageBuffer;
|
||||||
|
|
||||||
TSpirvRequirement* spirvRequirement;
|
TSpirvRequirement* spirvRequirement;
|
||||||
|
Loading…
Reference in New Issue
Block a user