Commit Graph

12644 Commits

Author SHA1 Message Date
baldurk 1464eaeb81 Ensure linux process hooks don't do anything on replay 2021-10-06 16:31:44 +01:00
baldurk b71b84374f Implement option to export current vulkan pipeline to fossilize db 2021-10-06 16:31:44 +01:00
baldurk c76c761bab Fix some crashes exporting HTML pipeline state on vulkan 2021-10-06 16:31:43 +01:00
baldurk 18647c3d87 Improve important tagging for vkCreateRenderPass2 2021-10-06 16:31:43 +01:00
baldurk b850c2d7fe Fix incorrect use of QByteArray::fromRawData, it doesn't copy input data 2021-10-06 16:31:43 +01:00
baldurk 2206f6bd2f Don't add duplicate derived resources 2021-10-06 16:31:43 +01:00
baldurk fb912b4853 Add a recursive search function in SDObject 2021-10-06 16:31:43 +01:00
baldurk 73f78bd8a4 Ensure formatting tags aren't exported/put on the clipboard. Refs #2382
* When we're formatting text we want just the plain text version to be used.
2021-10-06 16:31:43 +01:00
Leonid Fedorov 73f0c7681f Add support 2d array/3d textures read back for GLES 2.0/3.0 2021-10-06 13:05:24 +01:00
thisisjimmyfb dc9fd45fc2 Make Oculus' on device Vulkan Validation Layer avaiable for load
Without this Renderdoc won't be able to load the on device VVL
2021-10-04 23:27:23 +01:00
baldurk f80b5ce62a Fix texel read/write to respect format conversion when debugging shaders 2021-10-04 19:22:52 +01:00
baldurk bae2f44bf1 Support bool parameters in vulkan debug printf 2021-10-04 19:19:49 +01:00
baldurk c070dfd847 Clarify root signature index in D3D12 pipeline view
* Internally we split ranges, but for display we should use the original root
  signature index.
2021-10-04 18:39:33 +01:00
baldurk c24dd2e7aa Use shader stage to properly disambiguate entry points on vulkan
* It's possible to have two entry points in a SPIR-V module both named "main" as
  long as they have different stages.
2021-10-04 17:03:27 +01:00
baldurk ff40a98ac7 Specify stage for spirv-cross in case it's needed to disambiguate 2021-10-04 17:01:34 +01:00
baldurk 4b261bd8f6 Fix problems with GL counter fetch around multi-draw draws 2021-10-04 15:40:56 +01:00
baldurk cd1b68aadf If a shared resource is imported mid-capture, snapshot initial contents 2021-10-04 15:05:07 +01:00
baldurk 44cfabb12a Remove more problematic D3D11 misc resource flags 2021-10-04 15:04:48 +01:00
baldurk 3ed35bf253 Fix assignment of 64-bit vertex input element locations. Closes #2380 2021-10-04 13:07:24 +01:00
baldurk 83da4cb471 Sanitise : in pipeline state vertex input names 2021-10-04 13:05:57 +01:00
baldurk bfbc9a3e48 Fix order of scrollbar update when texture scale changes. Closes #2377
* We need to update the scrollbar bounds first based on the current zoom level,
  then change the scroll position. Otherwise the scroll will be visually correct
  but the scrollbars won't match.
2021-10-04 12:10:56 +01:00
baldurk 4a44d76426 Strip VK_KHR_win32_keyed_mutex extension on replay
* This is an external memory extension, effectively, so we remove it as we don't
  replay external memory.
2021-10-04 12:02:37 +01:00
baldurk 3fb4e230de Handle single-basic-element buffers in GL/Vulkan properly. Closes #2378
* We still need to handle multiple elements in the root of a struct specially by
  commenting out the fixed members, but the final element needs to go through
  the normal DeclareStruct() path to handle things like per-column padding in
  matrices etc.
2021-10-04 12:02:09 +01:00
baldurk bc532ebf49 Bump version to 1.17 2021-09-30 17:28:02 +01:00
baldurk 5486bf09b3 Fix D3D11 overlays not displaying due to overwritten renderstate v1.16 2021-09-29 13:54:32 +01:00
baldurk 25b17c8093 Add R/W locking around access to crash handler. Closes #2376
* The crash handler gets destroyed and recreated when we need to change creation
  parameters, and this races against anything else trying to use it to register
  or unregister memory regions.
* In partcular when initialising the replay we recreated the crash handler right
  after kicking off the GPU enumeration.
* We add a read/write lock so there's no significant added contention on most
  paths (even though it's not really high traffic in any case) to prevent this
  kind of problem in future.
2021-09-29 10:54:29 +01:00
baldurk d386df55b9 Clarify requirement of a capture for device lost errors 2021-09-27 13:01:09 +01:00
baldurk 62d6ffaec2 Enable DXIL bindless feedback test 2021-09-27 12:26:22 +01:00
baldurk 2a53db8eae Fix DXIL feedback to account for handle indices being register relative
* If a texture array is bound to register 17, the dynamic index passed into
  createHandle will be [17+x] :(
2021-09-27 12:23:58 +01:00
baldurk b20e337fd2 Remove unused root elements after filling D3D12 pipeline state 2021-09-27 12:23:15 +01:00
baldurk c8e7037ed1 Make some custom changes to Catch2 for a better experience
* Add CATCH_CONFIG_FORCE_FALLBACK_STRINGIFIER to force use of ToStr in
  all cases. We can handle ints, etc, we don't need ostringstream, and
  this allows us to handle enums that would otherwise just be printed as
  their integer value.
* Add CATCH_CONFIG_INLINE_DEBUG_BREAK which restores the Catch 1.0
  behaviour of debugbreaks happening in macros and so in-line at the
  actual site failure. So the debugger stops on the CHECK() or REQUIRE()
  call instead of inside AssertionHandler::complete()

  Cherry pick from https://github.com/baldurk/renderdoc/commit/4232736fc21fc6a13a4de6997a5ae106598b225f
2021-09-27 10:03:39 +01:00
baldurk d3c6818f4a Update Catch to version 2.13.7 2021-09-27 10:03:39 +01:00
baldurk 552621a87f Fix a compile warning that appears on redhat 2021-09-27 10:03:39 +01:00
Jake Turner 8c5792f412 Add api/replay/pipestate.inl to sources list
xcode project generation is driven by the sources list
before this commit "pipestate.inl" was not present in the xcode project
after this commit it is present
2021-09-27 09:46:33 +01:00
baldurk e1880f62ab Clamp value index by number of values
* This can be out of bounds when purely considering the instruction index if
  there's an instruction near the end, beyond the point where there are (many)
  further values.
2021-09-24 15:11:22 +01:00
baldurk ff92cc2ba3 Don't flush coherent maps on vulkan when there are no command buffers
* Normally this is handled by checking referenced IDs, but we now
  unconditionally flush memory with BDA buffers bound to it.
2021-09-24 14:04:29 +01:00
baldurk 7700c2a80d Don't trust presence/absence of raw buffer flag on D3D12 descriptors 2021-09-24 13:23:32 +01:00
baldurk a77c9e7ac3 Demote DXIL validation step to warning as it's not reliable 2021-09-24 12:04:50 +01:00
baldurk 22dda946fc Strip root signature to avoid false validation errors 2021-09-24 10:59:39 +01:00
baldurk 5c87ee069f Ignore static used binds when allocating feedback slots 2021-09-24 10:59:06 +01:00
baldurk 77785cfe1f 32-bit compile fix 2021-09-23 19:45:51 +01:00
baldurk 8901880d15 Ensure reference data for map comparisons is taken from serialised data
* If we serialise from the map, and then separately memcpy from it to populate
  the reference data then we risk another thread's writes happening in between
  and not being detected on subsequence checks. Instead we need to copy from the
  serialised data, that way regardless of what we snapshot there we always
  compare against it to detect any further writes.
2021-09-23 17:48:45 +01:00
baldurk b4e4fed40f Remove path to trust application flushes on coherent maps. Closes #2372
* We used to allow applications to call vkFlushMappedMemoryRanges on coherent
  memory to manually annotate regions of memory that are changed in persistent
  maps, thus avoiding the overhead of RenderDoc needing to check for changes on
  each submit.
* Unfortunately this means that if the application calls flush wrongly then
  changes will no longer appear, even though the application was completely
  correct, if misleading, since by the spec behaviour vkFlushMappedMemoryRanges
  is a no-op on coherent memory so incorrect calls to it make no difference.
* Since applications making use of this are rare or non-existant we just remove
  the optimisation.
2021-09-23 17:37:26 +01:00
baldurk 42fcc3820d Try to load DXC before doing DXIL patching, to validate in debug builds 2021-09-23 17:01:31 +01:00
baldurk e092607896 Patch feature flags chunk when adding UAVs on geometry stages 2021-09-23 16:59:34 +01:00
baldurk b4cf86c48c Fix compilation on mac 2021-09-21 18:48:43 +01:00
baldurk dc6bc12da7 Annotate handle creation with writes to track bindless use on D3D12 2021-09-21 18:04:58 +01:00
baldurk 8401ba26a0 Fix DXBC container offsets/length properly when stripping debug DXIL 2021-09-21 18:04:58 +01:00
baldurk 6ee985a067 Patch PSV chunk to fix dxil validation warning 2021-09-21 18:04:58 +01:00
baldurk 9efe0f5a83 Begin implementing DXIL shader patching for bindless feedback
* We don't annotate any bindless uses yet, this only declares the UAV and
  attempts to write into the first slot.
2021-09-21 18:04:58 +01:00