diff options
author | Topi Pohjolainen <[email protected]> | 2016-03-31 10:19:24 +0300 |
---|---|---|
committer | Topi Pohjolainen <[email protected]> | 2016-04-21 08:32:12 +0300 |
commit | 4f1d9f2879e81acb59102ef24dba68b0d3d3af66 (patch) | |
tree | 0fd54077ec5b8e8265a6050f8ff3aa25c2ea9be3 | |
parent | 0295db2a8ba9ceccffc0195e93e2657103c3c233 (diff) |
i965/gen9: Use correct size for DS_STATE
Signed-off-by: Topi Pohjolainen <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/gen8_ds_state.c | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/gen8_ds_state.c b/src/mesa/drivers/dri/i965/gen8_ds_state.c index d91eb77e631..976e3ccdf0d 100644 --- a/src/mesa/drivers/dri/i965/gen8_ds_state.c +++ b/src/mesa/drivers/dri/i965/gen8_ds_state.c @@ -38,10 +38,11 @@ gen8_upload_ds_state(struct brw_context *brw) const struct brw_tes_prog_data *tes_prog_data = brw->tes.prog_data; const struct brw_vue_prog_data *vue_prog_data = &tes_prog_data->base; const struct brw_stage_prog_data *prog_data = &vue_prog_data->base; + const int ds_pkt_len = brw->gen >= 9 ? 11 : 9; if (active) { - BEGIN_BATCH(9); - OUT_BATCH(_3DSTATE_DS << 16 | (9 - 2)); + BEGIN_BATCH(ds_pkt_len); + OUT_BATCH(_3DSTATE_DS << 16 | (ds_pkt_len - 2)); OUT_BATCH(stage_state->prog_offset); OUT_BATCH(0); OUT_BATCH(SET_FIELD(DIV_ROUND_UP(stage_state->sampler_count, 4), @@ -70,10 +71,16 @@ gen8_upload_ds_state(struct brw_context *brw) GEN7_DS_COMPUTE_W_COORDINATE_ENABLE : 0)); OUT_BATCH(SET_FIELD(ctx->Transform.ClipPlanesEnabled, GEN8_DS_USER_CLIP_DISTANCE)); + + if (brw->gen >= 9) { + OUT_BATCH(0); + OUT_BATCH(0); + } + ADVANCE_BATCH(); } else { - BEGIN_BATCH(9); - OUT_BATCH(_3DSTATE_DS << 16 | (9 - 2)); + BEGIN_BATCH(ds_pkt_len); + OUT_BATCH(_3DSTATE_DS << 16 | (ds_pkt_len - 2)); OUT_BATCH(0); OUT_BATCH(0); OUT_BATCH(0); @@ -82,8 +89,15 @@ gen8_upload_ds_state(struct brw_context *brw) OUT_BATCH(0); OUT_BATCH(0); OUT_BATCH(0); + + if (brw->gen >= 9) { + OUT_BATCH(0); + OUT_BATCH(0); + } + ADVANCE_BATCH(); } + brw->tes.enabled = active; } |