From 8dd535eb263a93ba87c620fc7f4fc9c8f47df9b7 Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 29 Jul 2015 23:51:56 +0200 Subject: [PATCH] Fix operation folding checking instruction, not argument --- renderdoc/driver/shaders/spirv/spirv_disassemble.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp b/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp index d24735053..fcab904e1 100644 --- a/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp +++ b/renderdoc/driver/shaders/spirv/spirv_disassemble.cpp @@ -967,9 +967,10 @@ struct SPVModule SPVInstruction *arg = instr->op->arguments[a]; // don't fold up too complex an operation - if(instr->op) + if(arg->op) { - if(instr->op->complexity > 1 || instr->op->arguments.size() > 2) + // allow access chains to have multiple arguments + if(arg->op->complexity > 1 || (arg->op->arguments.size() > 2 && arg->opcode != spv::OpAccessChain)) continue; }