panfrost: Identify MALI_OCCLUSION_PRECISE bit
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Thu, 14 Feb 2019 02:44:03 +0000 (02:44 +0000)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Fri, 15 Feb 2019 07:45:56 +0000 (07:45 +0000)
Setting this is required for desktop-style occlusion queries.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
src/gallium/drivers/panfrost/include/panfrost-job.h
src/gallium/drivers/panfrost/pan_context.c

index 3b51fcf..e11f439 100644 (file)
@@ -69,14 +69,16 @@ enum mali_draw_mode {
 
 /* Applies to tiler_gl_enables */
 
-#define MALI_CULL_FACE_BACK  0x80
-#define MALI_CULL_FACE_FRONT 0x40
 
-#define MALI_FRONT_FACE(v) (v << 5)
+#define MALI_OCCLUSION_QUERY    (1 << 3)
+#define MALI_OCCLUSION_PRECISE  (1 << 4)
+
+#define MALI_FRONT_FACE(v)      (v << 5)
 #define MALI_CCW (0)
 #define MALI_CW  (1)
 
-#define MALI_OCCLUSION_BOOLEAN 0x8
+#define MALI_CULL_FACE_FRONT    (1 << 6)
+#define MALI_CULL_FACE_BACK     (1 << 7)
 
 /* TODO: Might this actually be a finer bitfield? */
 #define MALI_DEPTH_STENCIL_ENABLE 0x6400
index 44c0ea3..368b3b8 100644 (file)
@@ -1105,7 +1105,7 @@ panfrost_emit_for_draw(struct panfrost_context *ctx, bool with_vertex_data)
         }
 
         if (ctx->occlusion_query) {
-                ctx->payload_tiler.gl_enables |= MALI_OCCLUSION_BOOLEAN;
+                ctx->payload_tiler.gl_enables |= MALI_OCCLUSION_QUERY | MALI_OCCLUSION_PRECISE;
                 ctx->payload_tiler.postfix.occlusion_counter = ctx->occlusion_query->transfer.gpu;
         }