freedreno/a6xx: Fix primitives-generated query
authorRob Clark <robdclark@chromium.org>
Tue, 18 Oct 2022 18:51:49 +0000 (11:51 -0700)
committerMarge Bot <emma+marge@anholt.net>
Wed, 19 Oct 2022 12:23:40 +0000 (12:23 +0000)
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 <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19100>

src/freedreno/ci/freedreno-a630-fails.txt
src/gallium/drivers/freedreno/a6xx/fd6_query.c

index 30af8fd..5bb6077 100644 (file)
@@ -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
index 15af1a5..48233ba 100644 (file)
@@ -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