diff --git a/src/freedreno/ci/freedreno-a750-vkd3d-fails.txt b/src/freedreno/ci/freedreno-a750-vkd3d-fails.txt index e39652d6ed8..4008517fcb6 100644 --- a/src/freedreno/ci/freedreno-a750-vkd3d-fails.txt +++ b/src/freedreno/ci/freedreno-a750-vkd3d-fails.txt @@ -4,7 +4,6 @@ test_early_depth_stencil_tests,Fail test_index_buffer_edge_case_stream_output,Fail test_multisample_resolve_strongly_typed,Fail test_primitive_restart_list_topology_stream_output,Fail -test_query_pipeline_statistics,Fail test_sampler_rounding,Fail test_shader_instructions,Fail test_shader_sm66_quad_op_semantics,Fail diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml index d639bcd5ef6..fbf40878651 100644 --- a/src/freedreno/registers/adreno/a6xx.xml +++ b/src/freedreno/registers/adreno/a6xx.xml @@ -2633,27 +2633,27 @@ to upconvert to 32b float internally? vertices in, number of primnitives assembled etc. --> - + - + - + - + - + - + - + - + - + - + - + diff --git a/src/freedreno/vulkan/tu_query_pool.cc b/src/freedreno/vulkan/tu_query_pool.cc index 3780fab338f..824e4cd3635 100644 --- a/src/freedreno/vulkan/tu_query_pool.cc +++ b/src/freedreno/vulkan/tu_query_pool.cc @@ -388,14 +388,11 @@ statistics_index(uint32_t *statistics) switch (1 << stat) { case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT: - case VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT: return 0; case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT: return 1; - case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT: + case VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT: return 2; - case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT: - return 4; case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT: return 5; case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT: @@ -406,6 +403,10 @@ statistics_index(uint32_t *statistics) return 8; case VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT: return 9; + case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT: + return 3; + case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT: + return 4; case VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT: return 10; default: diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_query.cc b/src/gallium/drivers/freedreno/a6xx/fd6_query.cc index 0e5d1f8357d..d015b37f59b 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_query.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_query.cc @@ -403,18 +403,15 @@ FD_DEFINE_CAST(fd_acc_query_sample, fd6_pipeline_stats_sample); * ----------------------------+--------------------------------------------+---------------- * IA_VERTICES | INPUT_ASSEMBLY_VERTICES | RBBM_PRIMCTR_0 * IA_PRIMITIVES | INPUT_ASSEMBLY_PRIMITIVES | RBBM_PRIMCTR_1 - * VS_INVOCATIONS | VERTEX_SHADER_INVOCATIONS | RBBM_PRIMCTR_0 + * VS_INVOCATIONS | VERTEX_SHADER_INVOCATIONS | RBBM_PRIMCTR_2 * GS_INVOCATIONS | GEOMETRY_SHADER_INVOCATIONS | RBBM_PRIMCTR_5 * GS_PRIMITIVES | GEOMETRY_SHADER_PRIMITIVES | RBBM_PRIMCTR_6 * C_INVOCATIONS | CLIPPING_INVOCATIONS | RBBM_PRIMCTR_7 * C_PRIMITIVES | CLIPPING_PRIMITIVES | RBBM_PRIMCTR_8 * PS_INVOCATIONS | FRAGMENT_SHADER_INVOCATIONS | RBBM_PRIMCTR_9 - * HS_INVOCATIONS | TESSELLATION_CONTROL_SHADER_PATCHES | RBBM_PRIMCTR_2 + * HS_INVOCATIONS | TESSELLATION_CONTROL_SHADER_PATCHES | RBBM_PRIMCTR_3 * DS_INVOCATIONS | TESSELLATION_EVALUATION_SHADER_INVOCATIONS | RBBM_PRIMCTR_4 * CS_INVOCATIONS | COMPUTE_SHADER_INVOCATIONS | RBBM_PRIMCTR_10 - * - * Note that "Vertices corresponding to incomplete primitives may contribute to the count.", - * in our case they do not, so IA_VERTICES and VS_INVOCATIONS are the same thing. */ enum stats_type { @@ -454,13 +451,13 @@ stats_counter_index(struct fd_acc_query *aq) switch (aq->base.index) { case PIPE_STAT_QUERY_IA_VERTICES: return 0; case PIPE_STAT_QUERY_IA_PRIMITIVES: return 1; - case PIPE_STAT_QUERY_VS_INVOCATIONS: return 0; + case PIPE_STAT_QUERY_VS_INVOCATIONS: return 2; case PIPE_STAT_QUERY_GS_INVOCATIONS: return 5; case PIPE_STAT_QUERY_GS_PRIMITIVES: return 6; case PIPE_STAT_QUERY_C_INVOCATIONS: return 7; case PIPE_STAT_QUERY_C_PRIMITIVES: return 8; case PIPE_STAT_QUERY_PS_INVOCATIONS: return 9; - case PIPE_STAT_QUERY_HS_INVOCATIONS: return 2; + case PIPE_STAT_QUERY_HS_INVOCATIONS: return 3; case PIPE_STAT_QUERY_DS_INVOCATIONS: return 4; case PIPE_STAT_QUERY_CS_INVOCATIONS: return 10; default: @@ -473,10 +470,10 @@ log_pipeline_stats(struct fd6_pipeline_stats_sample *ps, unsigned idx) { #ifdef DEBUG_COUNTERS const char *labels[] = { - "VS_INVOCATIONS", + "IA_VERTICES", "IA_PRIMITIVES", + "VS_INVOCATIONS", "HS_INVOCATIONS", - "??", "DS_INVOCATIONS", "GS_INVOCATIONS", "GS_PRIMITIVES", diff --git a/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt b/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt index f2a179eb576..88faf2d6c6d 100644 --- a/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-tu-a750-fails.txt @@ -100,27 +100,6 @@ spec@arb_internalformat_query2@all internalformat__type pname checks@GL_INTER spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex,Fail spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2' on GL_PROGRAM_INPUT,Fail spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT,Fail -spec@arb_query_buffer_object@coherency,Fail -spec@arb_query_buffer_object@coherency@index-buffer-GL_TESS_CONTROL_SHADER_PATCHES,Fail -spec@arb_query_buffer_object@coherency@indirect-dispatch-GL_TESS_CONTROL_SHADER_PATCHES,Fail -spec@arb_query_buffer_object@coherency@indirect-draw-GL_TESS_CONTROL_SHADER_PATCHES,Fail -spec@arb_query_buffer_object@coherency@indirect-draw-count-GL_TESS_CONTROL_SHADER_PATCHES,Fail -spec@arb_query_buffer_object@qbo,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC-GL_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC-GL_UNSIGNED_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC-GL_UNSIGNED_INT64_ARB,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC_CPU_READ_AFTER-GL_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC_CPU_READ_AFTER-GL_UNSIGNED_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC_CPU_READ_AFTER-GL_UNSIGNED_INT64_ARB,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC_CPU_READ_BEFORE-GL_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC_CPU_READ_BEFORE-GL_UNSIGNED_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-ASYNC_CPU_READ_BEFORE-GL_UNSIGNED_INT64_ARB,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-SYNC-GL_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-SYNC-GL_UNSIGNED_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-SYNC-GL_UNSIGNED_INT64_ARB,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-SYNC_CPU_READ_AFTER_CACHE_TEST-GL_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-SYNC_CPU_READ_AFTER_CACHE_TEST-GL_UNSIGNED_INT,Fail -spec@arb_query_buffer_object@qbo@query-GL_TESS_CONTROL_SHADER_PATCHES-SYNC_CPU_READ_AFTER_CACHE_TEST-GL_UNSIGNED_INT64_ARB,Fail spec@arb_sample_locations@test,Fail spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 0- Grid: false,Fail spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 0- Grid: true,Fail