Commit Graph

13457 Commits

Author SHA1 Message Date
baldurk 9254eff490 Track IDs created in functions and empty them when they leave scope
* This prevents a use-after-free issue when pointers are stored and the backing
  storage is deallocated, if the function is entered again we try to get the
  previous value to show a variable change an dereference it.
2022-10-07 11:43:22 +01:00
baldurk 18f41c6fb6 Add test of secondary command buffer dynamic rendering 2022-10-07 11:20:06 +01:00
baldurk 5fa549ea8b Handle starting/ending RPs inside secondary cmd buffers. Closes #2740 2022-10-07 11:18:30 +01:00
baldurk 255fb82e7d Don't use primitive restart on helper mesh pipelines 2022-10-07 10:52:44 +01:00
baldurk 198c011e07 Add missing shaders to VS project 2022-10-07 10:52:24 +01:00
baldurk 478ea838dd Update vulkan and SPIR-V headers to latest 2022-10-06 16:48:34 +01:00
baldurk 849fe18ac1 Only find root SRVs when searching for SRVs 2022-10-03 20:10:41 +01:00
baldurk bbc5bd74b9 Return explicit error on creating multiple logical devices. Closes #2727 2022-10-03 20:10:41 +01:00
baldurk 5aafda7202 Clear find results properly between captures. Closes #2734 2022-10-03 20:10:41 +01:00
baldurk c237b70852 Use conservative order for image states updates (see d61f10d) 2022-10-03 20:10:41 +01:00
baldurk aec479700b When forcing all resources in for bindless on D3D12, be more granular
* We only need to force on actual D3D12 resources (buffers and textures) -
  enabling the Ref All Resources also would include all pipelines and other
  objects which do not need to be included and could be quite wasteful.
2022-10-03 20:10:41 +01:00
baldurk b554979534 Skip initial state application for resources that aren't modified or UAV
* If a resource has usage indicating it's used for any kind of direct
  modifications (copies, resolves, rendering, CPU writes) then we know it's
  modified. Any resource which has UAV capability may also be modified - since
  we don't necessarily track all bindings for bindless, and SM6.6 blows that up.
  But any resource that can't be a UAV can only be modified in ways we detect
  directly.
* This is a short-term fix, to improve re-applying redundant data to read-only
  resources. long term we need to rethink how initial states are handled since
  on vulkan and D3D12 initial states are no longer strongly correlated with
  resources that need to be reset every replay.
2022-10-03 20:10:41 +01:00
baldurk 00586c2749 Don't sync every map that we replay with a copy
* We have a simple 16-long queue for command buffers to use, so we only sync
  when we run out.
2022-10-03 20:10:41 +01:00
baldurk 39920c1b71 Show the version running when connecting to incompatible remote server 2022-10-03 20:10:41 +01:00
baldurk 17e2271030 Include atomic and SSBO buffers in GL read-write resources list 2022-10-03 20:10:41 +01:00
David Snopek af854f1823 Add the GL_OVR_* extensions to the list of OpenGL extensions 2022-10-03 14:41:28 +02:00
baldurk dff0196bfb Bump version to v1.23 2022-09-23 16:03:20 +01:00
baldurk 387a9e5702 Fix documentation references v1.22 2022-09-23 14:10:03 +01:00
baldurk c19806ad2f Restore IsStrip helper that should not have been removed 2022-09-23 11:35:52 +01:00
Shahbaz Youssefi b3d7d5f5fd Correctly mark promoted extensions as supported
`WrappedVulkan::vkCreateInstance` sets instance extension support based
on whether:

- Extension is enabled
- Instance version >= core version in which ext is promoted
- etc

However, the code that looped through the extensions was inside a loop
over the enabled extensions.  If there are no enabled extensions, this
led to extensions promoted to core never being inspected.

The code is split such that enabled extensions are checked within a
loop, and promoted extensions are separately checked.
2022-09-22 09:41:23 +01:00
baldurk c01fdafcdd Defer DebugValue/DebugDeclare processing until a valid scope is reached
* Don't process DebugValue that we encounter in scopes other than those where
  the variable it's declaring is supposed to be visible. Instead put these in a
  queue and process them if that scope is later reached.
2022-09-21 12:36:59 +01:00
Leonid Fedorov 89befedc1c Fix storing MSAA sample count for EGL capture 2022-09-20 17:59:32 +01:00
baldurk 6d3439032b Make sure that GS status is properly cleared on D3D12 on success 2022-09-19 16:44:56 +01:00
baldurk 0afd742232 Check that S8 format is actually supported 2022-09-19 16:44:56 +01:00
baldurk a04321fdb6 Handle D3D12 tier 1 VRS devices better when testing 2022-09-19 16:44:56 +01:00
baldurk aa412ddf89 Don't hard-fail on results of undefined tests in shader debug zoo 2022-09-19 16:44:56 +01:00
baldurk 00d7827d06 Allow a ~500 difference between PS invocations and samples passed
* This can be caused by overshading/rasterization differences
2022-09-19 16:44:56 +01:00
baldurk 1fa4fed24a Check for shader 64-bit support before using them in tests 2022-09-19 16:44:56 +01:00
baldurk 4e4a7518fa Ensure inline uniform blocks have descriptor pool space allocated 2022-09-19 16:44:56 +01:00
baldurk c851c44a1b Get new cmake for building glslang in spirv plugins 2022-09-19 12:35:33 +01:00
baldurk bc5aef5447 Add a separate PanelMenu item for extensions in non-mesh buffer viewers 2022-09-19 11:24:38 +01:00
baldurk 58b96be4f2 Mark memory as dirty when bound to sparse resources 2022-09-15 14:49:42 +01:00
baldurk d61f10d27c Insert command buffer references after descriptor references on vulkan
* During capture we don't insert references as we're recording descriptor binds,
  just once at queue submit time, as an optimisation. However this loses
  ordering relative to more direct references. Since descriptor binds are more
  conservative (either read, or read before write) we ensure to insert them
  first before any direct references like copies or fills which could mark the
  resource as completely written before read.
2022-09-15 14:49:28 +01:00
baldurk b375efdb3c Use selected range of buffer not total object length when exporting
* Same fix as #2703 but with a fix not to be limited by the pagination size
2022-09-15 13:36:16 +01:00
baldurk 6643687ac6 Revert "Export correct CSV range and fixup element counts."
This reverts commit 033bcb2a11.
2022-09-15 13:26:47 +01:00
baldurk ceb2e81ab2 Revert "Export correct range for binary dumps as well."
This reverts commit 7bad9214a8.
2022-09-15 13:26:15 +01:00
baldurk 4fbd1a08ac Prefer DebugFunction name over function OpName when available 2022-09-15 11:20:49 +01:00
baldurk 58437e426f Handle missing DebugEntrypoint information 2022-09-13 17:24:42 +01:00
baldurk 305eb33204 Show better tooltips for constant buffers & structs
* { ... } is clearer than having just ??? show up which looks like an error.
2022-09-13 17:24:42 +01:00
baldurk b49d7982d6 When looking for the start of an line, ignore if there's no debug info
* When searching for the start of a range of instructions mapped to a single
  line when stepping backwards, we need to ignore instructions that don't have
  any debug info because they will look like a 'different' smaller stack.
2022-09-13 17:24:42 +01:00
baldurk 3013be8d52 Fix use of wrong instruction counter when instruction info is sparse 2022-09-13 17:24:42 +01:00
baldurk 6ed5ac046b Don't list a partial callstack for code without debug info 2022-09-13 17:24:42 +01:00
baldurk bc867681a1 Fix internal pointers leaking out in change lists when debugging SPIR-V 2022-09-13 12:19:46 +01:00
baldurk 336e90d412 Display special D3D quality levels in texture viewer 2022-09-12 13:54:07 +01:00
baldurk 4d632dd81e Coalesce adjacent contiguous sparse buffer binds on vulkan 2022-09-12 13:54:06 +01:00
baldurk 53c529fdaf Handle OpAccessChain only for a global resource array index
* If we have an OpAccessChain which only looks up a resource index and not
  anything else, we need to ensure that both we don't consume the first index
  next time, AND that we preserve the resource index for future access chains.
2022-09-12 13:54:06 +01:00
baldurk 0a6368f777 Ignore function-local OpUndef for stepping 2022-09-12 13:54:06 +01:00
baldurk 6d38a9dc12 Update extension_support.md with recently added extensions 2022-09-12 13:54:06 +01:00
baldurk c060bff562 Use bigger batches for discard patterns on D3D12 2022-09-12 13:54:06 +01:00
baldurk 54b8c7b89f Don't add usage if pCountBuffer is omitted on ExecuteIndirect 2022-09-12 13:54:06 +01:00