dump-resources: override query commands for replay dumps#2945
Conversation
fabian-lunarg
left a comment
There was a problem hiding this comment.
I agree with the fix ("avoid ending queries that were never begun")
and the added overrides.
PR looks good to me, previous code-gen'ed behavior is
now handled in overrides with good code-reuse (e.g. ForEachDrawCallCommandBuffer).
I'm happy but @panos-lunarg might want to double-check
|
last but not least: @dnlbaines could you maybe provide a repro-case (.gfxr + input .json that crashes without this PR, or instructions how-to reproduce ourselves), adding to our (internal) test-coverage? |
I can't share it publicly as its from an internal demo but I have uploaded it to share.lunarg.com and referenced it in the internal doc. |
Add dump-resources overrides for query-related Vulkan commands so generated replay code passes tracked object info into the dumper. The overrides replay query commands for dispatch/trace-rays dump contexts and avoid ending queries that were never begun, which fixes crashes during resource dumping.
Restore draw-call command-buffer forwarding in the query-related dump-resources overrides so they preserve the behavior that generated forwarding had before the commands moved to manual overrides. Add the missing vkCmdCopyQueryPoolResultsToMemoryKHR override and regenerate the affected replay dump files.
Forward vkCmdBeginQuery and vkCmdEndQuery through both draw-call and dispatch/trace-rays dump command buffers, matching the indexed query overrides. Also avoid shared_ptr ref-count churn in the forwarding helpers by iterating contexts by const reference.
960de57 to
e79228d
Compare
Add dump-resources overrides for query-related Vulkan commands so generated replay code passes tracked object info into the dumper. The overrides replay query commands for dispatch/trace-rays dump contexts and avoid ending queries that were never begun, which fixes crashes during resource dumping.