Commit Graph

13989 Commits

Author SHA1 Message Date
William Pearson afb4d76dd2 Blend pixel history widget background color with selection color
Before, if a row was selected, the color was completely replaced, which
makes the color preview column completely useless for that row.

This change also fixes some inconsistencies with how the selection hover
works on tree widgets; previously part of the row was not highlighted.
2023-08-10 10:59:32 +01:00
William Pearson 71e886cecc Add demo/test for many primitives hitting the same pixel in one drawcall 2023-08-09 10:58:04 +01:00
William Pearson 950819d992 Fix undersized buffer for Vulkan pixel history with many fragments
Before, the buffer could be overrun, which could result in anything from
garbage data to the GPU device being lost to segfaults. Now, correct
data is gathered.

We can't know in advance how many primitives will hit the targetted
pixel, so it's not possible to create the buffer until after our first
pass for each events (fortunately we do know the number of events in
advance). It is possible that we don't need a larger buffer, though,
in which case the original one can be re-used.
2023-08-09 10:58:04 +01:00
baldurk 7f9cae3912 Update D3D11 cached OM renderstate for output ID identification
* If we select an event we will refresh the overlay before saving the pipeline
  state meaning before the cache is updated. This might cause us to render the
  overlay to a stale texture.
2023-08-08 15:34:43 +01:00
baldurk 44b019852e Add better debug naming for D3D11 overlay resources 2023-08-08 15:32:22 +01:00
baldurk 597880fea9 Always fill out full view information for all types
* We don't want to have stale mip/slice information for MSAA textures.
2023-08-08 14:36:49 +01:00
baldurk 5395d11c5b Fix crash if stream I/O is performed on invalid handle
* We often create stream readers or writers directly on the result of a fopen,
  and we want them to be 'safe' to use (marked as errored, but not crashing).
2023-08-07 11:19:43 +01:00
baldurk d23cf4bf0b Allow a little latitude on expected line numbers in callstacks test 2023-08-04 17:06:03 +01:00
baldurk 9995c1f0cf Protect against invalid socket data potentially causing crashes 2023-08-04 17:06:03 +01:00
baldurk 65859d13bf Add test of Set*Root32BitConstants with 0 constants being set
* This crashes on nvidia, on compute only strangely, if we pass in a NULL
  pointer along with a 0 number of constants.
2023-08-04 17:06:03 +01:00
baldurk 3460be091a Expand NULL-protection for Set*Root32BitConstants 2023-08-04 17:06:03 +01:00
baldurk 19d7b038c2 Don't allow tooltip to display if context menu is shown in shader viewer 2023-08-04 17:06:02 +01:00
Jake Turner 7631831821 Add "used" attribute to prevent exported symbol dead-stripping
Ideally would use "retain" but that would require upgrading to recent compilers in CI and the project.

__attribute__((retain)) function/variable to prevent linker garbage
collection.
2023-08-03 10:41:22 +01:00
baldurk fa79938e8a Ensure image layout is up to date mid-command buffer in pixel history
* Previously we were obtaining the image layout from before the current command
  buffer was recorded, but this is out of date if the image layout has changed
  during the command buffer. Worst case it could be e.g. UNDEFINED if the image
  was created and not used until the current command buffer.
2023-08-01 16:05:49 +01:00
baldurk 44be6bdfff Add documentation for return type 2023-08-01 10:00:54 +01:00
baldurk 09bc166f1a Add missing documentation reference 2023-08-01 09:44:00 +01:00
Serdar Kocdemir 0a20c686fd Remove unimplemented function declarations 2023-07-31 17:41:01 +01:00
baldurk 26c673675e Add extra pings to reduce problems with unreasonably slow adb commands 2023-07-31 17:08:57 +01:00
baldurk 3d8ad35e9f Don't sanitise selected paths from remote hosts. Closes #3006
* If the remote host disconnects during the selection process we will no longer
  have a valid connection, we shouldn't sanitise the resulting path according to
  local filenames.
2023-07-31 17:08:37 +01:00
baldurk 7c1164e060 Tidy up and implement support for self capture on linux 2023-07-31 15:45:32 +01:00
baldurk 9c553bbfb1 Handle OpExecutionModeId in SPIR-V reflection 2023-07-31 15:03:24 +01:00
baldurk 4087a46d87 Bump version to v1.29 2023-07-31 15:03:11 +01:00
Jake Turner 75d7e06eb5 Handle non-square checkboxes : adjust to make them square
Extension of 7452e29cec
v1.28
2023-07-30 14:51:18 +01:00
Jake Turner e0bb46979f Change RenderDoc style checkboxes to use checks for low contrast themes
Include InidicatorCheckBox style to match style change in 7452e29cec
2023-07-29 17:27:42 +01:00
Jake Turner a6fed120ac Vulkan PostVS ignore primmitive restart indexes when restart is active
Compute primitive restart using VulkanRenderState not pipeline, to account for dynamic state.
Ignore primitive restart indexes, handles primitive restart indexes being used when there are no active vertex buffer bindings
2023-07-27 13:51:01 +01:00
baldurk 831ed40484 Fix branch specified in CI badge in README 2023-07-27 01:17:34 +01:00
baldurk 68ff839dd6 Make gcc happier with escaped \\ in comments 2023-07-26 23:13:48 +01:00
KenLee 32ab4273bf Hide invalid shader resources
Fixed the problem that showing invalid shader resource in pipeline state viewer since v1.24

Revert "Hide invalid shader resources"

This reverts commit e62b6fa13d24bcd8c9d2e2109a140efe1c068736.

Hide invalid shader resources on D3D12
2023-07-26 22:01:46 +01:00
baldurk 7452e29cec Change RenderDoc style checkboxes to use checks for low contrast themes
* Deliberately low contrast themes like the dark theme can have issues showing a
  box that is filled vs just a plain rectangle which is harder to read at a
  glance. Changing the fill to an X icon gives extra readability on the dark
  theme.
2023-07-26 14:40:23 +01:00
baldurk db6dadad6c Fix capture comments styling of links 2023-07-26 14:38:26 +01:00
baldurk 1033adc970 Remove explicit styling span in settings dialog, links style themselves 2023-07-26 13:37:10 +01:00
baldurk fb26326624 Ensure D3D12 barrier API is kept happy by matching access to layout 2023-07-26 11:57:28 +01:00
baldurk 9e7210611b Fix disassembly for arrays of pointers having wrong type declaration 2023-07-25 17:47:09 +01:00
baldurk 6e0ea69011 Account for arrays of pointers when calculating buffer offsets 2023-07-25 17:47:09 +01:00
baldurk 8a4735e6dc Use correct size for basic types when calculating cbuffer sizes 2023-07-25 17:47:09 +01:00
Kanglai Qian 36e5581d2a avoid get color_read_* with depth format 2023-07-25 13:40:45 +01:00
Jake Turner 9f72b87bc7 Fix Android Vulkan capturing
Add __attribute__((visibility("default"))) to VK_LAYER_EXPORT on Android.
It used to be defined in the Vulkan headers and changed when the update to the latest Vulkan headers was integrated in 5118f08e23
2023-07-25 06:30:10 +01:00
Jake Turner 1301d90418 GL Pixel History small code clean up in CalculateFragmentDepthTests
Move constant out of inner loop.
Remove if test for depth test being enabled and set the depth function to GL_ALWAYS if the depth test is disabled.
2023-07-24 18:35:50 +01:00
Jake Turner abba66ea10 GL Pixel History set preMod.depth before call to QueryPostModPerFragment
Copy the postMod depth to next history's preMod depth.
The preMode depth is used to prime the depth buffer in QueryPostModPerFragment.
2023-07-24 18:35:50 +01:00
Jake Turner 6314c525f9 Use GL_ANY_SAMPLES_PASSED instead of GL_SAMPLES_PASSED Closes #2972
GL_SAMPLES_PASSED is not supported by GLES.
The pixel history test is already using a 1x1 scissor test, GL_ANY_SAMPLES_PASSED should be the same as GL_SAMPLES_PASSED.
The pixel history logic is only testing for non-zero passing samples, the precise value is not used.
2023-07-24 06:37:32 +01:00
Jake Turner 47d25b141f Workaround nVidia crash in SetGraphicsRoot32BitConstants replay
When Num32BitValuesToSet = 0, set valid dummy pointer for pSrcData.
nVidia driver crashes if pSrcData is NULL.
2023-07-22 16:04:04 +01:00
Jake Turner f56a989e4f Add Qt:WindowStaysOnTopHint to resource preview Closes #2971
Qt on Ubuntu 23.04 includes https://github.com/qt/qtbase/commit/f9e4402ffe, which during show() under certain scenarios (for example Qt::ToolTip windows) would destroy and recreate the xcb window.

Adding Qt:WindowStaysOnTopHint to the window flags for ToolTip windows prevents the xcb window from being destroyed and recreated during show().
2023-07-21 17:34:11 +01:00
Jake Turner 117db087a4 Vk tests ignore default pipeline in headless mode
Fixes crash trying to launch VK_Compute_Only
2023-07-20 17:26:30 +01:00
Jake Turner 944b38dc1f Use innertype id to look up image type. Closes #2970
Fixes incorrect shader debugging for ImageFetch operation on arrays on buffers (and certain scenarios of arrays of textures).
2023-07-20 17:26:30 +01:00
baldurk d4c9de7f81 Set name on newly created named metadata. Closes #2981 (credit Yun) 2023-07-17 16:41:19 +01:00
jake.turner 958ab08018 Add missing ")" R11G11B10 GetBufferFormatString()
"[[packed(r11g11b10]] float3" -> "[[packed(r11g11b10)]] float3"

There was a missing ")"
2023-07-12 18:00:52 +01:00
Jake Turner a41a6931ba Ignore unbound texture resource overlay rendering 2023-07-06 15:51:33 +01:00
Jake Turner 66574fd2bb Test null DSV in D3D12::GetRenderOutputSubresource
Prevents a crash when refreshing the overlay for am unbound Texture resource and the pipeline state does not have a bound DSV.

Related to 742e3de2 which changed the internal behaviour of FillResourceView().
2023-07-06 15:51:33 +01:00
Jake Turner 5f88b303b5 D3D12 ExecuteIndirect replay use GPUSync(). Closes #2970
GPUSyncAllQueues() changed behaviour in e33629ca which meant the GPU was not being synchronized when patching the execute indirect arguments when loading a capture.

This led to a race between CPU & GPU and incorrect argument data being read back from the GPU to the CPU and then used for ExecuteIndirect replay.

In addition to fixing the bug changed other calls from GPUSyncAllQueues() to GPUSync() where appropriate ie. single flush validate debug mode.
2023-07-03 13:05:10 +01:00
Jake Turner 53bf231104 Extend D3D12 Execute Indirect test
Change it to do 8 indirect draws with a clear in between.
Check the pixel and mesh data for each draw is correct (simple triangle)
2023-07-03 13:05:10 +01:00