From e53b8d82d04cd7336beca16a21256e92052fc427 Mon Sep 17 00:00:00 2001 From: baldurk Date: Thu, 24 Oct 2019 20:16:39 +0100 Subject: [PATCH] In SPDB processing, try normalising filenames if we don't get a match * Sometimes it seems like the filenames will differ between if \ is used or /, so try again with normalising everything to / --- renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp b/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp index e0adf6754..513eeddf2 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp @@ -1481,6 +1481,28 @@ SPDBChunk::SPDBChunk(Reflection *reflection, void *chunk) } } + if(fileIdx == -1) + { + // if file index is still -1, try again but with normalised names + for(char &c : name) + if(c == '\\') + c = '/'; + + for(size_t i = 0; i < Files.size(); i++) + { + std::string normalised = Files[i].first; + for(char &c : normalised) + if(c == '\\') + c = '/'; + + if(!_stricmp(normalised.c_str(), name.c_str())) + { + fileIdx = (int32_t)i; + break; + } + } + } + FileMapping[chunkOffs] = fileIdx; } else