mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 12:18:09 +02:00
i965: Emit writes to viewport index
This variable is handled in a fashion identical to gl_Layer. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
37f65b0751
commit
fceb8b55c0
2 changed files with 7 additions and 3 deletions
|
|
@ -2772,6 +2772,10 @@ vec4_visitor::emit_psiz_and_flags(struct brw_reg reg)
|
|||
emit(MOV(retype(brw_writemask(reg, WRITEMASK_Y), BRW_REGISTER_TYPE_D),
|
||||
src_reg(output_reg[VARYING_SLOT_LAYER])));
|
||||
}
|
||||
if (prog_data->vue_map.slots_valid & VARYING_BIT_VIEWPORT) {
|
||||
emit(MOV(retype(brw_writemask(reg, WRITEMASK_Z), BRW_REGISTER_TYPE_D),
|
||||
src_reg(output_reg[VARYING_SLOT_VIEWPORT])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -60,10 +60,10 @@ brw_compute_vue_map(struct brw_context *brw, struct brw_vue_map *vue_map,
|
|||
vue_map->slots_valid = slots_valid;
|
||||
int i;
|
||||
|
||||
/* gl_Layer doesn't get its own varying slot--it's stored in the virst VUE
|
||||
* slot (VARYING_SLOT_PSIZ).
|
||||
/* gl_Layer and gl_ViewportIndex don't get their own varying slots -- they
|
||||
* are stored in the virst VUE slot (VARYING_SLOT_PSIZ).
|
||||
*/
|
||||
slots_valid &= ~VARYING_BIT_LAYER;
|
||||
slots_valid &= ~(VARYING_BIT_LAYER | VARYING_BIT_VIEWPORT);
|
||||
|
||||
/* Make sure that the values we store in vue_map->varying_to_slot and
|
||||
* vue_map->slot_to_varying won't overflow the signed chars that are used
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue