@@ -138,6 +138,7 @@ static VkDescriptorUpdateTemplateKHR template_image_many_push;
138
138
static VkPipeline pipelines_basic [NUM_PIPELINE_VARIANTS ];
139
139
static VkPipeline pipelines_vattrib [NUM_PIPELINE_VARIANTS ];
140
140
static VkPipeline pipelines_dyn [NUM_PIPELINE_VARIANTS ];
141
+ static VkPipeline pipeline_basic_dynamic ;
141
142
static VkPipeline pipeline_vattrib_dynamic ;
142
143
static VkPipeline pipeline_multirt ;
143
144
static VkPipeline pipeline_multrt_dyn ;
@@ -768,6 +769,18 @@ draw_vbo_change(unsigned iterations)
768
769
}
769
770
}
770
771
772
+ static void
773
+ draw_vbo_change_dynamic (unsigned iterations )
774
+ {
775
+ iterations = filter_overflow (draw_vbo_change_dynamic , iterations , 1 );
776
+ begin_rp ();
777
+ VkDeviceSize offset [] = {0 , 16 };
778
+ for (unsigned i = 0 ; i < iterations ; i ++ , count ++ ) {
779
+ VK (CmdBindVertexBuffers )(cmdbuf , 0 , 1 , & vbo [i & 1 ], & offset [i & 1 ]);
780
+ VK (CmdDrawIndexed )(cmdbuf , 3 , 1 , 0 , 0 , 0 );
781
+ }
782
+ }
783
+
771
784
static void
772
785
draw_rp_begin_end (unsigned iterations )
773
786
{
@@ -2341,6 +2354,7 @@ struct perf_case {
2341
2354
};
2342
2355
2343
2356
#define CASE_BASIC (name , ...) {#name, name, pipelines_basic, __VA_ARGS__}
2357
+ #define CASE_BASIC_DYN (name , ...) {#name, name, &pipeline_basic_dynamic, __VA_ARGS__}
2344
2358
#define CASE_DYN_BASIC (name , ...) {#name, name, pipelines_dyn, __VA_ARGS__}
2345
2359
#define CASE_MULTIRT (name , ...) {#name, name, &pipeline_multirt, __VA_ARGS__}
2346
2360
#define CASE_DYN_MULTIRT (name , ...) {#name, name, &pipeline_multrt_dyn, __VA_ARGS__}
@@ -2378,6 +2392,7 @@ static struct perf_case cases_draw[] = {
2378
2392
CASE_MULTIRT (draw_multirt_begin_end_dontcare ),
2379
2393
CASE_DYN_MULTIRT (draw_multirt_begin_end_dontcare_dynrender , check_dynamic_rendering ),
2380
2394
CASE_BASIC (draw_vbo_change ),
2395
+ CASE_BASIC_DYN (draw_vbo_change_dynamic , check_dynamic_vertex_input ),
2381
2396
CASE_BASIC (draw_1vattrib_change ),
2382
2397
CASE_VATTRIB (draw_16vattrib ),
2383
2398
CASE_VATTRIB (draw_16vattrib_16vbo_change ),
@@ -3450,8 +3465,10 @@ main(int argc, char *argv[])
3450
3465
if (check_dynamic_rendering ())
3451
3466
create_basic_pipelines (VK_NULL_HANDLE , layout_basic , pipelines_dyn );
3452
3467
create_vattrib_pipelines (render_pass_clear , layout_basic , pipelines_vattrib );
3453
- if (check_dynamic_vertex_input ())
3468
+ if (check_dynamic_vertex_input ()) {
3454
3469
pipeline_vattrib_dynamic = create_vattrib_pipeline_dynamic (render_pass_clear , layout_basic );
3470
+ pipeline_basic_dynamic = create_vattrib_pipeline_dynamic (render_pass_clear , layout_basic );
3471
+ }
3455
3472
pipeline_multirt = create_multirt_pipeline (render_pass_multirt_clear , layout_basic );
3456
3473
if (check_dynamic_rendering ())
3457
3474
pipeline_multrt_dyn = create_multirt_pipeline (VK_NULL_HANDLE , layout_basic );
0 commit comments