@@ -217,6 +217,14 @@ float4 main(v2f vertIn, uint primId : SV_PrimitiveID, uint sampleId : SV_SampleI
217
217
{Vec3f (-0 .7f , 0 .5f , 0 .33f ), Vec4f (1 .0f , 1 .0f , 0 .0f , 1 .0f ), Vec2f (0 .0f , 1 .0f )},
218
218
{Vec3f (-0 .6f , 0 .3f , 0 .33f ), Vec4f (1 .0f , 1 .0f , 0 .0f , 1 .0f ), Vec2f (0 .0f , 0 .0f )},
219
219
{Vec3f (-0 .8f , 0 .3f , 0 .33f ), Vec4f (1 .0f , 1 .0f , 0 .0f , 1 .0f ), Vec2f (1 .0f , 0 .0f )},
220
+ // 1000 draws of 1 triangle
221
+ {Vec3f (-0 .7f , 0 .0f , 0 .33f ), Vec4f (0 .5f , 1 .0f , 0 .0f , 1 .0f ), Vec2f (0 .0f , 1 .0f )},
222
+ {Vec3f (-0 .8f , 0 .2f , 0 .33f ), Vec4f (0 .5f , 1 .0f , 0 .0f , 1 .0f ), Vec2f (1 .0f , 0 .0f )},
223
+ {Vec3f (-0 .6f , 0 .2f , 0 .33f ), Vec4f (0 .5f , 1 .0f , 0 .0f , 1 .0f ), Vec2f (0 .0f , 0 .0f )},
224
+ // 1000 instances of 1 triangle
225
+ {Vec3f (-0 .7f , 0 .6f , 0 .33f ), Vec4f (1 .0f , 0 .5f , 0 .0f , 1 .0f ), Vec2f (0 .0f , 1 .0f )},
226
+ {Vec3f (-0 .8f , 0 .8f , 0 .33f ), Vec4f (1 .0f , 0 .5f , 0 .0f , 1 .0f ), Vec2f (1 .0f , 0 .0f )},
227
+ {Vec3f (-0 .6f , 0 .8f , 0 .33f ), Vec4f (1 .0f , 0 .5f , 0 .0f , 1 .0f ), Vec2f (0 .0f , 0 .0f )},
220
228
};
221
229
222
230
ID3D12ResourcePtr vb = MakeBuffer ().Data (VBData);
@@ -608,6 +616,17 @@ float4 main(v2f vertIn, uint primId : SV_PrimitiveID, uint sampleId : SV_SampleI
608
616
cmd->OMSetDepthBounds (0 .4f , 0 .6f );
609
617
cmd->DrawInstanced (3 , 1 , 66 , 0 );
610
618
619
+ pushMarker (cmd, " Stress Test" );
620
+ pushMarker (cmd, " Lots of Drawcalls" );
621
+ setMarker (cmd, " 1000 Draws" );
622
+ cmd->SetPipelineState (pass.depthWritePipe );
623
+ for (int d = 0 ; d < 1000 ; ++d)
624
+ cmd->DrawInstanced (3 , 1 , 72 , 0 );
625
+ popMarker (cmd);
626
+ setMarker (cmd, " 1000 Instances" );
627
+ cmd->DrawInstanced (3 , 1000 , 75 , 0 );
628
+ popMarker (cmd);
629
+
611
630
// Add a marker so we can easily locate this draw
612
631
setMarker (cmd, " Test Begin" );
613
632
0 commit comments