From 12844b9213069de806ed968b9604635a8df589a6 Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 17 Feb 2020 15:18:07 +0000 Subject: [PATCH] Add support for VK_KHR_shader_non_semantic_info --- renderdoc/driver/shaders/spirv/spirv_disassemble.cpp | 7 +++++-- renderdoc/driver/vulkan/vk_core.cpp | 3 +++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp b/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp index fed2e5db0..c65acf617 100644 --- a/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp @@ -1389,15 +1389,18 @@ rdcstr Reflector::Disassemble(const rdcstr &entryPoint) const uint32_t inst = it.word(4); const bool IsGLSL450 = (setname == "GLSL.std.450"); + // GLSL.std.450 all parameters are Ids + const bool idParams = IsGLSL450 || setname.beginsWith("NonSemantic."); if(IsGLSL450) ret += StringFormat::Fmt("%s::%s(", setname.c_str(), ToStr(GLSLstd450(inst)).c_str()); + else + ret += StringFormat::Fmt("%s::[%u](", setname.c_str(), inst); for(size_t i = 5; i < it.size(); i++) { - // GLSL.std.450 all parameters are Ids // TODO could generate this from the instruction set grammar. - ret += IsGLSL450 ? idName(Id::fromWord(it.word(i))) : ToStr(it.word(i)); + ret += idParams ? idName(Id::fromWord(it.word(i))) : ToStr(it.word(i)); if(i + 1 < it.size()) ret += ", "; diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 875bef3c9..ec04882e4 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -1111,6 +1111,9 @@ static const VkExtensionProperties supportedExtensions[] = { { VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION, }, + { + VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME, VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION, + }, { VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION,