From 928048b786567152c305bd68ddb52ead8b59de0e Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 26 Jun 2024 11:12:31 +0100 Subject: [PATCH] Tweak entrypoint disassembly to work better for large interface lists --- .../shaders/spirv/spirv_disassemble.cpp | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp b/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp index 4a0c21573..258e4b7bf 100644 --- a/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp @@ -330,6 +330,26 @@ rdcstr Reflector::Disassemble(const rdcstr &entryPoint, break; } + // split the interface list onto separate lines to avoid hugely long lines on some shaders + case Op::EntryPoint: + { + OpEntryPoint decoded(it); + ret += rdcstr("EntryPoint("_lit) + ParamToStr(idName, decoded.executionModel) + ", " + + ParamToStr(idName, decoded.entryPoint) + ", " + ParamToStr(idName, decoded.name) + + ", {\n"; + lineNum++; + for(size_t i = 0; i < decoded.iface.size(); i++) + { + ret += " " + ParamToStr(idName, decoded.iface[i]); + if(i + 1 < decoded.iface.size()) + ret += ", "; + ret += "\n"; + lineNum++; + } + ret += " })"; + break; + } + // ignore these operations entirely case Op::SourceContinued: case Op::Line: