Commit Graph
257 Commits
Author SHA1 Message Date
baldurk a3b6adc303 Linux demos compile fix 2020-09-16 17:03:27 +01:00
baldurk 1286f4b272 Fix issues identified by synchronisation layer 2020-09-14 13:01:14 +01:00
baldurk 925b49daa6 Fix handling of instance extensions in vulkan tests 2020-09-11 18:51:27 +01:00
baldurk fdeea5204d Refactor and optimise D3D11 refcounting implementation
* In heavy D3D11 workloads the refcounting overhead especially during fast
  binding changes was significant. Refactoring the refcounting to work on a
  different model and deferring destruction of objects removes most of the
  overhead.
2020-09-10 13:35:32 +01:00
baldurk 6de8c53f85 Fix VK_Extended_Dynamic_State 2020-09-04 11:39:10 +01:00
baldurk 18a7e3c05c We shouldn't return physical device entry points in vkGetDeviceProcAddr
* The spec says we only return a function pointer for device or device-child
  functions. In practice the loader wraps instances and physical devices so when
  calling a direct GDPA returned function the loader won't unwrap it so we won't
  get our proper wrapped objects and will crash.
2020-09-04 10:32:17 +01:00
baldurk 0ca90bd34e Fix variable descriptor count test 2020-08-31 10:10:51 +01:00
baldurk 30ecf66cca Fix handling of variable descriptor counts to not allocate maximum size
* We previously ignored the variable descriptor size allowed by descriptor
  indexing,
2020-08-28 19:06:06 +01:00
baldurk 0e5b08d0e1 Fix test compilation on linux 2020-08-28 19:06:06 +01:00
baldurk 3e100109da Test destroying/freeing NULL handles, fix validation errors 2020-08-20 17:02:03 +01:00
baldurk 64f98f286e Add test of heavy descriptor reallocation and reuse 2020-08-20 13:48:17 +01:00
baldurk ffac439cce Record which queries are reset in each frame & restore them to validity
* It's possible that a frame capture could copy from a query and then reset it,
  without then recording something valid into the query. Then the next replay
  the copy would be unavailable and if WAIT_BIT is set that would lead to a
  device lost.
* We already fill out queries with dummy valid data on create time, so now we
  record any queries that are reset and re-fill them with valid data again.
2020-08-19 18:02:03 +01:00
baldurk 152170dc58 Fix reference data not being updated at right place after map write 2020-08-10 14:09:36 +01:00
baldurk 7b1995a7ba Properly handle offsets on memory maps in vulkan 2020-08-04 13:59:45 +01:00
baldurk 39431bb83f Don't flush mapped memory in driver for detected coherent memory writes 2020-07-31 17:20:25 +01:00
baldurk 624da2fb25 Add test that we don't crash on draws with new viewports 2020-07-27 16:17:13 +01:00
baldurk e147a5a6d1 Test OpLine/OpNoLine being intermingled with function header 2020-07-24 16:33:34 +01:00
baldurk f6babe77fd Handle depth clipping and depth bounds failure separately
* This prevents truly depth-clipped fragments from being wrongly reported as
  other failures like backface culling.
2020-07-20 16:07:36 +01:00
baldurk a46e86f191 Ensure indirect buffer is properly cleared on first run 2020-07-17 16:53:35 +01:00
baldurk c6ef3f1006 Properly enable indirect count feature on VK1.2 2020-07-17 16:53:35 +01:00
baldurk 485f7d21fc Make overlays interact consistently with viewport/scissor
* We also add a red/green display to the viewport and scissor overlay to show
  pixels that fail the scissor test.
2020-07-17 16:53:34 +01:00
baldurk 7ab794ffb3 Update vulkan pixel history test to exercise recent changes 2020-07-16 20:45:20 +01:00
baldurk f49c10bcca Fix tests that got broken by sharing shaders 2020-07-16 20:45:19 +01:00
baldurk 7927ff2e40 Add tests of shaders that don't use GLSL.450 & have 0 stageFlags binds 2020-07-15 15:34:37 +01:00
baldurk e1f90b4b01 Add test that validation layers and extensions can be captured 2020-07-15 14:11:42 +01:00
baldurk 5c57493855 Share common shader source on vulkan 2020-07-15 14:05:20 +01:00
baldurk 02a54be6ad When replaying resource discards fill with explicit pattern. Closes #284
* This helps catches cases where a discarded image is accidentally used and in
  many cases may still have valid data. Particularly on Vulkan this is relevant
  for DONT_CARE renderpass load and store ops.
2020-07-13 17:29:11 +01:00
baldurk 35854957db Add support for VK_EXT_extended_dynamic_state 2020-07-03 15:43:00 +01:00
baldurk 4c885f0ebf Update official vulkan headers to 1.2.145 2020-07-02 17:40:21 +01:00
baldurk ef6439dd47 Add missing vulkan tests on linux demos project 2020-07-01 18:09:24 +01:00
baldurk 6d23e59aa6 Support specifying next chain to instance creation, and inst extensions 2020-06-29 13:10:51 +01:00
baldurk a0a373a8e1 Fix handling of buffer truncation and zero-sized buffers 2020-05-29 17:26:29 +01:00
baldurk 1cd32d3f61 Implement support for VK_EXT_robustness2 2020-05-28 15:54:36 +01:00
baldurk 82e9228ace Add support for VK_EXT_custom_border_color 2020-05-27 22:38:04 +01:00
baldurk 3b28df0543 Add helper for uploading data into an image 2020-05-27 22:38:04 +01:00
baldurk ff62ab501c Add helpers for creating samplers 2020-05-27 22:38:04 +01:00
Aliya Pazylbekova 0fd3d65a6f Vk Pixel History: support other depth formats MSAA
- Separate the pixel history copy pixel shader into two separate
  shaders, one for colour copy and one for depth
- Allocate and update descriptor sets on demand
- Add another compute shader for pixel history depth copy
2020-05-26 21:19:55 +01:00
baldurk 7c9c27e9ce Keep buffer device address buffers and memories alive during capture
* If we don't do this, the application could create a buffer/memory and use it
  then destroy it and create another one in the same capture. The driver could
  assign the same opaque capture address to both buffers even though they
  "overlap" in the capture because they don't overlap in actual execution.
* Slightly artificially extending the life of the resource to the end of the
  capture ensures the driver gives them non-overlapping device addresses.
2020-05-26 14:18:27 +01:00
baldurk d71dadda9d Update vulkan headers to 1.2.141 2020-05-21 17:53:37 +01:00
baldurk f622ac36d6 Standardise layout of packed texture formats on disk/network
* We preserve each API's interpretation of bit order for packed formats like
  RGBA4 or R5G6B5 when displaying the raw data in the UI, but when we need to
  proxy it or save to disk, we always transform to D3D's order as standard.
* This allows us to proxy them reliably because we always have a standard bit
  order and APIs that need a different order transform when fetching data to the
  standard format, or setting proxy data from the standard format.
2020-05-18 13:21:55 +01:00
baldurk 78335f7d00 Fix calculation of array stride on structs in D3D
# Conflicts:
#	util/test/tests/GL/GL_CBuffer_Zoo.py
2020-05-13 18:07:26 +01:00
baldurk 15fa728ab9 Fix handling of empty structs in D3D 2020-05-13 18:07:26 +01:00
Aliya Pazylbekova 08cf503eea Vk Pixel History: Small fixes + more tests
- For counting the number of fragments, also need to disable the depth
  bounds test, since we are not initializing the depth value currently
- Reset depth to 0.0f for shader out, and set it to always pass. So that
  we can get depth values from just one fragment.
- Initialize premod value for individual fragment events. This is not
  surfaced in the UI, but available from the python API and checked in
  tests.
2020-05-13 18:07:11 +01:00
baldurk bfcc484a7c Add tests of drawcall variants 2020-05-12 19:04:57 +01:00
baldurk b8f83fca4c Add helper for blitting to swapchain in demos
* This isn't needed for testing but it's convenient to get simple window output
  even when we need to be writing to an F32 target
2020-05-11 18:04:22 +01:00
baldurk 7ddc24e13d Force on dynamic states we want in pixel history, to simplify handling
* This also fixes a case where pipelines with dynamic stencil masks wouldn't
  have the masks properly set for stencil counting and we wouldn't get shader
  output properly.
2020-05-08 20:43:25 +01:00
baldurk 3effd6b7fe Add copy operator for VkGraphicsPipelineCreateInfo helper 2020-05-08 20:43:25 +01:00
baldurk 36bae2b792 Mark secondaries as submitted so we don't leak secondary command buffers 2020-05-08 20:43:25 +01:00
baldurk c8c5eca0a9 Fix typo in shader debug zoo test 2020-05-08 20:43:25 +01:00
baldurk 33eb7cf694 Enable indexTypeUint8 feature properly 2020-05-08 20:43:25 +01:00