diff options
-rw-r--r-- | src/mesa/drivers/dri/i965/genX_state_upload.c | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c index 62b0eeafdc6..2a5b3648102 100644 --- a/src/mesa/drivers/dri/i965/genX_state_upload.c +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c @@ -2357,7 +2357,7 @@ genX(upload_gs_state)(struct brw_context *brw) brw_gs_prog_data(stage_prog_data); #endif -#if GEN_GEN < 7 +#if GEN_GEN == 6 brw_batch_emit(brw, GENX(3DSTATE_CONSTANT_GS), cgs) { if (active && stage_state->push_const_size != 0) { cgs.Buffer0Valid = true; @@ -2384,8 +2384,8 @@ genX(upload_gs_state)(struct brw_context *brw) gen7_emit_cs_stall_flush(brw); #endif - if (active) { - brw_batch_emit(brw, GENX(3DSTATE_GS), gs) { + brw_batch_emit(brw, GENX(3DSTATE_GS), gs) { + if (active) { INIT_THREAD_DISPATCH_FIELDS(gs, Vertex); #if GEN_GEN >= 7 @@ -2469,13 +2469,12 @@ genX(upload_gs_state)(struct brw_context *brw) gs.VertexURBEntryOutputReadOffset = urb_entry_write_offset; gs.VertexURBEntryOutputLength = MAX2(urb_entry_output_length, 1); #endif - } #if GEN_GEN < 7 - } else if (brw->ff_gs.prog_active) { - /* In gen6, transform feedback for the VS stage is done with an ad-hoc GS - * program. This function provides the needed 3DSTATE_GS for this. - */ - brw_batch_emit(brw, GENX(3DSTATE_GS), gs) { + } else if (brw->ff_gs.prog_active) { + /* In gen6, transform feedback for the VS stage is done with an + * ad-hoc GS program. This function provides the needed 3DSTATE_GS + * for this. + */ gs.KernelStartPointer = KSP(brw, brw->ff_gs.prog_offset); gs.SingleProgramFlow = true; gs.VectorMaskEnable = true; @@ -2490,10 +2489,8 @@ genX(upload_gs_state)(struct brw_context *brw) gs.SVBIPostIncrementValue = brw->ff_gs.prog_data->svbi_postincrement_value; gs.Enable = true; - } #endif - } else { - brw_batch_emit(brw, GENX(3DSTATE_GS), gs) { + } else { gs.StatisticsEnable = true; #if GEN_GEN < 7 gs.RenderingEnabled = true; @@ -2507,7 +2504,8 @@ genX(upload_gs_state)(struct brw_context *brw) #endif } } -#if GEN_GEN < 7 + +#if GEN_GEN == 6 brw->gs.enabled = active; #endif } |