[Mesa-dev] [PATCH 1/2] i965/state: Set CullTestEnableBitmask based on the last geometry stage

Jason Ekstrand jason at jlekstrand.net
Sat Oct 27 21:34:41 UTC 2018


Instead of hard-coding it to look at the VS stage, look at whatever the
last geometry stage is.

Cc: mesa-stable at lists.freedesktop.org
---
 src/mesa/drivers/dri/i965/genX_state_upload.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c
index 740cb0c4d2e..56fa5969725 100644
--- a/src/mesa/drivers/dri/i965/genX_state_upload.c
+++ b/src/mesa/drivers/dri/i965/genX_state_upload.c
@@ -1458,6 +1458,17 @@ genX(upload_clip_state)(struct brw_context *brw)
    struct brw_wm_prog_data *wm_prog_data =
       brw_wm_prog_data(brw->wm.base.prog_data);
 
+#if GEN_GEN < 8
+   /* BRW_NEW_VS_PROG_DATA | BRW_NEW_TES_PROG_DATA | BRW_NEW_GS_PROG_DATA */
+   const struct brw_vue_prog_data *vue_prog_data;
+   if (brw->gs.base.prog_data)
+      vue_prog_data = brw_vue_prog_data(brw->gs.base.prog_data);
+   else if (brw->tes.base.prog_data)
+      vue_prog_data = brw_vue_prog_data(brw->tes.base.prog_data);
+   else
+      vue_prog_data = brw_vue_prog_data(brw->vs.base.prog_data);
+#endif
+
    brw_batch_emit(brw, GENX(3DSTATE_CLIP), clip) {
       clip.StatisticsEnable = !brw->meta_in_progress;
 
@@ -1493,7 +1504,7 @@ genX(upload_clip_state)(struct brw_context *brw)
 
 #if GEN_GEN < 8
       clip.UserClipDistanceCullTestEnableBitmask =
-         brw_vue_prog_data(brw->vs.base.prog_data)->cull_distance_mask;
+         vue_prog_data->cull_distance_mask;
 
       clip.ViewportZClipTestEnable = !(ctx->Transform.DepthClampNear &&
                                        ctx->Transform.DepthClampFar);
@@ -1564,6 +1575,7 @@ static const struct brw_tracked_state genX(clip_state) = {
       .brw   = BRW_NEW_BLORP |
                BRW_NEW_CONTEXT |
                BRW_NEW_FS_PROG_DATA |
+               BRW_NEW_TES_PROG_DATA |
                BRW_NEW_GS_PROG_DATA |
                BRW_NEW_VS_PROG_DATA |
                BRW_NEW_META_IN_PROGRESS |
-- 
2.19.1



More information about the mesa-dev mailing list