diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_clip_state.c | 11 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_sol_state.c | 7 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/gen7_clip_state.c b/src/mesa/drivers/dri/i965/gen7_clip_state.c index 7c9f6c1a4c8..aae78953a81 100644 --- a/src/mesa/drivers/dri/i965/gen7_clip_state.c +++ b/src/mesa/drivers/dri/i965/gen7_clip_state.c @@ -102,6 +102,13 @@ upload_clip_state(struct brw_context *brw) dw2 |= GEN6_CLIP_GB_TEST; } + /* BRW_NEW_RASTERIZER_DISCARD */ + if (ctx->RasterDiscard) { + dw2 |= GEN6_CLIP_MODE_REJECT_ALL; + perf_debug("Rasterizer discard is currently implemented via the clipper; " + "using the SOL unit may be faster."); + } + BEGIN_BATCH(4); OUT_BATCH(_3DSTATE_CLIP << 16 | (4 - 2)); OUT_BATCH(dw1); @@ -122,7 +129,9 @@ const struct brw_tracked_state gen7_clip_state = { _NEW_POLYGON | _NEW_LIGHT | _NEW_TRANSFORM), - .brw = BRW_NEW_CONTEXT | BRW_NEW_META_IN_PROGRESS, + .brw = BRW_NEW_CONTEXT | + BRW_NEW_META_IN_PROGRESS | + BRW_NEW_RASTERIZER_DISCARD, .cache = CACHE_NEW_WM_PROG }, .emit = upload_clip_state, diff --git a/src/mesa/drivers/dri/i965/gen7_sol_state.c b/src/mesa/drivers/dri/i965/gen7_sol_state.c index f5703362968..1e484dc1bcf 100644 --- a/src/mesa/drivers/dri/i965/gen7_sol_state.c +++ b/src/mesa/drivers/dri/i965/gen7_sol_state.c @@ -195,10 +195,6 @@ upload_3dstate_streamout(struct brw_context *brw, bool active, uint32_t dw1 = 0, dw2 = 0; int i; - /* BRW_NEW_RASTERIZER_DISCARD */ - if (ctx->RasterDiscard) - dw1 |= SO_RENDERING_DISABLE; - if (active) { int urb_entry_read_offset = 0; int urb_entry_read_length = (vue_map->num_slots + 1) / 2 - @@ -267,8 +263,7 @@ const struct brw_tracked_state gen7_sol_state = { .brw = (BRW_NEW_BATCH | BRW_NEW_VERTEX_PROGRAM | BRW_NEW_VUE_MAP_GEOM_OUT | - BRW_NEW_TRANSFORM_FEEDBACK | - BRW_NEW_RASTERIZER_DISCARD) + BRW_NEW_TRANSFORM_FEEDBACK) }, .emit = upload_sol_state, }; |