Commit Graph

189 Commits

Author SHA1 Message Date
baldurk 88189e316f End stream-out queries in ClearState(). Closes #1412
* Also add tests of stream-out and DrawAuto()
2019-06-12 19:07:22 +01:00
baldurk 3d81638d06 Fix some copyright dates still referring to 2018 2019-06-07 18:54:10 +01:00
baldurk f09c40b8c9 Fix broken cases with GL_ARB_gl_spirv. Closes #1405
* We can't rely on the driver's reflection, since name information might be
  stripped and the driver is within its rights to not reflect anything even if
  we have names. Similarly queries by names etc will not work.
* Also we can't try to change bindings that are immutable on SPIR-V shaders -
  UBO/SSBO bindings, transform feedback varyings, attrib and fragdata locations.
* Programs can't mix and match SPIR-V and GLSL, so when including our own
  shaders in the overlay program make sure they match what the user's shaders
  are.
* For mesh output, we need to patch the SPIR-V if it's a SPIR-V shader instead
  of trying to use the GL XFB varyings set.
2019-06-07 18:53:02 +01:00
baldurk 7c6921248f Exit on compile error on travis OSX build 2019-06-05 19:03:57 +01:00
baldurk 217506869f Only patch vulkan image layouts at the last second
* Instead of patching e.g. PRESENT to GENERAL early, we keep the 'real' layout
  even if that's UNDEFINED or PRESENT or whatever. We then do a last-second
  patchup whenever we're actually transitioning images in vulkan itself, to set
  the right layout.
* This requires us to do the patching in a few more places - anywhere like
  texture rendering or initial states where we want to go from current state ->
  custom state -> back to current state.
* This also allows us to more gracefully handle PREINITIALIZED image layouts. We
  internally promote them to GENERAL as soon as possible, but keep them around
  as PREINITIALIZED for display.
2019-06-04 18:18:10 +01:00
baldurk 587d562fa3 Fix NaN and INF value comparisons in tests 2019-06-03 14:16:43 +01:00
baldurk d86d270f3e Fix float value comparisons, only consider values equal if both are NaN 2019-05-29 10:49:59 +01:00
baldurk 2ff6adb659 Add tests of D3D11 and D3D12's mutable typed backbuffer formats 2019-05-27 14:12:07 +01:00
baldurk 4b1f527eaa Clean up D3D11 shader debugging test for easier processing, auto-test it 2019-05-27 13:58:08 +01:00
baldurk 5f6be4c10b Fix old main() test signatures 2019-05-27 13:30:03 +01:00
baldurk ffe2ec7aba Workaround Intel driver not reflecting array if [0] isn't accessed 2019-05-27 13:23:41 +01:00
baldurk 877802bef2 Check descriptor indexing test doesn't overflow physical device limits 2019-05-27 13:23:29 +01:00
baldurk 72ddba1a58 Check second draw with vertex offset in primitive restart test 2019-05-27 12:01:40 +01:00
baldurk 1fbcade162 Add test of GL's per-type texture unit bindings 2019-05-27 11:49:06 +01:00
baldurk 7ab3d943b0 Add helper function to look up ResourceDescription for a ResourceId 2019-05-27 11:48:06 +01:00
baldurk 57084fd911 Check final memory usage, not peak memory usage, in Repeat_Load test
* We are really looking for persistent memory leaks here not fluctuations in
  memory use. There are too many false positives from memory usage increasing up
  high part-way through the iterations and then reducing down for the final
  iteration, which could be many lazy or deferred things running and completing
  over time.
2019-05-27 10:09:32 +01:00
baldurk 38d3145964 Be more generous with glslc timeout 2019-05-25 16:57:38 +01:00
baldurk e353d23364 Don't require /tmp/rdoc_tmp to exist 2019-05-25 16:36:18 +01:00
baldurk dc7ef30a60 Fix tests compiling with threads on linux 2019-05-25 15:01:48 +01:00
baldurk e9dda84b9f Add test that draws many windows in parallel 2019-05-24 20:03:20 +01:00
baldurk 3c4dbaca30 Factor out window-specific and related resources separately in tests
* This will let us run multiple windows (and multiple threads) relatively
  easily.
* The hammer is fairly big, we move some things into the window that don't need
  to be there necessarily if we have multiple windows on a single thread, but it
  keeps things simple.
2019-05-24 19:57:13 +01:00
baldurk 42f074187c Fix some validation issues with tests 2019-05-24 19:17:11 +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 6e2e2abb22 Fix check for strip restart, only apply if an index buffer is active 2019-05-24 17:12:55 +01:00
baldurk b6104da0af Remove GL shader/program object labels, add support for geometry shaders 2019-05-24 17:12:55 +01:00
baldurk 547f767599 Check feature in Prepare() 2019-05-24 17:12:54 +01:00
baldurk 2d370ac4ae Add functions to check vertex input data as well as vertex output data 2019-05-24 17:12:54 +01:00
baldurk ce8fcc1a16 Fix UNorm/SNorm post-processing on mesh data decode 2019-05-24 13:31:48 +01:00
baldurk f6a2bd345c Fix PostVS alignment calculation in test mesh fetch 2019-05-24 13:31:24 +01:00
baldurk 8d12dfc3e3 Avoid need to re-state test name in REGISTER_TEST() macro
* At the same time while changing this we ensure all tests are prefixed.
2019-05-24 12:08:24 +01:00
baldurk 786d6c84af Link-ify the git commit in test results 2019-05-24 11:52:54 +01:00
baldurk a856b6ebbe Fix VK_Buffer_Address shader compilation 2019-05-23 15:38:22 +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 ec8564642a Refactor demo API test initialisation order
* Instead of only doing a very lightweight check to see if the API is available
  up-front, we now share the API initialisation among all API tests far enough
  to determine availability of extensions, features, etc. Then we can precisely
  determine which tests are available and which aren't before running.
2019-05-23 13:18:37 +01:00
baldurk efb8788c52 Identify the demos binary in scripts, and allow manual configuration 2019-05-23 11:07:37 +01:00
baldurk eb6f04f941 Build demos project to demos_x64 or demos_x86 on windows and linux 2019-05-23 10:51:58 +01:00
baldurk e0275bc92b Replace use of tmpnam which warns on linux at link time 2019-05-23 10:29:27 +01:00
baldurk 69e55628c2 Handle all enum values in switch 2019-05-23 10:29:12 +01:00
baldurk 5b6b723428 Remove useless casts to parent class 2019-05-23 10:29:03 +01:00
baldurk 2573dffde7 Remove MAP_UNSYNCHRONIZED_BIT from GL persistent maps
* This is required because we add MAP_READ_BIT and the spec doesn't allow maps
  that are both unsynchronized and reading.
* Also add a test for unsynchronised persistent maps, and update the
  GL_Buffer_Updates test to not require a reference image but check each quad
  individually for the expected colour.
2019-05-22 12:04:33 +01:00
baldurk 622291fde9 Set up to let demos project filter list of available tests
* This is primarily for the benefit of GL/VK where we need to feature-detect for
  some extensions or functionality that requires selecting a device, e.g. D3D12
  can be more easily detected with a quick check.
* We'll run this once and cache the results when running tests from python so we
  can do a better job of filtering out tests that the current machine doesn't
  support.
2019-05-20 16:23:09 +01:00
baldurk 6d47b35cd9 Change GL_Entry_Points test to use more generally available functions 2019-05-17 16:32:55 +01:00
baldurk ff24c2251a Account for differing reflection of global uniforms on GL
* The reflection might only return the actual used values, but it might return
  more so ensure we have handling for that.
2019-05-17 16:32:55 +01:00
baldurk 63728a425f Add newly-created tests to CMakeLists.txt 2019-05-17 16:32:55 +01:00
baldurk ce92ba70d1 Revert accidental change to GL_Simple_Triangle test 2019-05-15 14:12:17 +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 5a18717b6e Add D3D12 helper to set descriptor table parameter offset 2019-05-13 19:07:23 +01:00
baldurk bd85073bb7 Fix tests using old CreateHeadlessWindowingData() function 2019-05-08 14:11:15 +01:00
baldurk 5c28bd0a31 Add a parameter to allow saving RGB PNGs 2019-05-06 15:57:02 +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