i965: Move OPCODE_DDX/DDY to brw_wm_emit.c and make it actually work.
authorEric Anholt <eric@anholt.net>
Fri, 11 Sep 2009 21:09:03 +0000 (14:09 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 11 Sep 2009 21:13:47 +0000 (14:13 -0700)
commit57d16c4cc37689710f951cb13981e2efc160cd23
treedb32d0e4604cb951f2a3ddca51ca558bf236d70b
parenta79eecb9139169fa8c99c0f9cf26db95f3983a36
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.
src/mesa/drivers/dri/i965/brw_wm.h
src/mesa/drivers/dri/i965/brw_wm_emit.c
src/mesa/drivers/dri/i965/brw_wm_fp.c
src/mesa/drivers/dri/i965/brw_wm_glsl.c
src/mesa/drivers/dri/i965/brw_wm_pass1.c