Commit Graph
49 Commits
Author SHA1 Message Date
baldurk cd674539fd Change shader debugging tests to check at runtime if it's available
* The config values can be loaded in the tests now.
2020-03-18 17:34:59 +00:00
baldurk d408f77241 Add configuration system for core renderdoc module
* This allows persistent config storage and registering tweak variables that
  works independent of the UI's configuration.
* Config vars can be debug only, which means they will be compiled out in stable
  version releases. This allows for debug-logging tweaks that are available in
  all builds (including nightly builds) for diagnostic purposes, but have zero
  overhead in stable releases.
* Variables have a loose hierarchy defined with _ or . to separate nodes.
2020-03-18 17:34:59 +00:00
Steve KarolewicsandBaldur Karlsson 67447b7b7e Improve handling of resource arrays for D3D12
When getting read only resources from the pipe state, stitch back up
according to the bindpoint mappings. When displaying resources in UI,
don't traverse unbounded arrays. Fix resource swizzle on load/sample/
gather instructions, which happens on fetch result, not on the source
operand. Added more tests for unbounded arrays and different ways to
index into arrays.
2020-03-16 20:01:30 +00:00
baldurk 40611a3dde Test subresource rendering in overlay tests, remove png comparisons 2020-03-12 16:51:19 +00:00
baldurk b392c07d83 Add tests that use large vertex buffers 2020-03-11 18:00:53 +00:00
Steve KarolewicsandBaldur Karlsson c74edcebbd Fix array resource indexing with NonUniformResourceIndex 2020-03-11 18:00:31 +00:00
Steve KarolewicsandBaldur Karlsson dcd7ad0c8a Fix incorrect logical identifiers for constant buffers with D3D12
The assignment of logical identifiers is not guaranteed to match the
order of appearance in the shader bytecode. Adjusted D3D12_CBuffer_Zoo
to exercise this for testing.
2020-03-06 10:04:39 +00:00
baldurk 2250e44ae6 Add test of D3D11 pixel history
* This doesn't test every edge case, but it is a simple smoke test that ensures
  any format can at least get consistent accurate results out.
* Further work is needed to test the different failures, overdraws, primitive
  IDs, and all the other specific checks in the history.
2020-03-05 19:35:45 +00:00
baldurk fac4367cae Fix RTVs referencing when using RTsSingleHandleToDescriptorRange 2020-03-05 12:08:58 +00:00
Steve KarolewicsandBaldur Karlsson a6c3177736 Add MSAA support to D3D12 PS debugging 2020-03-04 19:11:56 +00:00
baldurk 15ec327782 Fix typo in name of evaluate function 2020-03-02 17:37:23 +00:00
baldurk e38f6b106f Check cbuffer variables work in debugging as well in cbuffer zoo tests 2020-03-02 17:37:23 +00:00
baldurk 4873a9fdc3 Add missing calls to FreeTrace 2020-03-02 17:37:23 +00:00
baldurk 914dc88cd0 Pass signature index in source variable mapping, not builtin
* The builtin is more directly useful but the signature index allows us to match
  up inputs and outputs that don't have a builtin meaning (pure interpolators).
2020-02-25 18:19:52 +00:00
baldurk aacf148201 Add test of creating an empty capture 2020-02-21 17:56:53 +00:00
Steve KarolewicsandBaldur Karlsson dfbe7fb6bf Remove primitive ID usage from pixel shader debugging when invalid
SV_PrimitiveID is only valid as a pixel shader input if there's either
no geometry shader, or the geometry shader emits SV_PrimitiveID. With
D3D11, the debug layer will complain but rendering will proceed. With
D3D12, the PSO fails to compile. For both APIs, pixel shader debugging
now checks whether this is true, and disables its usage if it isn't.
Added tests for various valid scenarios with SV_PrimitiveID.
2020-02-20 19:06:22 +00:00
baldurk 06570ea7ad Remove backbuffer comparisons from test suite, simplify default triangle
* It's not particularly scalable and can be brittle to driver changes, and we
  can use targeted specific pixel tests to check what we really want - to see if
  the output has rendered correctly.
* Overlay tests still check files directly - this is a future refactor to
  remove.
2020-02-11 17:11:33 +00:00
baldurk 76a88cc7a3 Add test of D3D12 render passes 2020-02-11 17:11:32 +00:00
baldurk e012c82168 Update tests to use new interfaces 2020-02-06 17:58:42 +00:00
Steve KarolewicsandBaldur Karlsson 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
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 d326d61b1e Add D3D12_Parameter_Zoo test to check edge-case parameters/interfaces 2020-02-03 18:18:17 +00:00
baldurk 1899b5ffc3 Pass size when fetching cbuffer variables 2020-01-27 20:45:08 +00:00
baldurk 14b3a06361 Add test of D3D12 ExecuteIndirect 2020-01-22 19:05:53 +00:00
baldurk 9dc53d4dd1 Add a test of D3D12 sharing resources 2020-01-21 18:28:57 +00:00
baldurk db0779e09b Add test for mesh view - vertex picking and mesh rendering 2020-01-21 18:28:55 +00:00
baldurk 86f39640d0 Add shader editing tests on D3D 2020-01-13 18:18:59 +00:00
baldurk 5255db7966 Handle tkinter not importing and disable relevant test. Closes #1668 2020-01-08 19:15:52 +00:00
baldurk 72cd54aa0b Only import tkinter when needed
* Otherwise this could fail if tkinter isn't available on platforms where we're
  not even going to run the test
2020-01-08 19:10:51 +00:00
baldurk 8f909275a7 Add tests of RGP capturing 2020-01-07 17:59:10 +00:00
Steve KarolewicsandBaldur Karlsson a9a2c3e359 Add tests for viewing depth with ClearBeforeDraw.
Also updated documentation/README files to reflect the changes and
help others get up to speed on editing tests/documentation.
2019-12-20 20:11:53 +00:00
baldurk 77b5c391e9 Check that we handle padding and alignment around structs
* On all APIs structs are aligned up to 16-byte alignment, and on D3D as with
  arrays then elements coming after the struct can be packed into the padding
  after the last struct element.
2019-11-29 13:53:44 +00:00
baldurk 279a2ec69d Add texture zoo tests
* These tests ensure that texture rendering works correctly for all different
  types of texture types, and for all formats, across different APIs, including
  across a remote-proxy connection.
2019-11-26 17:38:27 +00:00
baldurk 273a87e606 Fix calculation of array byte stride for structs with padding in DXBC
* Instead of summing the members offsets, we set it to the offset of the last
  member plus the last member's size.
2019-10-25 18:29:30 +01:00
baldurk 3a2a89d10a Add test of D3D12's WriteToSubresource 2019-10-24 18:02:54 +01:00
baldurk 0559bfffd4 Test cbuffers with huge spaces on D3D12 2019-10-24 18:02:54 +01:00
baldurk 9627332667 Add a utility function to tests to pick a pixel and check its value 2019-09-05 20:33:25 +01:00
baldurk ee43d4377c Account for pipeline specialisation constants when reflecting shaders 2019-08-16 17:38:35 +01:00
baldurk 2ff6adb659 Add tests of D3D11 and D3D12's mutable typed backbuffer formats 2019-05-27 14:12:07 +01:00
baldurk bdf7213613 Add tests for edge-case vertex attributes & interpolators
* Tests that we can pass integer, double, matrix, array values through the
  vertex pipeline and query the correct values at each stage.
2019-05-24 17:12:55 +01:00
baldurk 4cec51ff6a Use demo project name to determine test availability
* This is better than testing by platform/platform version, because we can check
  specifically for extensions and avoid running a test we know will fail because
  extensions aren't supported.
2019-05-23 14:03:47 +01:00
baldurk d3d5d63b2a Add tests of awkward lifetime edge cases for resources on all APIs
* This is primarily around initial states - either a resource which is from a
  previous frame and maybe wasn't dirtied and needs initial states created for
  it when it's modified mid-frame, or a resource that's created and destroyed
  all within one frame.
2019-05-14 17:13:29 +01:00
baldurk bd85073bb7 Fix tests using old CreateHeadlessWindowingData() function 2019-05-08 14:11:15 +01:00
baldurk 7db90232f9 Allow creating completely headless outputs and reading back their output
* This is useful when writing automated tests that want to test the output of
  rendering which only happens to outputs, such as mesh rendering, or could
  potentially be bypassed with direct readback like GetTextureData vs rendering
  a texture.
2019-05-06 15:52:43 +01:00
baldurk 7ef8ed0a7a Drop the requirement for PIL in the tests, use pypng drop-in replacement
* This means we no longer need to import PIL from somewhere else if we run via
  renderdoccmd test functional
2019-02-15 18:17:06 +00:00
baldurk 134cdfd09b Add tests to CBuffer Zoos to test alternate uniform sources on APIs
* Vulkan: Specialization constants
* OpenGL: Bare uniforms (not in a UBO)
* D3D12: Root signature constants
2019-02-07 15:23:06 +00:00
baldurk 351c75e006 Fix some cases handling arrays of matrices
* We also pick the output pixel in the CBuffer_Zoo tests to ensure the API
  agrees with our interpretation of the data.
* Follow-up commit will tidy D3D cbuffer code that needs it.
2019-02-07 15:23:05 +00:00
baldurk a9151a8c0b Add testing framework useful for automated testing
* Built entirely independently of the main renderdoc build (for now).
* Contains python scripts & framework for running tests on a renderdoc build,
  which will be run nightly.
2018-11-29 14:47:20 +00:00