10312 Commits

Author SHA1 Message Date
baldurk a56af589d9 Don't modify descriptor update template while writing. Closes #1765 v1.7 2020-03-09 17:36:56 +00:00
baldurk 107f89048b Fix race condition when keeping D3D12 buffers alive during capture
* There was a gap between stopping active capturing (meaning newly created
  buffers are given an extra refcount) and releasing the extra refcount. Any
  newly created buffers in that gap would still be released but that would mean
  one of the application's ref's is removed, possibly destroying a buffer by
  mistake.
* Instead we keep a specific list of buffers that we're extending so that we
  know that the buffers we release are exactly those we gave extra refs to.
2020-03-09 14:28:03 +00:00
baldurk 4b7c7eaaea Force a full rebuild on android in build scripts
* We still detect the precise same git commit in the android build and skip
  recompiles, which is useful for building android once on one platform and
  sharing it with other host platform builds.
2020-03-09 11:16:57 +00:00
baldurk 5cf93da317 On windows put msbuild log in dist folder 2020-03-09 10:57:05 +00:00
baldurk 5cd04f27a0 Fix some encoding issues with sphinx docs in htmlhelp builder 2020-03-09 10:57:05 +00:00
Steve Karolewics baa7adea30 Implement GetSampleInfo for D3D12 debugging 2020-03-09 10:56:56 +00:00
Steve Karolewics 9b43481234 Prevent crash with OMSetRenderTargets in D3D12 2020-03-07 21:08:32 +00:00
baldurk c6a1a23adb Remove mismatched end_section when skipping unsupported capture 2020-03-06 17:56:28 +00:00
baldurk d04f36260b Check that shader debugging is enabled before doing anything 2020-03-06 17:56:28 +00:00
baldurk 2a29054e46 Fix config values for Iter_Test 2020-03-06 17:56:28 +00:00
baldurk a2c87e23a1 Set appropriate epsilon for A8 textures in texture zoo 2020-03-06 17:56:28 +00:00
baldurk f23d86fb6b Use shader encoding when saving shaders to disk 2020-03-06 17:56:27 +00:00
baldurk 85a5752569 Fix use of check_pixel_value in GL_Unshared_Context test 2020-03-06 17:56:27 +00:00
baldurk 14dc2a57f6 Fix refcounting on python traceback object 2020-03-06 17:56:27 +00:00
Aliya Pazylbekova 756b8fcc68 VK pixel history: change renderpass and framebuffer
During the first callback we use an occlusion query and a stencil
attachment to count the fragments. For that callback create a new
framebuffer that is equivalent to the original, except that it
substitutes the original depth stencil attachment (if there was one)
with a different one where we can count the number of fragments.

Previous code breaks for the case where there are multiple colour
attachments. For these replays also set colorWriteMask to 0, so that the
color information is not written, since we are using the original
attachments.

Also stop and resume renderpass when doing a copy on
vkCmdBeginRenderPass.
2020-03-06 17:56:12 +00:00
Steve Karolewics dcd7ad0c8a Fix incorrect logical identifiers for constant buffers with D3D12
The assignment of logical identifiers is not guaranteed to match the
order of appearance in the shader bytecode. Adjusted D3D12_CBuffer_Zoo
to exercise this for testing.
2020-03-06 10:04:39 +00:00
baldurk b0f0dad7fd Test that we can capture and replay VkPhysicalDeviceVulkan12Features
* This ensure we don't accidentally enable any features that aren't supported.
2020-03-05 19:35:45 +00:00
baldurk 7e0bab41ab Test for duplicate extensions in GL extension string 2020-03-05 19:35:45 +00:00
baldurk 2250e44ae6 Add test of D3D11 pixel history
* This doesn't test every edge case, but it is a simple smoke test that ensures
  any format can at least get consistent accurate results out.
* Further work is needed to test the different failures, overdraws, primitive
  IDs, and all the other specific checks in the history.
2020-03-05 19:35:45 +00:00
baldurk 98af55d513 Fix fetch_shader example for latest API changes 2020-03-05 19:35:45 +00:00
baldurk 4e4ef40612 Add replay API initialisation/shutdown to python examples 2020-03-05 19:35:45 +00:00
Benson Joeris bc56fd091d Fix image subresource order
When importing captures from v1.6 and before, the order that image
subresource states are listed in the capture differs from the order
expected in `ImageState`. This change sorts the subresources into the
correct order before importing.

Change-Id: I1bb1420bc79e39ba8e1fb2e932307a218878e1c2
2020-03-05 19:35:33 +00:00
baldurk fac4367cae Fix RTVs referencing when using RTsSingleHandleToDescriptorRange 2020-03-05 12:08:58 +00:00
baldurk a18716e63d Fix crash if no drawcall is selected when exporting pipeline state 2020-03-05 11:15:48 +00:00
baldurk 6579dfc666 Add protection against target control connection dropping immediately 2020-03-05 10:39:36 +00:00
baldurk 1bb1ce6131 Fix double-delete of RDCFile if errors occur during import 2020-03-05 10:39:14 +00:00
baldurk 2bf3a99630 Fix VK_Line_Raster test 2020-03-05 10:10:58 +00:00
baldurk e22ed4b877 Fix handling of component swizzle display in cbuffer. Closes #1754 2020-03-04 19:12:24 +00:00
Lionel Landwerlin f666770b48 Fix KHR storage counter issue
While we always use an 8 byte storage within renderdoc, the KHR
storage can be of multiple size & type.

The issue was that we were storing a counter in double but then
reporting the type in uint.

To fix this use the KHR storage type to figure the renderdoc type. The
byteWidth size remains always 8 bytes within renderdoc.
2020-03-04 19:12:07 +00:00
Steve Karolewics a6c3177736 Add MSAA support to D3D12 PS debugging 2020-03-04 19:11:56 +00:00
Steve Karolewics a5583b83ee Add test for MSAA evals to D3D11_Shader_Debug_Zoo 2020-03-04 19:11:56 +00:00
baldurk 2ca43b82bd Fix gcc compilation 2020-03-03 19:26:00 +00:00
Tayfun Kayhan 2373ae7b45 Convert GPU Time counter correctly 2020-03-03 18:06:11 +00:00
baldurk 3a9152a318 Use local mirror of source archive which Qt deleted in build script 2020-03-03 18:05:12 +00:00
Aliya Pazylbekova 77131d3f75 Vk pixel history: support various texture formats 2020-03-03 18:02:58 +00:00
baldurk a788e51733 32-bit compile fix 2020-03-02 18:55:50 +00:00
baldurk 38481d9cd7 Fix out of bounds vertex buffer fetching behaviour 2020-03-02 17:37:23 +00:00
baldurk 7e9b6ff70f Check vertex debugging results in Iter_Test
* Also never hard error on debug results, just print an error message for manual
  evaluation
2020-03-02 17:37:23 +00:00
baldurk 15ec327782 Fix typo in name of evaluate function 2020-03-02 17:37:23 +00:00
baldurk e38f6b106f Check cbuffer variables work in debugging as well in cbuffer zoo tests 2020-03-02 17:37:23 +00:00
baldurk 4873a9fdc3 Add missing calls to FreeTrace 2020-03-02 17:37:23 +00:00
baldurk 175f71beb1 Always combine structures even with only one child
* This means that foo.bar.baz will still have a hierarchy created even if each
  level only has one child.
2020-03-02 17:37:23 +00:00
baldurk 48f52b2743 Ensure resources are always displayed in shader debugger 2020-03-02 17:37:23 +00:00
baldurk 29f0ad9b60 Fix wrong state being used to populate cbuffers in debugging 2020-03-02 17:37:23 +00:00
baldurk 8293a86530 Don't record rasterization event usage for dispatch calls 2020-03-02 17:37:23 +00:00
Benson Joeris a39569e950 Fix image ref state when loading old captures
This fixes a performance regression when loading captures from <=v1.6
(before the new image state code went in). The code to import the old
image state information was incorrectly discarding the frame ref
information, forcing the images to be reinitialized on every replay.

In old captures `ImageRefs` chunk is processed, creating `ImageState`
objects that only contain `refType`; then `BeginCaptureFrame` processes
the `ImageLayouts` info, to construct a new `ImageState` object,
containing the layout information. This `ImageState` was overwriting the
`ImageState` from the `ImageRefs` chunk, discarding the `refType` info.
This change merges the `ImageState`s from `ImageRefs`, where each field
of the merged image state comes from whichever `ImageState` had a
non-undefined value for that field.

For new captures, this change should be safe, since the image state
should be undefined when the `BeginCaptureFrame` chunk is processed, so
the `MergCaptureBeginState` call will just take all the state fields
from the `ImageState` stored in the `BeginCaptureFrame` chunk.

Change-Id: Id2252edb6382bd02bc0236b77c7cca667e97bf29
2020-02-28 20:51:52 +00:00
Aliya Pazylbekova 29a8637ae1 Fix bug with secondary cmd buffers 2020-02-28 11:38:10 +00:00
Aliya Pazylbekova ef2804bfd3 Refactor: Rendering state per command buffer
This is needed for Vulkan Pixel history, where we need to know render
state at current point of time for a command buffer during callback
replay.

Modifications:
- Removed m_pDriver and m_CreationInfo members from VulkanRenderState,
instead these are accepted as arguments to member functions.
- BakedCmdBufferInfo state is now full VulkanRenderState
2020-02-28 11:38:10 +00:00
baldurk da17ebed57 Check for bufferDeviceAddress feature properly. Closes #1744 2020-02-26 16:09:02 +00:00
baldurk d2e9b49fa1 Fix constant buffer source variable mapping in D3D. Closes #1742 2020-02-26 15:39:27 +00:00