mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-26 03:48:12 +02:00
i965/gen7: Fix shadow sampling in the old brw_wm_emit backend.
On Ivybridge, the shadow comparitor goes in the first slot, rather than
at the end. It's not necessary to send u, v, and r.
Fixes tests texturing/texdepth and glean/fbo.
NOTE: This is a candidate for the 7.11 branch.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
(cherry picked from commit 572f631895)
This commit is contained in:
parent
67aa20d9d5
commit
66b41af391
1 changed files with 11 additions and 4 deletions
|
|
@ -1094,9 +1094,16 @@ void emit_tex(struct brw_wm_compile *c,
|
|||
if (intel->gen < 5 && c->dispatch_width == 8)
|
||||
nr_texcoords = 3;
|
||||
|
||||
/* For shadow comparisons, we have to supply u,v,r. */
|
||||
if (shadow)
|
||||
nr_texcoords = 3;
|
||||
if (shadow) {
|
||||
if (intel->gen < 7) {
|
||||
/* For shadow comparisons, we have to supply u,v,r. */
|
||||
nr_texcoords = 3;
|
||||
} else {
|
||||
/* On Ivybridge, the shadow comparitor comes first. Just load it. */
|
||||
brw_MOV(p, brw_message_reg(cur_mrf), arg[2]);
|
||||
cur_mrf += mrf_per_channel;
|
||||
}
|
||||
}
|
||||
|
||||
/* Emit the texcoords. */
|
||||
for (i = 0; i < nr_texcoords; i++) {
|
||||
|
|
@ -1113,7 +1120,7 @@ void emit_tex(struct brw_wm_compile *c,
|
|||
}
|
||||
|
||||
/* Fill in the shadow comparison reference value. */
|
||||
if (shadow) {
|
||||
if (shadow && intel->gen < 7) {
|
||||
if (intel->gen >= 5) {
|
||||
/* Fill in the cube map array index value. */
|
||||
brw_MOV(p, brw_message_reg(cur_mrf), brw_imm_f(0));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue