mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-19 05:57:09 +00:00
RD DXIL Disassembly: decode "dx.op.textureStore"
Example Output
call void @dx.op.textureStore.f32(i32 67, %dx.types.Handle %OutLuma_UAV_2d, i32 %1, i32 %2, i32 undef, float %18, float %18, float %18, float %18, i8 15)
Becomes
OutLuma[_1, _2] = {_18, _18, _18, _18};
This commit is contained in:
@@ -2978,6 +2978,50 @@ void Program::MakeRDDisassemblyString(const DXBC::Reflection *reflection)
|
||||
showDxFuncName = true;
|
||||
}
|
||||
}
|
||||
else if(showDxFuncName && funcCallName.beginsWith("dx.op.textureStore"))
|
||||
{
|
||||
// srv,coord0,coord1,coord2,value0,value1,value2,value3,mask
|
||||
showDxFuncName = false;
|
||||
uint32_t dxopCode;
|
||||
RDCASSERT(getival<uint32_t>(inst.args[0], dxopCode));
|
||||
RDCASSERTEQUAL(dxopCode, 67);
|
||||
rdcstr handleStr = ArgToString(inst.args[1], false);
|
||||
if(resHandles.count(handleStr) > 0)
|
||||
{
|
||||
lineStr += resHandles[handleStr].name;
|
||||
lineStr += "[";
|
||||
bool needComma = false;
|
||||
for(uint32_t a = 2; a < 5; ++a)
|
||||
{
|
||||
if(!isUndef(inst.args[a]))
|
||||
{
|
||||
if(needComma)
|
||||
lineStr += ", ";
|
||||
lineStr += ArgToString(inst.args[a], false);
|
||||
needComma = true;
|
||||
}
|
||||
}
|
||||
lineStr += "]";
|
||||
lineStr += " = ";
|
||||
lineStr += "{";
|
||||
needComma = false;
|
||||
for(uint32_t a = 5; a < 9; ++a)
|
||||
{
|
||||
if(!isUndef(inst.args[a]))
|
||||
{
|
||||
if(needComma)
|
||||
lineStr += ", ";
|
||||
lineStr += ArgToString(inst.args[a], false);
|
||||
needComma = true;
|
||||
}
|
||||
}
|
||||
lineStr += "}";
|
||||
}
|
||||
else
|
||||
{
|
||||
showDxFuncName = true;
|
||||
}
|
||||
}
|
||||
else if(funcCallName.beginsWith("llvm.dbg."))
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user