Commit Graph
17592 Commits
Author SHA1 Message Date
Jake Turner c076e5be52 Unify Vulkan RenderState tracking in Loading & Replay: Feedback APIs
- Serialise_vkCmdBindTransformFeedbackBuffersEXT
- Serialise_vkCmdBeginTransformFeedbackEXT
- Serialise_vkCmdEndTransformFeedbackEXT
- Serialise_vkCmdBeginTransformFeedback2EXT
- Serialise_vkCmdBindTransformFeedbackBuffers2EXT
- Serialise_vkCmdEndTransformFeedback2EXT
2026-11-11 12:42:58 +00:00
Jake Turner 117452e72d Unify Vulkan RenderState tracking in Loading & Replay: QueryPool APIs
- Serialise_vkCmdCopyQueryPoolResults
- Serialise_vkCmdCopyQueryPoolResultsToMemoryKHR
2026-11-11 12:42:40 +00:00
Jake Turner f801bcde8d Unify Vulkan RenderState tracking in Loading & Replay: Push APIs
- Serialise_vkCmdPushConstants
- Serialise_vkCmdPushConstants2
- Serialise_vkCmdPushDescriptorSet
- Serialise_vkCmdPushDescriptorSetWithTemplate
- Serialise_vkCmdPushDescriptorSet2
- Serialise_vkCmdPushDescriptorSetWithTemplate2
2026-11-11 12:42:25 +00:00
Jake Turner abf8497796 Unify Vulkan RenderState tracking in Loading & Replay: Desc Buffer APIs
- Serialise_vkCmdBindDescriptorBuffersEXT
- Serialise_vkCmdSetDescriptorBufferOffsetsEXT
- Serialise_vkCmdBindDescriptorBufferEmbeddedSamplersEXT
- Serialise_vkCmdSetDescriptorBufferOffsets2EXT
- Serialise_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT
2026-11-11 12:42:07 +00:00
Jake Turner 58df213468 Unify Vulkan RenderState tracking in Loading & Replay: Pipeline APIs
- Serialise_vkCmdBindPipeline
- Serialise_vkCmdBindDescriptorSets
- Serialise_vkCmdBindDescriptorSets2
- Serialise_vkCmdBindVertexBuffers
- Serialise_vkCmdBindVertexBuffers2
- Serialise_vkCmdBindIndexBuffer
- Serialise_vkCmdSetVertexInputEXT
- Serialise_vkCmdBindShadersEXT
- Serialise_vkCmdBindIndexBuffer2
- Serialise_vkCmdBindIndexBuffer3KHR
- Serialise_vkCmdBindVertexBuffers3KHR
2026-11-11 12:41:51 +00:00
Jake Turner 925da837ba Unify Vulkan RenderState tracking in Loading & Replay: RenderPass APIs
- Serialise_vkCmdBeginRenderPass
- Serialise_vkCmdNextSubpass
- Serialise_vkCmdEndRenderPass
- Serialise_vkCmdBeginRenderPass2
- Serialise_vkCmdNextSubpass2
- Serialise_vkCmdEndRenderPass2
- Serialise_vkCmdBeginRendering
- Serialise_vkCmdEndRendering
- Serialise_vkCmdEndRendering2EXT
- Serialise_vkCmdBeginCustomResolveEXT
2026-11-11 12:41:29 +00:00
Jake Turner f4426900b3 Unify Vulkan RenderState tracking in Loading & Replay: RenderState APIs
- Serialise_vkCmdSetViewport
- Serialise_vkCmdSetViewportWithCount
- Serialise_vkCmdSetScissor
- Serialise_vkCmdSetScissorWithCount
- Serialise_vkCmdSetLineWidth
- Serialise_vkCmdSetDepthBias
- Serialise_vkCmdSetBlendConstants
- Serialise_vkCmdSetDepthBounds
- Serialise_vkCmdSetStencilCompareMask
- Serialise_vkCmdSetStencilWriteMask
- Serialise_vkCmdSetStencilReference
- Serialise_vkCmdSetSampleLocationsEXT
- Serialise_vkCmdSetDiscardRectangleEXT
- Serialise_vkCmdSetLineStipple
- Serialise_vkCmdSetCullMode
- Serialise_vkCmdSetFrontFace
- Serialise_vkCmdSetPrimitiveTopology
- Serialise_vkCmdSetDepthTestEnable
- Serialise_vkCmdSetDepthWriteEnable
- Serialise_vkCmdSetDepthCompareOp
- Serialise_vkCmdSetDepthBoundsTestEnable
- Serialise_vkCmdSetStencilTestEnable
- Serialise_vkCmdSetStencilOp
- Serialise_vkCmdSetColorWriteEnableEXT
- Serialise_vkCmdSetDepthBiasEnable
- Serialise_vkCmdSetLogicOpEXT
- Serialise_vkCmdSetPatchControlPointsEXT
- Serialise_vkCmdSetPrimitiveRestartEnable
- Serialise_vkCmdSetRasterizerDiscardEnable
- Serialise_vkCmdSetFragmentShadingRateKHR
- Serialise_vkCmdSetAttachmentFeedbackLoopEnableEXT
- Serialise_vkCmdSetAlphaToCoverageEnableEXT
- Serialise_vkCmdSetAlphaToOneEnableEXT
- Serialise_vkCmdSetColorBlendEnableEXT
- Serialise_vkCmdSetColorBlendEquationEXT
- Serialise_vkCmdSetColorWriteMaskEXT
- Serialise_vkCmdSetConservativeRasterizationModeEXT
- Serialise_vkCmdSetDepthClampEnableEXT
- Serialise_vkCmdSetDepthClipEnableEXT
- Serialise_vkCmdSetDepthClipNegativeOneToOneEXT
- Serialise_vkCmdSetExtraPrimitiveOverestimationSizeEXT
- Serialise_vkCmdSetLineRasterizationModeEXT
- Serialise_vkCmdSetLineStippleEnableEXT
- Serialise_vkCmdSetLogicOpEnableEXT
- Serialise_vkCmdSetPolygonModeEXT
- Serialise_vkCmdSetProvokingVertexModeEXT
- Serialise_vkCmdSetRasterizationSamplesEXT
- Serialise_vkCmdSetRasterizationStreamEXT
- Serialise_vkCmdSetSampleLocationsEnableEXT
- Serialise_vkCmdSetSampleMaskEXT
- Serialise_vkCmdSetTessellationDomainOriginEXT
- Serialise_vkCmdSetRayTracingPipelineStackSizeKHR
- Serialise_vkCmdSetRenderingAttachmentLocations
- Serialise_vkCmdSetRenderingInputAttachmentIndices
- Serialise_vkCmdSetDepthBias2EXT
2026-11-11 12:41:10 +00:00
Jake Turner 7fcf4bc413 Unify Vulkan RenderState tracking in Loading & Replay: TraceRays APIs
- Serialise_vkCmdTraceRaysKHR
- Serialise_vkCmdTraceRaysIndirectKHR
- Serialise_vkCmdTraceRaysIndirect2KHR
2026-11-11 12:40:50 +00:00
Jake Turner 3577e67bc1 Unify Vulkan RenderState tracking in Loading & Replay: Memory APIs
- Serialise_vkCmdCopyImageToMemoryKHR
- Serialise_vkCmdCopyMemoryKHR
- Serialise_vkCmdFillMemoryKHR
- Serialise_vkCmdUpdateMemoryKHR
2026-11-11 12:40:30 +00:00
Jake Turner 7dd0d73d12 Unify Vulkan RenderState tracking in Loading & Replay: Buffer APIs
- Serialise_vkCmdCopyImageToBuffer
- Serialise_vkCmdCopyBuffer
- Serialise_vkCmdUpdateBuffer
- Serialise_vkCmdFillBuffer
- Serialise_vkCmdCopyBuffer2
- Serialise_vkCmdCopyImageToBuffer2
2026-11-11 12:40:07 +00:00
Jake Turner 19acf16b68 Unify Vulkan RenderState tracking in Loading & Replay: Image APIs
- Serialise_vkCmdBlitImage
- Serialise_vkCmdResolveImage
- Serialise_vkCmdCopyImage
- Serialise_vkCmdCopyBufferToImage
- Serialise_vkCmdClearColorImage
- Serialise_vkCmdClearDepthStencilImage
- Serialise_vkCmdClearAttachments
- Serialise_vkCmdCopyImage2
- Serialise_vkCmdBlitImage2
- Serialise_vkCmdResolveImage2
2026-11-11 12:39:51 +00:00
Jake Turner 282dd083db Unify Vulkan RenderState tracking in Loading & Replay: Draw APIs
- Serialise_vkCmdDraw
- Serialise_vkCmdDrawIndexed
- Serialise_vkCmdDispatch
- Serialise_vkCmdDispatchIndirect
- Serialise_vkCmdDispatchBase
- Serialise_vkCmdDrawMeshTasksEXT
- Serialise_vkCmdDispatchIndirect2KHR
- Serialise_vkCmdDrawIndirectByteCount2EXT
2026-11-11 12:39:33 +00:00
Jake Turner e3f42ff51f Unify Vulkan RenderState tracking in Loading & Replay: Event APIs
- Serialise_vkCmdSetEvent
- Serialise_vkCmdResetEvent
- Serialise_vkCmdWaitEvents
- Serialise_vkCmdSetEvent2
- Serialise_vkCmdResetEvent2
- Serialise_vkCmdWaitEvents2
2026-11-11 12:38:48 +00:00
Jake Turner 1aec6913b7 Preparation for sharing Vulkan RenderState tracking in Loading & Replay
In the Loading state:
- ShouldUpdateRenderpassActive() returns true
- InRerecordRange() returns true
2026-11-11 12:37:53 +00:00
Jake Turner 66f213fe08 Extend VK_Resource_Usage C++ to test device VkEvent APIs
- vkSetEvent
- vkResetEvent
- vkGetEventStatus
2026-11-10 15:53:26 +00:00
Jake Turner 060c0c5aff Added tests helper setName overload for vkEvent 2026-11-10 15:53:02 +00:00
Jake Turner f3c399b6c9 Mark the VkEvent as referenced in device event APIs: Set/Reset/GetStatus
- vkSetEvent
- vkResetEvent
- vkGetEventStatus
2026-11-10 15:24:25 +00:00
Jake Turner 0cb2ab33e0 Apply -Wno-deprecated-literal-operator to demos project
- copied over from main RenderDoc project
2026-11-10 15:24:25 +00:00
Jake Turner 75b3b7b95b Adjust the markers in VK_Resource_Usage 2026-11-10 15:24:24 +00:00
baldurk ac17f5c7eb Disable 3D depth textures entirely in VK_Texture_Zoo 2026-11-10 13:50:11 +00:00
baldurk 8330d91cf3 Don't double-delete main window 2026-11-10 12:02:47 +00:00
baldurk 8a55fc23a1 Fix sync/barrier issues in vulkan tests 2026-11-10 12:02:47 +00:00
baldurk e3c29f80cd Fix normal validation issues in vulkan tests
* Missing usage flags, invalid state creation/setting, invalid combination of
  LOAD op and UNDEFINED layout, etc.
2026-11-10 12:02:46 +00:00
baldurk eb8d0450a0 Don't add duplicate validation features structs
* This can happen if the test itself adds VK_EXT_validation_features
2026-11-10 12:02:46 +00:00
baldurk 77b4d531e5 Disable OBS during tests - it introduces validation errors 2026-11-10 12:02:46 +00:00
baldurk a73b9214a5 Prefer using spirv-as for assembly SPIR-V assembly if possible
* Since we no longer can link shaderc we have external dependencies anyway, most
  likely from the vulkan SDK. shaderc has never fixed the inability to apply
  target env to shader assembly so this means we can specifically target some
  SPIR-V versions.
2026-11-10 12:02:46 +00:00
baldurk 0a04b74e63 Reduce the number of descriptor sets in VK_Descriptor_Variable_Count
* This goes below the limit of what GPUVA will handle as a number of draws by
  default in one command buffer.
2026-11-10 12:02:46 +00:00
baldurk b345046d4a Ensure we delete all resources before test shutdown 2026-11-10 12:02:46 +00:00
baldurk 0b15a71e88 Move extra renderpass dependencies to helper creator
* This means we get the same benefit of syncing with clears/copies in test-
  created renderpasses.
2026-11-10 12:02:46 +00:00
baldurk 31cad11e3d Enable features/extensions in vulkan tests that we use 2026-11-10 12:02:46 +00:00
baldurk 46ea9dc0d7 Mute a couple of validation messages on vulkan tests 2026-11-10 12:02:46 +00:00
baldurk 4b338b447b Add helper for setting environment variable values
* Needed for vulkan layer control
2026-11-10 12:02:46 +00:00
baldurk 3e143508ed Remove VK_EXT_Buffer_Address test
* This extension is no longer supported by VMA so doesn't run cleanly. We could
  fix it up to do everything manually, but there's little point as it's clear
  now that this extension had a short lifespan and limited support, and is
  unlikely to be in use today in significant manner. We still support it in
  RenderDoc of course, but there's not much value in testing it specifically
  (and it wasn't auto-tested before)
2026-11-10 12:02:46 +00:00
baldurk ae2f8db399 Add option to hard-break on validation errors in tests
* On D3D we also start checking for leaking objects on shutdown (Vulkan this is
  done by default, GL we have no control over validation).
2026-11-10 12:02:45 +00:00
Jake Turner 5ebc85a6bd Add Action and Callbacks to vkCmdBuildAccelerationStructuresIndirectKHR 2026-11-10 10:43:37 +00:00
Jake Turner e0399b6ef9 Remove any semaphores when replaying vkQueueSubmit2
- this matches the behaviour of vkQueueSubmit
- if any submit has wait semaphores then a device wait idle will already have happened
2026-11-10 10:37:18 +00:00
Jake Turner 3211e1e0aa Added Vulkan helper GetLoadingEventNode()
- Asserts in loading state
- Added assert in loading state to GetLastEventNode()
2026-11-10 10:31:49 +00:00
Jake Turner ce216bd6a7 Added Vulkan helper AddEventResourceUsage()
- Adds the usage directly to m_LoadingEventNode
2026-11-10 10:20:06 +00:00
Jake Turner 0c319e9e41 Added helper function VulkanEventNode::AddResourceUsage 2026-11-09 08:18:53 +00:00
Jake Turner 7c7e913697 Fix VS2026 Release build linker error about missing symbol memset 2026-11-09 07:39:19 +00:00
Shahbaz Youssefi 2835a735cd Fix color mask display when color write enable is static
When the color write enable state (from VK_EXT_color_write_enable) is
not dynamic (i.e the extension is not used),
VulkanRenderState::colorWriteEnable was initialized from pipeline's
color mask info.  However, this information should be ignored if color
write mask is dynamic (with shader object / EDS3).

Instead, if color write enable state is not dynamic, it can be
implicitly considered to be true if VkPipelineColorWriteCreateInfoEXT is
not provided, or otherwise it's taken from that.

This change fixes the UI (and HTML export) where the color mask was
output as `____` in such situations regardless of what mask was
dynamically set.
2026-11-07 20:41:56 +09:00
baldurk 34fbfb4352 Add D3D11/Vk demos that do rasterization with no outputs
* They write directly to a buffer
2026-11-04 12:25:03 +00:00
baldurk fd09bb3f4c Add a dialog for directly-launching pixel shader debug. Closes #3422 2026-11-04 12:25:03 +00:00
Jake Turner 282b28b3a3 Reset parent command buffer RenderState after executing a secondary 2026-11-03 12:58:23 +00:00
Jake Turner bf6fe56c5b VK_Resource_Usage improvements
- add secondary commands buffers to Submit() calls so they get put back into the command buffer pool
- fix validation error about renderEndSemaphore
- fix sync validation errors
- add more names to objects
- fix some incorrect names
- move the pipeline bind to after marker "DrawIndirect: Single"
- add marker to start and end of EIDS which should be tracked for resource usage
- add a per frame update descriptorset
- bind compute descriptor sets before binding compute pipelines

- Remove hard coded EIDs from VK_Resource_Usage python
2026-11-03 10:52:15 +00:00
Jake Turner e55f7a5497 DXBC Debugger: perform addition in OPCODE_UADDC 2026-11-03 07:58:14 +00:00
baldurk b23be092cf Fix compilation on older Qt versions 2026-11-02 17:31:20 +00:00
baldurk f039dcdefc Add a filtering system for the constant buffer viewer. Closes #3889 2026-11-02 16:36:36 +00:00
baldurk aa42dd6e45 Fix vulkan capture open progress bar being stalled for much of the read 2026-11-02 14:45:04 +00:00
baldurk 3067fc8259 Improve visual spacing on event browser toolbars 2026-11-02 14:15:07 +00:00