mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 09:30:44 +00:00
Add new d3d12_multi_wait_before_signal.py test
It's currently forcibly disabled via 'check_support' because it's known to fail due to the fact that the commands are always serialised and replayed in submission order instead of the order that respects queues blocked on fence waits that get signalled later from other queues.
This commit is contained in:
committed by
Baldur Karlsson
parent
ec408e21c0
commit
910f1dcd7e
@@ -433,6 +433,7 @@ float4 mainPS(in float4 pos : SV_POSITION) : SV_Target0
|
||||
rootConstants[0] = 1; // myBufferIdx
|
||||
cmd->SetGraphicsRoot32BitConstants(0, 1, &rootConstants[0], 0);
|
||||
cmd->DrawInstanced(3, 1, 3, 0);
|
||||
setMarker(cmd, "Last draw"); // Help locate this draw through 'find_action' in python test
|
||||
|
||||
ResourceBarrier(cmd, bbTex[texIdx], D3D12_RESOURCE_STATE_RENDER_TARGET,
|
||||
D3D12_RESOURCE_STATE_PRESENT);
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import renderdoc as rd
|
||||
import rdtest
|
||||
|
||||
class D3D12_Multi_Wait_Before_Signal(rdtest.TestCase):
|
||||
demos_test_name = 'D3D12_Multi_Wait_Before_Signal'
|
||||
|
||||
def check_support(self):
|
||||
# TODO: Enable this if/when rdoc can reorder from the original submission
|
||||
# order, which blocks multiple queues with waits that get signalled by
|
||||
# later submissions to other queues.
|
||||
return False, 'Renderdoc does not yet adequately reorder capture replay'
|
||||
|
||||
def check_capture(self):
|
||||
draw_marker: rd.ActionDescription = self.find_action("Last draw")
|
||||
self.controller.SetFrameEvent(draw_marker.eventId, False)
|
||||
|
||||
pipe: rd.PipeState = self.controller.GetPipelineState()
|
||||
|
||||
tex = pipe.GetOutputTargets()[0].resourceId
|
||||
self.check_pixel_value(tex, 270, 194, [0.20117, 0.20117, 0.20117, 0.0])
|
||||
self.check_pixel_value(tex, 180, 170, [0.5031, 0.25, 1.0, 1.0])
|
||||
self.check_pixel_value(tex, 180, 194, [0.25, 0.75391, 1.0, 1.0])
|
||||
|
||||
Reference in New Issue
Block a user