diff options
author | Eric Anholt <[email protected]> | 2009-09-11 14:09:03 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2009-09-11 14:13:47 -0700 |
commit | 57d16c4cc37689710f951cb13981e2efc160cd23 (patch) | |
tree | db32d0e4604cb951f2a3ddca51ca558bf236d70b /src/mesa/drivers/dri/i965/brw_wm_pass1.c | |
parent | a79eecb9139169fa8c99c0f9cf26db95f3983a36 (diff) |
i965: Move OPCODE_DDX/DDY to brw_wm_emit.c and make it actually work.
Previously, it was trying to mess around with the varying's
WM setup data to produce a result. Along with not actually working when
passed a varying, this wouldn't work if you did dFd[xy]() on a temporary.
Instead, just calculate the derivative using the neighbors in the subspan.
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm_pass1.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm_pass1.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_pass1.c b/src/mesa/drivers/dri/i965/brw_wm_pass1.c index 9c68bfd78b2..b4493940292 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_pass1.c +++ b/src/mesa/drivers/dri/i965/brw_wm_pass1.c @@ -178,6 +178,11 @@ void brw_wm_pass1( struct brw_wm_compile *c ) read1 = writemask; break; + case OPCODE_DDX: + case OPCODE_DDY: + read0 = writemask; + break; + case OPCODE_MAD: case OPCODE_CMP: case OPCODE_LRP: |