diff --git a/renderdoc/driver/shaders/dxbc/dxbc_bytecode.h b/renderdoc/driver/shaders/dxbc/dxbc_bytecode.h index 09368834a..622c748dc 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_bytecode.h +++ b/renderdoc/driver/shaders/dxbc/dxbc_bytecode.h @@ -1125,7 +1125,7 @@ struct Operation operation = NUM_REAL_OPCODES; flags = FLAG_NONE; preciseValues = 0; - resinfoRetType = NUM_RETTYPES; + infoRetType = NUM_RETTYPES; syncFlags = 0; texelOffset[0] = texelOffset[1] = texelOffset[2] = 0; resDim = RESOURCE_DIMENSION_UNKNOWN; @@ -1155,8 +1155,8 @@ struct Operation union { - ResinfoRetType resinfoRetType; // return type of resinfo - uint8_t syncFlags; // sync flags (for compute shader sync operations) + ResinfoRetType infoRetType; // return type of resinfo + uint8_t syncFlags; // sync flags (for compute shader sync operations) }; int8_t texelOffset[3] = {0}; // U,V,W texel offset diff --git a/renderdoc/driver/shaders/dxbc/dxbc_bytecode_ops.cpp b/renderdoc/driver/shaders/dxbc/dxbc_bytecode_ops.cpp index f39105321..d5e75539c 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_bytecode_ops.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_bytecode_ops.cpp @@ -2549,7 +2549,7 @@ void Program::EncodeOperation(rdcarray &tokenStream, const Operation & Opcode::PreciseValues.Set(OpcodeToken0, op.preciseValues); if(op.operation == OPCODE_RESINFO) - Opcode::ResinfoReturn.Set(OpcodeToken0, op.resinfoRetType); + Opcode::ResinfoReturn.Set(OpcodeToken0, op.infoRetType); if(op.operation == OPCODE_SYNC) Opcode::SyncFlags.Set(OpcodeToken0, op.syncFlags); @@ -2664,8 +2664,8 @@ bool Program::DecodeOperation(uint32_t *&tokenStream, Operation &retOp, bool fri retOp.flags = Operation::Flags(retOp.flags | Operation::FLAG_SATURATE); retOp.preciseValues = Opcode::PreciseValues.Get(OpcodeToken0); - if(op == OPCODE_RESINFO) - retOp.resinfoRetType = Opcode::ResinfoReturn.Get(OpcodeToken0); + if(op == OPCODE_RESINFO || op == OPCODE_SAMPLE_INFO) + retOp.infoRetType = Opcode::ResinfoReturn.Get(OpcodeToken0); if(op == OPCODE_SYNC) retOp.syncFlags = Opcode::SyncFlags.Get(OpcodeToken0); @@ -2847,7 +2847,7 @@ bool Program::DecodeOperation(uint32_t *&tokenStream, Operation &retOp, bool fri if(op == OPCODE_RESINFO) { retOp.str += "_"; - retOp.str += ToStr(retOp.resinfoRetType); + retOp.str += ToStr(retOp.infoRetType); } if(op == OPCODE_SYNC) diff --git a/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp b/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp index 50a1bf72d..4744eea56 100644 --- a/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp +++ b/renderdoc/driver/shaders/dxbc/dxbc_debug.cpp @@ -3657,7 +3657,7 @@ void ThreadState::StepNext(ShaderDebugState *state, DebugAPIWrapper *apiWrapper, result = swizzled; result.type = VarType::Float; } - else if(op.resinfoRetType == RETTYPE_FLOAT) + else if(op.infoRetType == RETTYPE_FLOAT) { result.value.f32v[0] = (float)swizzled.value.u32v[0]; result.value.f32v[1] = (float)swizzled.value.u32v[1]; @@ -3784,7 +3784,7 @@ void ThreadState::StepNext(ShaderDebugState *state, DebugAPIWrapper *apiWrapper, } // apply ret type - if(op.resinfoRetType == RETTYPE_FLOAT) + if(op.infoRetType == RETTYPE_FLOAT) { result.value.f32v[0] = (float)swizzled.value.u32v[0]; result.value.f32v[1] = (float)swizzled.value.u32v[1]; @@ -3792,7 +3792,7 @@ void ThreadState::StepNext(ShaderDebugState *state, DebugAPIWrapper *apiWrapper, result.value.f32v[3] = (float)swizzled.value.u32v[3]; result.type = VarType::Float; } - else if(op.resinfoRetType == RETTYPE_RCPFLOAT) + else if(op.infoRetType == RETTYPE_RCPFLOAT) { // only width/height/depth values we set are reciprocated, other values // are just left as is @@ -3814,7 +3814,7 @@ void ThreadState::StepNext(ShaderDebugState *state, DebugAPIWrapper *apiWrapper, result.value.f32v[3] = (float)swizzled.value.u32v[3]; result.type = VarType::Float; } - else if(op.resinfoRetType == RETTYPE_UINT) + else if(op.infoRetType == RETTYPE_UINT) { result = swizzled; result.type = VarType::UInt;