Commit Graph

16034 Commits

Author SHA1 Message Date
baldurk 259225cacb Apply workaround for presumed windows bug with BDA capture/replay
* This replaces the previous workaround disabling BDA capture/replay on
  dedicated image memory, as that is not feasible with future functionality and
  appears not to be the source of the bug seen before.
* Although this is believed to be a windows bug, it only manifests on NV so is
  treated as an NV bug for now. A future NV driver should contain a workaround
  for this so it can be disabled later.
2025-07-29 15:32:33 +01:00
baldurk 3be544c51d Prevent infinite recursion when processing includes for shader edits 2025-07-29 13:05:07 +01:00
baldurk c1138e20c5 Handle debugging PS with unwritten inputs
* If a VS-PS declares a struct but there is an element which is declared but
  never written in the VS (and never read in the PS) then we can't read from it
  and must skip that element.
2025-07-29 13:04:43 +01:00
Cam Mannett 15a19eb507 Serialise GLSL shader processing
During Android >=15 app start android::uirenderer (i.e. the renderer for the APK's 'window') creates a VkInstance and VkDevice before the app does but after our layer has initialised. This is fine in principle because RD doesn't support multi-device capturing so the latter just replaces the former - unfortunately though the built-in shader construction is already underway at this point across the multiple threads.  glslang's shader preprocessing is not threadsafe causing intermittent aborts and segfaults.

I haven't seen this on any app other than the RD demo app, presumably because 'real' apps take much longer to start up effectively serialising the shader processing.
2025-07-28 14:52:13 +01:00
Lizzie 8649146147 fix for solaris 2025-07-23 09:00:35 +01:00
Jake Turner d3a140d484 DXIL Debug data handling for inherited struct/class 2025-07-21 18:23:37 +01:00
Jake Turner 4ac2861e2b DXIL Shader Debug Data test for struct inheritance
struct TestGrand
{
  int3 i3;
  int2 i2;
};

struct TestParent : TestGrand
{
  int4 i4;
};

struct TestChild : TestParent
{
  int i;
};
2025-07-21 18:23:37 +01:00
Jake Turner a120fc0871 Add DXIL callstack generation handling for DIBase::Namespace 2025-07-21 14:43:46 +01:00
Jake Turner fa1a7b35cd Defensive coding for handling unpexecteded DXIL debug data 2025-07-21 14:43:20 +01:00
Jake Turner 08696443a0 Added workgroup performance tests and basic D3D11 Workgroup test
Added D3D11_Workgroup_Zoo, D3D12 Workgroup Zoo, Vk Workgroup Zoo performance tests

Performance tests primarily for performance testing workgroup debugging speed

Changed workgroup and subgroup result variable from "data" -> "testResult" to help to reduce conflicts
2025-07-21 09:16:56 +01:00
Andrew Marshall c612fdeb29 remove superfluous changed for macos build 2025-07-18 16:20:56 +01:00
Andrew Marshall b7612d8c9c cmake fixes for MacOS SDK 15.5 build (AppleClang 17) 2025-07-18 16:20:56 +01:00
baldurk 01115b3126 Detect cases where vectors are misaligned only in arrays. Closes #3644
* Scalar layout is required for vectors to straddle 16-byte boundaries but this
  may not be detected if they are naturally aligned within an otherwise mis-
  aligned struct.
2025-07-15 11:28:15 +01:00
baldurk 44e2fbfa2c Fix errors in pedantic C mode. Closes #3645 2025-07-14 11:22:14 +01:00
Jake Turner 2dcecf689b Set ThreadName for JobSystem worker threads to "JobWorker XX" 2025-07-13 09:26:33 +01:00
baldurk 98c2e94385 Switch to python script for CI VS install that might magically work
* Also for diagnostic purposes, print whether the installer succeeded
2025-07-11 11:06:12 +01:00
baldurk 279379c3be Fix potential trample in trie re-using leaf 2025-07-10 17:52:30 +01:00
baldurk 095556663d Try to improve linux pretty printers as much as possible
* These are not as good as natvis but better than nothing... maybe
2025-07-10 17:52:27 +01:00
baldurk b5d3cf07a3 Expand test to include array-indexing ASs as well as NULL AS 2025-07-10 17:52:23 +01:00
baldurk 378474d79c Disable bounds testing on inline UBO in descriptor
* Inline UBOs do not have bounds checking/robust access
2025-07-10 17:52:23 +01:00
baldurk d04306bb92 Check for/require sample rate shading for depth MSAA copy shader 2025-07-10 17:52:23 +01:00
baldurk 62c2747169 Give each AS build its own scratch space in demo 2025-07-10 17:52:23 +01:00
baldurk 6c5b6177dc Query for supported mutable descriptor types in demo 2025-07-10 17:52:23 +01:00
Jake Turner 5f2d07f921 Initialise output window semaphore to VK_NULL_HANDLE
In case CreateSemaphore() fails and the semaphore is not valid which could lead to a problem/crash in DestroySemaphore
2025-07-10 07:52:38 +01:00
Jake Turner eede382884 Vulkan Shader Feedback clamp BDA offset to maximum byte offset
This will include any byte offset the feedback slot has

For non-BDA clamp the ssboindex to the maximum array index
2025-07-09 14:35:48 +01:00
baldurk 3e70a37fac Add test of descriptor buffer 2025-07-09 09:57:56 +01:00
baldurk ff711346f3 Treat read-only DSVs as depth writes disabled for overlays on D3D 2025-07-08 13:37:48 +01:00
baldurk 82e963550a Display read-only DSVs more clearly in D3D pipeline state 2025-07-08 13:37:37 +01:00
baldurk 4f0356d7f4 Don't use sleep for test compilation at all, rely on pclose to wait 2025-07-08 12:22:36 +01:00
Jake Turner e4e1e27814 Use const reference array for GetThreadRefs()
Small optimisation
2025-07-07 10:24:04 +01:00
Jake Turner c00de7e15e Expose ControlFlow::Tangle::GetId() 2025-07-07 10:24:03 +01:00
Andrew Marshall 951e678de1 disable mismatched new-delete warning from GCC 11.1 (false positives) 2025-07-04 17:56:53 +01:00
baldurk 0293487eb8 Properly handle D3D11 constant buffers with a 0 range specified 2025-07-04 14:10:51 +01:00
baldurk 4ec453bd76 Use annoying encoded markers when DRED is enabled
* By design DRED does not interpret normal markers :(
2025-07-04 11:08:24 +01:00
baldurk f94a479939 Fix a potential crash while closing a capture 2025-07-04 10:16:53 +01:00
Jake Turner 1391136509 Fix DXBC Debugger OPCODE_SYNC GSM incorrect bounds for large arrays
Number of components is gsmStride/sizeof(uint32_t)
2025-07-03 12:25:55 +01:00
Jake Turner a81380d800 Extend D3D12_Shader_Debug_Zoo GSM test
Include a large groupshared variable (2D Array)
Call GroupMemoryBarrierWithGroupSync()

groupshared int gsmInt2DArray[2][1024];
2025-07-03 12:25:55 +01:00
baldurk d3179a9886 Detect zink separately from any other vendors. Closes #3632 2025-07-01 12:35:51 +01:00
baldurk 5e846479c7 Handle GLES stupid limitations of color-rendering properly in emulation
* GLES doesn't handle rendering to formats like a normal API - it has an odd
  list of exceptions and extensions to check. If we don't have support for
  blitting in our texture copy emulation we fall back to CPU read and upload.
* We also can't use framebuffer blits for copying MSAA textures so we have to
  fall back to clearing to black. Emulating this would require a shader write
  with sample shading of some kind which is not worthwhile since this emulation
  path is only hit for initial contents where MSAA texture initial contents are
  very unlikely to be needed.
2025-07-01 12:21:24 +01:00
baldurk 6be083f66a Display space and register for root parameters in root signature viewer 2025-06-30 11:06:13 +01:00
baldurk 522edd5122 Bump version to v1.40 2025-06-27 17:11:05 +01:00
baldurk 3f85357598 Ensure official builds still detect compatible android apks properly v1.39 2025-06-27 16:16:20 +01:00
baldurk 4ca999c73e Fix check for integer MSAA texture resolves 2025-06-26 10:12:13 +01:00
baldurk 9c9566f7bd Mark resources in VkDependencyInfo as optional for serialisation 2025-06-25 15:13:32 +01:00
baldurk bfe627dfb7 Don't resolve integer textures when calling GetTextureData 2025-06-25 14:30:18 +01:00
baldurk 4b3f29dcfa Fix decoding of wide-string arguments in PIX events 2025-06-25 13:29:22 +01:00
baldurk 4f5c51bc01 Adjust values used in texel buffer test to have safer rounding 2025-06-25 12:15:55 +01:00
baldurk e5e1e286c3 Catch exceptions from process_trace in Iter_Test and print as errors 2025-06-25 10:53:46 +01:00
Jonathan Glines e0eee8fde3 Update NVGLCounters to use the latest Nsight PerfSDK APIs
Updated NVGLCounters to use the RawCounterConfig and counter
availability APIs from the latest Nsight PerfSDK headers.
2025-06-25 10:31:16 +01:00
Jonathan Glines 8f242043aa Update NVD3D11Counters to use the latest Nsight PerfSDK APIs
Updated NVD3D11Counters to use the RawCounterConfig and counter
availability APIs from the latest Nsight PerfSDK headers.
2025-06-25 10:31:16 +01:00