mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
iris: fix num viewports to be based on programs
This commit is contained in:
parent
b17215800c
commit
4a94628513
2 changed files with 13 additions and 7 deletions
|
|
@ -443,6 +443,19 @@ update_last_vue_map(struct iris_context *ice)
|
|||
prog_data = ice->shaders.prog[MESA_SHADER_VERTEX]->prog_data;
|
||||
|
||||
struct brw_vue_prog_data *vue_prog_data = (void *) prog_data;
|
||||
struct brw_vue_map *vue_map = &vue_prog_data->vue_map;
|
||||
struct brw_vue_map *old_map = ice->shaders.last_vue_map;
|
||||
const uint64_t changed_slots =
|
||||
(old_map ? old_map->slots_valid : 0ull) ^ vue_map->slots_valid;
|
||||
|
||||
if (changed_slots & VARYING_BIT_VIEWPORT) {
|
||||
// XXX: could use ctx->Const.MaxViewports for old API efficiency
|
||||
ice->state.num_viewports =
|
||||
(vue_map->slots_valid & VARYING_BIT_VIEWPORT) ? IRIS_MAX_VIEWPORTS : 1;
|
||||
ice->state.dirty |= IRIS_DIRTY_CLIP | IRIS_DIRTY_SF_CL_VIEWPORT;
|
||||
// XXX: CC_VIEWPORT?
|
||||
}
|
||||
|
||||
ice->shaders.last_vue_map = &vue_prog_data->vue_map;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1259,13 +1259,6 @@ iris_set_viewport_states(struct pipe_context *ctx,
|
|||
vp_map += GENX(SF_CLIP_VIEWPORT_length);
|
||||
}
|
||||
|
||||
unsigned num_viewports = start_slot + count;
|
||||
|
||||
if (num_viewports != ice->state.num_viewports) {
|
||||
ice->state.num_viewports = num_viewports;
|
||||
ice->state.dirty |= IRIS_DIRTY_CLIP;
|
||||
}
|
||||
|
||||
ice->state.dirty |= IRIS_DIRTY_SF_CL_VIEWPORT;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue