Commit Graph

14553 Commits

Author SHA1 Message Date
baldurk 09a662c2e2 Add simple API-serialised initial states for acceleration structures 2024-04-17 15:32:23 +01:00
baldurk 258ab0a229 Record a fake creation for D3D12 AS objects to create them at load time 2024-04-17 15:32:23 +01:00
baldurk abbfe59b79 Add ray dispatch execute indirect argument serialisation 2024-04-17 15:32:23 +01:00
baldurk e0327b6c60 AS rebuilds are considered successful and shouldn't throw an error 2024-04-17 15:32:22 +01:00
baldurk b2d07cb56e Call serialise function for AS builds 2024-04-17 15:32:22 +01:00
Jake Turner bd0c961b94 D3D12: RenderMesh use the correct size for Vertex, Index Buffers
Fixes debug errors "exceeds end of the virtual address range of Resource" i.e.

D3D12 ERROR: ID3D12CommandList::IASetVertexBuffers: 0x0000023B9A746190 + SizeInBytes - 1 (0x000000010c36bffe) exceeds end of the virtual address range of Resource (0x0000023B9A746190:'PostVS vsoutBuffer for 162', GPU VA Range: 0x000000000c36c000 - 0x000000000c36c29f).  [ EXECUTION ERROR #726: SET_VERTEX_BUFFERS_INVALID]
D3D12 ERROR: ID3D12CommandList::IASetIndexBuffer: pDesc->BufferLocation + SizeInBytes - 1 (0x000000010c36affe) exceeds end of the virtual address range of Resource (0x0000023B9A7479B0:'PostVS idxBuf for 162', GPU VA Range: 0x000000000c36b000 - 0x000000000c36b00b).  [ STATE_CREATION ERROR #725: SET_INDEX_BUFFER_INVALID]
2024-04-17 11:44:06 +01:00
baldurk 78e84aa544 Don't crash on empty descriptor sets with no bindings 2024-04-16 20:03:54 +01:00
baldurk d4b8504bdc Add instructions to documentation on enabling the Nsight perf SDK 2024-04-16 11:04:58 +01:00
Jake Turner b72e506cf5 D3D12 PixelHistory: improve detection and handling of depth targets
Use D3D12_RESOURCE_DESC Flags to detect depth target (D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL).
Use GetDepthTypedFormat() to get correct depth copy format.
Use Pixel History IsDepthFormat() internal method instead of using DXGI_FORMAT helper function "IsDepthFormat".
Fixes issue of pixel history on typeless target cast to UNORM and used as depth i.e. R16_TYPLESS, cast to UNORM used as a shadow map
2024-04-15 16:54:53 +01:00
Jake Turner 4b9284ed8f PixelHistory UI: improve detection of depth targets
Use the same logic as TextureViewer to determine if the target is a depth target
Fixes issue of pixel history on typeless target cast to UNORM and used as depth i.e. shadow map
2024-04-15 16:54:53 +01:00
baldurk ade34bb59d Disallow dedicated memory on external images where memory reqs change 2024-04-15 16:23:08 +01:00
luckyxxl 3c265b8ad0 Add missing Indirect resource usage for indirect draw count buffers
The buffer containing the `uint32` draw count value for indirect draws with count was not marked as used for the respective events for the following API calls: glMultiDrawArraysIndirectCount, glMultiDrawElementsIndirectCount, vkCmdDrawIndirectCount, vkCmdDrawIndexedIndirectCount, vkCmdDrawMeshTasksIndirectCountEXT.
2024-04-15 16:20:18 +01:00
Jacob Thomas 7e976c04a8 Fix 'android-<version>.jar' search path on MacOS
The renderdoccmd android build assumes all files in '${ANDROID_SDK_ROOT_PATH}/platforms' are valid 'android-<version>.jar' platform libraries. Unfortunately because MacOS litters its directories with metadata files called .DS_Store, that file actually wins this sorting logic and is incorrectly selected.
This fixes the lib search logic to only consider android libraries.
2024-04-15 16:18:15 +01:00
Jake Turner bea0621625 Metal updates for MacSDK 14.4
Add MTLResource::setOwnerWithIdentity to ObjCBridgeMTLTexture and ObjCBridgeMTLBuffer
2024-04-13 16:17:57 +01:00
Jake Turner 1a85fcffba Sync demos copy of metal-cpp.h to match RenderDoc version 2024-04-13 07:31:58 +01:00
baldurk abfe1d4894 Filter shader debugging access to only those for the debugged stage 2024-04-11 15:23:42 +01:00
baldurk 943d11dace Add forward declare of MTL class in MTL namespace 2024-04-10 22:49:10 +01:00
baldurk 040b3ffeef Use cmake property to set C++17 for metal 2024-04-10 22:37:01 +01:00
baldurk 431c11feb6 Fix warnings identified by clang 2024-04-10 22:17:14 +01:00
baldurk 334611fa88 Fix some docstring errors 2024-04-10 21:49:18 +01:00
baldurk d3dac4dfc0 Add missing documentation entries for descriptor viewer & root sig 2024-04-10 21:33:19 +01:00
baldurk 2f9f3cd6a0 Fix GL reflection unit tests
* GL no longer reflects out fixed bindings and relies purely on queried
  uniforms.
2024-04-10 21:28:48 +01:00
baldurk b7f2e8a178 Add documentation explaining use of new descriptor abstraction in python 2024-04-10 18:58:53 +01:00
baldurk 1194531fc5 Add a descriptor viewer for showing all of a heap, root sig, or set 2024-04-10 18:58:53 +01:00
baldurk 153cd2aa16 Expose queries for descriptor stores and D3D12 root signature range
* This will allow a UI viewer or consumer of the replay API to more easily query
  'all' descriptors for a given store.
2024-04-10 18:58:53 +01:00
baldurk 9a18e871e5 Add testing of aliased bindings with descriptor feedback. Refs #3288 2024-04-10 18:58:53 +01:00
baldurk ca144ab818 Remove magic specialisation constant and push constant set numbers 2024-04-10 18:58:53 +01:00
baldurk 474a991419 Update documentation to reference new descriptor APIs 2024-04-10 18:58:53 +01:00
baldurk 9de4a79859 Update tests to new descriptor interface 2024-04-10 18:58:52 +01:00
baldurk fbed56ac55 Don't report descriptor access for non-stage-visible descriptors
* If these are actually used it's an application error.
2024-04-10 18:58:52 +01:00
baldurk 12a17b12f4 Display push descriptor sets in vulkan pipeline state viewer 2024-04-10 18:58:52 +01:00
baldurk 0284d551ea Switch from specific Attachment structs to using Descriptor for outputs 2024-04-10 18:58:52 +01:00
baldurk 6194d5a5a0 Rename resType to textureType in ShaderResource to be more accurate 2024-04-10 18:58:52 +01:00
baldurk 205ed0e6fa Remove old shader bindpoint mapping handling entirely 2024-04-10 18:58:52 +01:00
baldurk acc533ec60 Update Vulkan pipeline state viewer to use new descriptor access 2024-04-10 18:58:52 +01:00
baldurk 5d13456a65 Update D3D12 pipeline state viewer to use new descriptor access 2024-04-10 18:58:52 +01:00
baldurk 317c670fd5 Update GL pipeline state viewer to use new descriptor access 2024-04-10 18:58:52 +01:00
baldurk e08107ebe8 Update D3D11 pipeline state viewer to use new descriptor access 2024-04-10 18:58:52 +01:00
baldurk f4e3087177 Update common pipeline state viewer code to not use bindpoint mapping 2024-04-10 18:58:51 +01:00
baldurk 2c170df588 Fetch D3D12 dynamic feedback directly as descriptor accesses 2024-04-10 18:58:51 +01:00
baldurk 5e759b7fc9 Fetch vulkan dynamic feedback directly as descriptor accesses 2024-04-10 18:58:51 +01:00
baldurk f00ab9dee8 Store descriptor type directly in shader resources for shader reflection 2024-04-10 18:58:51 +01:00
baldurk 292bb596dc Add GL input attribute dynamic binding information to pipe state 2024-04-10 18:58:51 +01:00
baldurk 2bbe1a8cd9 Update shader viewer and debugging with new reporting for shader binds
* This shifts from reporting from the old style bindset/bind to the new system
  of only referencing by shader interface and index (independent of binding
  model).
* The vulkan shader debugger re-uses the replay interface to cache descriptor
  access and descriptor contents in a fashion friendly to interface-index
  lookup.
2024-04-10 18:58:51 +01:00
baldurk f718e72ac9 Update texture viewer to use new pipeline helpers 2024-04-10 18:58:51 +01:00
baldurk d8fd03d60f Update shader message viewer to use new pipeline helpers 2024-04-10 18:58:51 +01:00
baldurk af6abd79c0 Update buffer viewer to use new descriptor/binding interface 2024-04-10 18:58:51 +01:00
baldurk 2a41eb54dd Add new common pipeline state accessors for descriptor-based accesses
* These are temporarily given separate names, to allow them to exist in parallel
  with the existing helpers, but in future these will be renamed when the older
  helpers are removed.
2024-04-10 18:58:51 +01:00
baldurk bbbfb5f3d2 Add fixed bindpoint information to shader reflection data
* Previously this was provided by the ShaderBindpointMapping, but since we plan
  to remove that we add the information here. These will be purely for
  informational purposes and will not be used to look up bound resources etc.
  They exist for display only, or for API-specific interpretation if e.g. the
  bindpoint is known ahead of time it can be identified here without having to
  jump through hoops to get which descriptor a given bind accesses and get the
  register number for that descriptor.
* On OpenGL this information will not be present because bindings are mutable
  (even if they are declared in the shader). The only way to identify a
  particular binding by register will be with those hoops
2024-04-10 18:58:50 +01:00
baldurk d88aad8fc2 Add a query to determine logical identifiers for descriptors
* This is a consideration for any cases where binding numbers are relevant -
  primarily D3D11 and GL - where the offset into an arbitrary (and possibly
  fake) descriptor storage is not helpful but knowing the register binding
  definitely is.
* If someone wants to look at the raw descriptor contents without respect to a
  particular shader access they can use this query to determine a more useful
  'name' for any given descriptor. On D3D11 and GL this gives the register
  number, on Vulkan it gives the binding number (and array element). On D3D12 it
  just repeats the offset effectively.
2024-04-10 18:58:50 +01:00