Commit Graph

11205 Commits

Author SHA1 Message Date
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 6a8e7cbbe5 Fix python examples not being up to date with latest API changes 2020-07-20 10:52:59 +01:00
baldurk 8299fb5039 Add some missing D3D12 bitfield stringise cases 2020-07-20 10:50:57 +01:00
baldurk fb313a0f54 Respect minImageCount from surface capabilities 2020-07-17 17:09:58 +01:00
baldurk 05e2761fb8 Quantise pixel history depth when doing per-fragment comparisons 2020-07-17 16:53:35 +01:00
baldurk 7a885ae9bd Tweak ISA checks 2020-07-17 16:53:35 +01:00
baldurk 9506d8e465 Make unbound checkerboard full alpha 2020-07-17 16:53:35 +01:00
baldurk 2bc59d1610 Fix mesh checks for extended dynamic state test 2020-07-17 16:53:35 +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 76caaba8bb Avoid use of EXT_direct_state_access in demos 2020-07-17 16:53:35 +01:00
baldurk 7aa3993a51 Add image name to depth/stencil clear draws 2020-07-17 16:53:35 +01:00
baldurk 845710d58a Fix compile error in demos on linux 2020-07-17 16:53:35 +01:00
baldurk e8b61fbf30 Serialise name in GL program block binding calls, to remap index
* The block index may change between capture and replay, so serialising the
  index alone is unstable similar to locations. Program initial states already
  serialise by name, but if a capture contains a block binding change mid-frame
  this could serialise wrongly.
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
Steve Karolewics e176fcb9d7 Fix D3D12 debugging with a texture mapped as UAV
The row pitch was not initialized, so any ld_uav_typed instructions
would likely return the wrong data.
2020-07-17 10:21:19 +01:00
baldurk c912ccc3a8 Fix lookup of source var that references an array 2020-07-16 20:45:20 +01:00
baldurk 1316dbc65b When iterating captures, don't compare outputs that are uninitialised 2020-07-16 20:45:20 +01:00
baldurk cccbb18bb9 Initialise local variables with 0xcc as well as global scope variables 2020-07-16 20:45:20 +01:00
baldurk 2c2d70c6ad Fix assert condition being backwards 2020-07-16 20:45:20 +01:00
baldurk 2a1af6d936 Render more context when getting shader output
* This prevents issues where implementations may produce different per-sample
  results if the sample mask changes. Since we're not doing anything that would
  break by writing multiple samples we can keep the original sample mask.
* We also write the quad neighbourhood for similar reasons.
2020-07-16 20:45:20 +01:00
baldurk 7ab794ffb3 Update vulkan pixel history test to exercise recent changes 2020-07-16 20:45:20 +01:00
baldurk 49788f34a1 Add const overload of subresource state lookup by aspect
* We also rename these functions to be distinct, since it's too easy for an
  aspect bit to be automatically cast to an aspect index.
2020-07-16 20:45:20 +01:00
baldurk 5a9fe05bb7 Sanitise barrier layouts in vulkan pixel history 2020-07-16 20:45:20 +01:00
baldurk 18f4412813 Don't clear out of bounds when doing renderpass clears on non-0 slices 2020-07-16 20:45:20 +01:00
baldurk 5ef45a3576 Apply output mip/slice when selecting a new texture or new drawcall 2020-07-16 20:45:19 +01:00
baldurk f49c10bcca Fix tests that got broken by sharing shaders 2020-07-16 20:45:19 +01:00
baldurk dbce13e434 Explicitly destroy freed descriptor sets in vulkan pixel history
* During replay we don't track which descriptor sets come from which pool, so
  when re-allocating we get back duplicate handles. For now since the pixel
  history is the only place that needs to reset, we track and manually free
  there.
2020-07-16 20:45:19 +01:00
baldurk 78aa55681a Use original renderpass and framebuffer for per-fragment postmod values 2020-07-16 20:45:19 +01:00
baldurk 93ac1654a9 Add more internal markers for debugging vulkan pixel history 2020-07-16 20:45:19 +01:00
baldurk 4d6d949f42 Manually check depth test to get per-fragment pass/fail 2020-07-16 20:45:19 +01:00
baldurk a8c97a7530 Save the post-modification fragment depth in D3D11 pixel history 2020-07-16 20:39:25 +01:00
baldurk 7b191861e8 Don't remove replacement when capture is closing
* There's no need, and this can cause races.
2020-07-16 20:39:25 +01:00
baldurk 498bab80e4 Improve support for multiview case with vulkan pixel history 2020-07-16 20:39:25 +01:00
baldurk 08a3d05e71 Explicitly note which modifications in pixel history are unavailable 2020-07-16 20:39:25 +01:00
Marcin Ślusarz 9042aeab39 Don't hide counters belonging to multiple Intel queries.
Many counters are exposed in multiple queries. By hiding that fact,
we are making life harder for users, because they need to find
related counters all around the query tree. Don't do that.

As a side effect this will decrease the number of needed passes if
all selected counters belong to the same query.
2020-07-16 13:38:36 +01:00
baldurk 8f00d3fbd6 Compile fixes 2020-07-16 09:37:25 +01:00
baldurk ee17cfee65 Use a checkerboard instead of a fixed colour for unbound thumbnails 2020-07-15 17:27:06 +01:00
baldurk f0e397bb99 Return explicit 0s for invalid derivatives, and add debug message 2020-07-15 17:24:24 +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 ddba7ef996 Use NaN-friendly behaviour for all mins and maxs in SPIR-V
* This matches the explicitly documented behaviour for D3D so it likely matches
  what GPUs do, and since SPIR-V leaves it undefined it's OK to do what we want.
  This does mean that there might be false negatives of cases where the GPU gets
  bad results and the simulation 'works', but this is preferable and less likely
  than false positives of the simulation going (legally) wrong when the GPU
  result is correct.
2020-07-15 14:49:51 +01:00
baldurk c3c95ece79 Don't assert that inactive threads are converging 2020-07-15 14:24:44 +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 67df704f5a Make sure to properly reset per-command list state so we don't leak 2020-07-15 12:15:07 +01:00
baldurk f70d397d0e Don't change unrelated state while doing depth/stencil test overlay 2020-07-15 11:53:34 +01:00
baldurk 2607044691 Fix off-by-one error clamping vertex buffer access 2020-07-15 11:51:14 +01:00
baldurk 152db57598 Default A8 textures to show the alpha channel only 2020-07-15 11:50:56 +01:00
baldurk b0f4a11b98 Test glBindBuffersBase doesn't crash when passed NULL 2020-07-14 18:00:50 +01:00
baldurk 79e460f3e6 Test that we can change entry point names when editing shaders in vulkan 2020-07-14 17:58:10 +01:00