Commit Graph

11187 Commits

Author SHA1 Message Date
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
baldurk 7ebe4e5ac1 Add test that GL state isn't trashed by initial contents or overlay 2020-07-14 17:52:40 +01:00
baldurk a395ec8560 Increase GL_Large_Buffer test to check >2GB buffer 2020-07-14 17:22:01 +01:00
baldurk 1df39247fa Fix access to render state in D3D12
* We need to copy the external-facing m_RenderState into the partial command
  buffer's state for partial replay, in case it was modified externally.
* Also when accessing the render state inside a drawcall callback we need to use
  the command buffer's local state, not m_RenderState which isn't updated until
  the replay completes.
2020-07-14 14:08:54 +01:00
baldurk ec6627af03 Use our own isinf/isnan over compiler provided ones that are unreliable
* Due to standards nonsense the availability of isinf/isnan in C++ is quite
  complex and varies a lot between compilers. Trying to access them reliably is
  quite brittle and they're easy to implement with bit-inspection of float
  patterns, so we do that instead.
2020-07-14 13:24:36 +01:00
baldurk eabfb9b074 Remove isnan call that's seemingly impossible to call portably 2020-07-13 21:04:38 +01:00
baldurk cf867816ab Experimental compressonator compile fix 2020-07-13 20:54:48 +01:00
baldurk 00580031fc Add more ignored warnings on compressonator 2020-07-13 20:29:32 +01:00
baldurk 55c248e44a Disable warning on GCC in compressonator code 2020-07-13 20:12:05 +01:00
baldurk 7a7b33014b Fix case of BC7 file 2020-07-13 19:33:08 +01:00
baldurk 9c4d01833c Compile fixes 2020-07-13 18:36:59 +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 bc4a803605 Add usage entries for discards. Closes #1951 2020-07-12 10:52:10 +01:00
baldurk 0d026a43d6 Remove CompType::Double
* This is a leftover artifact from before we had general extended type support
  and double was the only non-32 bit type we handled. Now we support most type
  formats so doubles are just CompType::Float with 8 byte width
2020-07-12 10:52:10 +01:00
baldurk 6dd09ed2cb Allow 3D textures to be bound to framebuffers with layers 2020-07-12 10:52:10 +01:00
baldurk da0e18dbac Fix some issues with glClearTexImage and glClearFramebuffer 2020-07-12 10:52:10 +01:00
baldurk 9a2c49210a Track command list state for all replayed command lists
* This allows us to have up-to-the-command correct state even for command lists
  that aren't the partial one.
2020-07-12 10:52:10 +01:00
baldurk bd484d85de Fix bug in Compressonator BC6 options setting 2020-07-12 10:52:10 +01:00
baldurk a0b3bffda6 Display slices in texture details in GL pipeline state view 2020-07-12 10:52:10 +01:00