Commit Graph

9042 Commits

Author SHA1 Message Date
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 3999dd0091 Fix incorrect resource type on D3D12 initial contents objects 2019-05-24 17:12:55 +01:00
baldurk 4451c9d67f Fix semantic comparisons in PipeState::GetVertexInputs() 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 8ad78afda8 Account for allocating fixed samplers in debug descriptor pool 2019-05-24 17:12:55 +01:00
baldurk 0e7d1cd62a Fix handling of doubles in GL transform feedback 2019-05-24 17:12:55 +01:00
baldurk 5368709111 Fix handling of matrix outputs in Vulkan GS/Tess mesh output 2019-05-24 17:12:54 +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 e4333291a1 Allow using shader processing tools for custom shaders
* This is primarily useful for HLSL on Vulkan, but could be used with any other
  combination. If multiple tools can perform the conversion, the highest
  priority one is used.
2019-05-22 17:54:10 +01:00
baldurk 694524c7bd Allow querying the shader encoding supported by custom shaders
* This is distinct from target shaders in the remote proxy case - custom shaders
  are built locally.
2019-05-22 16:09:18 +01:00
baldurk 55107a6144 Only display textual shader encodings for shader compile options 2019-05-22 16:08:31 +01:00
baldurk 807345fd0f Add auto-detection for dxc as a shader processing tool 2019-05-22 14:16:02 +01:00
baldurk 69e4be52cf Display bounding box data in mesh view camera panel
* This isn't the best place for it but it makes the most sense for now.
2019-05-22 13:57:23 +01:00
baldurk 074070b1cf Only unproject position attributes that output a position. Closes #1363
* If we select a UV attribute to draw as position we don't want to unproject it
  for display, just treat it as we do any normal attribute.
2019-05-22 13:38:20 +01:00
baldurk 467dd5e808 Fix calculation of bounding boxes for non-4 component attributes
* If we only have 3 or 2 components, set the remaining bounding box values to 0
  so they aren't set at +/- FLT_MAX.
2019-05-22 12:40:56 +01:00
baldurk dd77b8a2b6 Fix order-of-operations, update position/secondary columns first
* We need to have the correct position and secondary columns before updating the
  mesh configuration that references them.
2019-05-22 12:40:19 +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 09d7387db2 Add replay API note that top-left co-ordinates are expected
* This is only relevant on GL where co-ordinates are bottom-left, so translation
  from e.g. viewports or scissors are required.
2019-05-22 12:03:24 +01:00
baldurk 05f044016b Don't call QObject::connect for a NULL model 2019-05-22 11:33:09 +01:00
baldurk 943a790319 Fix a crash when resizing a header view with all sections hidden 2019-05-22 10:53:52 +01:00
baldurk 775fa9b635 Disconnect item model before deleting RDTreeWidget/RDTreeView
* This avoids odd races where some events might be fired mid-destruction and
  encounter the item model in an undefined state.
2019-05-21 13:58:38 +01:00
baldurk c83a087400 Don't pass negative firstMip/firstSlice
* These can be -1 to indicate that all mips/slices are available - so pass 0 in
  that case.
2019-05-21 13:29:43 +01:00
baldurk 8ab8f42daf Add GGP files to VS project, fix compilation with removal of 'using std' 2019-05-21 12:11:00 +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 419fa93ebf Implement GL_ARB_ES3_2_compatibility. Closes #146 2019-05-20 15:01:52 +01:00
baldurk 59ad2ebfa2 Clear stream-out state when clearing pipeline state 2019-05-20 14:16:43 +01:00
baldurk 06feec392d Use pipeline base mip/slice binding for texture thumbnails. Closes #1327 2019-05-20 13:13:47 +01:00
baldurk 420379c50f Update glslang to c11e3156 (release 7.11.3214) 2019-05-20 12:40:56 +01:00
baldurk 8aa515a47a Make drivers m_Events a direct lookup
* Rather than doing an expensive iteration for looking up m_Events, just index
  by eventId which will be very dense.
2019-05-20 12:24:41 +01:00
baldurk 2397233e8c Don't wrap counter queries on D3D11, avoid expensive wasteful wrapping 2019-05-20 12:19:59 +01:00
baldurk c403f5120d Fix release build compilation 2019-05-17 18:24:25 +01:00
baldurk 88204abc82 When partially replaying a cmd buffer, rebind pipeline state correctly
* Even if we're not in a renderpass we still need to bind the graphics pipeline
  state
2019-05-17 17:13:48 +01:00
baldurk 3a89a56cc3 Revert accidentally committed vulkan validation layers 2019-05-17 16:47:22 +01:00