X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fradeonsi%2Fsi_state.c;h=75507a30cc4e37c068b944fb6cc2165007c559c2;hb=5ef50078fced6331c8731389785762b62262afba;hp=dc89fc583240d2ab29acd9a25c12a4136cdac6ec;hpb=28294acc4d6b63156fcfdedc837107950c395e4b;p=mesa.git diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index dc89fc58324..75507a30cc4 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -740,7 +740,7 @@ static void si_emit_clip_regs(struct si_context *sctx) unsigned total_mask; if (vs->key.opt.clip_disable) { - assert(!info->culldist_writemask); + assert(!info->base.cull_distance_array_size); clipdist_mask = 0; culldist_mask = 0; } @@ -871,6 +871,9 @@ static void *si_create_rs_state(struct pipe_context *ctx, const struct pipe_rast rs->polygon_mode_is_lines = (state->fill_front == PIPE_POLYGON_MODE_LINE && !(state->cull_face & PIPE_FACE_FRONT)) || (state->fill_back == PIPE_POLYGON_MODE_LINE && !(state->cull_face & PIPE_FACE_BACK)); + rs->polygon_mode_is_points = + (state->fill_front == PIPE_POLYGON_MODE_POINT && !(state->cull_face & PIPE_FACE_FRONT)) || + (state->fill_back == PIPE_POLYGON_MODE_POINT && !(state->cull_face & PIPE_FACE_BACK)); rs->pa_sc_line_stipple = state->line_stipple_enable ? S_028A0C_LINE_PATTERN(state->line_stipple_pattern) | S_028A0C_REPEAT_COUNT(state->line_stipple_factor) @@ -1020,7 +1023,8 @@ static void si_bind_rs_state(struct pipe_context *ctx, void *state) old_rs->poly_stipple_enable != rs->poly_stipple_enable || old_rs->poly_smooth != rs->poly_smooth || old_rs->line_smooth != rs->line_smooth || old_rs->clamp_fragment_color != rs->clamp_fragment_color || - old_rs->force_persample_interp != rs->force_persample_interp) + old_rs->force_persample_interp != rs->force_persample_interp || + old_rs->polygon_mode_is_points != rs->polygon_mode_is_points) sctx->do_update_shaders = true; } @@ -3353,7 +3357,7 @@ static bool si_out_of_order_rasterization(struct si_context *sctx) /* The set of PS invocations is always order invariant, * except when early Z/S tests are requested. */ - if (sctx->ps_shader.cso && sctx->ps_shader.cso->info.writes_memory && + if (sctx->ps_shader.cso && sctx->ps_shader.cso->info.base.writes_memory && sctx->ps_shader.cso->info.base.fs.early_fragment_tests && !dsa_order_invariant.pass_set) return false;