Add support for VK_EXT_fragment_shader_barycentric
This commit is contained in:
parent
86ff4bca1d
commit
ebf45697be
22 changed files with 3959 additions and 3710 deletions
|
|
@ -29,7 +29,7 @@
|
|||
#define GLSLextKHR_H
|
||||
|
||||
static const int GLSLextKHRVersion = 100;
|
||||
static const int GLSLextKHRRevision = 2;
|
||||
static const int GLSLextKHRRevision = 3;
|
||||
|
||||
static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot";
|
||||
static const char* const E_SPV_KHR_subgroup_vote = "SPV_KHR_subgroup_vote";
|
||||
|
|
@ -52,5 +52,6 @@ static const char* const E_SPV_KHR_fragment_shading_rate = "SPV_KHR_fragm
|
|||
static const char* const E_SPV_KHR_terminate_invocation = "SPV_KHR_terminate_invocation";
|
||||
static const char* const E_SPV_KHR_workgroup_memory_explicit_layout = "SPV_KHR_workgroup_memory_explicit_layout";
|
||||
static const char* const E_SPV_KHR_subgroup_uniform_control_flow = "SPV_KHR_subgroup_uniform_control_flow";
|
||||
static const char* const E_SPV_KHR_fragment_shader_barycentric = "SPV_KHR_fragment_shader_barycentric";
|
||||
|
||||
#endif // #ifndef GLSLextKHR_H
|
||||
|
|
|
|||
|
|
@ -1050,6 +1050,15 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI
|
|||
builder.addCapability(spv::CapabilityFragmentBarycentricNV);
|
||||
return spv::BuiltInBaryCoordNoPerspNV;
|
||||
|
||||
case glslang::EbvBaryCoordEXT:
|
||||
builder.addExtension(spv::E_SPV_KHR_fragment_shader_barycentric);
|
||||
builder.addCapability(spv::CapabilityFragmentBarycentricKHR);
|
||||
return spv::BuiltInBaryCoordKHR;
|
||||
case glslang::EbvBaryCoordNoPerspEXT:
|
||||
builder.addExtension(spv::E_SPV_KHR_fragment_shader_barycentric);
|
||||
builder.addCapability(spv::CapabilityFragmentBarycentricKHR);
|
||||
return spv::BuiltInBaryCoordNoPerspKHR;
|
||||
|
||||
// mesh shaders
|
||||
case glslang::EbvTaskCountNV:
|
||||
return spv::BuiltInTaskCountNV;
|
||||
|
|
@ -8866,6 +8875,12 @@ spv::Id TGlslangToSpvTraverser::getSymbolId(const glslang::TIntermSymbol* symbol
|
|||
builder.addExtension(spv::E_SPV_NV_fragment_shader_barycentric);
|
||||
}
|
||||
|
||||
if (symbol->getQualifier().pervertexEXT) {
|
||||
builder.addDecoration(id, spv::DecorationPerVertexKHR);
|
||||
builder.addCapability(spv::CapabilityFragmentBarycentricKHR);
|
||||
builder.addExtension(spv::E_SPV_KHR_fragment_shader_barycentric);
|
||||
}
|
||||
|
||||
if (glslangIntermediate->getHlslFunctionality1() && symbol->getType().getQualifier().semanticName != nullptr) {
|
||||
builder.addExtension("SPV_GOOGLE_hlsl_functionality1");
|
||||
builder.addDecoration(id, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE,
|
||||
|
|
|
|||
|
|
@ -305,7 +305,8 @@ const char* DecorationString(int decoration)
|
|||
case DecorationPerPrimitiveNV: return "PerPrimitiveNV";
|
||||
case DecorationPerViewNV: return "PerViewNV";
|
||||
case DecorationPerTaskNV: return "PerTaskNV";
|
||||
case DecorationPerVertexNV: return "PerVertexNV";
|
||||
|
||||
case DecorationPerVertexKHR: return "PerVertexKHR";
|
||||
|
||||
case DecorationNonUniformEXT: return "DecorationNonUniformEXT";
|
||||
case DecorationHlslCounterBufferGOOGLE: return "DecorationHlslCounterBufferGOOGLE";
|
||||
|
|
@ -407,8 +408,8 @@ const char* BuiltInString(int builtIn)
|
|||
case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
|
||||
// case BuiltInFragmentSizeNV: return "FragmentSizeNV"; // superseded by BuiltInFragSizeEXT
|
||||
// case BuiltInInvocationsPerPixelNV: return "InvocationsPerPixelNV"; // superseded by BuiltInFragInvocationCountEXT
|
||||
case BuiltInBaryCoordNV: return "BaryCoordNV";
|
||||
case BuiltInBaryCoordNoPerspNV: return "BaryCoordNoPerspNV";
|
||||
case BuiltInBaryCoordKHR: return "BaryCoordKHR";
|
||||
case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
|
||||
|
||||
case BuiltInFragSizeEXT: return "FragSizeEXT";
|
||||
case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
|
||||
|
|
@ -932,7 +933,7 @@ const char* CapabilityString(int info)
|
|||
case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
|
||||
case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
|
||||
case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
|
||||
case CapabilityFragmentBarycentricNV: return "FragmentBarycentricNV";
|
||||
case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR";
|
||||
case CapabilityMeshShadingNV: return "MeshShadingNV";
|
||||
case CapabilityImageFootprintNV: return "ImageFootprintNV";
|
||||
// case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by FragmentDensityEXT
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue