Commit Graph

14872 Commits

Author SHA1 Message Date
Jake Turner 8986329d1e nVidia Vk driver bug workaround for series 10 cards
Series 10 cards do not support Mesh Shaders, according to Vulkan spec it should be valid to bind NULL shader objects to mesh stage even if the feature is not supported.
2024-07-11 07:04:11 +01:00
Jake Turner e1e35bf5ac RD DXIL Disassembly use the Block id for label tracking
Remove: labelToBlockIndex, blockIndexToLabel

Shows the start label in a function because it might be referenced in a phi node
Use Block id for the label if the label does not have a name (Block slot might not be unique/set)
2024-07-10 13:34:30 +01:00
Jake Turner 27cfb727c0 Set the correct type for DXIL Compute Shader Input signature reflection
Previously was showing "threadId", "threadIdInGroup", "groupId" as float3 instead of uint3
2024-07-10 13:34:30 +01:00
Jake Turner 51612fdc94 Vulkan PipelineState search for vertex attributes by register location
Closes #3379
2024-07-10 13:34:30 +01:00
Jake Turner 53b0a84a68 GL Descriptors process input signatures with ShaderBuiltin::Undefined
As an example SPIRV compiled vertex shaders can have input signatures with a mixture of Undefined and valid ShaderBuiltIn's

Closes #3375
2024-07-10 13:34:29 +01:00
Jake Turner e4a52ffe2a In Win32 ApplyHooks get module baseAddress from the call to LoadLibrary
If the module is unloaded, reloaded during the hooking process the base address might have changed and the original baseAddress will be pointing to invalid memory
2024-07-10 13:34:29 +01:00
feng716 94212f1488 move code to the existing gcc version check clause 2024-07-10 05:24:12 +01:00
feng716 ddc606be0e move code to qrenderdoc/CMakeLists.txt 2024-07-10 05:24:12 +01:00
feng716 7bae53e098 fix compatibity problem
string sub-command REGEX mode MATCHALL does not support lists
2024-07-10 05:24:12 +01:00
feng716 a339714159 remove extra lines 2024-07-10 05:24:12 +01:00
feng716 2f7ebd461c replace GREATER_EQUAL with GREATER
GREATER_EQUAL is not supported in CMake 2.8
2024-07-10 05:24:12 +01:00
feng716 295677f566 fix relative path 2024-07-10 05:24:12 +01:00
feng716 3bd5f5a631 Add version determination 2024-07-10 05:24:12 +01:00
feng716 9c41ef366e add option '-Wno-error=template-id-cdtor' 2024-07-10 05:24:12 +01:00
Aliya Pazylbekova 9ebd796cd8 Remove GGP support 2024-07-08 14:19:42 +01:00
Jake Turner aa5538b2e9 Added helper D3D12ShaderDebug::GetRenderTargetSampleInfo()
Used by the DXIL debugger and the DXBC D3D12 version of GetSampleInfo()
2024-07-04 05:42:37 +01:00
Jake Turner fcc6ab5087 Added helper D3D12ShaderDebug::GetSampleInfo()
Used by DXBC and DXIL Shader Debuggers
2024-07-04 05:41:53 +01:00
Jake Turner 4fe5962490 Added helper D3D12ShaderDebug::GetResourceInfo()
Used by DXBC and DXIL Shader Debuggers
2024-07-04 05:41:53 +01:00
Jake Turner 546049310f Added DXBCDXILDebug::get_sample_position() helper 2024-07-04 05:41:53 +01:00
Jake Turner aff288dfb7 RD DXIL Disassembly Improvements
Show BufferLoad, RawBufferLoad as <resource>.Load
Show BUfferStore, RawBufferStore as <resource>.Store
Hand decode DXOp::GetDimensions, DXOp::Texture2DMSGetSamplePosition
Removed "index =" from output of GetRenderTargetSamplePosition()
2024-07-03 11:15:11 +01:00
Jake Turner b3236c0fbe Added DoStringise() for DXIL::Type::ScalarKind 2024-07-03 11:14:49 +01:00
Jake Turner 67777f16af Change D3D11/12 Shader_Debug_Zoo to use 32x32 mipmapped texture
32 x 32 means the mip count (5) is different to the MSSA count (4)
2024-07-03 11:14:01 +01:00
Jake Turner 0b9ed7bd8e DXIL disassembly parsing track labels in functions and blocks
Per Function compute:
labelToBlockIndex container : to go from a label to its block index
blockIndexToLabel container : to go from block index to its label

For each Block store the starting instruction index
2024-07-03 07:22:26 +01:00
Jake Turner 71da2b55bb Added dxbcdxil_debug.cpp source file with DXBC/DXIL debugger helpers
Shared between DXBC and DXIL shader debuggers

float dxbc_min(float a, float b);
double dxbc_min(double a, double b);
float dxbc_max(float a, float b);
double dxbc_max(double a, double b);
float round_ne(float x);
float flush_denorm(const float f);
2024-07-03 07:20:59 +01:00
Jake Turner 0406d3766f Change DXIL disassembly exp & log names to exp2 & log2 2024-07-02 14:20:26 +01:00
Jake Turner dbd4d7cf0d Fix DXIL Shader Debugger GPU implementation of EXP & LOG
DXIL EXP is exp2. HLSL is exp.
DXIL LOG is log2. HLSL is ln.
2024-07-02 14:20:14 +01:00
Jake Turner 1307393836 D3D11 PipelineStateViewer use UAV tag for CS UAV resources
Fixes problem that going to a compute shader UAV Buffer would not show the correct format for the buffer
2024-07-02 13:49:44 +01:00
Jake Turner 452f75b966 In DescriptorData() set nonsamp.type to D3D12DescriptorType::Undefined
If it defaults to zero then it would be treated as D3D12DescriptorType::Sampler
which lead to a crash calling "Create" on an uninitialized descriptor
2024-07-02 12:05:07 +01:00
Jake Turner 9a075cf21e Tweaks to D3D12ShaderDebug::FindDescriptor() 2024-07-01 08:32:09 +01:00
Jake Turner a4ccbaba35 DXIL RD Fixes to MakeCBufferRegisterStr()
Changed array offset handling
Added TODO about handling double vectors, the load might not start at x component
Improved handling of variable offset for when the offset is within a variable i.e. matrix row, array element.

Removed unused function GetCBufferVariableTypeName()
2024-06-27 14:36:28 +01:00
Jake Turner 8608e7bc97 Fix matrix byte size in DXIL MakeCBufferVariableType
Account for cbuffer D3D matrix row/column alignment (16 bytes)
2024-06-27 14:36:28 +01:00
baldurk 41adeb65b1 Add UI to manage the list of ignored PDBs for callstacks. Closes #3329 2024-06-27 13:54:41 +01:00
baldurk 6990a6b046 Show - for byte offset when displaying specialisation constants 2024-06-27 13:54:41 +01:00
baldurk 2b40a17f8a Add packing rule for bitfield packing/straddling a la #pragma pack(1) 2024-06-27 13:54:41 +01:00
Jake Turner 64b966f4df D3D12 ShaderDebugging adding helper namespace D3D12ShaderDebug
Added

bool D3D12ShaderDebug::CalculateMathIntrinsic(WrappedID3D12Device* device, MathOp mathOp, const ShaderVariable &input, ShaderVariable &output1, ShaderVariable &output2);

which is used by DXBC and DXIL ShaderDebugger CalculateMathIntrinsic methods

Extended shaderdebug.hlsl math intrinsics to support DXIL math opcodes

Use custom math operation values for DXBC and DXIL, not the DXBC OpCode value.
Use custom sampler operation values for DXBC and DXIL, not the DXBC OpCode value.

This changes DXBCDebug::DebugAPIWrapper, updated D3D11DebugAPIWrapper to match changes to interface and shader math and sample operation values.
2024-06-27 09:27:13 +01:00
Jake Turner 1add3b1ea8 Added D3D12_DebugManager DXIL Shader Debugger helper methods
GetDXILMathIntrinsicsPso()
GetDXILTexSamplePso()
2024-06-27 09:27:13 +01:00
baldurk e6dc1d2516 Fix compile error 2024-06-26 18:30:22 +01:00
baldurk 1de0d75627 Update out of date log message 2024-06-26 17:07:09 +01:00
baldurk 928048b786 Tweak entrypoint disassembly to work better for large interface lists 2024-06-26 17:07:09 +01:00
baldurk 187ab5726a Update helpers with all shader stages 2024-06-26 17:07:09 +01:00
baldurk cd8e6b7bde Fix state handling for new pipeline bind point 2024-06-26 17:07:09 +01:00
baldurk 1b6e09430e Implement ray dispatch functions on Vulkan 2024-06-26 17:07:09 +01:00
baldurk 00b07693a6 Treat ray dispatches as dispatches for action callbacks 2024-06-26 17:07:09 +01:00
baldurk 6fa26849cd Implement RT pipeline creation & capture/replay handle folding in 2024-06-26 17:07:09 +01:00
baldurk 9e521e29a6 Implement struct handling and function stubs for RT pipelines 2024-06-26 17:07:08 +01:00
Jake Turner 3373f4b50e DXIL Reflection for compute shaders correctly detect threadIdInGroup
Searches for "dx.op.threadId" was also incorrectly matching "dx.op.threadIdInGroup"
2024-06-26 08:41:35 +01:00
Jake Turner 419d321a4a RD DXIL Disassembly add compute shader inputs and thread group size
e.g.

[numthreads(3, 2, 1)]
void main()
{
  InitialiseHandle(bufOut); //  index = 1
  InitialiseHandle(bufIn); //  index = 0
  InitialiseHandle(consts); //  index = 0

Inputs
  float3 threadId;

Inputs
  float flattenedThreadIdInGroup;
2024-06-26 08:27:56 +01:00
Jake Turner 6cddf16263 DXIL Shader Debugger call FillTraceLine() for DXBC and DXIL debugging
Some lines of the disassembly output come from DXBC parsing and need to account for that in the trace line info
2024-06-26 06:17:57 +01:00
Jake Turner c49d688f13 DXIL Disassembly ParseReferences tweaks for CreateHandleFromBinding
Handle the constant binding struct being NULL which means all its members are zero
2024-06-26 06:16:24 +01:00
baldurk 12518fda49 Remove PIPELINE_COMPILE_REQUIRED flag on compute pipelines too 2024-06-25 18:56:27 +01:00