mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-09 18:30:29 +01:00
r300: Fix WRITEMASK handling when writing to result.depth
This is a necessary change to emit the right instructions when writing to result.depth. However, even with this test, Z-write doesn't work properly, and I don't fully understand why. In addition to this, we'll at least have to disable early-Z, but even that doesn't seem to be enough.
This commit is contained in:
parent
b645e8c96d
commit
c4bf863f4c
1 changed files with 8 additions and 3 deletions
|
|
@ -1304,9 +1304,14 @@ static void emit_arith(struct r300_fragment_program *rp,
|
|||
argc = r300_fpop[op].argc;
|
||||
|
||||
if (REG_GET_TYPE(dest) == REG_TYPE_OUTPUT &&
|
||||
REG_GET_INDEX(dest) == FRAG_RESULT_DEPR)
|
||||
mask &= ~WRITEMASK_XYZ;
|
||||
|
||||
REG_GET_INDEX(dest) == FRAG_RESULT_DEPR) {
|
||||
if (mask & WRITEMASK_Z) {
|
||||
mask = WRITEMASK_W;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
emit_vop = GL_FALSE;
|
||||
emit_sop = GL_FALSE;
|
||||
if ((mask & WRITEMASK_XYZ) || vop == R300_FPI0_OUTC_DP3)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue