mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 04:40:09 +01:00
i965: don't intepolate clip distances on pre-GEN6.
On pre-GEN6 chips, the VUE slots set aside for clip distance aren't
actually used, so there is no reason for the clipper to waste time
interpolating them.
When commit 62bad54727 changed the enum
value used to represent these VUE slots, that caused the clipper to
start interpolating them as an accidental side effect. This patch
reverts to the old clipper behavior.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
64ce64a3f8
commit
f02ed012c9
1 changed files with 8 additions and 2 deletions
|
|
@ -160,8 +160,14 @@ void brw_clip_interp_vertex( struct brw_clip_compile *c,
|
|||
brw_MOV(p, deref_4f(dest_ptr, delta), brw_imm_f(1));
|
||||
else
|
||||
brw_MOV(p, deref_4f(dest_ptr, delta), deref_4f(v0_ptr, delta));
|
||||
} else if (vert_result == VERT_RESULT_PSIZ) {
|
||||
/* PSIZ doesn't need interpolation */
|
||||
} else if (vert_result == VERT_RESULT_PSIZ ||
|
||||
vert_result == VERT_RESULT_CLIP_DIST0 ||
|
||||
vert_result == VERT_RESULT_CLIP_DIST1) {
|
||||
/* PSIZ doesn't need interpolation because it isn't used by the
|
||||
* fragment shader. CLIP_DIST0 and CLIP_DIST1 don't need
|
||||
* intepolation because on pre-GEN6, these are just placeholder VUE
|
||||
* slots that don't perform any action.
|
||||
*/
|
||||
} else if (vert_result < VERT_RESULT_MAX) {
|
||||
/* This is a true vertex result (and not a special value for the VUE
|
||||
* header), so interpolate:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue