mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-13 17:25:54 +00:00
D3D12_Execute_Indirect Increase count buf draw count to 256
A small stress test to exercise RenderDoc resolving of EI actions during loading
This commit is contained in:
@@ -428,14 +428,14 @@ void main(uint3 gid : SV_GroupID)
|
||||
for(uint32_t i = 0; i < maxCountDraws; ++i)
|
||||
{
|
||||
countSingleDraws[i].VertexCountPerInstance = 3;
|
||||
countSingleDraws[i].InstanceCount = i + 1;
|
||||
countSingleDraws[i].InstanceCount = std::min(12U, i + 1);
|
||||
countSingleDraws[i].StartInstanceLocation = 0;
|
||||
countSingleDraws[i].StartVertexLocation = (9 + (i * 3)) % 18;
|
||||
}
|
||||
ID3D12ResourcePtr countSingleDrawsArgBuf =
|
||||
MakeBuffer().Size(sizeof(countSingleDraws)).Data(&countSingleDraws);
|
||||
|
||||
uint32_t counts[] = {0, 5, 7, 11};
|
||||
uint32_t counts[] = {0, 256, 7, 11};
|
||||
ID3D12ResourcePtr countBuf = MakeBuffer().Data(counts);
|
||||
|
||||
ID3D12PipelineStatePtr patchpso3 =
|
||||
@@ -736,7 +736,7 @@ void main(uint3 gid : SV_GroupID)
|
||||
|
||||
cmd->SetGraphicsRoot32BitConstants(3, 4, baseConstData, 0);
|
||||
|
||||
setMarker(cmd, "MaxCount: 1024 CountBuf: 5");
|
||||
setMarker(cmd, "MaxCount: 1024 CountBuf: 256");
|
||||
cmd->ExecuteIndirect(plainArgSig, maxCountDraws, countSingleDrawsArgBuf, 0, countBuf, 4);
|
||||
NextTest();
|
||||
setMarker(cmd, "MaxCount: 1 CountBuf: 7");
|
||||
|
||||
@@ -316,7 +316,7 @@ class D3D12_Execute_Indirect(rdtest.TestCase):
|
||||
with rdtest.log.auto_section('Checking Count Buffer Draws'):
|
||||
base = self.find_action("Count Buffer Draws")
|
||||
tests = [
|
||||
("MaxCount: 1024 CountBuf: 5", 5, 170),
|
||||
("MaxCount: 1024 CountBuf: 256", 256, 170),
|
||||
("MaxCount: 1 CountBuf: 7", 1, 250),
|
||||
("MaxCount: 0 CountBuf: 11", 0, 0)
|
||||
]
|
||||
@@ -331,13 +331,14 @@ class D3D12_Execute_Indirect(rdtest.TestCase):
|
||||
countDraws = len(executeAction.children) - 1
|
||||
self.check_eq(countDraws, expectedDraws)
|
||||
action = self.find_action("IndirectDraw", executeAction.eventId)
|
||||
for drawNum in range(countDraws):
|
||||
for drawNum in range(min(countDraws, 12)):
|
||||
eid = action.eventId
|
||||
self.controller.SetFrameEvent(eid, False)
|
||||
pipe = self.controller.GetPipelineState()
|
||||
if len(pipe.GetOutputTargets()) != 1:
|
||||
raise rdtest.TestFailureException(
|
||||
f"With event {eid} selected we should have one output target but there is {len(pipe.GetOutputTargets())}")
|
||||
drawNum = drawNum % 6
|
||||
x = xpos
|
||||
y = 210 - drawNum * 20
|
||||
if drawNum > 2:
|
||||
@@ -354,6 +355,8 @@ class D3D12_Execute_Indirect(rdtest.TestCase):
|
||||
self.check_pixel_history_succeeds(x, 165)
|
||||
if drawNum > 3:
|
||||
self.check_pixel_history_succeeds(x, 185)
|
||||
if drawNum > 4:
|
||||
self.check_pixel_history_succeeds(x, 205)
|
||||
action = action.nextAction
|
||||
|
||||
with rdtest.log.auto_section('Two Single Draws QuadOverdraw (Pass) replayed correctly'):
|
||||
|
||||
Reference in New Issue
Block a user