Commit Graph

10129 Commits

Author SHA1 Message Date
baldurk 42f8f83dbc Fix YUVA plane parameters for 3-plane format. Closes #1710 2020-02-05 11:09:51 +00:00
Steve Karolewics 67457bd784 Add a test for D3D12 shader debugging
This mimics the D3D11 shader debugging test, but performs the draws
twice - once with SM 5.0 and once with SM 5.1. The python test performs
the same checks as the D3D11 version, but is explicitly disabled since
D3D12 shader debugging is not yet enabled by default.
2020-02-04 19:11:17 +00:00
Steve Karolewics bd04112dd4 Add a non-shader-visible heap to D3D12ViewCreator for clearing UAVs 2020-02-04 19:11:17 +00:00
baldurk da3bd8dbcb Don't try to serialise attachments in imageless framebuffer 2020-02-04 12:19:55 +00:00
baldurk 58ea347ad1 Don't pass parent struct ID for multidimensional arrays in SPIR-V 2020-02-04 12:19:44 +00:00
baldurk dc8131f49f Fix compilation 2020-02-03 21:51:38 +00:00
baldurk edbedd4484 Try to handle no shared memory types between external & normal resources
* This cannot be replayed, as the memory type selected will be invalid on replay
  for the buffer. However this lets us at least capture and if the buffer is
  destroyed or not used in the capture, the capture would succeed, so it's at
  least no worse.
2020-02-03 21:10:26 +00:00
baldurk bb43ba45e3 Add test of newer resource creation methods in D3D12.4 2020-02-03 18:18:17 +00:00
baldurk 8bc4e4c719 Test that imageless framebuffer parameters are properly ignored
* This is kind of what VK_Parameter_Zoo is intended to test, but I don't want to
  add conditional extension tests in there unless there's nowhere else to put
  it, since it adds mental overhead to reading the code.
2020-02-03 18:18:17 +00:00
baldurk f427a7ce02 Test that repeated redundant calls for spin-sync aren't serialised
* If the application is calling e.g. vkGetFenceStatus() in a loop we don't want
  to serialise every call.
2020-02-03 18:18:17 +00:00
baldurk 3c61c01ba7 Don't allow buffers to be destroyed during D3D12 capture
* We need to make sure we can still look up GPU addresses for buffers that were
  destroyed during the frame, otherwise we might get the wrong contents for
  descriptors.
2020-02-03 18:18:17 +00:00
baldurk d7b61176c5 Don't save every queue creation in D3D12 device record
* Otherwise we try to create every queue that has ever existed on replay.
* Check for resource leaks in Resource_Lifetimes tests.
2020-02-03 18:18:17 +00:00
baldurk c3b6b6890e Add tests that shader ISA disasm works, including live driver output 2020-02-03 18:18:17 +00:00
baldurk 4df8ce7a02 Test VK_EXT_tooling_info in VK_Parameter_Zoo not VK_Simple_Triangle
* Keep the simple triangle really the bare minimum.
2020-02-03 18:18:17 +00:00
baldurk f18cf01671 test optional EXT_transform_feedback parameters in VK_Parameter_Zoo 2020-02-03 18:18:17 +00:00
baldurk d326d61b1e Add D3D12_Parameter_Zoo test to check edge-case parameters/interfaces 2020-02-03 18:18:17 +00:00
baldurk 09be5f4047 Fix structured export/import of initial states resource contents on GL 2020-02-03 18:18:16 +00:00
baldurk 26ed01ec8a Ensure that queue used in vkQueuePresentKHR is referenced 2020-02-03 18:18:16 +00:00
baldurk a98a8c49a7 Improve handling of multi-dimensional array input/outputs from shaders 2020-02-03 18:18:16 +00:00
baldurk 850ff5b65d Only promote one push constant range to compute, from vertex
* The spec says that you can only have one push constant range per stage, so
  don't promote all push ranges to compute (as only one will be used in the
  vertex shader).
2020-02-03 18:18:16 +00:00
baldurk 2af2146ad8 Only add captureReplay buffer device flags when capturing
* This means internal buffers we use on replay can still be used even if we
  don't enable capture replay.
2020-02-03 18:18:16 +00:00
baldurk 01fca43ecd Ensure we have buffer device address features turned on when using them
* On replay we enable these for shader feedback even if the capture didn't use
  them, so need to enable the device feature.
2020-02-03 18:18:16 +00:00
baldurk 56fb75ff46 Fix formatting mistake in thread name 2020-02-03 18:18:16 +00:00
Steve Karolewics 1dc4d5b15e Display the demos UI if argv[1] isn't a valid test 2020-02-03 18:18:03 +00:00
Steve Karolewics 9b72d79c06 UI improvements for the demos UI
Made the API filters inclusive, so that if any are checked, only the
selected ones are shown. If none are selected, then all tests are
shown as before. Moved the test name filter to the top pane, so that
it is always visible - before if you scrolled down in the test list,
it would be hidden. Added more room for test descriptions in the bottom
pane - long descriptions were previously truncated.
2020-01-31 20:08:25 +00:00
Steve Karolewics b2150e901f Fix D3D12 sharing test when the adapters used by D3D11/D3D12 differ
D3D11 may default to a different adapter than D3D12. For the sharing
test, both adapters must be D3D12 compatible. Tell D3D11 to use the
adapter that D3D12 is using to ensure compatibility.

Also fixed a memory leak in the test.
2020-01-31 20:08:25 +00:00
Steve Karolewics 2f7b260d39 Try creating a device with successive adapters until one succeeds.
On laptops with integrated+discrete adapters, adapter 0 may not
support D3D12, so a default create device call will fail. Adapters
other than the 0th one need to be specified explicitly.
2020-01-31 20:08:25 +00:00
baldurk 385121d2ca Fix android deadlock on shutdown 2020-01-30 14:34:54 +00:00
baldurk a8071679bd Fix renderdoccmd commands 2020-01-30 14:21:32 +00:00
baldurk b38cbc1b0c Add explicit functions to initialise and shutdown replay. Closes #1685
* It's required for replay applications to call InitialiseReplay() before doing
  any work, and to call ShutdownReplay() once they're finished.
* This lets us do more heavyweight shutdown work before global destructors are
  being invoked and the RenderDoc instance is being destroyed.
* Anything that needs to be shut down during capture still has to happen in
  RenderDoc::~RenderDoc since we obviously can't get the application to call a
  shutdown function in that situation.
2020-01-30 13:39:15 +00:00
baldurk e1fe211f3c Rename Shutdown to RemoveHooks in in-application API. Version is 1.4.1
* This is a binary and source backwards compatible change.
2020-01-30 13:02:23 +00:00
baldurk 0f827d5784 Use backdoor context when a context is needed for capture. Closes #1701
* This fixes the case where no context is current on the thread starting and
  ending the frame capture, but also all existing contexts are current on other
  threads and can't be temporarily used.
2020-01-30 11:28:01 +00:00
baldurk 627391be7e Fix lookups of UAV data when debugging groupshared access 2020-01-29 15:44:10 +00:00
baldurk 066de4d1d0 Fix hover line rendering for ResourceId-only rich resource text painting 2020-01-29 11:48:04 +00:00
baldurk 291bec7091 Fix global hooking code 2020-01-29 10:22:43 +00:00
baldurk a98bc5dde4 Handle optional pSizes parameter to vkCmdBindTransformFeedbackBuffersEXT 2020-01-28 18:44:54 +00:00
baldurk ea0de0c065 Conditionally enable bufferDeviceAddressCaptureReplay in VK1.2 features
* This struct might be passed without the parent bufferDeviceAddress feature
  being enabled, e.g. if capture replay wasn't supported and we claimed no
  support, or if there's really no support. We can't unconditionally enable
  capture replay like we can with the extension structs (which are only passed
  if the extension is available, and we only allow it to be available if the
  feature is available).
2020-01-28 18:44:54 +00:00
Steve Karolewics 1c764ca518 Fix constant buffer lookups with SM5.1 shader debugging
Constant buffers store some additional state when parsed from DXBC
to make it easier to fix the match and know the correct size. The
debug trace still stores a simple array of CBuffers, but the shader
debug code provides a BindingSlot and uses the ShaderBindpointMapping
to find the logical identifier that shader instructions will use to
reference the constant buffer.
2020-01-28 18:44:37 +00:00
baldurk d377c4e0cf Fix documentation compile error 2020-01-27 21:38:51 +00:00
baldurk d827e0a2f1 Fix again the handling of physical device extension functions 2020-01-27 20:45:08 +00:00
baldurk ff50bfc95e Use correct command list when doing manual clears for D3D12 render pass 2020-01-27 20:45:08 +00:00
baldurk da7d27fe9b Explicitly list versions of all android build components supported 2020-01-27 20:45:08 +00:00
baldurk 560a9669f2 Log java versions in both PATH and under JAVA_HOME 2020-01-27 20:45:08 +00:00
baldurk 4e53297535 Don't pass 0xdeadbeef marker values to GL from client-side buffers
* The actual offsets will be overridden when client side buffers are used -
  these marker values are left-over from client side buffers being present when
  preparing a VAO's initial contents.
2020-01-27 20:45:08 +00:00
baldurk 83f0398aa6 Add test to parameter zoo to catch descriptor referencing resources 2020-01-27 20:45:08 +00:00
baldurk 1899b5ffc3 Pass size when fetching cbuffer variables 2020-01-27 20:45:08 +00:00
baldurk d2cd2f0291 Check that vkCmdFillBuffer usage is properly populated in VK_Indirect 2020-01-27 20:45:07 +00:00
baldurk bcb08c1948 Treat vkCmdFillBuffer the same as e.g. vkCmdClear*Image, as a draw
* We also add 'Clear' usage to the buffer for these events.
2020-01-27 20:45:07 +00:00
baldurk ce7f3c0fa4 Ensure we correctly patch-up resource usage after indirect count draws 2020-01-27 20:45:07 +00:00
Benson Joeris a03499d909 Add SEPARATE_DEPTH_STENCIL_LAYOUTS support in new image state
Change-Id: I54458143cd075c0239f55ccb7e50916d725188ec
2020-01-27 20:44:54 +00:00