From 96ab4c25d67e866eb5689e41e26699c4774b3d2e Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 6 Oct 2020 10:28:27 +0100 Subject: [PATCH] Allow arrays to have a larger varOffset than 16 bytes in assert --- renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp b/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp index 3272294ab..f66586fe7 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_spdb.cpp @@ -1282,8 +1282,9 @@ SPDBChunk::SPDBChunk(void *chunk) uint32_t comp = (varOffset % 16) / 4; // should now be down to a vector, so the remaining offset is the component. Unless we had - // multiple indices in which case it's a multi-dimensional array - RDCASSERT(varOffset < 16 || defrange->regIndices > 1); + // multiple indices in which case it's a multi-dimensional array, or this is a subrange of + // an array mapped to a single register. + RDCASSERT(varOffset < 16 || defrange->regIndices > 1 || varLen < varTypeByteSize); if(vartype->leafType == LF_MATRIX) {