15881 Commits

Author SHA1 Message Date
baldurk 34c3c40787 Document the PDB search priority/algorithm
* This follows PIX's algorithm in most places which although undocumented is
  something many people expect to work. It deviates only when there would be
  significant performance penalties for little gain.
v1.38
2025-05-02 10:48:10 +01:00
baldurk a8a14bc317 When possible reject aliased pdb names using HASH 2025-05-01 15:40:23 +01:00
baldurk f5506fcec3 Workaround of pixel history crash with depth-only UAV writes 2025-05-01 10:36:07 +01:00
Jake Turner df08881ef2 Add asserts to check for out of bounds GSM variable access 2025-04-30 11:59:03 +01:00
Jake Turner 35f91b2575 Compute GSM raw variable declaration element count from byte count 2025-04-30 11:59:03 +01:00
Jake Turner cf879397bd Fix incorrect indexing when getting GSM Register Index 2025-04-30 11:59:02 +01:00
baldurk 852825c6f1 Remove 32-bit GPA from installer manifest 2025-04-30 11:50:55 +01:00
Cam Mannett 47ee186e65 Retain initial contents type on softmem flush reset
Otherwise resources are filtered out before writing.

Change-Id: I76e096472aa3a8b32b81ccd4612da7330173ed47
2025-04-29 15:50:02 +01:00
baldurk 36e53ae0cd Ensure color format is always set for GL pixel history framebuffers 2025-04-29 12:09:51 +01:00
baldurk 8e86f79c72 Fix compiling pixel history shaders on GLES breaking 2025-04-29 12:09:38 +01:00
baldurk 395d8079e6 Don't test MSAA with A8_UNORM formats in VK_Texture_Zoo
* This is apparently in a format capability class to R8 it seems, and since we
  don't expect anyone to be rendering to A8 let alone in MSAA, there's no point
  in testing this.
2025-04-28 17:26:53 +01:00
baldurk d239a59ff0 Fix pick component type for S8 textures 2025-04-28 17:26:06 +01:00
baldurk 361624ff84 Add slight increase to error tolerance for SNorm textures 2025-04-28 17:10:53 +01:00
baldurk 6ded6187dc Update python example code using old API member 2025-04-28 11:34:18 +01:00
baldurk ade38c43d4 Only apply dynamic offsets for the relevant pipeline type 2025-04-24 16:12:15 +01:00
baldurk 5b5bec6334 Handle forward referenced function members in debuginfo types 2025-04-24 16:12:15 +01:00
baldurk e0b0b24efd Increase shader compiler delay in tests 2025-04-24 16:12:15 +01:00
Le Philousophe bf1ebeeb86 Allow custom visualisation shaders to be used with GLES
With GLES, a precision specifier is mandatory for float types.
Specifying one in the user shader is not enough because it happens too
late after uvec2 and uvec4 uses in the custom prefix.
2025-04-24 12:02:24 +01:00
baldurk e03ea6b040 Fix incorrect log print 2025-04-23 10:53:50 +01:00
baldurk 4dfedae094 Make sure that const pNext chains aren't modified during patching
* Even if we duplicate the base structure it is not safe to modify the const
  pNext chain without copying it too.
2025-04-23 10:53:50 +01:00
Jake Turner 258ab5b6e3 Change test helper to just check for asserts (not errors)
Setting the Vulkan layer produces two errors
2025-04-22 14:31:43 +01:00
Jake Turner a8de121cd0 Check for Asserts & Errors when running D3D12_Shader_DebugData_Zoo tests 2025-04-22 13:09:04 +01:00
Jake Turner 498e767272 DXBC debugger clamp out of bounds component count to maximum of four 2025-04-22 12:38:27 +01:00
Jake Turner 4ead1e4423 Handle initialising a DXIL constant struct to NULL
It is a nop because ShaderVariable starts initialised to 0
2025-04-22 12:37:28 +01:00
Jake Turner eeac056816 VK and D3D12 Workgroup & Subgroup Zoo tests fail on Asserts or Errors
Check the renderdoc log for lines matching "Assertion" or "Error"
Using new helper function in testcase.py
def check_renderdoc_log(self, asserts: bool = True, errors: bool = True):
2025-04-22 12:33:56 +01:00
Jake Turner 1c4520534d new helper function in testcase.py to check RD log for Asserts/Errors
def check_renderdoc_log(self, asserts: bool = True, errors: bool = True):
2025-04-22 12:33:50 +01:00
Jake Turner 261f957d5b SPIRV workgroup debugger, add padding lanes to align to subgroup size 2025-04-18 13:58:10 +01:00
Jake Turner 5f00ed9d39 SPIRV Debugger workgroup debugging fixes
Set the thread property SubgroupId for the extra lanes outside of the subgroup
pass the workgroup laneIndex to BeginDebug
Set the thread property GroupThreadIndex, GroupFlatIndex for all workgroup lanes
2025-04-18 13:58:10 +01:00
Jake Turner c1fb809f17 SPIRV Debugger, add asserts to ensure the lane index is in range
Specifically when computing the active lanes from the activeMask array
2025-04-18 13:58:09 +01:00
Jake Turner f5222ed547 DXIL Debugger tweak subgroup active lanes helper
add asserts to ensure the lane index is in range
return the first lane in the subgroup
2025-04-18 13:58:09 +01:00
Jake Turner ede0c1d0ee D3D12 Workgroup debugger, add padding lanes to align to subgroup size 2025-04-18 13:58:09 +01:00
Jake Turner 53ad61b6a5 D3D12 Workgroup debugger, use SV_GroupThreadID for threadid
Use SV_GroupThreadID to fill in threadid in the compute fetcher instead of SV_DispatchThreadID
Keep SV_DispatchThreadID to identify the candidate thread
2025-04-18 13:58:09 +01:00
Jake Turner e14bc98e18 Added VK_Workgroup_Zoo, D3D12_Workgroup_Zoo tests
Tests specifically aimed at workgroup debugging i.e GSM and non-aligned subgroups
Not focused on unit tests of subgroup/quad instructions that is handled by *_Subgroup_Zoo
2025-04-18 13:58:09 +01:00
baldurk a8a0e9628d Update VK_CBuffer_Zoo test to account for glslang regression
* glslang now requires and uses scalar block layout for hlsl cbuffer packing
2025-04-18 13:28:19 +01:00
baldurk f837af3066 Make sure functional test sections always match begin/end 2025-04-18 12:54:53 +01:00
baldurk eb05d1b0a6 Fix forced references failing on ASs 2025-04-18 11:20:04 +01:00
baldurk 3b29508f2f Fix vulkan structured data conversion 2025-04-18 11:19:47 +01:00
baldurk 933a91e47c Update shaderc build script (VS2015 no longer supported) 2025-04-18 11:19:34 +01:00
baldurk e1dd947e1e work around compile error asserting on static const 2025-04-17 17:16:50 +01:00
baldurk 506d6c6d7b Fix self-capture for vulkan captures using ASs
* The problem here is that due to design flaws in the extension when ASs are in
  use we don't know whether a memory allocation will need BDA or not an the
  application doesn't have to set any flag - unlike for normal buffer BDA. So we
  promote (almost) all memory allocations to BDA when using ASs even if they're
  not needed.
* This normally works fine except if during self-capture the replay process
  allocates some normal memory before all application replayed allocations have
  been made, the self-capturing will promote it to BDA and request a replayable
  address that might clash with a later address the application had used and
  would be needed.
* To solve this, we ensure that during capture we don't create wrapped
  allocations more than necessary - to avoid causing clashes - as well as
  ensuring that on replay we only create new allocations after all replayed
  allocations.
* We also take advantage of dedicated allocations for fake swapchain images,
  since dedicated image allocations will not be promoted to BDA.
2025-04-17 16:21:19 +01:00
Martyn Jacques 84aa4c7fb6 Reset planar flag when remapping textures on vulkan replay 2025-04-17 16:20:21 +01:00
Jake Turner b02980faa2 Extend D3D12 barrier special case code in FillWithDiscardPattern
Change educated guess for D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS resources
2025-04-17 13:38:02 +01:00
baldurk 5deab91b40 Fix CGL 2025-04-16 22:53:45 +01:00
baldurk 6e2dea6219 Fix linux/mac compilation 2025-04-16 21:16:39 +01:00
baldurk d38d9594a2 Fix emulation of glCopySubImageData. Closes #3589
* It was not working for some formats/dimensions, tested against GL_Texture_Zoo.
2025-04-16 18:36:00 +01:00
baldurk 621698e7dc Ignore port in device IDs for target control connection. Closes #3590 2025-04-16 18:02:39 +01:00
baldurk 06003bb1ad Implement support for manual swapchain image creation. Closes #3586 2025-04-16 17:39:51 +01:00
baldurk f6eee16baf Check for files with extra .pdb if the original filename didn't have it 2025-04-16 17:39:51 +01:00
baldurk 7d464fed60 Add verification that HASH matches in debug info if present
* We keep searching if we find a file that matches but has the wrong hash.
2025-04-16 17:39:51 +01:00
baldurk 0f019eafb9 Add option to make shader search paths non-recursive
* For very large shader symbol stores especially those on network drives, the
  bad behaviour that PIX has to recursively search all possible subdirectories
  and enumerate all files can be really slow. Most of the time a file is
  identified by its hash filename and looked up directly - if that isn't a hit,
  in many cases users would rather a fast exit to having no symbols.
2025-04-16 17:39:51 +01:00