mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 04:48:08 +02:00
i965: Set the maximum VPIndex
At various stages the hardware clamps the gl_ViewportIndex to these values. Setting them to zero effectively makes gl_ViewportIndex be ignored. This is acutally useful in blorp (so that we don't have to modify all of the viewport / scissor state). v2: Use INTEL_MASK to create GEN6_CLIP_MAX_VP_INDEX_MASK. Suggested by Ken. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
9ef16befd0
commit
37f65b0751
3 changed files with 5 additions and 1 deletions
|
|
@ -1544,6 +1544,7 @@ enum brw_message_target {
|
|||
# define GEN6_CLIP_MIN_POINT_WIDTH_SHIFT 17
|
||||
# define GEN6_CLIP_MAX_POINT_WIDTH_SHIFT 6
|
||||
# define GEN6_CLIP_FORCE_ZERO_RTAINDEX (1 << 5)
|
||||
# define GEN6_CLIP_MAX_VP_INDEX_MASK INTEL_MASK(3, 0)
|
||||
|
||||
#define _3DSTATE_SF 0x7813 /* GEN6+ */
|
||||
/* DW1 (for gen6) */
|
||||
|
|
|
|||
|
|
@ -83,6 +83,8 @@ brw_upload_gs_unit(struct brw_context *brw)
|
|||
if (unlikely(INTEL_DEBUG & DEBUG_STATS))
|
||||
gs->thread4.stats_enable = 1;
|
||||
|
||||
gs->gs6.max_vp_index = brw->ctx.Const.MaxViewports - 1;
|
||||
|
||||
brw->state.dirty.cache |= CACHE_NEW_FF_GS_UNIT;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -121,7 +121,8 @@ upload_clip_state(struct brw_context *brw)
|
|||
dw2);
|
||||
OUT_BATCH(U_FIXED(0.125, 3) << GEN6_CLIP_MIN_POINT_WIDTH_SHIFT |
|
||||
U_FIXED(255.875, 3) << GEN6_CLIP_MAX_POINT_WIDTH_SHIFT |
|
||||
(fb->MaxNumLayers > 0 ? 0 : GEN6_CLIP_FORCE_ZERO_RTAINDEX));
|
||||
(fb->MaxNumLayers > 0 ? 0 : GEN6_CLIP_FORCE_ZERO_RTAINDEX) |
|
||||
((ctx->Const.MaxViewports - 1) & GEN6_CLIP_MAX_VP_INDEX_MASK));
|
||||
ADVANCE_BATCH();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue