summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2009-11-20 17:09:03 -0500
committerKristian Høgsberg <krh@bitplanet.net>2009-11-20 17:09:03 -0500
commit10ce0ec18806ae32a5d615c693626a085b0dd7b8 (patch)
tree0511e492b1235ef8d45cb7997035421c409a26b5
parent1b064cc428f03f753699d4d9fbe60453891a8529 (diff)
parentb4312b639d56a6cad78953af0fd4f863182007e3 (diff)
downloadlibdrm-10ce0ec18806ae32a5d615c693626a085b0dd7b8.tar.gz
libdrm-10ce0ec18806ae32a5d615c693626a085b0dd7b8.tar.bz2
libdrm-10ce0ec18806ae32a5d615c693626a085b0dd7b8.zip
Merge remote branch 'origin/master' into libdrm
-rw-r--r--intel/intel_bufmgr.c7
-rw-r--r--intel/intel_bufmgr.h1
-rw-r--r--intel/intel_bufmgr_gem.c22
-rw-r--r--intel/intel_bufmgr_priv.h14
-rw-r--r--nouveau/nouveau_class.h186
-rw-r--r--radeon/radeon_bo.h14
6 files changed, 206 insertions, 38 deletions
diff --git a/intel/intel_bufmgr.c b/intel/intel_bufmgr.c
index 2469cd84..61817739 100644
--- a/intel/intel_bufmgr.c
+++ b/intel/intel_bufmgr.c
@@ -224,6 +224,13 @@ int drm_intel_bo_busy(drm_intel_bo *bo)
return 0;
}
+int drm_intel_bo_madvise(drm_intel_bo *bo, int madv)
+{
+ if (bo->bufmgr->bo_madvise)
+ return bo->bufmgr->bo_madvise(bo, madv);
+ return -1;
+}
+
int drm_intel_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo)
{
return bo->bufmgr->bo_references(bo, target_bo);
diff --git a/intel/intel_bufmgr.h b/intel/intel_bufmgr.h
index 3801ff31..40984d32 100644
--- a/intel/intel_bufmgr.h
+++ b/intel/intel_bufmgr.h
@@ -119,6 +119,7 @@ int drm_intel_bo_get_tiling(drm_intel_bo *bo, uint32_t * tiling_mode,
uint32_t * swizzle_mode);
int drm_intel_bo_flink(drm_intel_bo *bo, uint32_t * name);
int drm_intel_bo_busy(drm_intel_bo *bo);
+int drm_intel_bo_madvise(drm_intel_bo *bo, int madv);
int drm_intel_bo_disable_reuse(drm_intel_bo *bo);
int drm_intel_bo_references(drm_intel_bo *bo, drm_intel_bo *target_bo);
diff --git a/intel/intel_bufmgr_gem.c b/intel/intel_bufmgr_gem.c
index 87795f33..9db7bfeb 100644
--- a/intel/intel_bufmgr_gem.c
+++ b/intel/intel_bufmgr_gem.c
@@ -398,8 +398,8 @@ drm_intel_gem_bo_busy(drm_intel_bo *bo)
}
static int
-drm_intel_gem_bo_madvise(drm_intel_bufmgr_gem *bufmgr_gem,
- drm_intel_bo_gem *bo_gem, int state)
+drm_intel_gem_bo_madvise_internal(drm_intel_bufmgr_gem *bufmgr_gem,
+ drm_intel_bo_gem *bo_gem, int state)
{
struct drm_i915_gem_madvise madv;
@@ -411,6 +411,15 @@ drm_intel_gem_bo_madvise(drm_intel_bufmgr_gem *bufmgr_gem,
return madv.retained;
}
+static int
+drm_intel_gem_bo_madvise(drm_intel_bo *bo, int madv)
+{
+ return drm_intel_gem_bo_madvise_internal
+ ((drm_intel_bufmgr_gem *) bo->bufmgr,
+ (drm_intel_bo_gem *) bo,
+ madv);
+}
+
/* drop the oldest entries that have been purged by the kernel */
static void
drm_intel_gem_bo_cache_purge_bucket(drm_intel_bufmgr_gem *bufmgr_gem,
@@ -421,7 +430,7 @@ drm_intel_gem_bo_cache_purge_bucket(drm_intel_bufmgr_gem *bufmgr_gem,
bo_gem = DRMLISTENTRY(drm_intel_bo_gem,
bucket->head.next, head);
- if (drm_intel_gem_bo_madvise
+ if (drm_intel_gem_bo_madvise_internal
(bufmgr_gem, bo_gem, I915_MADV_DONTNEED))
break;
@@ -493,7 +502,7 @@ retry:
}
if (alloc_from_cache) {
- if (!drm_intel_gem_bo_madvise
+ if (!drm_intel_gem_bo_madvise_internal
(bufmgr_gem, bo_gem, I915_MADV_WILLNEED)) {
drm_intel_gem_bo_free(&bo_gem->bo);
drm_intel_gem_bo_cache_purge_bucket(bufmgr_gem,
@@ -742,8 +751,8 @@ drm_intel_gem_bo_unreference_final(drm_intel_bo *bo, time_t time)
DRMLISTADDTAIL(&bo_gem->head, &bucket->head);
- drm_intel_gem_bo_madvise(bufmgr_gem, bo_gem,
- I915_MADV_DONTNEED);
+ drm_intel_gem_bo_madvise_internal(bufmgr_gem, bo_gem,
+ I915_MADV_DONTNEED);
drm_intel_gem_cleanup_bo_cache(bufmgr_gem, time);
} else {
drm_intel_gem_bo_free(bo);
@@ -1703,6 +1712,7 @@ drm_intel_bufmgr_gem_init(int fd, int batch_size)
bufmgr_gem->bufmgr.bo_flink = drm_intel_gem_bo_flink;
bufmgr_gem->bufmgr.bo_exec = drm_intel_gem_bo_exec;
bufmgr_gem->bufmgr.bo_busy = drm_intel_gem_bo_busy;
+ bufmgr_gem->bufmgr.bo_madvise = drm_intel_gem_bo_madvise;
bufmgr_gem->bufmgr.destroy = drm_intel_bufmgr_gem_destroy;
bufmgr_gem->bufmgr.debug = 0;
bufmgr_gem->bufmgr.check_aperture_space =
diff --git a/intel/intel_bufmgr_priv.h b/intel/intel_bufmgr_priv.h
index 475c402f..febee0f7 100644
--- a/intel/intel_bufmgr_priv.h
+++ b/intel/intel_bufmgr_priv.h
@@ -216,6 +216,20 @@ struct _drm_intel_bufmgr {
*/
int (*bo_busy) (drm_intel_bo *bo);
+ /**
+ * Specify the volatility of the buffer.
+ * \param bo Buffer to create a name for
+ * \param madv The purgeable status
+ *
+ * Use I915_MADV_DONTNEED to mark the buffer as purgeable, and it will be
+ * reclaimed under memory pressure. If you subsequently require the buffer,
+ * then you must pass I915_MADV_WILLNEED to mark the buffer as required.
+ *
+ * Returns 1 if the buffer was retained, or 0 if it was discarded whilst
+ * marked as I915_MADV_DONTNEED.
+ */
+ int (*bo_madvise) (drm_intel_bo *bo, int madv);
+
int (*check_aperture_space) (drm_intel_bo ** bo_array, int count);
/**
diff --git a/nouveau/nouveau_class.h b/nouveau/nouveau_class.h
index c7dda02e..0b8a6f01 100644
--- a/nouveau/nouveau_class.h
+++ b/nouveau/nouveau_class.h
@@ -1740,10 +1740,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV04_DX6_MULTITEX_TRIANGLE_TLMTVERTEX_DRAWPRIMITIVE_I5_MASK 0x00f00000
-#define NV10_DX5_TEXTURED_TRIANGLE 0x00000094
-
-
-
#define NV10TCL 0x00000056
#define NV10TCL_NOP 0x00000100
@@ -1900,6 +1896,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE1_NV 0x0000000d
#define NV10TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV10TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV10TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE (1 << 4)
#define NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE 0x00000000
#define NV10TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -1927,6 +1925,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE1_NV 0x00000d00
#define NV10TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV10TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV10TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE (1 << 12)
#define NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE 0x00000000
#define NV10TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -1954,6 +1954,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE1_NV 0x000d0000
#define NV10TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV10TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV10TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE (1 << 20)
#define NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE 0x00000000
#define NV10TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -1981,6 +1983,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE1_NV 0x0d000000
#define NV10TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV10TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV10TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE (1 << 28)
#define NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE 0x00000000
#define NV10TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -2010,6 +2014,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_RGB_D_INPUT_SPARE1_NV 0x0000000d
#define NV10TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV10TCL_RC_IN_RGB_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV10TCL_RC_IN_RGB_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE (1 << 4)
#define NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -2037,6 +2043,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_RGB_C_INPUT_SPARE1_NV 0x00000d00
#define NV10TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV10TCL_RC_IN_RGB_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV10TCL_RC_IN_RGB_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE (1 << 12)
#define NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -2064,6 +2072,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_RGB_B_INPUT_SPARE1_NV 0x000d0000
#define NV10TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV10TCL_RC_IN_RGB_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV10TCL_RC_IN_RGB_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE (1 << 20)
#define NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -2091,6 +2101,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_IN_RGB_A_INPUT_SPARE1_NV 0x0d000000
#define NV10TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV10TCL_RC_IN_RGB_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV10TCL_RC_IN_RGB_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE (1 << 28)
#define NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -2130,6 +2142,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1_NV 0x0000000d
#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F_NV 0x0000000f
+#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2_ARB 0x0000000a
+#define NV10TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3_ARB 0x0000000b
#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT 4
#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK 0x000000f0
#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO 0x00000000
@@ -2144,6 +2158,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV 0x000000d0
#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000000e0
#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV 0x000000f0
+#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2_ARB 0x000000a0
+#define NV10TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3_ARB 0x000000b0
#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT 8
#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK 0x00000f00
#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO 0x00000000
@@ -2158,6 +2174,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x00000d00
#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV 0x00000f00
+#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2_ARB 0x00000a00
+#define NV10TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3_ARB 0x00000b00
#define NV10TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT (1 << 12)
#define NV10TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT (1 << 13)
#define NV10TCL_RC_OUT_ALPHA_MUX_SUM (1 << 14)
@@ -2186,6 +2204,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1_NV 0x0000000d
#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F_NV 0x0000000f
+#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2_ARB 0x0000000a
+#define NV10TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3_ARB 0x0000000b
#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT 4
#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_ZERO 0x00000000
@@ -2200,6 +2220,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV 0x000000d0
#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000000e0
#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000000f0
+#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2_ARB 0x000000a0
+#define NV10TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3_ARB 0x000000b0
#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT 8
#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_MASK 0x00000f00
#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO 0x00000000
@@ -2214,6 +2236,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV 0x00000d00
#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV 0x00000f00
+#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2_ARB 0x00000a00
+#define NV10TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3_ARB 0x00000b00
#define NV10TCL_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
#define NV10TCL_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
#define NV10TCL_RC_OUT_RGB_MUX_SUM (1 << 14)
@@ -2243,6 +2267,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_FINAL0_D_INPUT_SPARE1_NV 0x0000000d
#define NV10TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV10TCL_RC_FINAL0_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV10TCL_RC_FINAL0_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV10TCL_RC_FINAL0_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV10TCL_RC_FINAL0_D_COMPONENT_USAGE (1 << 4)
#define NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -2270,6 +2296,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_FINAL0_C_INPUT_SPARE1_NV 0x00000d00
#define NV10TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV10TCL_RC_FINAL0_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV10TCL_RC_FINAL0_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV10TCL_RC_FINAL0_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV10TCL_RC_FINAL0_C_COMPONENT_USAGE (1 << 12)
#define NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -2297,6 +2325,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_FINAL0_B_INPUT_SPARE1_NV 0x000d0000
#define NV10TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV10TCL_RC_FINAL0_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV10TCL_RC_FINAL0_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV10TCL_RC_FINAL0_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV10TCL_RC_FINAL0_B_COMPONENT_USAGE (1 << 20)
#define NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -2324,6 +2354,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_FINAL0_A_INPUT_SPARE1_NV 0x0d000000
#define NV10TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV10TCL_RC_FINAL0_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV10TCL_RC_FINAL0_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV10TCL_RC_FINAL0_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV10TCL_RC_FINAL0_A_COMPONENT_USAGE (1 << 28)
#define NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -2353,6 +2385,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_FINAL1_G_INPUT_SPARE1_NV 0x00000d00
#define NV10TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV10TCL_RC_FINAL1_G_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV10TCL_RC_FINAL1_G_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV10TCL_RC_FINAL1_G_INPUT_TEXTURE3_ARB 0x00000b00
#define NV10TCL_RC_FINAL1_G_COMPONENT_USAGE (1 << 12)
#define NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA 0x00001000
@@ -2380,6 +2414,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_FINAL1_F_INPUT_SPARE1_NV 0x000d0000
#define NV10TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV10TCL_RC_FINAL1_F_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV10TCL_RC_FINAL1_F_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV10TCL_RC_FINAL1_F_INPUT_TEXTURE3_ARB 0x000b0000
#define NV10TCL_RC_FINAL1_F_COMPONENT_USAGE (1 << 20)
#define NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA 0x00100000
@@ -2407,6 +2443,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_RC_FINAL1_E_INPUT_SPARE1_NV 0x0d000000
#define NV10TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV10TCL_RC_FINAL1_E_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV10TCL_RC_FINAL1_E_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV10TCL_RC_FINAL1_E_INPUT_TEXTURE3_ARB 0x0b000000
#define NV10TCL_RC_FINAL1_E_COMPONENT_USAGE (1 << 28)
#define NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB 0x00000000
#define NV10TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA 0x10000000
@@ -2702,10 +2740,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R 0x000006c4
#define NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G 0x000006c8
#define NV10TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B 0x000006cc
-#define NV10TCL_VIEWPORT_SCALE_X 0x000006e8
-#define NV10TCL_VIEWPORT_SCALE_Y 0x000006ec
-#define NV10TCL_VIEWPORT_SCALE_Z 0x000006f0
-#define NV10TCL_VIEWPORT_SCALE_W 0x000006f4
+#define NV10TCL_VIEWPORT_TRANSLATE_X 0x000006e8
+#define NV10TCL_VIEWPORT_TRANSLATE_Y 0x000006ec
+#define NV10TCL_VIEWPORT_TRANSLATE_Z 0x000006f0
+#define NV10TCL_VIEWPORT_TRANSLATE_W 0x000006f4
#define NV10TCL_POINT_PARAMETER(x) (0x000006f8+((x)*4))
#define NV10TCL_POINT_PARAMETER__SIZE 0x00000008
#define NV10TCL_LIGHT_FRONT_SIDE_PRODUCT_AMBIENT_R(x) (0x00000800+((x)*128))
@@ -2854,16 +2892,19 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV10TCL_VERTEX_WGH_1F 0x00000ce4
#define NV10TCL_EDGEFLAG_ENABLE 0x00000cec
#define NV10TCL_VERTEX_ARRAY_VALIDATE 0x00000cf0
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_OFFSET(x) (0x00000d00+((x)*8))
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_OFFSET__SIZE 0x00000008
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT(x) (0x00000d04+((x)*8))
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT__SIZE 0x00000008
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_TYPE_SHIFT 0
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_TYPE_MASK 0x0000000f
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_FIELDS_SHIFT 4
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_FIELDS_MASK 0x000000f0
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_STRIDE_SHIFT 8
-#define NV10TCL_VERTEX_ARRAY_ATTRIB_FORMAT_STRIDE_MASK 0x0000ff00
+#define NV10TCL_VTXBUF_ADDRESS(x) (0x00000d00+((x)*8))
+#define NV10TCL_VTXBUF_ADDRESS__SIZE 0x00000008
+#define NV10TCL_VTXFMT(x) (0x00000d04+((x)*8))
+#define NV10TCL_VTXFMT__SIZE 0x00000008
+#define NV10TCL_VTXFMT_TYPE_SHIFT 0
+#define NV10TCL_VTXFMT_TYPE_MASK 0x0000000f
+#define NV10TCL_VTXFMT_TYPE_UBYTE 0x00000000
+#define NV10TCL_VTXFMT_TYPE_USHORT 0x00000001
+#define NV10TCL_VTXFMT_TYPE_FLOAT 0x00000002
+#define NV10TCL_VTXFMT_FIELDS_SHIFT 4
+#define NV10TCL_VTXFMT_FIELDS_MASK 0x000000f0
+#define NV10TCL_VTXFMT_STRIDE_SHIFT 8
+#define NV10TCL_VTXFMT_STRIDE_MASK 0x0000ff00
#define NV10TCL_VERTEX_ARRAY_OFFSET_POS 0x00000d00
#define NV10TCL_VERTEX_ARRAY_FORMAT_POS 0x00000d04
#define NV10TCL_VERTEX_ARRAY_FORMAT_POS_TYPE_SHIFT 0
@@ -3263,11 +3304,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#define NV10_DX5_TEXTURE_TRIANGLE 0x00000094
+#define NV10_DX5_TEXTURED_TRIANGLE 0x00000094
-#define NV10_DX6_MULTI_TEXTURE_TRIANGLE 0x00000095
+#define NV10_DX6_MULTITEX_TRIANGLE 0x00000095
@@ -3353,6 +3394,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE1_NV 0x0000000d
#define NV20TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV20TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV20TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE (1 << 4)
#define NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE 0x00000000
#define NV20TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -3380,6 +3423,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE1_NV 0x00000d00
#define NV20TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV20TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV20TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE (1 << 12)
#define NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE 0x00000000
#define NV20TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -3407,6 +3452,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE1_NV 0x000d0000
#define NV20TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV20TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV20TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE (1 << 20)
#define NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE 0x00000000
#define NV20TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -3434,6 +3481,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE1_NV 0x0d000000
#define NV20TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV20TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV20TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE (1 << 28)
#define NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE 0x00000000
#define NV20TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -3462,6 +3511,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_FINAL0_D_INPUT_SPARE1_NV 0x0000000d
#define NV20TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV20TCL_RC_FINAL0_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV20TCL_RC_FINAL0_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV20TCL_RC_FINAL0_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV20TCL_RC_FINAL0_D_COMPONENT_USAGE (1 << 4)
#define NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -3489,6 +3540,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_FINAL0_C_INPUT_SPARE1_NV 0x00000d00
#define NV20TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV20TCL_RC_FINAL0_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV20TCL_RC_FINAL0_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV20TCL_RC_FINAL0_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV20TCL_RC_FINAL0_C_COMPONENT_USAGE (1 << 12)
#define NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -3516,6 +3569,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_FINAL0_B_INPUT_SPARE1_NV 0x000d0000
#define NV20TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV20TCL_RC_FINAL0_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV20TCL_RC_FINAL0_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV20TCL_RC_FINAL0_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV20TCL_RC_FINAL0_B_COMPONENT_USAGE (1 << 20)
#define NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -3543,6 +3598,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_FINAL0_A_INPUT_SPARE1_NV 0x0d000000
#define NV20TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV20TCL_RC_FINAL0_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV20TCL_RC_FINAL0_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV20TCL_RC_FINAL0_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV20TCL_RC_FINAL0_A_COMPONENT_USAGE (1 << 28)
#define NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -3572,6 +3629,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_FINAL1_G_INPUT_SPARE1_NV 0x00000d00
#define NV20TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV20TCL_RC_FINAL1_G_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV20TCL_RC_FINAL1_G_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV20TCL_RC_FINAL1_G_INPUT_TEXTURE3_ARB 0x00000b00
#define NV20TCL_RC_FINAL1_G_COMPONENT_USAGE (1 << 12)
#define NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA 0x00001000
@@ -3599,6 +3658,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_FINAL1_F_INPUT_SPARE1_NV 0x000d0000
#define NV20TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV20TCL_RC_FINAL1_F_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV20TCL_RC_FINAL1_F_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV20TCL_RC_FINAL1_F_INPUT_TEXTURE3_ARB 0x000b0000
#define NV20TCL_RC_FINAL1_F_COMPONENT_USAGE (1 << 20)
#define NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA 0x00100000
@@ -3626,6 +3687,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_FINAL1_E_INPUT_SPARE1_NV 0x0d000000
#define NV20TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV20TCL_RC_FINAL1_E_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV20TCL_RC_FINAL1_E_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV20TCL_RC_FINAL1_E_INPUT_TEXTURE3_ARB 0x0b000000
#define NV20TCL_RC_FINAL1_E_COMPONENT_USAGE (1 << 28)
#define NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA 0x10000000
@@ -3925,10 +3988,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_R 0x00000a10
#define NV20TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_G 0x00000a14
#define NV20TCL_LIGHT_MODEL_FRONT_SIDE_PRODUCT_AMBIENT_PLUS_EMISSION_B 0x00000a18
-#define NV20TCL_VIEWPORT_SCALE0_X 0x00000a20
-#define NV20TCL_VIEWPORT_SCALE0_Y 0x00000a24
-#define NV20TCL_VIEWPORT_SCALE0_Z 0x00000a28
-#define NV20TCL_VIEWPORT_SCALE0_W 0x00000a2c
+#define NV20TCL_VIEWPORT_TRANSLATE_X 0x00000a20
+#define NV20TCL_VIEWPORT_TRANSLATE_Y 0x00000a24
+#define NV20TCL_VIEWPORT_TRANSLATE_Z 0x00000a28
+#define NV20TCL_VIEWPORT_TRANSLATE_W 0x00000a2c
#define NV20TCL_POINT_PARAMETER(x) (0x00000a30+((x)*4))
#define NV20TCL_POINT_PARAMETER__SIZE 0x00000008
#define NV20TCL_RC_CONSTANT_COLOR0(x) (0x00000a60+((x)*4))
@@ -3967,6 +4030,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1_NV 0x0000000d
#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F_NV 0x0000000f
+#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2_ARB 0x0000000a
+#define NV20TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3_ARB 0x0000000b
#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT 4
#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK 0x000000f0
#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO 0x00000000
@@ -3981,6 +4046,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV 0x000000d0
#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000000e0
#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV 0x000000f0
+#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2_ARB 0x000000a0
+#define NV20TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3_ARB 0x000000b0
#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT 8
#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK 0x00000f00
#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO 0x00000000
@@ -3995,6 +4062,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x00000d00
#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV 0x00000f00
+#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2_ARB 0x00000a00
+#define NV20TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3_ARB 0x00000b00
#define NV20TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT (1 << 12)
#define NV20TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT (1 << 13)
#define NV20TCL_RC_OUT_ALPHA_MUX_SUM (1 << 14)
@@ -4023,6 +4092,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_RGB_D_INPUT_SPARE1_NV 0x0000000d
#define NV20TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV20TCL_RC_IN_RGB_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV20TCL_RC_IN_RGB_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE (1 << 4)
#define NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -4050,6 +4121,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_RGB_C_INPUT_SPARE1_NV 0x00000d00
#define NV20TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV20TCL_RC_IN_RGB_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV20TCL_RC_IN_RGB_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE (1 << 12)
#define NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -4077,6 +4150,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_RGB_B_INPUT_SPARE1_NV 0x000d0000
#define NV20TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV20TCL_RC_IN_RGB_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV20TCL_RC_IN_RGB_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE (1 << 20)
#define NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -4104,6 +4179,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_RGB_A_INPUT_SPARE1_NV 0x0d000000
#define NV20TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV20TCL_RC_IN_RGB_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV20TCL_RC_IN_RGB_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE (1 << 28)
#define NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB 0x00000000
#define NV20TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -4117,10 +4194,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_IN_RGB_A_MAPPING_HALF_BIAS_NEGATE_NV 0xa0000000
#define NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_IDENTITY_NV 0xc0000000
#define NV20TCL_RC_IN_RGB_A_MAPPING_SIGNED_NEGATE_NV 0xe0000000
-#define NV20TCL_VIEWPORT_SCALE1_X 0x00000af0
-#define NV20TCL_VIEWPORT_SCALE1_Y 0x00000af4
-#define NV20TCL_VIEWPORT_SCALE1_Z 0x00000af8
-#define NV20TCL_VIEWPORT_SCALE1_W 0x00000afc
+#define NV20TCL_VIEWPORT_SCALE_X 0x00000af0
+#define NV20TCL_VIEWPORT_SCALE_Y 0x00000af4
+#define NV20TCL_VIEWPORT_SCALE_Z 0x00000af8
+#define NV20TCL_VIEWPORT_SCALE_W 0x00000afc
#define NV20TCL_VP_UPLOAD_INST(x) (0x00000b00+((x)*4))
#define NV20TCL_VP_UPLOAD_INST__SIZE 0x00000004
#define NV20TCL_VP_UPLOAD_CONST(x) (0x00000b80+((x)*4))
@@ -4315,6 +4392,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_VERTEX_TX3_4I_RQ_Q_MASK 0xffff0000
#define NV20TCL_VERTEX_FOG_1F 0x00001698
#define NV20TCL_EDGEFLAG_ENABLE 0x000016bc
+#define NV20TCL_VTX_CACHE_INVALIDATE 0x00001710
#define NV20TCL_VTXBUF_ADDRESS(x) (0x00001720+((x)*4))
#define NV20TCL_VTXBUF_ADDRESS__SIZE 0x00000010
#define NV20TCL_VTXBUF_ADDRESS_DMA1 (1 << 31)
@@ -4626,6 +4704,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1_NV 0x0000000d
#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F_NV 0x0000000f
+#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2_ARB 0x0000000a
+#define NV20TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3_ARB 0x0000000b
#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT 4
#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_ZERO 0x00000000
@@ -4640,6 +4720,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV 0x000000d0
#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000000e0
#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000000f0
+#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2_ARB 0x000000a0
+#define NV20TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3_ARB 0x000000b0
#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT 8
#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_MASK 0x00000f00
#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO 0x00000000
@@ -4654,6 +4736,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV 0x00000d00
#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV 0x00000f00
+#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2_ARB 0x00000a00
+#define NV20TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3_ARB 0x00000b00
#define NV20TCL_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
#define NV20TCL_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
#define NV20TCL_RC_OUT_RGB_MUX_SUM (1 << 14)
@@ -4751,10 +4835,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV20TCL_VP_UPLOAD_FROM_ID 0x00001e9c
#define NV20TCL_VP_START_FROM_ID 0x00001ea0
#define NV20TCL_VP_UPLOAD_CONST_ID 0x00001ea4
-#define NV20TCL_VIEWPORT_TRANSLATE_X 0x00001f00
-#define NV20TCL_VIEWPORT_TRANSLATE_Y 0x00001f04
-#define NV20TCL_VIEWPORT_TRANSLATE_Z 0x00001f08
-#define NV20TCL_VIEWPORT_TRANSLATE_W 0x00001f0c
#define NV17TCL 0x00000099
@@ -5264,6 +5344,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_FINAL0_D_INPUT_SPARE1_NV 0x0000000d
#define NV34TCL_RC_FINAL0_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV34TCL_RC_FINAL0_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV34TCL_RC_FINAL0_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV34TCL_RC_FINAL0_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV34TCL_RC_FINAL0_D_COMPONENT_USAGE (1 << 4)
#define NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_FINAL0_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -5291,6 +5373,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_FINAL0_C_INPUT_SPARE1_NV 0x00000d00
#define NV34TCL_RC_FINAL0_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV34TCL_RC_FINAL0_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV34TCL_RC_FINAL0_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV34TCL_RC_FINAL0_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV34TCL_RC_FINAL0_C_COMPONENT_USAGE (1 << 12)
#define NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_FINAL0_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -5318,6 +5402,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_FINAL0_B_INPUT_SPARE1_NV 0x000d0000
#define NV34TCL_RC_FINAL0_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV34TCL_RC_FINAL0_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV34TCL_RC_FINAL0_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV34TCL_RC_FINAL0_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV34TCL_RC_FINAL0_B_COMPONENT_USAGE (1 << 20)
#define NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_FINAL0_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -5345,6 +5431,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_FINAL0_A_INPUT_SPARE1_NV 0x0d000000
#define NV34TCL_RC_FINAL0_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV34TCL_RC_FINAL0_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV34TCL_RC_FINAL0_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV34TCL_RC_FINAL0_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV34TCL_RC_FINAL0_A_COMPONENT_USAGE (1 << 28)
#define NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_FINAL0_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -5374,6 +5462,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_FINAL1_G_INPUT_SPARE1_NV 0x00000d00
#define NV34TCL_RC_FINAL1_G_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV34TCL_RC_FINAL1_G_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV34TCL_RC_FINAL1_G_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV34TCL_RC_FINAL1_G_INPUT_TEXTURE3_ARB 0x00000b00
#define NV34TCL_RC_FINAL1_G_COMPONENT_USAGE (1 << 12)
#define NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_FINAL1_G_COMPONENT_USAGE_ALPHA 0x00001000
@@ -5401,6 +5491,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_FINAL1_F_INPUT_SPARE1_NV 0x000d0000
#define NV34TCL_RC_FINAL1_F_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV34TCL_RC_FINAL1_F_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV34TCL_RC_FINAL1_F_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV34TCL_RC_FINAL1_F_INPUT_TEXTURE3_ARB 0x000b0000
#define NV34TCL_RC_FINAL1_F_COMPONENT_USAGE (1 << 20)
#define NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_FINAL1_F_COMPONENT_USAGE_ALPHA 0x00100000
@@ -5428,6 +5520,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_FINAL1_E_INPUT_SPARE1_NV 0x0d000000
#define NV34TCL_RC_FINAL1_E_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV34TCL_RC_FINAL1_E_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV34TCL_RC_FINAL1_E_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV34TCL_RC_FINAL1_E_INPUT_TEXTURE3_ARB 0x0b000000
#define NV34TCL_RC_FINAL1_E_COMPONENT_USAGE (1 << 28)
#define NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_FINAL1_E_COMPONENT_USAGE_ALPHA 0x10000000
@@ -5464,6 +5558,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE1_NV 0x0000000d
#define NV34TCL_RC_IN_ALPHA_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV34TCL_RC_IN_ALPHA_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV34TCL_RC_IN_ALPHA_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE (1 << 4)
#define NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_BLUE 0x00000000
#define NV34TCL_RC_IN_ALPHA_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -5491,6 +5587,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE1_NV 0x00000d00
#define NV34TCL_RC_IN_ALPHA_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV34TCL_RC_IN_ALPHA_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV34TCL_RC_IN_ALPHA_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE (1 << 12)
#define NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_BLUE 0x00000000
#define NV34TCL_RC_IN_ALPHA_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -5518,6 +5616,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE1_NV 0x000d0000
#define NV34TCL_RC_IN_ALPHA_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV34TCL_RC_IN_ALPHA_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV34TCL_RC_IN_ALPHA_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE (1 << 20)
#define NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_BLUE 0x00000000
#define NV34TCL_RC_IN_ALPHA_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -5545,6 +5645,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE1_NV 0x0d000000
#define NV34TCL_RC_IN_ALPHA_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV34TCL_RC_IN_ALPHA_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV34TCL_RC_IN_ALPHA_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE (1 << 28)
#define NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_BLUE 0x00000000
#define NV34TCL_RC_IN_ALPHA_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -5574,6 +5676,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_RGB_D_INPUT_SPARE1_NV 0x0000000d
#define NV34TCL_RC_IN_RGB_D_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV34TCL_RC_IN_RGB_D_INPUT_E_TIMES_F_NV 0x0000000f
+#define NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE2_ARB 0x0000000a
+#define NV34TCL_RC_IN_RGB_D_INPUT_TEXTURE3_ARB 0x0000000b
#define NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE (1 << 4)
#define NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_IN_RGB_D_COMPONENT_USAGE_ALPHA 0x00000010
@@ -5601,6 +5705,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_RGB_C_INPUT_SPARE1_NV 0x00000d00
#define NV34TCL_RC_IN_RGB_C_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV34TCL_RC_IN_RGB_C_INPUT_E_TIMES_F_NV 0x00000f00
+#define NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE2_ARB 0x00000a00
+#define NV34TCL_RC_IN_RGB_C_INPUT_TEXTURE3_ARB 0x00000b00
#define NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE (1 << 12)
#define NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_IN_RGB_C_COMPONENT_USAGE_ALPHA 0x00001000
@@ -5628,6 +5734,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_RGB_B_INPUT_SPARE1_NV 0x000d0000
#define NV34TCL_RC_IN_RGB_B_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000e0000
#define NV34TCL_RC_IN_RGB_B_INPUT_E_TIMES_F_NV 0x000f0000
+#define NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE2_ARB 0x000a0000
+#define NV34TCL_RC_IN_RGB_B_INPUT_TEXTURE3_ARB 0x000b0000
#define NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE (1 << 20)
#define NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_IN_RGB_B_COMPONENT_USAGE_ALPHA 0x00100000
@@ -5655,6 +5763,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_IN_RGB_A_INPUT_SPARE1_NV 0x0d000000
#define NV34TCL_RC_IN_RGB_A_INPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0e000000
#define NV34TCL_RC_IN_RGB_A_INPUT_E_TIMES_F_NV 0x0f000000
+#define NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE2_ARB 0x0a000000
+#define NV34TCL_RC_IN_RGB_A_INPUT_TEXTURE3_ARB 0x0b000000
#define NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE (1 << 28)
#define NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_RGB 0x00000000
#define NV34TCL_RC_IN_RGB_A_COMPONENT_USAGE_ALPHA 0x10000000
@@ -5704,6 +5814,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE1_NV 0x0000000d
#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_E_TIMES_F_NV 0x0000000f
+#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE2_ARB 0x0000000a
+#define NV34TCL_RC_OUT_ALPHA_CD_OUTPUT_TEXTURE3_ARB 0x0000000b
#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SHIFT 4
#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_MASK 0x000000f0
#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_ZERO 0x00000000
@@ -5718,6 +5830,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE1_NV 0x000000d0
#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000000e0
#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_E_TIMES_F_NV 0x000000f0
+#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE2_ARB 0x000000a0
+#define NV34TCL_RC_OUT_ALPHA_AB_OUTPUT_TEXTURE3_ARB 0x000000b0
#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SHIFT 8
#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_MASK 0x00000f00
#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_ZERO 0x00000000
@@ -5732,6 +5846,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE1_NV 0x00000d00
#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_E_TIMES_F_NV 0x00000f00
+#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE2_ARB 0x00000a00
+#define NV34TCL_RC_OUT_ALPHA_SUM_OUTPUT_TEXTURE3_ARB 0x00000b00
#define NV34TCL_RC_OUT_ALPHA_CD_DOT_PRODUCT (1 << 12)
#define NV34TCL_RC_OUT_ALPHA_AB_DOT_PRODUCT (1 << 13)
#define NV34TCL_RC_OUT_ALPHA_MUX_SUM (1 << 14)
@@ -5760,6 +5876,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE1_NV 0x0000000d
#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x0000000e
#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_E_TIMES_F_NV 0x0000000f
+#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE2_ARB 0x0000000a
+#define NV34TCL_RC_OUT_RGB_CD_OUTPUT_TEXTURE3_ARB 0x0000000b
#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SHIFT 4
#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_MASK 0x000000f0
#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_ZERO 0x00000000
@@ -5774,6 +5892,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE1_NV 0x000000d0
#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x000000e0
#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_E_TIMES_F_NV 0x000000f0
+#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE2_ARB 0x000000a0
+#define NV34TCL_RC_OUT_RGB_AB_OUTPUT_TEXTURE3_ARB 0x000000b0
#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SHIFT 8
#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_MASK 0x00000f00
#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_ZERO 0x00000000
@@ -5788,6 +5908,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE1_NV 0x00000d00
#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_SPARE0_PLUS_SECONDARY_COLOR_NV 0x00000e00
#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_E_TIMES_F_NV 0x00000f00
+#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE2_ARB 0x00000a00
+#define NV34TCL_RC_OUT_RGB_SUM_OUTPUT_TEXTURE3_ARB 0x00000b00
#define NV34TCL_RC_OUT_RGB_CD_DOT_PRODUCT (1 << 12)
#define NV34TCL_RC_OUT_RGB_AB_DOT_PRODUCT (1 << 13)
#define NV34TCL_RC_OUT_RGB_MUX_SUM (1 << 14)
diff --git a/radeon/radeon_bo.h b/radeon/radeon_bo.h
index 1e2e6c20..72d35200 100644
--- a/radeon/radeon_bo.h
+++ b/radeon/radeon_bo.h
@@ -39,6 +39,7 @@
#define RADEON_BO_FLAGS_MICRO_TILE 2
struct radeon_bo_manager;
+struct radeon_cs;
struct radeon_bo {
uint32_t alignment;
@@ -53,6 +54,7 @@ struct radeon_bo {
void *ptr;
struct radeon_bo_manager *bom;
uint32_t space_accounted;
+ uint32_t referenced_in_cs;
};
/* bo functions */
@@ -74,6 +76,7 @@ struct radeon_bo_funcs {
int (*bo_get_tiling)(struct radeon_bo *bo, uint32_t *tiling_flags,
uint32_t *pitch);
int (*bo_is_busy)(struct radeon_bo *bo, uint32_t *domain);
+ int (*bo_is_referenced_by_cs)(struct radeon_bo *bo, struct radeon_cs *cs);
};
struct radeon_bo_manager {
@@ -195,6 +198,15 @@ static inline int radeon_bo_is_static(struct radeon_bo *bo)
return 0;
}
+static inline int _radeon_bo_is_referenced_by_cs(struct radeon_bo *bo,
+ struct radeon_cs *cs,
+ const char *file,
+ const char *func,
+ unsigned line)
+{
+ return bo->cref > 1;
+}
+
#define radeon_bo_open(bom, h, s, a, d, f)\
_radeon_bo_open(bom, h, s, a, d, f, __FILE__, __FUNCTION__, __LINE__)
#define radeon_bo_ref(bo)\
@@ -211,5 +223,7 @@ static inline int radeon_bo_is_static(struct radeon_bo *bo)
_radeon_bo_wait(bo, __FILE__, __func__, __LINE__)
#define radeon_bo_is_busy(bo, domain) \
_radeon_bo_is_busy(bo, domain, __FILE__, __func__, __LINE__)
+#define radeon_bo_is_referenced_by_cs(bo, cs) \
+ _radeon_bo_is_referenced_by_cs(bo, cs, __FILE__, __FUNCTION__, __LINE__)
#endif