From dc70a940d4b84431c2877616b15d1c6621bb5184 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 18 Oct 2022 11:51:49 -0700 Subject: [PATCH] freedreno/a6xx: Fix primitives-generated query RBBM_PRIMCTR_7 is pre-clipped, whereas RBBM_PRIMCTR_8 is after clipping. I believe we want pre-clipping, and this is what tu does. Signed-off-by: Rob Clark Part-of: --- src/freedreno/ci/freedreno-a630-fails.txt | 53 -------------------------- src/gallium/drivers/freedreno/a6xx/fd6_query.c | 6 +-- 2 files changed, 3 insertions(+), 56 deletions(-) diff --git a/src/freedreno/ci/freedreno-a630-fails.txt b/src/freedreno/ci/freedreno-a630-fails.txt index 30af8fd..5bb6077 100644 --- a/src/freedreno/ci/freedreno-a630-fails.txt +++ b/src/freedreno/ci/freedreno-a630-fails.txt @@ -71,14 +71,6 @@ spec@arb_depth_buffer_float@fbo-generatemipmap-formats,Fail spec@arb_depth_buffer_float@fbo-generatemipmap-formats@GL_DEPTH_COMPONENT32F,Fail spec@arb_depth_buffer_float@fbo-generatemipmap-formats@GL_DEPTH_COMPONENT32F NPOT,Fail -# "0 primitives generated: -# Incorrect number of prims generated. -# Found 0, expected 4" -spec@arb_direct_state_access@transformfeedback-bufferbase,Fail -spec@arb_direct_state_access@transformfeedback-bufferbase@general test,Fail -spec@arb_direct_state_access@transformfeedback-bufferrange,Fail -spec@arb_direct_state_access@transformfeedback-bufferrange@general test,Fail - spec@arb_occlusion_query@occlusion_query_order,Fail spec@arb_point_sprite@arb_point_sprite-interactions 1.0,Fail spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex,Fail @@ -170,10 +162,6 @@ spec@arb_texture_rectangle@1-1-linear-texture,Fail spec@arb_timer_query@timestamp-get,Fail -# "Expected 1 primitives written, got 0" -# Note: no FS, rasterizer discard enabled. -spec@arb_transform_feedback3@arb_transform_feedback3-ext_interleaved_two_bufs_vs,Fail - spec@arb_vertex_type_2_10_10_10_rev@attrib-p-type-size-match,Fail spec@egl 1.4@eglterminate then unbind context,Fail @@ -268,11 +256,8 @@ spec@ext_texture_snorm@fbo-generatemipmap-formats@GL_LUMINANCE16_SNORM NPOT,Fail spec@ext_texture_snorm@multisample-formats 2 gl_ext_texture_snorm,Fail spec@ext_texture_snorm@multisample-formats 4 gl_ext_texture_snorm,Fail -spec@ext_transform_feedback@geometry-shaders-basic,Fail spec@ext_transform_feedback@intervening-read prims_generated,Fail spec@ext_transform_feedback@intervening-read prims_generated use_gs,Fail -spec@ext_transform_feedback@overflow-edge-cases,Fail -spec@ext_transform_feedback@overflow-edge-cases use_gs,Fail spec@ext_transform_feedback@structs struct-array-elem run,Fail spec@ext_transform_feedback@structs struct-array-elem run interface,Fail spec@ext_transform_feedback@tessellation triangle_fan flat_first,Fail @@ -283,43 +268,6 @@ spec@glsl-1.30@execution@texelfetch fs sampler3d 98x1x9-98x129x9,Fail spec@glsl-1.50@execution@compatibility@vs-gs-texcoord-array-2,Crash spec@glsl-1.50@execution@compatibility@vs-gs-texcoord-array,Crash -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_line_loop ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_line_loop other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_lines_adjacency ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_lines_adjacency other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_lines ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_lines other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_line_strip_adjacency ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_line_strip_adjacency other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_line_strip ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_line_strip other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_points ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_points other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangle_fan ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangle_fan other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangles_adjacency ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangles_adjacency other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangles ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangles other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangle_strip_adjacency ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangle_strip_adjacency other,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangle_strip ffs,Fail -spec@glsl-1.50@execution@geometry@primitive-id-restart gl_triangle_strip other,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_line_loop,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_lines_adjacency,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_lines,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_line_strip_adjacency,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_line_strip,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_points,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_triangle_fan,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_triangles_adjacency,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_triangles,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_triangle_strip_adjacency,Fail -spec@glsl-1.50@execution@geometry@primitive-types gl_triangle_strip,Fail -spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency ffs,Fail -spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip_adjacency other,Fail -spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip ffs,Fail -spec@glsl-1.50@execution@geometry@tri-strip-ordering-with-prim-restart gl_triangle_strip other,Fail spec@glsl-1.50@execution@primitive-id-no-gs-quads,Fail spec@glsl-1.50@execution@primitive-id-no-gs-quad-strip,Fail @@ -404,7 +352,6 @@ spec@!opengl 2.1@pbo,Fail spec@!opengl 2.1@pbo@test_polygon_stip,Fail spec@!opengl 2.1@polygon-stipple-fs,Fail spec@!opengl 3.0@clearbuffer-depth-cs-probe,Timeout -spec@!opengl 3.1@primitive-restart-xfb generated,Fail spec@!opengl 3.2@gl-3.2-adj-prims cull-back pv-first,Fail spec@!opengl 3.2@gl-3.2-adj-prims cull-front pv-first,Fail spec@!opengl 3.2@gl-3.2-adj-prims line cull-back pv-first,Fail diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_query.c b/src/gallium/drivers/freedreno/a6xx/fd6_query.c index 15af1a5..48233ba 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_query.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_query.c @@ -319,7 +319,7 @@ log_counters(struct fd6_primitives_sample *ps) #else static const unsigned counter_count = 1; -static const unsigned counter_base = REG_A6XX_RBBM_PRIMCTR_8_LO; +static const unsigned counter_base = REG_A6XX_RBBM_PRIMCTR_7_LO; static void log_counters(struct fd6_primitives_sample *ps) @@ -366,9 +366,9 @@ primitives_generated_pause(struct fd_acc_query *aq, primitives_relocw(ring, aq, result.generated); primitives_reloc(ring, aq, prim_emitted); primitives_reloc(ring, aq, - prim_stop[(REG_A6XX_RBBM_PRIMCTR_8_LO - counter_base) / 2]) + prim_stop[(REG_A6XX_RBBM_PRIMCTR_7_LO - counter_base) / 2]) primitives_reloc( - ring, aq, prim_start[(REG_A6XX_RBBM_PRIMCTR_8_LO - counter_base) / 2]); + ring, aq, prim_start[(REG_A6XX_RBBM_PRIMCTR_7_LO - counter_base) / 2]); } static void -- 2.7.4