Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Cross.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spirv_parser.cpp')
-rw-r--r--spirv_parser.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/spirv_parser.cpp b/spirv_parser.cpp
index 49eb1933..39bd1adf 100644
--- a/spirv_parser.cpp
+++ b/spirv_parser.cpp
@@ -275,24 +275,28 @@ void Parser::parse(const Instruction &instruction)
case OpExtInstImport:
{
uint32_t id = ops[0];
+
+ SPIRExtension::Extension spirv_ext = SPIRExtension::Unsupported;
+
auto ext = extract_string(ir.spirv, instruction.offset + 1);
if (ext == "GLSL.std.450")
- set<SPIRExtension>(id, SPIRExtension::GLSL);
+ spirv_ext = SPIRExtension::GLSL;
else if (ext == "DebugInfo")
- set<SPIRExtension>(id, SPIRExtension::SPV_debug_info);
+ spirv_ext = SPIRExtension::SPV_debug_info;
else if (ext == "SPV_AMD_shader_ballot")
- set<SPIRExtension>(id, SPIRExtension::SPV_AMD_shader_ballot);
+ spirv_ext = SPIRExtension::SPV_AMD_shader_ballot;
else if (ext == "SPV_AMD_shader_explicit_vertex_parameter")
- set<SPIRExtension>(id, SPIRExtension::SPV_AMD_shader_explicit_vertex_parameter);
+ spirv_ext = SPIRExtension::SPV_AMD_shader_explicit_vertex_parameter;
else if (ext == "SPV_AMD_shader_trinary_minmax")
- set<SPIRExtension>(id, SPIRExtension::SPV_AMD_shader_trinary_minmax);
+ spirv_ext = SPIRExtension::SPV_AMD_shader_trinary_minmax;
else if (ext == "SPV_AMD_gcn_shader")
- set<SPIRExtension>(id, SPIRExtension::SPV_AMD_gcn_shader);
+ spirv_ext = SPIRExtension::SPV_AMD_gcn_shader;
else if (ext == "NonSemantic.DebugPrintf")
- set<SPIRExtension>(id, SPIRExtension::NonSemanticDebugPrintf);
- else
- set<SPIRExtension>(id, SPIRExtension::Unsupported);
+ spirv_ext = SPIRExtension::NonSemanticDebugPrintf;
+ else if (ext == "NonSemantic.Shader.DebugInfo.100")
+ spirv_ext = SPIRExtension::NonSemanticShaderDebugInfo;
+ set<SPIRExtension>(id, spirv_ext);
// Other SPIR-V extensions which have ExtInstrs are currently not supported.
break;