X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fi965%2Fgen8_vs_state.c;h=b7682b553b49bc8b0e6c9c63248e97e5cb12e593;hb=55364ab5b7136e09a61d858f1167dee81e17bd9f;hp=b7af46617391cefd4d75553b8d3a11e1b40f82c7;hpb=a2dd8ea59a59184197ae304d538542f4efb02b1c;p=mesa.git diff --git a/src/mesa/drivers/dri/i965/gen8_vs_state.c b/src/mesa/drivers/dri/i965/gen8_vs_state.c index b7af4661739..b7682b553b4 100644 --- a/src/mesa/drivers/dri/i965/gen8_vs_state.c +++ b/src/mesa/drivers/dri/i965/gen8_vs_state.c @@ -37,7 +37,10 @@ upload_vs_state(struct brw_context *brw) uint32_t floating_point_mode = 0; /* BRW_NEW_VS_PROG_DATA */ - const struct brw_vec4_prog_data *prog_data = &brw->vs.prog_data->base; + const struct brw_vue_prog_data *prog_data = &brw->vs.prog_data->base; + + assert(prog_data->dispatch_mode == DISPATCH_MODE_SIMD8 || + prog_data->dispatch_mode == DISPATCH_MODE_4X2_DUAL_OBJECT); if (prog_data->base.use_alt_mode) floating_point_mode = GEN6_VS_FLOATING_POINT_MODE_ALT; @@ -55,7 +58,7 @@ upload_vs_state(struct brw_context *brw) if (prog_data->base.total_scratch) { OUT_RELOC64(stage_state->scratch_bo, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, - ffs(prog_data->base.total_scratch) - 11); + ffs(stage_state->per_thread_scratch) - 11); } else { OUT_BATCH(0); OUT_BATCH(0); @@ -66,12 +69,16 @@ upload_vs_state(struct brw_context *brw) (prog_data->urb_read_length << GEN6_VS_URB_READ_LENGTH_SHIFT) | (0 << GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT)); + uint32_t simd8_enable = prog_data->dispatch_mode == DISPATCH_MODE_SIMD8 ? + GEN8_VS_SIMD8_ENABLE : 0; OUT_BATCH(((brw->max_vs_threads - 1) << HSW_VS_MAX_THREADS_SHIFT) | GEN6_VS_STATISTICS_ENABLE | + simd8_enable | GEN6_VS_ENABLE); /* _NEW_TRANSFORM */ - OUT_BATCH((ctx->Transform.ClipPlanesEnabled << + OUT_BATCH(prog_data->cull_distance_mask | + (ctx->Transform.ClipPlanesEnabled << GEN8_VS_USER_CLIP_DISTANCE_SHIFT)); ADVANCE_BATCH(); } @@ -80,6 +87,7 @@ const struct brw_tracked_state gen8_vs_state = { .dirty = { .mesa = _NEW_TRANSFORM, .brw = BRW_NEW_BATCH | + BRW_NEW_BLORP | BRW_NEW_CONTEXT | BRW_NEW_VS_PROG_DATA, },