mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-06 23:00:59 +00:00
RD DXIL Disassembly: display function name instead of full signature
Divide up "funcSigs" array into "name" and "signature" arrays
This commit is contained in:
@@ -91,265 +91,526 @@ static const char *shaderNames[] = {
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
static const char *funcNames[] = {
|
||||
"TempRegLoad",
|
||||
"TempRegStore",
|
||||
"MinPrecXRegLoad",
|
||||
"MinPrecXRegStore",
|
||||
"LoadInput",
|
||||
"StoreOutput",
|
||||
"FAbs",
|
||||
"Saturate",
|
||||
"IsNaN",
|
||||
"IsInf",
|
||||
"IsFinite",
|
||||
"IsNormal",
|
||||
"Cos",
|
||||
"Sin",
|
||||
"Tan",
|
||||
"Acos",
|
||||
"Asin",
|
||||
"Atan",
|
||||
"Hcos",
|
||||
"Hsin",
|
||||
"Htan",
|
||||
"Exp",
|
||||
"Frc",
|
||||
"Log",
|
||||
"Sqrt",
|
||||
"Rsqrt",
|
||||
"Round_ne",
|
||||
"Round_ni",
|
||||
"Round_pi",
|
||||
"Round_z",
|
||||
"Bfrev",
|
||||
"Countbits",
|
||||
"FirstbitLo",
|
||||
"FirstbitHi",
|
||||
"FirstbitSHi",
|
||||
"FMax",
|
||||
"FMin",
|
||||
"IMax",
|
||||
"IMin",
|
||||
"UMax",
|
||||
"UMin",
|
||||
"IMul",
|
||||
"UMul",
|
||||
"UDiv",
|
||||
"UAddc",
|
||||
"USubb",
|
||||
"FMad",
|
||||
"Fma",
|
||||
"IMad",
|
||||
"UMad",
|
||||
"Msad",
|
||||
"Ibfe",
|
||||
"Ubfe",
|
||||
"Bfi",
|
||||
"Dot2",
|
||||
"Dot3",
|
||||
"Dot4",
|
||||
"CreateHandle",
|
||||
"CBufferLoad",
|
||||
"CBufferLoadLegacy",
|
||||
"Sample",
|
||||
"SampleBias",
|
||||
"SampleLevel",
|
||||
"SampleGrad",
|
||||
"SampleCmp",
|
||||
"SampleCmpLevelZero",
|
||||
"TextureLoad",
|
||||
"TextureStore",
|
||||
"BufferLoad",
|
||||
"BufferStore",
|
||||
"BufferUpdateCounter",
|
||||
"CheckAccessFullyMapped",
|
||||
"GetDimensions",
|
||||
"TextureGather",
|
||||
"TextureGatherCmp",
|
||||
"Texture2DMSGetSamplePosition",
|
||||
"RenderTargetGetSamplePosition",
|
||||
"RenderTargetGetSampleCount",
|
||||
"AtomicBinOp",
|
||||
"AtomicCompareExchange",
|
||||
"Barrier",
|
||||
"CalculateLOD",
|
||||
"Discard",
|
||||
"DerivCoarseX",
|
||||
"DerivCoarseY",
|
||||
"DerivFineX",
|
||||
"DerivFineY",
|
||||
"EvalSnapped",
|
||||
"EvalSampleIndex",
|
||||
"EvalCentroid",
|
||||
"SampleIndex",
|
||||
"Coverage",
|
||||
"InnerCoverage",
|
||||
"ThreadId",
|
||||
"GroupId",
|
||||
"ThreadIdInGroup",
|
||||
"FlattenedThreadIdInGroup",
|
||||
"EmitStream",
|
||||
"CutStream",
|
||||
"EmitThenCutStream",
|
||||
"GSInstanceID",
|
||||
"MakeDouble",
|
||||
"SplitDouble",
|
||||
"LoadOutputControlPoint",
|
||||
"LoadPatchConstant",
|
||||
"DomainLocation",
|
||||
"StorePatchConstant",
|
||||
"OutputControlPointID",
|
||||
"PrimitiveID",
|
||||
"CycleCounterLegacy",
|
||||
"WaveIsFirstLane",
|
||||
"WaveGetLaneIndex",
|
||||
"WaveGetLaneCount",
|
||||
"WaveAnyTrue",
|
||||
"WaveAllTrue",
|
||||
"WaveActiveAllEqual",
|
||||
"WaveActiveBallot",
|
||||
"WaveReadLaneAt",
|
||||
"WaveReadLaneFirst",
|
||||
"WaveActiveOp",
|
||||
"WaveActiveBit",
|
||||
"WavePrefixOp",
|
||||
"QuadReadLaneAt",
|
||||
"QuadOp",
|
||||
"BitcastI16toF16",
|
||||
"BitcastF16toI16",
|
||||
"BitcastI32toF32",
|
||||
"BitcastF32toI32",
|
||||
"BitcastI64toF64",
|
||||
"BitcastF64toI64",
|
||||
"LegacyF32ToF16",
|
||||
"LegacyF16ToF32",
|
||||
"LegacyDoubleToFloat",
|
||||
"LegacyDoubleToSInt32",
|
||||
"LegacyDoubleToUInt32",
|
||||
"WaveAllBitCount",
|
||||
"WavePrefixBitCount",
|
||||
"AttributeAtVertex",
|
||||
"ViewID",
|
||||
"RawBufferLoad",
|
||||
"RawBufferStore",
|
||||
"InstanceID",
|
||||
"InstanceIndex",
|
||||
"HitKind",
|
||||
"RayFlags",
|
||||
"DispatchRaysIndex",
|
||||
"DispatchRaysDimensions",
|
||||
"WorldRayOrigin",
|
||||
"WorldRayDirection",
|
||||
"ObjectRayOrigin",
|
||||
"ObjectRayDirection",
|
||||
"ObjectToWorld",
|
||||
"WorldToObject",
|
||||
"RayTMin",
|
||||
"RayTCurrent",
|
||||
"IgnoreHit",
|
||||
"AcceptHitAndEndSearch",
|
||||
"TraceRay",
|
||||
"ReportHit",
|
||||
"CallShader",
|
||||
"CreateHandleForLib",
|
||||
"PrimitiveIndex",
|
||||
"Dot2AddHalf",
|
||||
"Dot4AddI8Packed",
|
||||
"Dot4AddU8Packed",
|
||||
"WaveMatch",
|
||||
"WaveMultiPrefixOp",
|
||||
"WaveMultiPrefixBitCount",
|
||||
"SetMeshOutputCounts",
|
||||
"EmitIndices",
|
||||
"GetMeshPayload",
|
||||
"StoreVertexOutput",
|
||||
"StorePrimitiveOutput",
|
||||
"DispatchMesh",
|
||||
"WriteSamplerFeedback",
|
||||
"WriteSamplerFeedbackBias",
|
||||
"WriteSamplerFeedbackLevel",
|
||||
"WriteSamplerFeedbackGrad",
|
||||
"AllocateRayQuery",
|
||||
"RayQuery_TraceRayInline",
|
||||
"RayQuery_Proceed",
|
||||
"RayQuery_Abort",
|
||||
"RayQuery_CommitNonOpaqueTriangleHit",
|
||||
"RayQuery_CommitProceduralPrimitiveHit",
|
||||
"RayQuery_CommittedStatus",
|
||||
"RayQuery_CandidateType",
|
||||
"RayQuery_CandidateObjectToWorld3x4",
|
||||
"RayQuery_CandidateWorldToObject3x4",
|
||||
"RayQuery_CommittedObjectToWorld3x4",
|
||||
"RayQuery_CommittedWorldToObject3x4",
|
||||
"RayQuery_CandidateProceduralPrimitiveNonOpaque",
|
||||
"RayQuery_CandidateTriangleFrontFace",
|
||||
"RayQuery_CommittedTriangleFrontFace",
|
||||
"RayQuery_CandidateTriangleBarycentrics",
|
||||
"RayQuery_CommittedTriangleBarycentrics",
|
||||
"RayQuery_RayFlags",
|
||||
"RayQuery_WorldRayOrigin",
|
||||
"RayQuery_WorldRayDirection",
|
||||
"RayQuery_RayTMin",
|
||||
"RayQuery_CandidateTriangleRayT",
|
||||
"RayQuery_CommittedRayT",
|
||||
"RayQuery_CandidateInstanceIndex",
|
||||
"RayQuery_CandidateInstanceID",
|
||||
"RayQuery_CandidateGeometryIndex",
|
||||
"RayQuery_CandidatePrimitiveIndex",
|
||||
"RayQuery_CandidateObjectRayOrigin",
|
||||
"RayQuery_CandidateObjectRayDirection",
|
||||
"RayQuery_CommittedInstanceIndex",
|
||||
"RayQuery_CommittedInstanceID",
|
||||
"RayQuery_CommittedGeometryIndex",
|
||||
"RayQuery_CommittedPrimitiveIndex",
|
||||
"RayQuery_CommittedObjectRayOrigin",
|
||||
"RayQuery_CommittedObjectRayDirection",
|
||||
"GeometryIndex",
|
||||
"RayQuery_CandidateInstanceContributionToHitGroupIndex",
|
||||
"RayQuery_CommittedInstanceContributionToHitGroupIndex",
|
||||
"AnnotateHandle",
|
||||
"CreateHandleFromBinding",
|
||||
"CreateHandleFromHeap",
|
||||
"Unpack4x8",
|
||||
"Pack4x8",
|
||||
"IsHelperLane",
|
||||
"QuadVote",
|
||||
"TextureGatherRaw",
|
||||
"SampleCmpLevel",
|
||||
"TextureStoreSample",
|
||||
"WaveMatrix_Annotate",
|
||||
"WaveMatrix_Depth",
|
||||
"WaveMatrix_Fill",
|
||||
"WaveMatrix_LoadRawBuf",
|
||||
"WaveMatrix_LoadGroupShared",
|
||||
"WaveMatrix_StoreRawBuf",
|
||||
"WaveMatrix_StoreGroupShared",
|
||||
"WaveMatrix_Multiply",
|
||||
"WaveMatrix_MultiplyAccumulate",
|
||||
"WaveMatrix_ScalarOp",
|
||||
"WaveMatrix_SumAccumulate",
|
||||
"WaveMatrix_Add",
|
||||
"AllocateNodeOutputRecords",
|
||||
"GetNodeRecordPtr",
|
||||
"IncrementOutputCount",
|
||||
"OutputComplete",
|
||||
"GetInputRecordCount",
|
||||
"FinishedCrossGroupSharing",
|
||||
"BarrierByMemoryType",
|
||||
"BarrierByMemoryHandle",
|
||||
"BarrierByNodeRecordHandle",
|
||||
"CreateNodeOutputHandle",
|
||||
"IndexNodeHandle",
|
||||
"AnnotateNodeHandle",
|
||||
"CreateNodeInputRecordHandle",
|
||||
"AnnotateNodeRecordHandle",
|
||||
"NodeOutputIsValid",
|
||||
"GetRemainingRecursionLevels",
|
||||
"SampleCmpGrad",
|
||||
"SampleCmpBias",
|
||||
"StartVertexLocation",
|
||||
"StartInstanceLocation",
|
||||
};
|
||||
|
||||
static const char *funcSigs[] = {
|
||||
"TempRegLoad(index)",
|
||||
"TempRegStore(index,value)",
|
||||
"MinPrecXRegLoad(regIndex,index,component)",
|
||||
"MinPrecXRegStore(regIndex,index,component,value)",
|
||||
"LoadInput(inputSigId,rowIndex,colIndex,gsVertexAxis)",
|
||||
"StoreOutput(outputSigId,rowIndex,colIndex,value)",
|
||||
"FAbs(value)",
|
||||
"Saturate(value)",
|
||||
"IsNaN(value)",
|
||||
"IsInf(value)",
|
||||
"IsFinite(value)",
|
||||
"IsNormal(value)",
|
||||
"Cos(value)",
|
||||
"Sin(value)",
|
||||
"Tan(value)",
|
||||
"Acos(value)",
|
||||
"Asin(value)",
|
||||
"Atan(value)",
|
||||
"Hcos(value)",
|
||||
"Hsin(value)",
|
||||
"Htan(value)",
|
||||
"Exp(value)",
|
||||
"Frc(value)",
|
||||
"Log(value)",
|
||||
"Sqrt(value)",
|
||||
"Rsqrt(value)",
|
||||
"Round_ne(value)",
|
||||
"Round_ni(value)",
|
||||
"Round_pi(value)",
|
||||
"Round_z(value)",
|
||||
"Bfrev(value)",
|
||||
"Countbits(value)",
|
||||
"FirstbitLo(value)",
|
||||
"FirstbitHi(value)",
|
||||
"FirstbitSHi(value)",
|
||||
"FMax(a,b)",
|
||||
"FMin(a,b)",
|
||||
"IMax(a,b)",
|
||||
"IMin(a,b)",
|
||||
"UMax(a,b)",
|
||||
"UMin(a,b)",
|
||||
"IMul(a,b)",
|
||||
"UMul(a,b)",
|
||||
"UDiv(a,b)",
|
||||
"UAddc(a,b)",
|
||||
"USubb(a,b)",
|
||||
"FMad(a,b,c)",
|
||||
"Fma(a,b,c)",
|
||||
"IMad(a,b,c)",
|
||||
"UMad(a,b,c)",
|
||||
"Msad(a,b,c)",
|
||||
"Ibfe(a,b,c)",
|
||||
"Ubfe(a,b,c)",
|
||||
"Bfi(width,offset,value,replacedValue)",
|
||||
"Dot2(ax,ay,bx,by)",
|
||||
"Dot3(ax,ay,az,bx,by,bz)",
|
||||
"Dot4(ax,ay,az,aw,bx,by,bz,bw)",
|
||||
"CreateHandle(resourceClass,rangeId,index,nonUniformIndex)",
|
||||
"CBufferLoad(handle,byteOffset,alignment)",
|
||||
"CBufferLoadLegacy(handle,regIndex)",
|
||||
"Sample(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,clamp)",
|
||||
"SampleBias(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,bias,clamp)",
|
||||
"SampleLevel(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,LOD)",
|
||||
"SampleGrad(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,ddx0,ddx1,ddx2,ddy0,ddy1,ddy2,clamp)",
|
||||
"SampleCmp(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,clamp)",
|
||||
"SampleCmpLevelZero(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue)",
|
||||
"TextureLoad(srv,mipLevelOrSampleCount,coord0,coord1,coord2,offset0,offset1,offset2)",
|
||||
"TextureStore(srv,coord0,coord1,coord2,value0,value1,value2,value3,mask)",
|
||||
"BufferLoad(srv,index,wot)",
|
||||
"BufferStore(uav,coord0,coord1,value0,value1,value2,value3,mask)",
|
||||
"BufferUpdateCounter(uav,inc)",
|
||||
"CheckAccessFullyMapped(status)",
|
||||
"GetDimensions(handle,mipLevel)",
|
||||
"TextureGather(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,channel)",
|
||||
"TextureGatherCmp(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,channel,compareValue)",
|
||||
"Texture2DMSGetSamplePosition(srv,index)",
|
||||
"RenderTargetGetSamplePosition(index)",
|
||||
"RenderTargetGetSampleCount()",
|
||||
"AtomicBinOp(handle,atomicOp,offset0,offset1,offset2,newValue)",
|
||||
"AtomicCompareExchange(handle,offset0,offset1,offset2,compareValue,newValue)",
|
||||
"Barrier(barrierMode)",
|
||||
"CalculateLOD(handle,sampler,coord0,coord1,coord2,clamped)",
|
||||
"Discard(condition)",
|
||||
"DerivCoarseX(value)",
|
||||
"DerivCoarseY(value)",
|
||||
"DerivFineX(value)",
|
||||
"DerivFineY(value)",
|
||||
"EvalSnapped(inputSigId,inputRowIndex,inputColIndex,offsetX,offsetY)",
|
||||
"EvalSampleIndex(inputSigId,inputRowIndex,inputColIndex,sampleIndex)",
|
||||
"EvalCentroid(inputSigId,inputRowIndex,inputColIndex)",
|
||||
"SampleIndex()",
|
||||
"Coverage()",
|
||||
"InnerCoverage()",
|
||||
"ThreadId(component)",
|
||||
"GroupId(component)",
|
||||
"ThreadIdInGroup(component)",
|
||||
"FlattenedThreadIdInGroup()",
|
||||
"EmitStream(streamId)",
|
||||
"CutStream(streamId)",
|
||||
"EmitThenCutStream(streamId)",
|
||||
"GSInstanceID()",
|
||||
"MakeDouble(lo,hi)",
|
||||
"SplitDouble(value)",
|
||||
"LoadOutputControlPoint(inputSigId,row,col,index)",
|
||||
"LoadPatchConstant(inputSigId,row,col)",
|
||||
"DomainLocation(component)",
|
||||
"StorePatchConstant(outputSigID,row,col,value)",
|
||||
"OutputControlPointID()",
|
||||
"PrimitiveID()",
|
||||
"CycleCounterLegacy()",
|
||||
"WaveIsFirstLane()",
|
||||
"WaveGetLaneIndex()",
|
||||
"WaveGetLaneCount()",
|
||||
"WaveAnyTrue(cond)",
|
||||
"WaveAllTrue(cond)",
|
||||
"WaveActiveAllEqual(value)",
|
||||
"WaveActiveBallot(cond)",
|
||||
"WaveReadLaneAt(value,lane)",
|
||||
"WaveReadLaneFirst(value)",
|
||||
"WaveActiveOp(value,op,sop)",
|
||||
"WaveActiveBit(value,op)",
|
||||
"WavePrefixOp(value,op,sop)",
|
||||
"QuadReadLaneAt(value,quadLane)",
|
||||
"QuadOp(value,op)",
|
||||
"BitcastI16toF16(value)",
|
||||
"BitcastF16toI16(value)",
|
||||
"BitcastI32toF32(value)",
|
||||
"BitcastF32toI32(value)",
|
||||
"BitcastI64toF64(value)",
|
||||
"BitcastF64toI64(value)",
|
||||
"LegacyF32ToF16(value)",
|
||||
"LegacyF16ToF32(value)",
|
||||
"LegacyDoubleToFloat(value)",
|
||||
"LegacyDoubleToSInt32(value)",
|
||||
"LegacyDoubleToUInt32(value)",
|
||||
"WaveAllBitCount(value)",
|
||||
"WavePrefixBitCount(value)",
|
||||
"AttributeAtVertex(inputSigId,inputRowIndex,inputColIndex,VertexID)",
|
||||
"ViewID()",
|
||||
"RawBufferLoad(srv,index,elementOffset,mask,alignment)",
|
||||
"RawBufferStore(uav,index,elementOffset,value0,value1,value2,value3,mask,alignment)",
|
||||
"InstanceID()",
|
||||
"InstanceIndex()",
|
||||
"HitKind()",
|
||||
"RayFlags()",
|
||||
"DispatchRaysIndex(col)",
|
||||
"DispatchRaysDimensions(col)",
|
||||
"WorldRayOrigin(col)",
|
||||
"WorldRayDirection(col)",
|
||||
"ObjectRayOrigin(col)",
|
||||
"ObjectRayDirection(col)",
|
||||
"ObjectToWorld(row,col)",
|
||||
"WorldToObject(row,col)",
|
||||
"RayTMin()",
|
||||
"RayTCurrent()",
|
||||
"IgnoreHit()",
|
||||
"AcceptHitAndEndSearch()",
|
||||
"TraceRay(AccelerationStructure,RayFlags,InstanceInclusionMask,RayContributionToHitGroupIndex,MultiplierForGeometryContributionToShaderIndex,MissShaderIndex,Origin_X,Origin_Y,Origin_Z,TMin,Direction_X,Direction_Y,Direction_Z,TMax,payload)",
|
||||
"ReportHit(THit,HitKind,Attributes)",
|
||||
"CallShader(ShaderIndex,Parameter)",
|
||||
"CreateHandleForLib(Resource)",
|
||||
"PrimitiveIndex()",
|
||||
"Dot2AddHalf(acc,ax,ay,bx,by)",
|
||||
"Dot4AddI8Packed(acc,a,b)",
|
||||
"Dot4AddU8Packed(acc,a,b)",
|
||||
"WaveMatch(value)",
|
||||
"WaveMultiPrefixOp(value,mask0,mask1,mask2,mask3,op,sop)",
|
||||
"WaveMultiPrefixBitCount(value,mask0,mask1,mask2,mask3)",
|
||||
"SetMeshOutputCounts(numVertices,numPrimitives)",
|
||||
"EmitIndices(PrimitiveIndex,VertexIndex0,VertexIndex1,VertexIndex2)",
|
||||
"GetMeshPayload()",
|
||||
"StoreVertexOutput(outputSigId,rowIndex,colIndex,value,vertexIndex)",
|
||||
"StorePrimitiveOutput(outputSigId,rowIndex,colIndex,value,primitiveIndex)",
|
||||
"DispatchMesh(threadGroupCountX,threadGroupCountY,threadGroupCountZ,payload)",
|
||||
"WriteSamplerFeedback(feedbackTex,sampledTex,sampler,c0,c1,c2,c3,clamp)",
|
||||
"WriteSamplerFeedbackBias(feedbackTex,sampledTex,sampler,c0,c1,c2,c3,bias,clamp)",
|
||||
"WriteSamplerFeedbackLevel(feedbackTex,sampledTex,sampler,c0,c1,c2,c3,lod)",
|
||||
"WriteSamplerFeedbackGrad(feedbackTex,sampledTex,sampler,c0,c1,c2,c3,ddx0,ddx1,ddx2,ddy0,ddy1,ddy2,clamp)",
|
||||
"AllocateRayQuery(constRayFlags)",
|
||||
"RayQuery_TraceRayInline(rayQueryHandle,accelerationStructure,rayFlags,instanceInclusionMask,origin_X,origin_Y,origin_Z,tMin,direction_X,direction_Y,direction_Z,tMax)",
|
||||
"RayQuery_Proceed(rayQueryHandle)",
|
||||
"RayQuery_Abort(rayQueryHandle)",
|
||||
"RayQuery_CommitNonOpaqueTriangleHit(rayQueryHandle)",
|
||||
"RayQuery_CommitProceduralPrimitiveHit(rayQueryHandle,t)",
|
||||
"RayQuery_CommittedStatus(rayQueryHandle)",
|
||||
"RayQuery_CandidateType(rayQueryHandle)",
|
||||
"RayQuery_CandidateObjectToWorld3x4(rayQueryHandle,row,col)",
|
||||
"RayQuery_CandidateWorldToObject3x4(rayQueryHandle,row,col)",
|
||||
"RayQuery_CommittedObjectToWorld3x4(rayQueryHandle,row,col)",
|
||||
"RayQuery_CommittedWorldToObject3x4(rayQueryHandle,row,col)",
|
||||
"RayQuery_CandidateProceduralPrimitiveNonOpaque(rayQueryHandle)",
|
||||
"RayQuery_CandidateTriangleFrontFace(rayQueryHandle)",
|
||||
"RayQuery_CommittedTriangleFrontFace(rayQueryHandle)",
|
||||
"RayQuery_CandidateTriangleBarycentrics(rayQueryHandle,component)",
|
||||
"RayQuery_CommittedTriangleBarycentrics(rayQueryHandle,component)",
|
||||
"RayQuery_RayFlags(rayQueryHandle)",
|
||||
"RayQuery_WorldRayOrigin(rayQueryHandle,component)",
|
||||
"RayQuery_WorldRayDirection(rayQueryHandle,component)",
|
||||
"RayQuery_RayTMin(rayQueryHandle)",
|
||||
"RayQuery_CandidateTriangleRayT(rayQueryHandle)",
|
||||
"RayQuery_CommittedRayT(rayQueryHandle)",
|
||||
"RayQuery_CandidateInstanceIndex(rayQueryHandle)",
|
||||
"RayQuery_CandidateInstanceID(rayQueryHandle)",
|
||||
"RayQuery_CandidateGeometryIndex(rayQueryHandle)",
|
||||
"RayQuery_CandidatePrimitiveIndex(rayQueryHandle)",
|
||||
"RayQuery_CandidateObjectRayOrigin(rayQueryHandle,component)",
|
||||
"RayQuery_CandidateObjectRayDirection(rayQueryHandle,component)",
|
||||
"RayQuery_CommittedInstanceIndex(rayQueryHandle)",
|
||||
"RayQuery_CommittedInstanceID(rayQueryHandle)",
|
||||
"RayQuery_CommittedGeometryIndex(rayQueryHandle)",
|
||||
"RayQuery_CommittedPrimitiveIndex(rayQueryHandle)",
|
||||
"RayQuery_CommittedObjectRayOrigin(rayQueryHandle,component)",
|
||||
"RayQuery_CommittedObjectRayDirection(rayQueryHandle,component)",
|
||||
"GeometryIndex()",
|
||||
"RayQuery_CandidateInstanceContributionToHitGroupIndex(rayQueryHandle)",
|
||||
"RayQuery_CommittedInstanceContributionToHitGroupIndex(rayQueryHandle)",
|
||||
"AnnotateHandle(res,props)",
|
||||
"CreateHandleFromBinding(bind,index,nonUniformIndex)",
|
||||
"CreateHandleFromHeap(index,samplerHeap,nonUniformIndex)",
|
||||
"Unpack4x8(unpackMode,pk)",
|
||||
"Pack4x8(packMode,x,y,z,w)",
|
||||
"IsHelperLane()",
|
||||
"QuadVote(cond,op)",
|
||||
"TextureGatherRaw(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1)",
|
||||
"SampleCmpLevel(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,lod)",
|
||||
"TextureStoreSample(srv,coord0,coord1,coord2,value0,value1,value2,value3,mask,sampleIdx)",
|
||||
"WaveMatrix_Annotate(waveMatrixPtr,waveMatProps)",
|
||||
"WaveMatrix_Depth(waveMatProps)",
|
||||
"WaveMatrix_Fill(waveMatrixPtr,value)",
|
||||
"WaveMatrix_LoadRawBuf(waveMatrixPtr,rawBuf,offsetInBytes,strideInBytes,alignmentInBytes,colMajor)",
|
||||
"WaveMatrix_LoadGroupShared(waveMatrixPtr,groupsharedPtr,startArrayIndex,strideInElements,colMajor)",
|
||||
"WaveMatrix_StoreRawBuf(waveMatrixPtr,rawBuf,offsetInBytes,strideInBytes,alignmentInBytes,colMajor)",
|
||||
"WaveMatrix_StoreGroupShared(waveMatrixPtr,groupsharedPtr,startArrayIndex,strideInElements,colMajor)",
|
||||
"WaveMatrix_Multiply(waveMatrixAccumulator,waveMatrixLeft,waveMatrixRight)",
|
||||
"WaveMatrix_MultiplyAccumulate(waveMatrixAccumulator,waveMatrixLeft,waveMatrixRight)",
|
||||
"WaveMatrix_ScalarOp(waveMatrixPtr,op,value)",
|
||||
"WaveMatrix_SumAccumulate(waveMatrixFragment,waveMatrixInput)",
|
||||
"WaveMatrix_Add(waveMatrixAccumulator,waveMatrixAccumulatorOrFragment)",
|
||||
"AllocateNodeOutputRecords(output,numRecords,perThread)",
|
||||
"GetNodeRecordPtr(recordhandle,arrayIndex)",
|
||||
"IncrementOutputCount(output,count,perThread)",
|
||||
"OutputComplete(output)",
|
||||
"GetInputRecordCount(input)",
|
||||
"FinishedCrossGroupSharing(input)",
|
||||
"BarrierByMemoryType(MemoryTypeFlags,SemanticFlags)",
|
||||
"BarrierByMemoryHandle(object,SemanticFlags)",
|
||||
"BarrierByNodeRecordHandle(object,SemanticFlags)",
|
||||
"CreateNodeOutputHandle(MetadataIdx)",
|
||||
"IndexNodeHandle(NodeOutputHandle,ArrayIndex)",
|
||||
"AnnotateNodeHandle(node,props)",
|
||||
"CreateNodeInputRecordHandle(MetadataIdx)",
|
||||
"AnnotateNodeRecordHandle(noderecord,props)",
|
||||
"NodeOutputIsValid(output)",
|
||||
"GetRemainingRecursionLevels()",
|
||||
"SampleCmpGrad(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,ddx0,ddx1,ddx2,ddy0,ddy1,ddy2,clamp)",
|
||||
"SampleCmpBias(srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,bias,clamp)",
|
||||
"StartVertexLocation()",
|
||||
"StartInstanceLocation()",
|
||||
"index",
|
||||
"index,value",
|
||||
"regIndex,index,component",
|
||||
"regIndex,index,component,value",
|
||||
"inputSigId,rowIndex,colIndex,gsVertexAxis",
|
||||
"outputSigId,rowIndex,colIndex,value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b",
|
||||
"a,b,c",
|
||||
"a,b,c",
|
||||
"a,b,c",
|
||||
"a,b,c",
|
||||
"a,b,c",
|
||||
"a,b,c",
|
||||
"a,b,c",
|
||||
"width,offset,value,replacedValue",
|
||||
"ax,ay,bx,by",
|
||||
"ax,ay,az,bx,by,bz",
|
||||
"ax,ay,az,aw,bx,by,bz,bw",
|
||||
"resourceClass,rangeId,index,nonUniformIndex",
|
||||
"handle,byteOffset,alignment",
|
||||
"handle,regIndex",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,clamp",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,bias,clamp",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,LOD",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,ddx0,ddx1,ddx2,ddy0,ddy1,ddy2,clamp",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,clamp",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue",
|
||||
"srv,mipLevelOrSampleCount,coord0,coord1,coord2,offset0,offset1,offset2",
|
||||
"srv,coord0,coord1,coord2,value0,value1,value2,value3,mask",
|
||||
"srv,index,wot",
|
||||
"uav,coord0,coord1,value0,value1,value2,value3,mask",
|
||||
"uav,inc",
|
||||
"status",
|
||||
"handle,mipLevel",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,channel",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,channel,compareValue",
|
||||
"srv,index",
|
||||
"index",
|
||||
"",
|
||||
"handle,atomicOp,offset0,offset1,offset2,newValue",
|
||||
"handle,offset0,offset1,offset2,compareValue,newValue",
|
||||
"barrierMode",
|
||||
"handle,sampler,coord0,coord1,coord2,clamped",
|
||||
"condition",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"inputSigId,inputRowIndex,inputColIndex,offsetX,offsetY",
|
||||
"inputSigId,inputRowIndex,inputColIndex,sampleIndex",
|
||||
"inputSigId,inputRowIndex,inputColIndex",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"component",
|
||||
"component",
|
||||
"component",
|
||||
"",
|
||||
"streamId",
|
||||
"streamId",
|
||||
"streamId",
|
||||
"",
|
||||
"lo,hi",
|
||||
"value",
|
||||
"inputSigId,row,col,index",
|
||||
"inputSigId,row,col",
|
||||
"component",
|
||||
"outputSigID,row,col,value",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"cond",
|
||||
"cond",
|
||||
"value",
|
||||
"cond",
|
||||
"value,lane",
|
||||
"value",
|
||||
"value,op,sop",
|
||||
"value,op",
|
||||
"value,op,sop",
|
||||
"value,quadLane",
|
||||
"value,op",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"value",
|
||||
"inputSigId,inputRowIndex,inputColIndex,VertexID",
|
||||
"",
|
||||
"srv,index,elementOffset,mask,alignment",
|
||||
"uav,index,elementOffset,value0,value1,value2,value3,mask,alignment",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"col",
|
||||
"col",
|
||||
"col",
|
||||
"col",
|
||||
"col",
|
||||
"col",
|
||||
"row,col",
|
||||
"row,col",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"AccelerationStructure,RayFlags,InstanceInclusionMask,RayContributionToHitGroupIndex,MultiplierForGeometryContributionToShaderIndex,MissShaderIndex,Origin_X,Origin_Y,Origin_Z,TMin,Direction_X,Direction_Y,Direction_Z,TMax,payload",
|
||||
"THit,HitKind,Attributes",
|
||||
"ShaderIndex,Parameter",
|
||||
"Resource",
|
||||
"",
|
||||
"acc,ax,ay,bx,by",
|
||||
"acc,a,b",
|
||||
"acc,a,b",
|
||||
"value",
|
||||
"value,mask0,mask1,mask2,mask3,op,sop",
|
||||
"value,mask0,mask1,mask2,mask3",
|
||||
"numVertices,numPrimitives",
|
||||
"PrimitiveIndex,VertexIndex0,VertexIndex1,VertexIndex2",
|
||||
"",
|
||||
"outputSigId,rowIndex,colIndex,value,vertexIndex",
|
||||
"outputSigId,rowIndex,colIndex,value,primitiveIndex",
|
||||
"threadGroupCountX,threadGroupCountY,threadGroupCountZ,payload",
|
||||
"feedbackTex,sampledTex,sampler,c0,c1,c2,c3,clamp",
|
||||
"feedbackTex,sampledTex,sampler,c0,c1,c2,c3,bias,clamp",
|
||||
"feedbackTex,sampledTex,sampler,c0,c1,c2,c3,lod",
|
||||
"feedbackTex,sampledTex,sampler,c0,c1,c2,c3,ddx0,ddx1,ddx2,ddy0,ddy1,ddy2,clamp",
|
||||
"constRayFlags",
|
||||
"rayQueryHandle,accelerationStructure,rayFlags,instanceInclusionMask,origin_X,origin_Y,origin_Z,tMin,direction_X,direction_Y,direction_Z,tMax",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle,t",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle,row,col",
|
||||
"rayQueryHandle,row,col",
|
||||
"rayQueryHandle,row,col",
|
||||
"rayQueryHandle,row,col",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle,component",
|
||||
"rayQueryHandle,component",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle,component",
|
||||
"rayQueryHandle,component",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle,component",
|
||||
"rayQueryHandle,component",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle,component",
|
||||
"rayQueryHandle,component",
|
||||
"",
|
||||
"rayQueryHandle",
|
||||
"rayQueryHandle",
|
||||
"res,props",
|
||||
"bind,index,nonUniformIndex",
|
||||
"index,samplerHeap,nonUniformIndex",
|
||||
"unpackMode,pk",
|
||||
"packMode,x,y,z,w",
|
||||
"",
|
||||
"cond,op",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,lod",
|
||||
"srv,coord0,coord1,coord2,value0,value1,value2,value3,mask,sampleIdx",
|
||||
"waveMatrixPtr,waveMatProps",
|
||||
"waveMatProps",
|
||||
"waveMatrixPtr,value",
|
||||
"waveMatrixPtr,rawBuf,offsetInBytes,strideInBytes,alignmentInBytes,colMajor",
|
||||
"waveMatrixPtr,groupsharedPtr,startArrayIndex,strideInElements,colMajor",
|
||||
"waveMatrixPtr,rawBuf,offsetInBytes,strideInBytes,alignmentInBytes,colMajor",
|
||||
"waveMatrixPtr,groupsharedPtr,startArrayIndex,strideInElements,colMajor",
|
||||
"waveMatrixAccumulator,waveMatrixLeft,waveMatrixRight",
|
||||
"waveMatrixAccumulator,waveMatrixLeft,waveMatrixRight",
|
||||
"waveMatrixPtr,op,value",
|
||||
"waveMatrixFragment,waveMatrixInput",
|
||||
"waveMatrixAccumulator,waveMatrixAccumulatorOrFragment",
|
||||
"output,numRecords,perThread",
|
||||
"recordhandle,arrayIndex",
|
||||
"output,count,perThread",
|
||||
"output",
|
||||
"input",
|
||||
"input",
|
||||
"MemoryTypeFlags,SemanticFlags",
|
||||
"object,SemanticFlags",
|
||||
"object,SemanticFlags",
|
||||
"MetadataIdx",
|
||||
"NodeOutputHandle,ArrayIndex",
|
||||
"node,props",
|
||||
"MetadataIdx",
|
||||
"noderecord,props",
|
||||
"output",
|
||||
"",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,ddx0,ddx1,ddx2,ddy0,ddy1,ddy2,clamp",
|
||||
"srv,sampler,coord0,coord1,coord2,coord3,offset0,offset1,offset2,compareValue,bias,clamp",
|
||||
"",
|
||||
"",
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
@@ -1600,10 +1861,13 @@ void Program::MakeDXCDisassemblyString()
|
||||
if(Constant *op = cast<Constant>(inst.args[0]))
|
||||
{
|
||||
uint32_t opcode = op->getU32();
|
||||
if(opcode < ARRAY_COUNT(funcSigs))
|
||||
if(opcode < ARRAY_COUNT(funcNames))
|
||||
{
|
||||
m_Disassembly += " ; ";
|
||||
m_Disassembly += funcNames[opcode];
|
||||
m_Disassembly += "(";
|
||||
m_Disassembly += funcSigs[opcode];
|
||||
m_Disassembly += ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1967,7 +2231,7 @@ void Program::MakeRDDisassemblyString()
|
||||
m_Disassembly += StringFormat::Fmt("%c%u = ", DXIL::dxilIdentifier, inst.slot);
|
||||
|
||||
bool debugCall = false;
|
||||
bool showDxFuncSig = true;
|
||||
bool showDxFuncName = false;
|
||||
|
||||
switch(inst.op)
|
||||
{
|
||||
@@ -1975,9 +2239,10 @@ void Program::MakeRDDisassemblyString()
|
||||
case Operation::Call:
|
||||
{
|
||||
rdcstr funcCallName = inst.getFuncCall()->name;
|
||||
showDxFuncName = funcCallName.beginsWith("dx.op");
|
||||
if(funcCallName.beginsWith("dx.op.loadInput"))
|
||||
{
|
||||
showDxFuncSig = false;
|
||||
showDxFuncName = false;
|
||||
uint32_t dxopCode = getival<uint32_t>(inst.args[0]);
|
||||
RDCASSERTEQUAL(dxopCode, 4);
|
||||
uint32_t inputIdx = getival<uint32_t>(inst.args[1]);
|
||||
@@ -1989,7 +2254,7 @@ void Program::MakeRDDisassemblyString()
|
||||
}
|
||||
else if(funcCallName.beginsWith("dx.op.storeOutput"))
|
||||
{
|
||||
showDxFuncSig = false;
|
||||
showDxFuncName = false;
|
||||
uint32_t dxopCode = getival<uint32_t>(inst.args[0]);
|
||||
RDCASSERTEQUAL(dxopCode, 5);
|
||||
uint32_t outputIdx = getival<uint32_t>(inst.args[1]);
|
||||
@@ -2002,8 +2267,22 @@ void Program::MakeRDDisassemblyString()
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Disassembly += "call " + inst.type->toString();
|
||||
m_Disassembly += " @" + escapeStringIfNeeded(funcCallName);
|
||||
if(!showDxFuncName)
|
||||
{
|
||||
m_Disassembly += "call " + inst.type->toString();
|
||||
m_Disassembly += " @" + escapeStringIfNeeded(funcCallName);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(Constant *op = cast<Constant>(inst.args[0]))
|
||||
{
|
||||
uint32_t opcode = op->getU32();
|
||||
if(opcode < ARRAY_COUNT(funcNames))
|
||||
m_Disassembly += funcNames[opcode];
|
||||
else
|
||||
m_Disassembly += escapeStringIfNeeded(funcCallName);
|
||||
}
|
||||
}
|
||||
m_Disassembly += "(";
|
||||
bool first = true;
|
||||
|
||||
@@ -2014,7 +2293,6 @@ void Program::MakeRDDisassemblyString()
|
||||
{
|
||||
if(!first)
|
||||
m_Disassembly += ", ";
|
||||
first = false;
|
||||
|
||||
// see if we have param attrs for this param
|
||||
rdcstr attrString;
|
||||
@@ -2024,7 +2302,11 @@ void Program::MakeRDDisassemblyString()
|
||||
attrString = paramAttrs->groupSlots[argIdx]->toString(true) + " ";
|
||||
}
|
||||
|
||||
m_Disassembly += ArgToString(s, false, attrString);
|
||||
if(!showDxFuncName || argIdx > 1)
|
||||
{
|
||||
m_Disassembly += ArgToString(s, false, attrString);
|
||||
first = false;
|
||||
}
|
||||
|
||||
argIdx++;
|
||||
}
|
||||
@@ -2595,21 +2877,8 @@ void Program::MakeRDDisassemblyString()
|
||||
}
|
||||
}
|
||||
|
||||
if(showDxFuncSig)
|
||||
if(showDxFuncName)
|
||||
{
|
||||
if(inst.getFuncCall() && inst.getFuncCall()->name.beginsWith("dx.op."))
|
||||
{
|
||||
if(Constant *op = cast<Constant>(inst.args[0]))
|
||||
{
|
||||
uint32_t opcode = op->getU32();
|
||||
if(opcode < ARRAY_COUNT(funcSigs))
|
||||
{
|
||||
m_Disassembly += " ; ";
|
||||
m_Disassembly += funcSigs[opcode];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(inst.getFuncCall() && inst.getFuncCall()->name.beginsWith("dx.op.annotateHandle"))
|
||||
{
|
||||
if(const Constant *props = cast<Constant>(inst.args[2]))
|
||||
|
||||
Reference in New Issue
Block a user