Audit/fixes for NV/ARB TEX, TXP, TXB, TXD instructions.
Some texture instructions were using wrong LOD.
Fixed interpolate_texcoords() so it doesn't do texcoord projective division
when using a fragment program. The TXP instruction does that.
diff --git a/src/mesa/shader/nvfragparse.c b/src/mesa/shader/nvfragparse.c
index bdc2c7e..264c170 100644
--- a/src/mesa/shader/nvfragparse.c
+++ b/src/mesa/shader/nvfragparse.c
@@ -124,7 +124,7 @@
{ "SUB", FP_OPCODE_SUB, INPUT_2V, OUTPUT_V, _R | _H | _X | _C | _S },
{ "TEX", FP_OPCODE_TEX, INPUT_1V_T, OUTPUT_V, _C | _S },
{ "TXD", FP_OPCODE_TXD, INPUT_3V_T, OUTPUT_V, _C | _S },
- { "TXP", FP_OPCODE_TXP, INPUT_1V_T, OUTPUT_V, _C | _S },
+ { "TXP", FP_OPCODE_TXP_NV, INPUT_1V_T, OUTPUT_V, _C | _S },
{ "UP2H", FP_OPCODE_UP2H, INPUT_1S, OUTPUT_V, _C | _S },
{ "UP2US", FP_OPCODE_UP2US, INPUT_1S, OUTPUT_V, _C | _S },
{ "UP4B", FP_OPCODE_UP4B, INPUT_1S, OUTPUT_V, _C | _S },
diff --git a/src/mesa/shader/nvfragprog.h b/src/mesa/shader/nvfragprog.h
index 53f4bf9..ae26a7b 100644
--- a/src/mesa/shader/nvfragprog.h
+++ b/src/mesa/shader/nvfragprog.h
@@ -108,7 +108,8 @@
FP_OPCODE_TEX,
FP_OPCODE_TXB, /* ARB_f_p only */
FP_OPCODE_TXD, /* NV_f_p only */
- FP_OPCODE_TXP,
+ FP_OPCODE_TXP, /* ARB_f_p only */
+ FP_OPCODE_TXP_NV, /* NV_f_p only */
FP_OPCODE_UP2H, /* NV_f_p only */
FP_OPCODE_UP2US, /* NV_f_p only */
FP_OPCODE_UP4B, /* NV_f_p only */