Commit Graph

14199 Commits

Author SHA1 Message Date
Jake Turner 0ef2210ab7 Vulkan Depth Overlay fallback to non-stencil mask
Fallback if the depth copy does not handle the depth texture configuration
2023-12-03 21:00:34 +00:00
Jake Turner a6529bd1bb Vulkan Depth Overlay specify stencil dynamic state 2023-12-03 21:00:34 +00:00
Jake Turner defe79d82c D3D11 Depth Overlay improvements
Handle depth copying with a texture array source
Clear stencil to zero during the depth copy to match the other implementations
Specify the bind flags when creating the new depth-stencil texture
2023-12-03 21:00:34 +00:00
baldurk d52f97c225 Make sure buffer viewer panels can't be closed 2023-12-01 13:00:08 +00:00
baldurk 32e1f62199 Give overlay test reasonable epsilons to account for shift 2023-12-01 11:59:14 +00:00
baldurk 559a129d2c Fix vertex linking in GL_Mesh_Zoo to write to col2 properly 2023-12-01 11:44:44 +00:00
baldurk aac7dc1c31 Revert workaround for AMD drivers as non-functional
* Previous workaround may not be functional either, but is left for now.
2023-11-30 20:54:59 +00:00
baldurk 73ab2cd447 Add further workaround for weird AMD driver behaviour 2023-11-30 17:44:20 +00:00
baldurk d77fc1ed22 Update documentation to mention meshlet solid shading 2023-11-30 14:41:14 +00:00
baldurk 0b18cefc5f Specify correct library flag when creating partial pipelines 2023-11-30 14:38:48 +00:00
baldurk 10bdf616a7 Fix memory corruption properly in test 2023-11-30 13:30:00 +00:00
baldurk 01820aad82 Donn't set rasterization state to NULL for pre-rasterization shaders 2023-11-30 13:29:59 +00:00
Jake Turner a43cb1f58c Stop compute shader usage being computed for Drawcalls 2023-11-29 17:29:50 +00:00
baldurk 21b9600e6d Set vertex input structs to NULL to work around AMD driver bug 2023-11-29 12:23:35 +00:00
baldurk 06ac6298dc Don't serialise vertex input structs if using mesh shaders 2023-11-29 12:18:06 +00:00
baldurk 55c18e4868 Improve D3D12 line AA on AMD 2023-11-28 17:04:56 +00:00
baldurk 1df386847f Compile fix 2023-11-28 16:49:58 +00:00
baldurk be372cde46 Improve mesh viewer UI for task/mesh shaders range filtering 2023-11-28 16:19:05 +00:00
baldurk 400e712deb Fix crash opening task shader context menu with no task shader 2023-11-28 16:18:47 +00:00
baldurk ae969dfdd5 Fix spirv-plugins build scripts 2023-11-28 13:24:30 +00:00
baldurk 65a13b1a6d Fix memory corruption in VK_Parameter_Zoo test 2023-11-28 12:04:26 +00:00
Jake Turner d72d79052a Extend Vk Depth Test Overlays
Support shader exported depth by replaying using the capture pixel shader to determine passing pixels
2023-11-27 16:33:57 +00:00
baldurk 1246f8007a Restore hack to get homebrew working again 2023-11-22 17:14:48 +00:00
baldurk 800c321d16 Re-order vertex bindings to match sensible order. Closes #3145 2023-11-22 15:30:10 +00:00
baldurk 9e79ba3416 Fix DXIL patching for quad overdraw
* Also tweak the test output to be more organised
2023-11-20 18:17:51 +00:00
baldurk b9c338568f Set the correct type for i8 metadata constants in DXIL 2023-11-20 18:17:21 +00:00
baldurk 9082c985c6 Remove deferred swapchain memory flag 2023-11-20 15:19:16 +00:00
baldurk 7db65dc01b Allocate dynamic SSBO descriptors in our debug descriptor pool 2023-11-20 13:59:21 +00:00
baldurk 0d9ea809dd Fix some test failures by consistently stripping gl_PerVertex_Var prefix 2023-11-17 18:47:47 +00:00
baldurk 48222bf5bb Disable reporting of multiviewMeshShader feature 2023-11-17 18:47:47 +00:00
baldurk 58f206eed0 Get output topology reflection on D3D12 for mesh shaders 2023-11-17 18:47:47 +00:00
baldurk 10face5f4c Avoid error by checking for NULL first before accessing const members 2023-11-17 18:47:47 +00:00
shaltupssen 21972fa5b4 Fix abi name for android x86 2023-11-17 10:21:43 +00:00
baldurk 41d2e69d00 Remove unused lambda captures 2023-11-17 02:00:20 +00:00
baldurk 98dd806298 Remove duplicate docstring 2023-11-17 01:59:18 +00:00
baldurk 3976bba298 Add missing documentation strings 2023-11-17 01:43:19 +00:00
baldurk d171cdb1c6 Fix compilation on 32-bit 2023-11-17 01:39:52 +00:00
baldurk 70b2fac658 Fix compile warning on some D3D12 HLSL compiler versions 2023-11-17 00:47:55 +00:00
baldurk 07b1c3f857 Add options to filter and correlate between task and mesh invocations 2023-11-17 00:47:55 +00:00
baldurk 1df7c1ae81 Implement mesh viewer support for task/mesh shaders 2023-11-17 00:47:55 +00:00
baldurk d898e2ac09 Detect and prevent crashes on broken dxc-produced task shaders 2023-11-17 00:47:55 +00:00
baldurk 8f945ab404 Use shader patching functions to fetch amp. & mesh outputs on D3D12 2023-11-17 00:47:28 +00:00
baldurk 4e12adfab1 Add function to patch mesh shader DXIL to store mesh output
* See equivalent previous Vulkan commit for more notes.
2023-11-17 00:47:28 +00:00
baldurk 882cd8c9ec Add function to patch amp. shader DXIL to feed from buffer 2023-11-17 00:47:28 +00:00
baldurk 980677f50c Add function to patch DXIL to fetch amp. shader outputs 2023-11-17 00:47:28 +00:00
baldurk 2f3a0640f5 Use shader patching functions to fetch task & mesh outputs on Vulkan 2023-11-17 00:47:27 +00:00
baldurk 4a7a9375aa Add a function to store mesh output data
* This function patches a mesh shader to write to BDA instead of the output
  object, as well as storing the vertex/primitive count. It separates indices,
  per-vertex rate outputs and per-primitive rate outputs. The output is stored
  not fully interleaved because we replace pointers in-place and they may be
  combined if an output is a struct.
* If preceeded by a task shader, it will read a per-dispatch offset to account
  for the fact that each task group produces an independent series of mesh
  groups that can't differentiate from each other. Within that set of groups,
  each group assigns its output linearly and this output will potentially be
  sparse as it's sized based on the worst case output.
2023-11-17 00:12:42 +00:00
baldurk 957f330c63 Add function to patch task shader into fixed data feeder
* This task shader is relatively degenerate, it just loads payload & dispatch
  size from a buffer, writes to the payload, and dispatches. Used to
  deterministically replay the same set of tasks as were saved.
2023-11-16 23:44:16 +00:00
baldurk 9996c8c38a Add function for fetching task shader outputs on Vulkan
* We do this by patching the shader to write to BDA pointers instead of Payload
  pointers for all payload pointers, and also store the number of meshes
  dispatched.
* After running this shader we'll read the results back and then feed the data
  back onto the GPU via our own task shader, to ensure we can conservatively
  size the mesh output buffer accounting for whatever task shader expansion
  happened.
2023-11-16 23:44:16 +00:00
baldurk 54fdac1d44 Factor out near/far derivation into common driver code 2023-11-16 23:44:16 +00:00