From f3af1201c578443dd0f72e73470dd1763888a41d Mon Sep 17 00:00:00 2001 From: Christoph Bumiller Date: Sat, 24 Jul 2010 12:49:15 +0200 Subject: [PATCH] nouveau: update nouveau_class.h Adds nvc0, new vertex formats, and dual source blending values. --- src/gallium/drivers/nouveau/nouveau_class.h | 1171 +++++++++++++++++-- src/gallium/drivers/nv50/nv50_state.c | 55 +- src/gallium/drivers/nv50/nv50_vbo.c | 17 +- 3 files changed, 1159 insertions(+), 84 deletions(-) diff --git a/src/gallium/drivers/nouveau/nouveau_class.h b/src/gallium/drivers/nouveau/nouveau_class.h index adfdd37b1b6..975fd8f35a2 100644 --- a/src/gallium/drivers/nouveau/nouveau_class.h +++ b/src/gallium/drivers/nouveau/nouveau_class.h @@ -735,6 +735,45 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH 0x0000023c +#define NVC0_MEMORY_TO_MEMORY_FORMAT 0x00009039 + +#define NVC0_MEMORY_TO_MEMORY_FORMAT_NOP 0x00000100 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_SERIALIZE 0x00000110 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_IN 0x00000204 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_IN 0x00000208 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_IN 0x0000020c +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_IN 0x00000210 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Z 0x00000214 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_MODE_OUT 0x00000220 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_PITCH_OUT 0x00000224 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_HEIGHT_OUT 0x00000228 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_DEPTH_OUT 0x0000022c +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Z 0x00000230 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_HIGH 0x00000238 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_OUT_LOW 0x0000023c +#define NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC 0x00000300 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_PUSH (1 << 0) +#define NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_LINEAR_IN (1 << 4) +#define NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_LINEAR_OUT (1 << 8) +#define NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_NOTIFY (1 << 13) +#define NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_INC_SHIFT 20 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_EXEC_INC_MASK 0x00f00000 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_DATA 0x00000304 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_HIGH 0x0000030c +#define NVC0_MEMORY_TO_MEMORY_FORMAT_OFFSET_IN_LOW 0x00000310 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_PITCH_IN 0x00000314 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_PITCH_OUT 0x00000318 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_LINE_LENGTH_IN 0x0000031c +#define NVC0_MEMORY_TO_MEMORY_FORMAT_LINE_COUNT 0x00000320 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY_ADDRESS_HIGH 0x0000032c +#define NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY_ADDRESS_LOW 0x00000330 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_NOTIFY 0x00000334 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_X 0x00000344 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_IN_Y 0x00000348 +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_X 0x0000034c +#define NVC0_MEMORY_TO_MEMORY_FORMAT_TILING_POSITION_OUT_Y 0x00000350 + + #define NV01_MEMORY_LOCAL_BANKED 0x0000003d @@ -4507,6 +4546,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV20TCL_VTXFMT_TYPE_SHIFT 0 #define NV20TCL_VTXFMT_TYPE_MASK 0x0000000f #define NV20TCL_VTXFMT_TYPE_FLOAT 0x00000002 +#define NV20TCL_VTXFMT_TYPE_HALF 0x00000003 #define NV20TCL_VTXFMT_TYPE_UBYTE 0x00000004 #define NV20TCL_VTXFMT_TYPE_USHORT 0x00000005 #define NV20TCL_VTXFMT_SIZE_SHIFT 4 @@ -6990,6 +7030,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV40TCL_VTXFMT_TYPE_SHIFT 0 #define NV40TCL_VTXFMT_TYPE_MASK 0x0000000f #define NV40TCL_VTXFMT_TYPE_FLOAT 0x00000002 +#define NV40TCL_VTXFMT_TYPE_HALF 0x00000003 #define NV40TCL_VTXFMT_TYPE_UBYTE 0x00000004 #define NV40TCL_VTXFMT_TYPE_USHORT 0x00000005 #define NV40TCL_VTXFMT_SIZE_SHIFT 4 @@ -7699,7 +7740,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_DMA_TIC 0x000001a0 #define NV50TCL_DMA_TEXTURE 0x000001a4 #define NV50TCL_DMA_STRMOUT 0x000001a8 -#define NV50TCL_DMA_UNK01AC 0x000001ac +#define NV50TCL_DMA_CLIPID 0x000001ac #define NV50TCL_DMA_COLOR(x) (0x000001c0+((x)*4)) #define NV50TCL_DMA_COLOR__SIZE 0x00000008 #define NV50TCL_RT_ADDRESS_HIGH(x) (0x00000200+((x)*32)) @@ -7916,8 +7957,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_DEPTH_RANGE_FAR__SIZE 0x00000010 #define NV50TCL_VIEWPORT_CLIP_HORIZ(x) (0x00000d00+((x)*8)) #define NV50TCL_VIEWPORT_CLIP_HORIZ__SIZE 0x00000008 +#define NV50TCL_VIEWPORT_CLIP_HORIZ_MIN_SHIFT 0 +#define NV50TCL_VIEWPORT_CLIP_HORIZ_MIN_MASK 0x0000ffff +#define NV50TCL_VIEWPORT_CLIP_HORIZ_MAX_SHIFT 16 +#define NV50TCL_VIEWPORT_CLIP_HORIZ_MAX_MASK 0xffff0000 #define NV50TCL_VIEWPORT_CLIP_VERT(x) (0x00000d04+((x)*8)) #define NV50TCL_VIEWPORT_CLIP_VERT__SIZE 0x00000008 +#define NV50TCL_VIEWPORT_CLIP_VERT_MIN_SHIFT 0 +#define NV50TCL_VIEWPORT_CLIP_VERT_MIN_MASK 0x0000ffff +#define NV50TCL_VIEWPORT_CLIP_VERT_MAX_SHIFT 16 +#define NV50TCL_VIEWPORT_CLIP_VERT_MAX_MASK 0xffff0000 +#define NV50TCL_CLIPID_REGION_HORIZ(x) (0x00000d40+((x)*8)) +#define NV50TCL_CLIPID_REGION_HORIZ__SIZE 0x00000004 +#define NV50TCL_CLIPID_REGION_VERT(x) (0x00000d44+((x)*8)) +#define NV50TCL_CLIPID_REGION_VERT__SIZE 0x00000004 #define NV50TCL_VERTEX_BUFFER_FIRST 0x00000d74 #define NV50TCL_VERTEX_BUFFER_COUNT 0x00000d78 #define NV50TCL_CLEAR_COLOR(x) (0x00000d80+((x)*4)) @@ -7975,14 +8028,16 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_GP_ADDRESS_LOW 0x00000f74 #define NV50TCL_VP_ADDRESS_HIGH 0x00000f7c #define NV50TCL_VP_ADDRESS_LOW 0x00000f80 -#define NV50TCL_UNK0F84_ADDRESS_HIGH 0x00000f84 -#define NV50TCL_UNK0F84_ADDRESS_LOW 0x00000f88 +#define NV50TCL_VERTEX_RUNOUT_HIGH 0x00000f84 +#define NV50TCL_VERTEX_RUNOUT_LOW 0x00000f88 #define NV50TCL_DEPTH_BOUNDS(x) (0x00000f9c+((x)*4)) #define NV50TCL_DEPTH_BOUNDS__SIZE 0x00000002 #define NV50TCL_FP_ADDRESS_HIGH 0x00000fa4 #define NV50TCL_FP_ADDRESS_LOW 0x00000fa8 #define NV50TCL_MSAA_MASK(x) (0x00000fbc+((x)*4)) #define NV50TCL_MSAA_MASK__SIZE 0x00000004 +#define NV50TCL_CLIPID_ADDRESS_HIGH 0x00000fcc +#define NV50TCL_CLIPID_ADDRESS_LOW 0x00000fd0 #define NV50TCL_ZETA_ADDRESS_HIGH 0x00000fe0 #define NV50TCL_ZETA_ADDRESS_LOW 0x00000fe4 #define NV50TCL_ZETA_FORMAT 0x00000fe8 @@ -8112,37 +8167,45 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT 0x0000800a #define NV50TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT 0x0000800b #define NV50TCL_BLEND_FUNC_SRC_RGB 0x00001344 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ZERO 0x00000000 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE 0x00000001 -#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR 0x00000300 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR 0x00000301 -#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA 0x00000302 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 -#define NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA 0x00000304 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA 0x00000305 -#define NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR 0x00000306 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR 0x00000307 -#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE 0x00000308 -#define NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR 0x00008001 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 -#define NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA 0x00008003 -#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ZERO 0x00004000 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE 0x00004001 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR 0x00004300 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR 0x00004301 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA 0x00004302 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA 0x00004304 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA 0x00004305 +#define NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR 0x00004306 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR 0x00004307 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE 0x00004308 +#define NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR 0x0000c001 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA 0x0000c003 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_COLOR 0x0000c900 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_ALPHA 0x0000c902 +#define NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_ALPHA 0x0000c903 #define NV50TCL_BLEND_FUNC_DST_RGB 0x00001348 -#define NV50TCL_BLEND_FUNC_DST_RGB_ZERO 0x00000000 -#define NV50TCL_BLEND_FUNC_DST_RGB_ONE 0x00000001 -#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR 0x00000300 -#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR 0x00000301 -#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA 0x00000302 -#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA 0x00000303 -#define NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA 0x00000304 -#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA 0x00000305 -#define NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR 0x00000306 -#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR 0x00000307 -#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE 0x00000308 -#define NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR 0x00008001 -#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR 0x00008002 -#define NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA 0x00008003 -#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_FUNC_DST_RGB_ZERO 0x00004000 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE 0x00004001 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_COLOR 0x00004300 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR 0x00004301 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA 0x00004302 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NV50TCL_BLEND_FUNC_DST_RGB_DST_ALPHA 0x00004304 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA 0x00004305 +#define NV50TCL_BLEND_FUNC_DST_RGB_DST_COLOR 0x00004306 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR 0x00004307 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE 0x00004308 +#define NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR 0x0000c001 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NV50TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA 0x0000c003 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC1_COLOR 0x0000c900 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NV50TCL_BLEND_FUNC_DST_RGB_SRC1_ALPHA 0x0000c902 +#define NV50TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_ALPHA 0x0000c903 #define NV50TCL_BLEND_EQUATION_ALPHA 0x0000134c #define NV50TCL_BLEND_EQUATION_ALPHA_FUNC_ADD 0x00008006 #define NV50TCL_BLEND_EQUATION_ALPHA_MIN 0x00008007 @@ -8150,37 +8213,45 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT 0x0000800a #define NV50TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT 0x0000800b #define NV50TCL_BLEND_FUNC_SRC_ALPHA 0x00001350 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO 0x00000000 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE 0x00000001 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR 0x00000300 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR 0x00000301 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA 0x00000302 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA 0x00000303 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA 0x00000304 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA 0x00000305 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR 0x00000306 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR 0x00000307 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE 0x00000308 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR 0x00008001 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x00008002 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA 0x00008003 -#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ZERO 0x00004000 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE 0x00004001 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR 0x00004300 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR 0x00004301 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA 0x00004302 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA 0x00004304 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA 0x00004305 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR 0x00004306 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR 0x00004307 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE 0x00004308 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR 0x0000c001 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA 0x0000c003 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC1_COLOR 0x0000c900 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_SRC1_ALPHA 0x0000c902 +#define NV50TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA 0x0000c903 #define NV50TCL_BLEND_FUNC_DST_ALPHA 0x00001358 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO 0x00000000 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE 0x00000001 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR 0x00000300 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR 0x00000301 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA 0x00000302 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA 0x00000303 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA 0x00000304 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA 0x00000305 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR 0x00000306 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR 0x00000307 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE 0x00000308 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR 0x00008001 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x00008002 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA 0x00008003 -#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x00008004 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ZERO 0x00004000 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE 0x00004001 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR 0x00004300 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR 0x00004301 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA 0x00004302 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA 0x00004304 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA 0x00004305 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR 0x00004306 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR 0x00004307 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE 0x00004308 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR 0x0000c001 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA 0x0000c003 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC1_COLOR 0x0000c900 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_SRC1_ALPHA 0x0000c902 +#define NV50TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_ALPHA 0x0000c903 #define NV50TCL_BLEND_ENABLE(x) (0x00001360+((x)*4)) #define NV50TCL_BLEND_ENABLE__SIZE 0x00000008 #define NV50TCL_STENCIL_FRONT_ENABLE 0x00001380 @@ -8239,6 +8310,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_FP_START_ID 0x00001414 #define NV50TCL_GP_VERTEX_OUTPUT_COUNT 0x00001420 #define NV50TCL_VB_ELEMENT_BASE 0x00001434 +#define NV50TCL_INSTANCE_BASE 0x00001438 #define NV50TCL_CODE_CB_FLUSH 0x00001440 #define NV50TCL_BIND_TSC(x) (0x00001444+((x)*8)) #define NV50TCL_BIND_TSC__SIZE 0x00000003 @@ -8256,6 +8328,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_BIND_TIC_TIC_MASK 0x7ffffe00 #define NV50TCL_STRMOUT_MAP(x) (0x00001480+((x)*4)) #define NV50TCL_STRMOUT_MAP__SIZE 0x00000020 +#define NV50TCL_CLIPID_HEIGHT 0x00001504 #define NV50TCL_VP_CLIP_DISTANCE_ENABLE 0x00001510 #define NV50TCL_VP_CLIP_DISTANCE_ENABLE_0 (1 << 0) #define NV50TCL_VP_CLIP_DISTANCE_ENABLE_1 (1 << 1) @@ -8340,7 +8413,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_GP_BUILTIN_RESULT_EN 0x000015cc #define NV50TCL_GP_BUILTIN_RESULT_EN_VPORT_IDX (1 << 0) #define NV50TCL_GP_BUILTIN_RESULT_EN_LAYER_IDX (1 << 16) -#define NV50TCL_MULTISAMPLE_SAMPLES_LOG2 0x000015d0 +#define NV50TCL_MULTISAMPLE_MODE 0x000015d0 +#define NV50TCL_MULTISAMPLE_MODE_1X 0x00000000 +#define NV50TCL_MULTISAMPLE_MODE_2XMS 0x00000001 +#define NV50TCL_MULTISAMPLE_MODE_4XMS 0x00000002 +#define NV50TCL_MULTISAMPLE_MODE_8XMS 0x00000004 +#define NV50TCL_MULTISAMPLE_MODE_4XMS_4XCS 0x00000008 +#define NV50TCL_MULTISAMPLE_MODE_4XMS_12XCS 0x00000009 +#define NV50TCL_MULTISAMPLE_MODE_8XMS_8XCS 0x0000000a #define NV50TCL_VERTEX_BEGIN 0x000015dc #define NV50TCL_VERTEX_BEGIN_POINTS 0x00000000 #define NV50TCL_VERTEX_BEGIN_LINES 0x00000001 @@ -8356,6 +8436,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_VERTEX_BEGIN_LINE_STRIP_ADJACENCY 0x0000000b #define NV50TCL_VERTEX_BEGIN_TRIANGLES_ADJACENCY 0x0000000c #define NV50TCL_VERTEX_BEGIN_TRIANGLE_STRIP_ADJACENCY 0x0000000d +#define NV50TCL_VERTEX_BEGIN_PATCHES 0x0000000e #define NV50TCL_VERTEX_END 0x000015e0 #define NV50TCL_EDGEFLAG_ENABLE 0x000015e4 #define NV50TCL_VB_ELEMENT_U32 0x000015e8 @@ -8369,6 +8450,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_VB_ELEMENT_U16_I0_MASK 0x0000ffff #define NV50TCL_VB_ELEMENT_U16_I1_SHIFT 16 #define NV50TCL_VB_ELEMENT_U16_I1_MASK 0xffff0000 +#define NV50TCL_VERTEX_BASE_HIGH 0x000015f4 +#define NV50TCL_VERTEX_BASE_LOW 0x000015f8 #define NV50TCL_VERTEX_DATA 0x00001640 #define NV50TCL_PRIM_RESTART_ENABLE 0x00001644 #define NV50TCL_PRIM_RESTART_INDEX 0x00001648 @@ -8754,7 +8837,14 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_VIEWPORT_TRANSFORM_EN 0x0000192c #define NV50TCL_VIEW_VOLUME_CLIP_CTRL 0x0000193c #define NV50TCL_VIEWPORT_CLIP_RECTS_EN 0x0000194c +#define NV50TCL_VIEWPORT_CLIP_MODE 0x00001950 +#define NV50TCL_VIEWPORT_CLIP_MODE_INCLUDE 0x00000000 +#define NV50TCL_VIEWPORT_CLIP_MODE_EXCLUDE 0x00000001 +#define NV50TCL_VIEWPORT_CLIP_MODE_UNKNOWN 0x00000002 #define NV50TCL_FP_CTRL_UNK196C 0x0000196c +#define NV50TCL_CLIPID_ENABLE 0x0000197c +#define NV50TCL_CLIPID_WIDTH 0x00001980 +#define NV50TCL_CLIPID_ID 0x00001984 #define NV50TCL_FP_INTERPOLANT_CTRL 0x00001988 #define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_SHIFT 24 #define NV50TCL_FP_INTERPOLANT_CTRL_UMASK_MASK 0xff000000 @@ -8855,19 +8945,20 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8_8 0x00c00000 #define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_16 0x00d80000 #define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_8 0x00e80000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_2_10_10_10 0x01800000 #define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SHIFT 25 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK 0x7e000000 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT 0x7e000000 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM 0x24000000 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM 0x12000000 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED 0x5a000000 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED 0x6c000000 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT 0x48000000 -#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT 0x36000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_MASK 0x0e000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT 0x0e000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM 0x02000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM 0x04000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED 0x0a000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED 0x0c000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT 0x08000000 +#define NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT 0x06000000 #define NV50TCL_VERTEX_ARRAY_ATTRIB_BGRA (1 << 31) #define NV50TCL_QUERY_ADDRESS_HIGH 0x00001b00 #define NV50TCL_QUERY_ADDRESS_LOW 0x00001b04 -#define NV50TCL_QUERY_COUNTER 0x00001b08 +#define NV50TCL_QUERY_SEQUENCE 0x00001b08 #define NV50TCL_QUERY_GET 0x00001b0c @@ -9022,4 +9113,938 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #define NV50_COMPUTE_USER_PARAM__SIZE 0x00000040 +#define NVC0TCL 0x00009097 + +#define NVC0TCL_SEMAPHORE_ADDRESS_HIGH 0x00000010 +#define NVC0TCL_SEMAPHORE_ADDRESS_LOW 0x00000014 +#define NVC0TCL_NOP 0x00000100 +#define NVC0TCL_NOTIFY_ADDRESS_HIGH 0x00000104 +#define NVC0TCL_NOTIFY_ADDRESS_LOW 0x00000108 +#define NVC0TCL_NOTIFY 0x0000010c +#define NVC0TCL_SERIALIZE 0x00000110 +#define NVC0TCL_EARLY_FRAGMENT_TESTS 0x00000210 +#define NVC0TCL_TESS_MODE 0x00000320 +#define NVC0TCL_TESS_MODE_PRIM_SHIFT 0 +#define NVC0TCL_TESS_MODE_PRIM_MASK 0x0000000f +#define NVC0TCL_TESS_MODE_PRIM_ISOLINES 0x00000000 +#define NVC0TCL_TESS_MODE_PRIM_TRIANGLES 0x00000001 +#define NVC0TCL_TESS_MODE_PRIM_QUADS 0x00000002 +#define NVC0TCL_TESS_MODE_SPACING_SHIFT 4 +#define NVC0TCL_TESS_MODE_SPACING_MASK 0x000000f0 +#define NVC0TCL_TESS_MODE_SPACING_EQUAL 0x00000000 +#define NVC0TCL_TESS_MODE_SPACING_FRACTIONAL_ODD 0x00000010 +#define NVC0TCL_TESS_MODE_SPACING_FRACTIONAL_EVEN 0x00000020 +#define NVC0TCL_TESS_MODE_CW (1 << 8) +#define NVC0TCL_TESS_MODE_CONNECTED (1 << 9) +#define NVC0TCL_TESS_LEVEL_OUTER(x) (0x00000324+((x)*4)) +#define NVC0TCL_TESS_LEVEL_OUTER__SIZE 0x00000004 +#define NVC0TCL_TESS_LEVEL_INNER(x) (0x00000334+((x)*4)) +#define NVC0TCL_TESS_LEVEL_INNER__SIZE 0x00000002 +#define NVC0TCL_RASTERIZE_ENABLE 0x0000037c +#define NVC0TCL_TFB_BUFFER_ENABLE(x) (0x00000380+((x)*32)) +#define NVC0TCL_TFB_BUFFER_ENABLE__SIZE 0x00000004 +#define NVC0TCL_TFB_ADDRESS_HIGH(x) (0x00000384+((x)*32)) +#define NVC0TCL_TFB_ADDRESS_HIGH__SIZE 0x00000004 +#define NVC0TCL_TFB_ADDRESS_LOW(x) (0x00000388+((x)*32)) +#define NVC0TCL_TFB_ADDRESS_LOW__SIZE 0x00000004 +#define NVC0TCL_TFB_BUFFER_SIZE(x) (0x0000038c+((x)*32)) +#define NVC0TCL_TFB_BUFFER_SIZE__SIZE 0x00000004 +#define NVC0TCL_TFB_PRIMITIVE_ID(x) (0x00000390+((x)*32)) +#define NVC0TCL_TFB_PRIMITIVE_ID__SIZE 0x00000004 +#define NVC0TCL_TFB_UNK0700(x) (0x00000700+((x)*16)) +#define NVC0TCL_TFB_UNK0700__SIZE 0x00000004 +#define NVC0TCL_TFB_VARYING_COUNT(x) (0x00000704+((x)*16)) +#define NVC0TCL_TFB_VARYING_COUNT__SIZE 0x00000004 +#define NVC0TCL_TFB_BUFFER_STRIDE(x) (0x00000708+((x)*16)) +#define NVC0TCL_TFB_BUFFER_STRIDE__SIZE 0x00000004 +#define NVC0TCL_TFB_ENABLE 0x00000744 +#define NVC0TCL_LOCAL_BASE 0x0000077c +#define NVC0TCL_UNK0790_ADDRESS_HIGH 0x00000790 +#define NVC0TCL_UNK0790_ADDRESS_LOW 0x00000794 +#define NVC0TCL_RT_ADDRESS_HIGH(x) (0x00000800+((x)*32)) +#define NVC0TCL_RT_ADDRESS_HIGH__SIZE 0x00000008 +#define NVC0TCL_RT_ADDRESS_LOW(x) (0x00000804+((x)*32)) +#define NVC0TCL_RT_ADDRESS_LOW__SIZE 0x00000008 +#define NVC0TCL_RT_HORIZ(x) (0x00000808+((x)*32)) +#define NVC0TCL_RT_HORIZ__SIZE 0x00000008 +#define NVC0TCL_RT_VERT(x) (0x0000080c+((x)*32)) +#define NVC0TCL_RT_VERT__SIZE 0x00000008 +#define NVC0TCL_RT_FORMAT(x) (0x00000810+((x)*32)) +#define NVC0TCL_RT_FORMAT__SIZE 0x00000008 +#define NVC0TCL_RT_FORMAT_R32G32B32A32_FLOAT 0x000000c0 +#define NVC0TCL_RT_FORMAT_R32G32B32A32_SINT 0x000000c1 +#define NVC0TCL_RT_FORMAT_R32G32B32A32_UINT 0x000000c2 +#define NVC0TCL_RT_FORMAT_R32G32B32X32_FLOAT 0x000000c3 +#define NVC0TCL_RT_FORMAT_R16G16B16A16_UNORM 0x000000c6 +#define NVC0TCL_RT_FORMAT_R16G16B16A16_SNORM 0x000000c7 +#define NVC0TCL_RT_FORMAT_R16G16B16A16_SINT 0x000000c8 +#define NVC0TCL_RT_FORMAT_R16G16B16A16_UINT 0x000000c9 +#define NVC0TCL_RT_FORMAT_R16G16B16A16_FLOAT 0x000000ca +#define NVC0TCL_RT_FORMAT_R32G32_FLOAT 0x000000cb +#define NVC0TCL_RT_FORMAT_R32G32_SINT 0x000000cc +#define NVC0TCL_RT_FORMAT_R32G32_UINT 0x000000cd +#define NVC0TCL_RT_FORMAT_R16G16B16X16_FLOAT 0x000000ce +#define NVC0TCL_RT_FORMAT_A8R8G8B8_UNORM 0x000000cf +#define NVC0TCL_RT_FORMAT_A8R8G8B8_SRGB 0x000000d0 +#define NVC0TCL_RT_FORMAT_A2B10G10R10_UNORM 0x000000d1 +#define NVC0TCL_RT_FORMAT_A2B10G10R10_UINT 0x000000d2 +#define NVC0TCL_RT_FORMAT_A8B8G8R8_UNORM 0x000000d5 +#define NVC0TCL_RT_FORMAT_A8B8G8R8_SRGB 0x000000d6 +#define NVC0TCL_RT_FORMAT_A8B8G8R8_SNORM 0x000000d7 +#define NVC0TCL_RT_FORMAT_A8B8G8R8_SINT 0x000000d8 +#define NVC0TCL_RT_FORMAT_A8B8G8R8_UINT 0x000000d9 +#define NVC0TCL_RT_FORMAT_R16G16_UNORM 0x000000da +#define NVC0TCL_RT_FORMAT_R16G16_SNORM 0x000000db +#define NVC0TCL_RT_FORMAT_R16G16_SINT 0x000000dc +#define NVC0TCL_RT_FORMAT_R16G16_UINT 0x000000dd +#define NVC0TCL_RT_FORMAT_R16G16_FLOAT 0x000000de +#define NVC0TCL_RT_FORMAT_A2R10G10B10_UNORM 0x000000df +#define NVC0TCL_RT_FORMAT_B10G11R11_FLOAT 0x000000e0 +#define NVC0TCL_RT_FORMAT_R32_FLOAT 0x000000e5 +#define NVC0TCL_RT_FORMAT_X8R8G8B8_UNORM 0x000000e6 +#define NVC0TCL_RT_FORMAT_X8R8G8B8_SRGB 0x000000e7 +#define NVC0TCL_RT_FORMAT_R5G6B5_UNORM 0x000000e8 +#define NVC0TCL_RT_FORMAT_A1R5G5B5_UNORM 0x000000e9 +#define NVC0TCL_RT_FORMAT_R8G8_UNORM 0x000000ea +#define NVC0TCL_RT_FORMAT_R8G8_SNORM 0x000000eb +#define NVC0TCL_RT_FORMAT_R8G8_SINT 0x000000ec +#define NVC0TCL_RT_FORMAT_R8G8_UINT 0x000000ed +#define NVC0TCL_RT_FORMAT_R16_UNORM 0x000000ee +#define NVC0TCL_RT_FORMAT_R16_SNORM 0x000000ef +#define NVC0TCL_RT_FORMAT_R16_SINT 0x000000f0 +#define NVC0TCL_RT_FORMAT_R16_UINT 0x000000f1 +#define NVC0TCL_RT_FORMAT_R16_FLOAT 0x000000f2 +#define NVC0TCL_RT_FORMAT_R8_UNORM 0x000000f3 +#define NVC0TCL_RT_FORMAT_R8_SNORM 0x000000f4 +#define NVC0TCL_RT_FORMAT_R8_SINT 0x000000f5 +#define NVC0TCL_RT_FORMAT_R8_UINT 0x000000f6 +#define NVC0TCL_RT_FORMAT_A8_UNORM 0x000000f7 +#define NVC0TCL_RT_FORMAT_X1R5G5B5_UNORM 0x000000f8 +#define NVC0TCL_RT_FORMAT_X8B8G8R8_UNORM 0x000000f9 +#define NVC0TCL_RT_FORMAT_X8B8G8R8_SRGB 0x000000fa +#define NVC0TCL_RT_TILE_MODE(x) (0x00000814+((x)*32)) +#define NVC0TCL_RT_TILE_MODE__SIZE 0x00000008 +#define NVC0TCL_RT_ARRAY_MODE(x) (0x00000818+((x)*32)) +#define NVC0TCL_RT_ARRAY_MODE__SIZE 0x00000008 +#define NVC0TCL_RT_ARRAY_MODE_LAYERS_SHIFT 0 +#define NVC0TCL_RT_ARRAY_MODE_LAYERS_MASK 0x0000ffff +#define NVC0TCL_RT_ARRAY_MODE_VOLUME (1 << 16) +#define NVC0TCL_RT_LAYER_STRIDE(x) (0x0000081c+((x)*32)) +#define NVC0TCL_RT_LAYER_STRIDE__SIZE 0x00000008 +#define NVC0TCL_VIEWPORT_SCALE_X(x) (0x00000a00+((x)*32)) +#define NVC0TCL_VIEWPORT_SCALE_X__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_SCALE_Y(x) (0x00000a04+((x)*32)) +#define NVC0TCL_VIEWPORT_SCALE_Y__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_SCALE_Z(x) (0x00000a08+((x)*32)) +#define NVC0TCL_VIEWPORT_SCALE_Z__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_TRANSLATE_X(x) (0x00000a0c+((x)*32)) +#define NVC0TCL_VIEWPORT_TRANSLATE_X__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_TRANSLATE_Y(x) (0x00000a10+((x)*32)) +#define NVC0TCL_VIEWPORT_TRANSLATE_Y__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_TRANSLATE_Z(x) (0x00000a14+((x)*32)) +#define NVC0TCL_VIEWPORT_TRANSLATE_Z__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_HORIZ(x) (0x00000c00+((x)*16)) +#define NVC0TCL_VIEWPORT_HORIZ__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_HORIZ_X_SHIFT 0 +#define NVC0TCL_VIEWPORT_HORIZ_X_MASK 0x0000ffff +#define NVC0TCL_VIEWPORT_HORIZ_W_SHIFT 16 +#define NVC0TCL_VIEWPORT_HORIZ_W_MASK 0xffff0000 +#define NVC0TCL_VIEWPORT_VERT(x) (0x00000c04+((x)*16)) +#define NVC0TCL_VIEWPORT_VERT__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_VERT_Y_SHIFT 0 +#define NVC0TCL_VIEWPORT_VERT_Y_MASK 0x0000ffff +#define NVC0TCL_VIEWPORT_VERT_H_SHIFT 16 +#define NVC0TCL_VIEWPORT_VERT_H_MASK 0xffff0000 +#define NVC0TCL_DEPTH_RANGE_NEAR(x) (0x00000c08+((x)*16)) +#define NVC0TCL_DEPTH_RANGE_NEAR__SIZE 0x00000010 +#define NVC0TCL_DEPTH_RANGE_FAR(x) (0x00000c0c+((x)*16)) +#define NVC0TCL_DEPTH_RANGE_FAR__SIZE 0x00000010 +#define NVC0TCL_VIEWPORT_CLIP_HORIZ(x) (0x00000d00+((x)*8)) +#define NVC0TCL_VIEWPORT_CLIP_HORIZ__SIZE 0x00000008 +#define NVC0TCL_VIEWPORT_CLIP_HORIZ_MIN_SHIFT 0 +#define NVC0TCL_VIEWPORT_CLIP_HORIZ_MIN_MASK 0x0000ffff +#define NVC0TCL_VIEWPORT_CLIP_HORIZ_MAX_SHIFT 16 +#define NVC0TCL_VIEWPORT_CLIP_HORIZ_MAX_MASK 0xffff0000 +#define NVC0TCL_VIEWPORT_CLIP_VERT(x) (0x00000d04+((x)*8)) +#define NVC0TCL_VIEWPORT_CLIP_VERT__SIZE 0x00000008 +#define NVC0TCL_VIEWPORT_CLIP_VERT_MIN_SHIFT 0 +#define NVC0TCL_VIEWPORT_CLIP_VERT_MIN_MASK 0x0000ffff +#define NVC0TCL_VIEWPORT_CLIP_VERT_MAX_SHIFT 16 +#define NVC0TCL_VIEWPORT_CLIP_VERT_MAX_MASK 0xffff0000 +#define NVC0TCL_CLIPID_REGION_HORIZ(x) (0x00000d40+((x)*8)) +#define NVC0TCL_CLIPID_REGION_HORIZ__SIZE 0x00000004 +#define NVC0TCL_CLIPID_REGION_VERT(x) (0x00000d44+((x)*8)) +#define NVC0TCL_CLIPID_REGION_VERT__SIZE 0x00000004 +#define NVC0TCL_VERTEX_BUFFER_FIRST 0x00000d74 +#define NVC0TCL_VERTEX_BUFFER_COUNT 0x00000d78 +#define NVC0TCL_CLEAR_COLOR(x) (0x00000d80+((x)*4)) +#define NVC0TCL_CLEAR_COLOR__SIZE 0x00000004 +#define NVC0TCL_CLEAR_DEPTH 0x00000d90 +#define NVC0TCL_STACK_ADDRESS_HIGH 0x00000d94 +#define NVC0TCL_STACK_ADDRESS_LOW 0x00000d98 +#define NVC0TCL_STACK_SIZE_LOG 0x00000d9c +#define NVC0TCL_CLEAR_STENCIL 0x00000da0 +#define NVC0TCL_POLYGON_SMOOTH_ENABLE 0x00000db4 +#define NVC0TCL_POLYGON_OFFSET_POINT_ENABLE 0x00000dc0 +#define NVC0TCL_POLYGON_OFFSET_LINE_ENABLE 0x00000dc4 +#define NVC0TCL_POLYGON_OFFSET_FILL_ENABLE 0x00000dc8 +#define NVC0TCL_PATCH_VERTICES 0x00000dcc +#define NVC0TCL_WATCHDOG_TIMER 0x00000de4 +#define NVC0TCL_WINDOW_OFFSET_X 0x00000df8 +#define NVC0TCL_WINDOW_OFFSET_Y 0x00000dfc +#define NVC0TCL_SCISSOR_ENABLE(x) (0x00000e00+((x)*16)) +#define NVC0TCL_SCISSOR_ENABLE__SIZE 0x00000010 +#define NVC0TCL_SCISSOR_HORIZ(x) (0x00000e04+((x)*16)) +#define NVC0TCL_SCISSOR_HORIZ__SIZE 0x00000010 +#define NVC0TCL_SCISSOR_HORIZ_MIN_SHIFT 0 +#define NVC0TCL_SCISSOR_HORIZ_MIN_MASK 0x0000ffff +#define NVC0TCL_SCISSOR_HORIZ_MAX_SHIFT 16 +#define NVC0TCL_SCISSOR_HORIZ_MAX_MASK 0xffff0000 +#define NVC0TCL_SCISSOR_VERT(x) (0x00000e08+((x)*16)) +#define NVC0TCL_SCISSOR_VERT__SIZE 0x00000010 +#define NVC0TCL_SCISSOR_VERT_MIN_SHIFT 0 +#define NVC0TCL_SCISSOR_VERT_MIN_MASK 0x0000ffff +#define NVC0TCL_SCISSOR_VERT_MAX_SHIFT 16 +#define NVC0TCL_SCISSOR_VERT_MAX_MASK 0xffff0000 +#define NVC0TCL_LOCAL_WARPS_LOG_ALLOC 0x00000f44 +#define NVC0TCL_LOCAL_WARPS_NO_CLAMP 0x00000f48 +#define NVC0TCL_STACK_WARPS_LOG_ALLOC 0x00000f4c +#define NVC0TCL_STACK_WARPS_NO_CLAMP 0x00000f50 +#define NVC0TCL_STENCIL_BACK_FUNC_REF 0x00000f54 +#define NVC0TCL_STENCIL_BACK_MASK 0x00000f58 +#define NVC0TCL_STENCIL_BACK_FUNC_MASK 0x00000f5c +#define NVC0TCL_VERTEX_RUNOUT_HIGH 0x00000f84 +#define NVC0TCL_VERTEX_RUNOUT_LOW 0x00000f88 +#define NVC0TCL_DEPTH_BOUNDS(x) (0x00000f9c+((x)*4)) +#define NVC0TCL_DEPTH_BOUNDS__SIZE 0x00000002 +#define NVC0TCL_MSAA_MASK(x) (0x00000fbc+((x)*4)) +#define NVC0TCL_MSAA_MASK__SIZE 0x00000004 +#define NVC0TCL_CLIPID_ADDRESS_HIGH 0x00000fcc +#define NVC0TCL_CLIPID_ADDRESS_LOW 0x00000fd0 +#define NVC0TCL_ZETA_ADDRESS_HIGH 0x00000fe0 +#define NVC0TCL_ZETA_ADDRESS_LOW 0x00000fe4 +#define NVC0TCL_ZETA_FORMAT 0x00000fe8 +#define NVC0TCL_ZETA_FORMAT_Z32_FLOAT 0x0000000a +#define NVC0TCL_ZETA_FORMAT_Z16_UNORM 0x00000013 +#define NVC0TCL_ZETA_FORMAT_Z24S8_UNORM 0x00000014 +#define NVC0TCL_ZETA_FORMAT_X8Z24_UNORM 0x00000015 +#define NVC0TCL_ZETA_FORMAT_S8Z24_UNORM 0x00000016 +#define NVC0TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM 0x00000019 +#define NVC0TCL_ZETA_TILE_MODE 0x00000fec +#define NVC0TCL_ZETA_LAYER_STRIDE 0x00000ff0 +#define NVC0TCL_SCREEN_SCISSOR_HORIZ 0x00000ff4 +#define NVC0TCL_SCREEN_SCISSOR_HORIZ_W_SHIFT 16 +#define NVC0TCL_SCREEN_SCISSOR_HORIZ_W_MASK 0xffff0000 +#define NVC0TCL_SCREEN_SCISSOR_HORIZ_X_SHIFT 0 +#define NVC0TCL_SCREEN_SCISSOR_HORIZ_X_MASK 0x0000ffff +#define NVC0TCL_SCREEN_SCISSOR_VERT 0x00000ff8 +#define NVC0TCL_SCREEN_SCISSOR_VERT_H_SHIFT 16 +#define NVC0TCL_SCREEN_SCISSOR_VERT_H_MASK 0xffff0000 +#define NVC0TCL_SCREEN_SCISSOR_VERT_Y_SHIFT 0 +#define NVC0TCL_SCREEN_SCISSOR_VERT_Y_MASK 0x0000ffff +#define NVC0TCL_VTX_ATTR_DEFINE 0x0000114c +#define NVC0TCL_VTX_ATTR_DEFINE_ATTR_SHIFT 0 +#define NVC0TCL_VTX_ATTR_DEFINE_ATTR_MASK 0x0000003f +#define NVC0TCL_VTX_ATTR_DEFINE_COMP_SHIFT 8 +#define NVC0TCL_VTX_ATTR_DEFINE_COMP_MASK 0x00000f00 +#define NVC0TCL_VTX_ATTR_DEFINE_SIZE_SHIFT 12 +#define NVC0TCL_VTX_ATTR_DEFINE_SIZE_MASK 0x0000f000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_SHIFT 16 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_MASK 0x000f0000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_FLOAT 0x00070000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_UNORM 0x00010000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_SNORM 0x00020000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_USCALED 0x00050000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_SSCALED 0x00060000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_UINT 0x00040000 +#define NVC0TCL_VTX_ATTR_DEFINE_TYPE_SINT 0x00030000 +#define NVC0TCL_VTX_ATTR_DATA(x) (0x00001150+((x)*4)) +#define NVC0TCL_VTX_ATTR_DATA__SIZE 0x00000004 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT(x) (0x00001160+((x)*4)) +#define NVC0TCL_VERTEX_ATTRIB_FORMAT__SIZE 0x00000020 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_BUFFER_SHIFT 0 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_BUFFER_MASK 0x0000003f +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_CONST (1 << 6) +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_OFFSET_SHIFT 7 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_OFFSET_MASK 0x001fff80 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_SHIFT 21 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_MASK 0x07e00000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32_32_32 0x00200000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32_32 0x00400000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16_16_16 0x00600000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32_32 0x00800000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16_16 0x00a00000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8_8_8 0x01400000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16_16 0x01e00000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_32 0x02400000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8_8 0x02600000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8_8 0x03000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_16 0x03600000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_8 0x03a00000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_FORMAT_2_10_10_10 0x06000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SHIFT 27 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_MASK 0x78000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_FLOAT 0x38000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_UNORM 0x08000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SNORM 0x10000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_USCALED 0x28000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SSCALED 0x30000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_UINT 0x20000000 +#define NVC0TCL_VERTEX_ATTRIB_FORMAT_TYPE_SINT 0x18000000 +#define NVC0TCL_RT_CONTROL 0x0000121c +#define NVC0TCL_RT_CONTROL_COUNT_SHIFT 0 +#define NVC0TCL_RT_CONTROL_COUNT_MASK 0x0000000f +#define NVC0TCL_RT_CONTROL_MAP0_SHIFT 4 +#define NVC0TCL_RT_CONTROL_MAP0_MASK 0x00000070 +#define NVC0TCL_RT_CONTROL_MAP1_SHIFT 7 +#define NVC0TCL_RT_CONTROL_MAP1_MASK 0x00000380 +#define NVC0TCL_RT_CONTROL_MAP2_SHIFT 10 +#define NVC0TCL_RT_CONTROL_MAP2_MASK 0x00001c00 +#define NVC0TCL_RT_CONTROL_MAP3_SHIFT 13 +#define NVC0TCL_RT_CONTROL_MAP3_MASK 0x0000e000 +#define NVC0TCL_RT_CONTROL_MAP4_SHIFT 16 +#define NVC0TCL_RT_CONTROL_MAP4_MASK 0x00070000 +#define NVC0TCL_RT_CONTROL_MAP5_SHIFT 19 +#define NVC0TCL_RT_CONTROL_MAP5_MASK 0x00380000 +#define NVC0TCL_RT_CONTROL_MAP6_SHIFT 22 +#define NVC0TCL_RT_CONTROL_MAP6_MASK 0x01c00000 +#define NVC0TCL_RT_CONTROL_MAP7_SHIFT 25 +#define NVC0TCL_RT_CONTROL_MAP7_MASK 0x0e000000 +#define NVC0TCL_ZETA_HORIZ 0x00001228 +#define NVC0TCL_ZETA_VERT 0x0000122c +#define NVC0TCL_ZETA_ARRAY_MODE 0x00001230 +#define NVC0TCL_ZETA_ARRAY_MODE_LAYERS_SHIFT 0 +#define NVC0TCL_ZETA_ARRAY_MODE_LAYERS_MASK 0x0000ffff +#define NVC0TCL_ZETA_ARRAY_MODE_UNK (1 << 16) +#define NVC0TCL_LINKED_TSC 0x00001234 +#define NVC0TCL_FP_RESULT_COUNT 0x00001298 +#define NVC0TCL_DEPTH_TEST_ENABLE 0x000012cc +#define NVC0TCL_SHADE_MODEL 0x000012d4 +#define NVC0TCL_SHADE_MODEL_FLAT 0x00001d00 +#define NVC0TCL_SHADE_MODEL_SMOOTH 0x00001d01 +#define NVC0TCL_BLEND_INDEPENDENT 0x000012e4 +#define NVC0TCL_DEPTH_WRITE_ENABLE 0x000012e8 +#define NVC0TCL_ALPHA_TEST_ENABLE 0x000012ec +#define NVC0TCL_PM_SET(x) (0x000012f0+((x)*4)) +#define NVC0TCL_PM_SET__SIZE 0x00000004 +#define NVC0TCL_VB_ELEMENT_U8_SETUP 0x00001300 +#define NVC0TCL_VB_ELEMENT_U8_SETUP_OFFSET_SHIFT 30 +#define NVC0TCL_VB_ELEMENT_U8_SETUP_OFFSET_MASK 0xc0000000 +#define NVC0TCL_VB_ELEMENT_U8_SETUP_COUNT_SHIFT 0 +#define NVC0TCL_VB_ELEMENT_U8_SETUP_COUNT_MASK 0x3fffffff +#define NVC0TCL_VB_ELEMENT_U8 0x00001304 +#define NVC0TCL_VB_ELEMENT_U8_I0_SHIFT 0 +#define NVC0TCL_VB_ELEMENT_U8_I0_MASK 0x000000ff +#define NVC0TCL_VB_ELEMENT_U8_I1_SHIFT 8 +#define NVC0TCL_VB_ELEMENT_U8_I1_MASK 0x0000ff00 +#define NVC0TCL_VB_ELEMENT_U8_I2_SHIFT 16 +#define NVC0TCL_VB_ELEMENT_U8_I2_MASK 0x00ff0000 +#define NVC0TCL_VB_ELEMENT_U8_I3_SHIFT 24 +#define NVC0TCL_VB_ELEMENT_U8_I3_MASK 0xff000000 +#define NVC0TCL_DEPTH_TEST_FUNC 0x0000130c +#define NVC0TCL_DEPTH_TEST_FUNC_NEVER 0x00000200 +#define NVC0TCL_DEPTH_TEST_FUNC_LESS 0x00000201 +#define NVC0TCL_DEPTH_TEST_FUNC_EQUAL 0x00000202 +#define NVC0TCL_DEPTH_TEST_FUNC_LEQUAL 0x00000203 +#define NVC0TCL_DEPTH_TEST_FUNC_GREATER 0x00000204 +#define NVC0TCL_DEPTH_TEST_FUNC_NOTEQUAL 0x00000205 +#define NVC0TCL_DEPTH_TEST_FUNC_GEQUAL 0x00000206 +#define NVC0TCL_DEPTH_TEST_FUNC_ALWAYS 0x00000207 +#define NVC0TCL_ALPHA_TEST_REF 0x00001310 +#define NVC0TCL_ALPHA_TEST_FUNC 0x00001314 +#define NVC0TCL_ALPHA_TEST_FUNC_NEVER 0x00000200 +#define NVC0TCL_ALPHA_TEST_FUNC_LESS 0x00000201 +#define NVC0TCL_ALPHA_TEST_FUNC_EQUAL 0x00000202 +#define NVC0TCL_ALPHA_TEST_FUNC_LEQUAL 0x00000203 +#define NVC0TCL_ALPHA_TEST_FUNC_GREATER 0x00000204 +#define NVC0TCL_ALPHA_TEST_FUNC_NOTEQUAL 0x00000205 +#define NVC0TCL_ALPHA_TEST_FUNC_GEQUAL 0x00000206 +#define NVC0TCL_ALPHA_TEST_FUNC_ALWAYS 0x00000207 +#define NVC0TCL_BLEND_COLOR(x) (0x0000131c+((x)*4)) +#define NVC0TCL_BLEND_COLOR__SIZE 0x00000004 +#define NVC0TCL_TIC_FLUSH 0x00001330 +#define NVC0TCL_TSC_FLUSH 0x00001334 +#define NVC0TCL_TEX_CACHE_CTL 0x00001338 +#define NVC0TCL_BLEND_EQUATION_RGB 0x00001340 +#define NVC0TCL_BLEND_EQUATION_RGB_FUNC_ADD 0x00008006 +#define NVC0TCL_BLEND_EQUATION_RGB_MIN 0x00008007 +#define NVC0TCL_BLEND_EQUATION_RGB_MAX 0x00008008 +#define NVC0TCL_BLEND_EQUATION_RGB_FUNC_SUBTRACT 0x0000800a +#define NVC0TCL_BLEND_EQUATION_RGB_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NVC0TCL_BLEND_FUNC_SRC_RGB 0x00001344 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_BLEND_FUNC_DST_RGB 0x00001348 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNC_DST_RGB_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNC_DST_RGB_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNC_DST_RGB_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNC_DST_RGB_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNC_DST_RGB_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNC_DST_RGB_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNC_DST_RGB_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNC_DST_RGB_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNC_DST_RGB_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_BLEND_EQUATION_ALPHA 0x0000134c +#define NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_ADD 0x00008006 +#define NVC0TCL_BLEND_EQUATION_ALPHA_MIN 0x00008007 +#define NVC0TCL_BLEND_EQUATION_ALPHA_MAX 0x00008008 +#define NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_SUBTRACT 0x0000800a +#define NVC0TCL_BLEND_EQUATION_ALPHA_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA 0x00001350 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNC_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA 0x00001358 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNC_DST_ALPHA_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_STENCIL_ENABLE 0x00001380 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL 0x00001384 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_ZERO 0x00000000 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_INVERT 0x0000150a +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_KEEP 0x00001e00 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_REPLACE 0x00001e01 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_INCR 0x00001e02 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_DECR 0x00001e03 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_INCR_WRAP 0x00008507 +#define NVC0TCL_STENCIL_FRONT_OP_FAIL_DECR_WRAP 0x00008508 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL 0x00001388 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_ZERO 0x00000000 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INVERT 0x0000150a +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_KEEP 0x00001e00 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_REPLACE 0x00001e01 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INCR 0x00001e02 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_DECR 0x00001e03 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NVC0TCL_STENCIL_FRONT_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS 0x0000138c +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_ZERO 0x00000000 +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_INVERT 0x0000150a +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_KEEP 0x00001e00 +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_REPLACE 0x00001e01 +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_INCR 0x00001e02 +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_DECR 0x00001e03 +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_INCR_WRAP 0x00008507 +#define NVC0TCL_STENCIL_FRONT_OP_ZPASS_DECR_WRAP 0x00008508 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC 0x00001390 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_NEVER 0x00000200 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_LESS 0x00000201 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_EQUAL 0x00000202 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_LEQUAL 0x00000203 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_GREATER 0x00000204 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_GEQUAL 0x00000206 +#define NVC0TCL_STENCIL_FRONT_FUNC_FUNC_ALWAYS 0x00000207 +#define NVC0TCL_STENCIL_FRONT_FUNC_REF 0x00001394 +#define NVC0TCL_STENCIL_FRONT_MASK 0x00001398 +#define NVC0TCL_STENCIL_FRONT_FUNC_MASK 0x0000139c +#define NVC0TCL_FRAG_COLOR_CLAMP_EN 0x000013a8 +#define NVC0TCL_Y_ORIGIN_BOTTOM 0x000013ac +#define NVC0TCL_LINE_WIDTH(x) (0x000013b0+((x)*4)) +#define NVC0TCL_LINE_WIDTH__SIZE 0x00000002 +#define NVC0TCL_POINT_COORD_REPLACE_MAP(x) (0x000013c0+((x)*4)) +#define NVC0TCL_POINT_COORD_REPLACE_MAP__SIZE 0x00000008 +#define NVC0TCL_GP_VERTEX_OUTPUT_COUNT 0x00001420 +#define NVC0TCL_FENCE 0x0000142c +#define NVC0TCL_VB_ELEMENT_BASE 0x00001434 +#define NVC0TCL_INSTANCE_BASE 0x00001438 +#define NVC0TCL_CODE_CB_FLUSH 0x00001440 +#define NVC0TCL_CLIPID_HEIGHT 0x00001504 +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE 0x00001510 +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_0 (1 << 0) +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_1 (1 << 1) +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_2 (1 << 2) +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_3 (1 << 3) +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_4 (1 << 4) +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_5 (1 << 5) +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_6 (1 << 6) +#define NVC0TCL_VP_CLIP_DISTANCE_ENABLE_7 (1 << 7) +#define NVC0TCL_SAMPLECNT_ENABLE 0x00001514 +#define NVC0TCL_POINT_SIZE 0x00001518 +#define NVC0TCL_POINT_SPRITE_ENABLE 0x00001520 +#define NVC0TCL_SAMPLECNT_RESET 0x00001530 +#define NVC0TCL_MULTISAMPLE_ZETA_ENABLE 0x00001534 +#define NVC0TCL_ZETA_ENABLE 0x00001538 +#define NVC0TCL_MULTISAMPLE_CTRL 0x0000153c +#define NVC0TCL_MULTISAMPLE_CTRL_ALPHA_TO_COVERAGE (1 << 0) +#define NVC0TCL_MULTISAMPLE_CTRL_ALPHA_TO_ONE (1 << 4) +#define NVC0TCL_NOPERSPECTIVE_BITMAP(x) (0x00001540+((x)*4)) +#define NVC0TCL_NOPERSPECTIVE_BITMAP__SIZE 0x00000004 +#define NVC0TCL_COND_ADDRESS_HIGH 0x00001550 +#define NVC0TCL_COND_ADDRESS_LOW 0x00001554 +#define NVC0TCL_COND_MODE 0x00001558 +#define NVC0TCL_COND_MODE_NEVER 0x00000000 +#define NVC0TCL_COND_MODE_ALWAYS 0x00000001 +#define NVC0TCL_COND_MODE_RES 0x00000002 +#define NVC0TCL_COND_MODE_NOT_RES_AND_NOT_ID 0x00000003 +#define NVC0TCL_COND_MODE_RES_OR_ID 0x00000004 +#define NVC0TCL_TSC_ADDRESS_HIGH 0x0000155c +#define NVC0TCL_TSC_ADDRESS_LOW 0x00001560 +#define NVC0TCL_TSC_LIMIT 0x00001564 +#define NVC0TCL_POLYGON_OFFSET_FACTOR 0x0000156c +#define NVC0TCL_LINE_SMOOTH_ENABLE 0x00001570 +#define NVC0TCL_TIC_ADDRESS_HIGH 0x00001574 +#define NVC0TCL_TIC_ADDRESS_LOW 0x00001578 +#define NVC0TCL_TIC_LIMIT 0x0000157c +#define NVC0TCL_PM_CONTROL(x) (0x00001580+((x)*4)) +#define NVC0TCL_PM_CONTROL__SIZE 0x00000004 +#define NVC0TCL_PM_CONTROL_UNK0 (1 << 0) +#define NVC0TCL_PM_CONTROL_UNK1_SHIFT 4 +#define NVC0TCL_PM_CONTROL_UNK1_MASK 0x00000070 +#define NVC0TCL_PM_CONTROL_UNK2_SHIFT 8 +#define NVC0TCL_PM_CONTROL_UNK2_MASK 0xffffff00 +#define NVC0TCL_STENCIL_TWO_SIDE_ENABLE 0x00001594 +#define NVC0TCL_STENCIL_BACK_OP_FAIL 0x00001598 +#define NVC0TCL_STENCIL_BACK_OP_FAIL_ZERO 0x00000000 +#define NVC0TCL_STENCIL_BACK_OP_FAIL_INVERT 0x0000150a +#define NVC0TCL_STENCIL_BACK_OP_FAIL_KEEP 0x00001e00 +#define NVC0TCL_STENCIL_BACK_OP_FAIL_REPLACE 0x00001e01 +#define NVC0TCL_STENCIL_BACK_OP_FAIL_INCR 0x00001e02 +#define NVC0TCL_STENCIL_BACK_OP_FAIL_DECR 0x00001e03 +#define NVC0TCL_STENCIL_BACK_OP_FAIL_INCR_WRAP 0x00008507 +#define NVC0TCL_STENCIL_BACK_OP_FAIL_DECR_WRAP 0x00008508 +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL 0x0000159c +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_ZERO 0x00000000 +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_INVERT 0x0000150a +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_KEEP 0x00001e00 +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_REPLACE 0x00001e01 +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_INCR 0x00001e02 +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_DECR 0x00001e03 +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_INCR_WRAP 0x00008507 +#define NVC0TCL_STENCIL_BACK_OP_ZFAIL_DECR_WRAP 0x00008508 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS 0x000015a0 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_ZERO 0x00000000 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_INVERT 0x0000150a +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_KEEP 0x00001e00 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_REPLACE 0x00001e01 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_INCR 0x00001e02 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_DECR 0x00001e03 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_INCR_WRAP 0x00008507 +#define NVC0TCL_STENCIL_BACK_OP_ZPASS_DECR_WRAP 0x00008508 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC 0x000015a4 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_NEVER 0x00000200 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_LESS 0x00000201 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_EQUAL 0x00000202 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_LEQUAL 0x00000203 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_GREATER 0x00000204 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_NOTEQUAL 0x00000205 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_GEQUAL 0x00000206 +#define NVC0TCL_STENCIL_BACK_FUNC_FUNC_ALWAYS 0x00000207 +#define NVC0TCL_MULTISAMPLE_COLOR_ENABLE 0x000015b4 +#define NVC0TCL_FRAMEBUFFER_SRGB 0x000015b8 +#define NVC0TCL_POLYGON_OFFSET_UNITS 0x000015bc +#define NVC0TCL_GP_BUILTIN_RESULT_EN 0x000015cc +#define NVC0TCL_GP_BUILTIN_RESULT_EN_VPORT (1 << 0) +#define NVC0TCL_GP_BUILTIN_RESULT_EN_LAYER (1 << 16) +#define NVC0TCL_MULTISAMPLE_MODE 0x000015d0 +#define NVC0TCL_MULTISAMPLE_MODE_1X 0x00000000 +#define NVC0TCL_MULTISAMPLE_MODE_2XMS 0x00000001 +#define NVC0TCL_MULTISAMPLE_MODE_4XMS 0x00000002 +#define NVC0TCL_MULTISAMPLE_MODE_8XMS 0x00000004 +#define NVC0TCL_MULTISAMPLE_MODE_4XMS_4XCS 0x00000008 +#define NVC0TCL_MULTISAMPLE_MODE_4XMS_12XCS 0x00000009 +#define NVC0TCL_MULTISAMPLE_MODE_8XMS_8XCS 0x0000000a +#define NVC0TCL_EDGEFLAG_ENABLE 0x000015e4 +#define NVC0TCL_VB_ELEMENT_U32 0x000015e8 +#define NVC0TCL_VB_ELEMENT_U16_SETUP 0x000015ec +#define NVC0TCL_VB_ELEMENT_U16_SETUP_OFFSET_SHIFT 30 +#define NVC0TCL_VB_ELEMENT_U16_SETUP_OFFSET_MASK 0xc0000000 +#define NVC0TCL_VB_ELEMENT_U16_SETUP_COUNT_SHIFT 0 +#define NVC0TCL_VB_ELEMENT_U16_SETUP_COUNT_MASK 0x3fffffff +#define NVC0TCL_VB_ELEMENT_U16 0x000015f0 +#define NVC0TCL_VB_ELEMENT_U16_I0_SHIFT 0 +#define NVC0TCL_VB_ELEMENT_U16_I0_MASK 0x0000ffff +#define NVC0TCL_VB_ELEMENT_U16_I1_SHIFT 16 +#define NVC0TCL_VB_ELEMENT_U16_I1_MASK 0xffff0000 +#define NVC0TCL_VERTEX_BASE_HIGH 0x000015f4 +#define NVC0TCL_VERTEX_BASE_LOW 0x000015f8 +#define NVC0TCL_CODE_ADDRESS_HIGH 0x00001608 +#define NVC0TCL_CODE_ADDRESS_LOW 0x0000160c +#define NVC0TCL_VERTEX_BEGIN 0x00001618 +#define NVC0TCL_VERTEX_BEGIN_MODE_SHIFT 0 +#define NVC0TCL_VERTEX_BEGIN_MODE_MASK 0x0000000f +#define NVC0TCL_VERTEX_BEGIN_MODE_POINTS 0x00000000 +#define NVC0TCL_VERTEX_BEGIN_MODE_LINES 0x00000001 +#define NVC0TCL_VERTEX_BEGIN_MODE_LINE_LOOP 0x00000002 +#define NVC0TCL_VERTEX_BEGIN_MODE_LINE_STRIP 0x00000003 +#define NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLES 0x00000004 +#define NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_STRIP 0x00000005 +#define NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_FAN 0x00000006 +#define NVC0TCL_VERTEX_BEGIN_MODE_QUADS 0x00000007 +#define NVC0TCL_VERTEX_BEGIN_MODE_QUAD_STRIP 0x00000008 +#define NVC0TCL_VERTEX_BEGIN_MODE_POLYGON 0x00000009 +#define NVC0TCL_VERTEX_BEGIN_MODE_LINES_ADJACENCY 0x0000000a +#define NVC0TCL_VERTEX_BEGIN_MODE_LINE_STRIP_ADJACENCY 0x0000000b +#define NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLES_ADJACENCY 0x0000000c +#define NVC0TCL_VERTEX_BEGIN_MODE_TRIANGLE_STRIP_ADJACENCY 0x0000000d +#define NVC0TCL_VERTEX_BEGIN_MODE_PATCHES 0x0000000e +#define NVC0TCL_VERTEX_BEGIN_INSTANCE (1 << 26) +#define NVC0TCL_VERTEX_END 0x00001614 +#define NVC0TCL_VERTEX_DATA 0x00001640 +#define NVC0TCL_PRIM_RESTART_ENABLE 0x00001644 +#define NVC0TCL_PRIM_RESTART_INDEX 0x00001648 +#define NVC0TCL_POINT_SMOOTH_ENABLE 0x00001658 +#define NVC0TCL_POINT_SPRITE_CTRL 0x00001660 +#define NVC0TCL_LINE_STIPPLE_ENABLE 0x0000166c +#define NVC0TCL_LINE_STIPPLE_PATTERN 0x00001680 +#define NVC0TCL_PROVOKING_VERTEX_LAST 0x00001684 +#define NVC0TCL_VERTEX_TWO_SIDE_ENABLE 0x00001688 +#define NVC0TCL_POLYGON_STIPPLE_ENABLE 0x0000168c +#define NVC0TCL_POLYGON_STIPPLE_PATTERN(x) (0x00001700+((x)*4)) +#define NVC0TCL_POLYGON_STIPPLE_PATTERN__SIZE 0x00000020 +#define NVC0TCL_UNK17BC_ADDRESS_HIGH 0x000017bc +#define NVC0TCL_UNK17BC_ADDRESS_LOW 0x000017c0 +#define NVC0TCL_UNK17BC_LIMIT 0x000017c4 +#define NVC0TCL_VP_POINT_SIZE_EN 0x00001910 +#define NVC0TCL_CULL_FACE_ENABLE 0x00001918 +#define NVC0TCL_FRONT_FACE 0x0000191c +#define NVC0TCL_FRONT_FACE_CW 0x00000900 +#define NVC0TCL_FRONT_FACE_CCW 0x00000901 +#define NVC0TCL_CULL_FACE 0x00001920 +#define NVC0TCL_CULL_FACE_FRONT 0x00000404 +#define NVC0TCL_CULL_FACE_BACK 0x00000405 +#define NVC0TCL_CULL_FACE_FRONT_AND_BACK 0x00000408 +#define NVC0TCL_VIEWPORT_TRANSFORM_EN 0x0000192c +#define NVC0TCL_VIEW_VOLUME_CLIP_CTRL 0x0000193c +#define NVC0TCL_VIEWPORT_CLIP_RECTS_EN 0x0000194c +#define NVC0TCL_VIEWPORT_CLIP_MODE 0x00001950 +#define NVC0TCL_VIEWPORT_CLIP_MODE_INCLUDE 0x00000000 +#define NVC0TCL_VIEWPORT_CLIP_MODE_EXCLUDE 0x00000001 +#define NVC0TCL_VIEWPORT_CLIP_MODE_UNKNOWN 0x00000002 +#define NVC0TCL_FP_ZORDER_CTRL 0x0000196c +#define NVC0TCL_CLIPID_ENABLE 0x0000197c +#define NVC0TCL_CLIPID_WIDTH 0x00001980 +#define NVC0TCL_CLIPID_ID 0x00001984 +#define NVC0TCL_REG_MODE 0x000019a0 +#define NVC0TCL_REG_MODE_PACKED 0x00000001 +#define NVC0TCL_REG_MODE_STRIPED 0x00000002 +#define NVC0TCL_FP_CONTROL 0x000019a8 +#define NVC0TCL_FP_CONTROL_MULTIPLE_RESULTS (1 << 0) +#define NVC0TCL_FP_CONTROL_EXPORTS_Z (1 << 8) +#define NVC0TCL_FP_CONTROL_USES_KIL (1 << 20) +#define NVC0TCL_DEPTH_BOUNDS_EN 0x000019bc +#define NVC0TCL_LOGIC_OP_ENABLE 0x000019c4 +#define NVC0TCL_LOGIC_OP 0x000019c8 +#define NVC0TCL_LOGIC_OP_CLEAR 0x00001500 +#define NVC0TCL_LOGIC_OP_AND 0x00001501 +#define NVC0TCL_LOGIC_OP_AND_REVERSE 0x00001502 +#define NVC0TCL_LOGIC_OP_COPY 0x00001503 +#define NVC0TCL_LOGIC_OP_AND_INVERTED 0x00001504 +#define NVC0TCL_LOGIC_OP_NOOP 0x00001505 +#define NVC0TCL_LOGIC_OP_XOR 0x00001506 +#define NVC0TCL_LOGIC_OP_OR 0x00001507 +#define NVC0TCL_LOGIC_OP_NOR 0x00001508 +#define NVC0TCL_LOGIC_OP_EQUIV 0x00001509 +#define NVC0TCL_LOGIC_OP_INVERT 0x0000150a +#define NVC0TCL_LOGIC_OP_OR_REVERSE 0x0000150b +#define NVC0TCL_LOGIC_OP_COPY_INVERTED 0x0000150c +#define NVC0TCL_LOGIC_OP_OR_INVERTED 0x0000150d +#define NVC0TCL_LOGIC_OP_NAND 0x0000150e +#define NVC0TCL_LOGIC_OP_SET 0x0000150f +#define NVC0TCL_CLEAR_BUFFERS 0x000019d0 +#define NVC0TCL_CLEAR_BUFFERS_Z (1 << 0) +#define NVC0TCL_CLEAR_BUFFERS_S (1 << 1) +#define NVC0TCL_CLEAR_BUFFERS_R (1 << 2) +#define NVC0TCL_CLEAR_BUFFERS_G (1 << 3) +#define NVC0TCL_CLEAR_BUFFERS_B (1 << 4) +#define NVC0TCL_CLEAR_BUFFERS_A (1 << 5) +#define NVC0TCL_CLEAR_BUFFERS_RT_SHIFT 6 +#define NVC0TCL_CLEAR_BUFFERS_RT_MASK 0x000003c0 +#define NVC0TCL_CLEAR_BUFFERS_LAYER_SHIFT 10 +#define NVC0TCL_CLEAR_BUFFERS_LAYER_MASK 0x0007fc00 +#define NVC0TCL_COLOR_MASK(x) (0x00001a00+((x)*4)) +#define NVC0TCL_COLOR_MASK__SIZE 0x00000008 +#define NVC0TCL_COLOR_MASK_R_SHIFT 0 +#define NVC0TCL_COLOR_MASK_R_MASK 0x0000000f +#define NVC0TCL_COLOR_MASK_G_SHIFT 4 +#define NVC0TCL_COLOR_MASK_G_MASK 0x000000f0 +#define NVC0TCL_COLOR_MASK_B_SHIFT 8 +#define NVC0TCL_COLOR_MASK_B_MASK 0x00000f00 +#define NVC0TCL_COLOR_MASK_A_SHIFT 12 +#define NVC0TCL_COLOR_MASK_A_MASK 0x0000f000 +#define NVC0TCL_QUERY_ADDRESS_HIGH 0x00001b00 +#define NVC0TCL_QUERY_ADDRESS_LOW 0x00001b04 +#define NVC0TCL_QUERY_SEQUENCE 0x00001b08 +#define NVC0TCL_QUERY_GET 0x00001b0c +#define NVC0TCL_VERTEX_ARRAY_FETCH(x) (0x00001c00+((x)*16)) +#define NVC0TCL_VERTEX_ARRAY_FETCH__SIZE 0x00000020 +#define NVC0TCL_VERTEX_ARRAY_FETCH_STRIDE_SHIFT 0 +#define NVC0TCL_VERTEX_ARRAY_FETCH_STRIDE_MASK 0x00000fff +#define NVC0TCL_VERTEX_ARRAY_FETCH_ENABLE (1 << 12) +#define NVC0TCL_BLEND_EQUATIONI_RGB(x) (0x00001e04+((x)*32)) +#define NVC0TCL_BLEND_EQUATIONI_RGB__SIZE 0x00000008 +#define NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_ADD 0x00008006 +#define NVC0TCL_BLEND_EQUATIONI_RGB_MIN 0x00008007 +#define NVC0TCL_BLEND_EQUATIONI_RGB_MAX 0x00008008 +#define NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_SUBTRACT 0x0000800a +#define NVC0TCL_BLEND_EQUATIONI_RGB_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NVC0TCL_BLEND_FUNCI_SRC_RGB(x) (0x00001e08+((x)*32)) +#define NVC0TCL_BLEND_FUNCI_SRC_RGB__SIZE 0x00000008 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNCI_SRC_RGB_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_BLEND_FUNCI_DST_RGB(x) (0x00001e0c+((x)*32)) +#define NVC0TCL_BLEND_FUNCI_DST_RGB__SIZE 0x00000008 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNCI_DST_RGB_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_BLEND_EQUATIONI_ALPHA(x) (0x00001e10+((x)*32)) +#define NVC0TCL_BLEND_EQUATIONI_ALPHA__SIZE 0x00000008 +#define NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_ADD 0x00008006 +#define NVC0TCL_BLEND_EQUATIONI_ALPHA_MIN 0x00008007 +#define NVC0TCL_BLEND_EQUATIONI_ALPHA_MAX 0x00008008 +#define NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_SUBTRACT 0x0000800a +#define NVC0TCL_BLEND_EQUATIONI_ALPHA_FUNC_REVERSE_SUBTRACT 0x0000800b +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA(x) (0x00001e14+((x)*32)) +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA__SIZE 0x00000008 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNCI_SRC_ALPHA_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA(x) (0x00001e18+((x)*32)) +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA__SIZE 0x00000008 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ZERO 0x00004000 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE 0x00004001 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_COLOR 0x00004300 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC_COLOR 0x00004301 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_ALPHA 0x00004302 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC_ALPHA 0x00004303 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_DST_ALPHA 0x00004304 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_DST_ALPHA 0x00004305 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_DST_COLOR 0x00004306 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_DST_COLOR 0x00004307 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC_ALPHA_SATURATE 0x00004308 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_CONSTANT_COLOR 0x0000c001 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_CONSTANT_COLOR 0x0000c002 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_CONSTANT_ALPHA 0x0000c003 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_CONSTANT_ALPHA 0x0000c004 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC1_COLOR 0x0000c900 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC1_COLOR 0x0000c901 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_SRC1_ALPHA 0x0000c902 +#define NVC0TCL_BLEND_FUNCI_DST_ALPHA_ONE_MINUS_SRC1_ALPHA 0x0000c903 +#define NVC0TCL_SP_SELECT(x) (0x00002000+((x)*64)) +#define NVC0TCL_SP_SELECT__SIZE 0x00000006 +#define NVC0TCL_SP_SELECT_ENABLE (1 << 0) +#define NVC0TCL_SP_SELECT_PROGRAM_SHIFT 4 +#define NVC0TCL_SP_SELECT_PROGRAM_MASK 0x000000f0 +#define NVC0TCL_SP_START_ID(x) (0x00002004+((x)*64)) +#define NVC0TCL_SP_START_ID__SIZE 0x00000006 +#define NVC0TCL_SP_GPR_ALLOC(x) (0x0000200c+((x)*64)) +#define NVC0TCL_SP_GPR_ALLOC__SIZE 0x00000006 +#define NVC0TCL_CB_SIZE 0x00002380 +#define NVC0TCL_CB_BIND(x) (0x00002410+((x)*32)) +#define NVC0TCL_CB_BIND__SIZE 0x00000005 +#define NVC0TCL_CB_BIND_VALID (1 << 0) +#define NVC0TCL_CB_BIND_INDEX_SHIFT 4 +#define NVC0TCL_CB_BIND_INDEX_MASK 0x000000f0 +#define NVC0TCL_BIND_TIC(x) (0x00002404+((x)*32)) +#define NVC0TCL_BIND_TIC__SIZE 0x00000005 +#define NVC0TCL_BIND_TIC_ACTIVE (1 << 0) +#define NVC0TCL_BIND_TIC_TEXTURE_SHIFT 1 +#define NVC0TCL_BIND_TIC_TEXTURE_MASK 0x000001fe +#define NVC0TCL_BIND_TIC_TIC_SHIFT 9 +#define NVC0TCL_BIND_TIC_TIC_MASK 0x7ffffe00 +#define NVC0TCL_TEX_LIMITS(x) (0x00002200+((x)*16)) +#define NVC0TCL_TEX_LIMITS__SIZE 0x00000005 +#define NVC0TCL_TEX_LIMITS_SAMPLERS_LOG2_SHIFT 0 +#define NVC0TCL_TEX_LIMITS_SAMPLERS_LOG2_MASK 0x0000000f +#define NVC0TCL_TEX_LIMITS_TEXTURES_LOG2_SHIFT 4 +#define NVC0TCL_TEX_LIMITS_TEXTURES_LOG2_MASK 0x000000f0 +#define NVC0TCL_CB_ADDR_HIGH 0x00002384 +#define NVC0TCL_CB_ADDR_LOW 0x00002388 +#define NVC0TCL_CB_POS 0x0000238c +#define NVC0TCL_CB_DATA(x) (0x00002390+((x)*4)) +#define NVC0TCL_CB_DATA__SIZE 0x00000010 +#define NVC0TCL_TFB_VARYING_LOCS(x) (0x00002800+((x)*4)) +#define NVC0TCL_TFB_VARYING_LOCS__SIZE 0x00000080 +#define NVC0TCL_UNK_UPLOAD_POS 0x00003800 +#define NVC0TCL_UNK_UPLOAD_DATA 0x00003804 +#define NVC0TCL_VERTEX_ARRAY_SELECT 0x00003820 +#define NVC0TCL_VERTEX_ARRAY_ADDRESS 0x00003824 +#define NVC0TCL_BLEND_ENABLEI 0x00003858 +#define NVC0TCL_POLYGON_MODE_FRONT 0x00003868 +#define NVC0TCL_POLYGON_MODE_FRONT_POINT 0x00001b00 +#define NVC0TCL_POLYGON_MODE_FRONT_LINE 0x00001b01 +#define NVC0TCL_POLYGON_MODE_FRONT_FILL 0x00001b02 +#define NVC0TCL_POLYGON_MODE_BACK 0x00003870 +#define NVC0TCL_POLYGON_MODE_BACK_POINT 0x00001b00 +#define NVC0TCL_POLYGON_MODE_BACK_LINE 0x00001b01 +#define NVC0TCL_POLYGON_MODE_BACK_FILL 0x00001b02 +#define NVC0TCL_GP_SELECT 0x00003878 +#define NVC0TCL_GP_SELECT_ENABLE (1 << 0) +#define NVC0TCL_GP_SELECT_PROGRAM_SHIFT 4 +#define NVC0TCL_GP_SELECT_PROGRAM_MASK 0x000000f0 +#define NVC0TCL_TEP_SELECT 0x00003880 +#define NVC0TCL_TEP_SELECT_ENABLE (1 << 0) +#define NVC0TCL_TEP_SELECT_PROGRAM_SHIFT 4 +#define NVC0TCL_TEP_SELECT_PROGRAM_MASK 0x000000f0 + + +#define NVC0_COMPUTE 0x000090c0 + +#define NVC0_COMPUTE_NOP 0x00000100 +#define NVC0_COMPUTE_NOTIFY 0x00000104 +#define NVC0_COMPUTE_SERIALIZE 0x00000110 +#define NVC0_COMPUTE_LOCAL_SIZE 0x00000204 +#define NVC0_COMPUTE_SHARED_BASE 0x00000214 +#define NVC0_COMPUTE_GRIDDIM_YX 0x00000238 +#define NVC0_COMPUTE_GRIDDIM_YX_X_SHIFT 0 +#define NVC0_COMPUTE_GRIDDIM_YX_X_MASK 0x0000ffff +#define NVC0_COMPUTE_GRIDDIM_YX_Y_SHIFT 16 +#define NVC0_COMPUTE_GRIDDIM_YX_Y_MASK 0xffff0000 +#define NVC0_COMPUTE_GRIDDIM_Z 0x0000023c +#define NVC0_COMPUTE_SHARED_SIZE 0x0000024c +#define NVC0_COMPUTE_BLOCK_ALLOC 0x00000250 +#define NVC0_COMPUTE_BLOCK_ALLOC_THREADS_SHIFT 0 +#define NVC0_COMPUTE_BLOCK_ALLOC_THREADS_MASK 0x0000ffff +#define NVC0_COMPUTE_BLOCK_ALLOC_BARRIERS_SHIFT 16 +#define NVC0_COMPUTE_BLOCK_ALLOC_BARRIERS_MASK 0xffff0000 +#define NVC0_COMPUTE_CP_GPR_ALLOC 0x000002c0 +#define NVC0_COMPUTE_GLOBAL_BASE 0x000002c8 +#define NVC0_COMPUTE_GLOBAL_BASE_HIGH_SHIFT 0 +#define NVC0_COMPUTE_GLOBAL_BASE_HIGH_MASK 0x000000ff +#define NVC0_COMPUTE_GLOBAL_BASE_INDEX_SHIFT 16 +#define NVC0_COMPUTE_GLOBAL_BASE_INDEX_MASK 0x00ff0000 +#define NVC0_COMPUTE_GLOBAL_BASE_FLAGS_SHIFT 28 +#define NVC0_COMPUTE_GLOBAL_BASE_FLAGS_MASK 0xf0000000 +#define NVC0_COMPUTE_LAUNCH 0x00000368 +#define NVC0_COMPUTE_BLOCKDIM_YX 0x000003ac +#define NVC0_COMPUTE_BLOCKDIM_YX_X_SHIFT 0 +#define NVC0_COMPUTE_BLOCKDIM_YX_X_MASK 0x0000ffff +#define NVC0_COMPUTE_BLOCKDIM_YX_Y_SHIFT 16 +#define NVC0_COMPUTE_BLOCKDIM_YX_Y_MASK 0xffff0000 +#define NVC0_COMPUTE_BLOCKDIM_Z 0x000003b0 +#define NVC0_COMPUTE_CP_START_ID 0x000003b4 +#define NVC0_COMPUTE_LOCAL_BASE 0x0000077c +#define NVC0_COMPUTE_UNK0790_ADDRESS_HIGH 0x00000790 +#define NVC0_COMPUTE_UNK0790_ADDRESS_LOW 0x00000794 +#define NVC0_COMPUTE_LINKED_TSC 0x00001234 +#define NVC0_COMPUTE_TSC_ADDRESS_HIGH 0x0000155c +#define NVC0_COMPUTE_TSC_ADDRESS_LOW 0x00001560 +#define NVC0_COMPUTE_TSC_LIMIT 0x00001564 +#define NVC0_COMPUTE_TIC_ADDRESS_HIGH 0x00001574 +#define NVC0_COMPUTE_TIC_ADDRESS_LOW 0x00001578 +#define NVC0_COMPUTE_TIC_LIMIT 0x0000157c +#define NVC0_COMPUTE_CODE_ADDRESS_HIGH 0x00001608 +#define NVC0_COMPUTE_CODE_ADDRESS_LOW 0x0000160c +#define NVC0_COMPUTE_CB_BIND 0x00001694 +#define NVC0_COMPUTE_CB_BIND_INDEX_SHIFT 1 +#define NVC0_COMPUTE_CB_BIND_INDEX_MASK 0xfffffffe +#define NVC0_COMPUTE_CB_BIND_VALID (1 << 0) +#define NVC0_COMPUTE_QUERY_ADDRESS_HIGH 0x00001b00 +#define NVC0_COMPUTE_QUERY_ADDRESS_LOW 0x00001b04 +#define NVC0_COMPUTE_QUERY_SEQUENCE 0x00001b08 +#define NVC0_COMPUTE_QUERY_GET 0x00001b0c +#define NVC0_COMPUTE_CB_ADDRESS_HIGH 0x00002384 +#define NVC0_COMPUTE_CB_ADDRESS_LOW 0x00002388 +#define NVC0_COMPUTE_CB_POS 0x0000238c +#define NVC0_COMPUTE_CB_DATA 0x00002390 + + #endif /* NOUVEAU_REG_H */ diff --git a/src/gallium/drivers/nv50/nv50_state.c b/src/gallium/drivers/nv50/nv50_state.c index 0d744ab7881..88fee3630be 100644 --- a/src/gallium/drivers/nv50/nv50_state.c +++ b/src/gallium/drivers/nv50/nv50_state.c @@ -48,6 +48,53 @@ nv50_colormask(unsigned mask) return cmask; } +static INLINE uint32_t +nv50_blend_func(unsigned factor) +{ + switch (factor) { + case PIPE_BLENDFACTOR_ZERO: + return NV50TCL_BLEND_FUNC_SRC_RGB_ZERO; + case PIPE_BLENDFACTOR_ONE: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE; + case PIPE_BLENDFACTOR_SRC_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_SRC_COLOR; + case PIPE_BLENDFACTOR_INV_SRC_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_COLOR; + case PIPE_BLENDFACTOR_SRC_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA; + case PIPE_BLENDFACTOR_INV_SRC_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC_ALPHA; + case PIPE_BLENDFACTOR_DST_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_DST_ALPHA; + case PIPE_BLENDFACTOR_INV_DST_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_ALPHA; + case PIPE_BLENDFACTOR_DST_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_DST_COLOR; + case PIPE_BLENDFACTOR_INV_DST_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_DST_COLOR; + case PIPE_BLENDFACTOR_SRC_ALPHA_SATURATE: + return NV50TCL_BLEND_FUNC_SRC_RGB_SRC_ALPHA_SATURATE; + case PIPE_BLENDFACTOR_CONST_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_COLOR; + case PIPE_BLENDFACTOR_INV_CONST_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_COLOR; + case PIPE_BLENDFACTOR_CONST_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_CONSTANT_ALPHA; + case PIPE_BLENDFACTOR_INV_CONST_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_CONSTANT_ALPHA; + case PIPE_BLENDFACTOR_SRC1_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_COLOR; + case PIPE_BLENDFACTOR_INV_SRC1_COLOR: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_COLOR; + case PIPE_BLENDFACTOR_SRC1_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_SRC1_ALPHA; + case PIPE_BLENDFACTOR_INV_SRC1_ALPHA: + return NV50TCL_BLEND_FUNC_SRC_RGB_ONE_MINUS_SRC1_ALPHA; + default: + return NV50TCL_BLEND_FUNC_SRC_RGB_ZERO; + } +} + static void * nv50_blend_state_create(struct pipe_context *pipe, const struct pipe_blend_state *cso) @@ -80,12 +127,12 @@ nv50_blend_state_create(struct pipe_context *pipe, if (blend_enabled) { so_method(so, tesla, NV50TCL_BLEND_EQUATION_RGB, 5); so_data (so, nvgl_blend_eqn(cso->rt[0].rgb_func)); - so_data (so, 0x4000 | nvgl_blend_func(cso->rt[0].rgb_src_factor)); - so_data (so, 0x4000 | nvgl_blend_func(cso->rt[0].rgb_dst_factor)); + so_data (so, nv50_blend_func(cso->rt[0].rgb_src_factor)); + so_data (so, nv50_blend_func(cso->rt[0].rgb_dst_factor)); so_data (so, nvgl_blend_eqn(cso->rt[0].alpha_func)); - so_data (so, 0x4000 | nvgl_blend_func(cso->rt[0].alpha_src_factor)); + so_data (so, nv50_blend_func(cso->rt[0].alpha_src_factor)); so_method(so, tesla, NV50TCL_BLEND_FUNC_DST_ALPHA, 1); - so_data (so, 0x4000 | nvgl_blend_func(cso->rt[0].alpha_dst_factor)); + so_data (so, nv50_blend_func(cso->rt[0].alpha_dst_factor)); } if (cso->logicop_enable == 0 ) { diff --git a/src/gallium/drivers/nv50/nv50_vbo.c b/src/gallium/drivers/nv50/nv50_vbo.c index 6bd52884b57..996844b18f1 100644 --- a/src/gallium/drivers/nv50/nv50_vbo.c +++ b/src/gallium/drivers/nv50/nv50_vbo.c @@ -29,6 +29,9 @@ #include "nv50_context.h" #include "nv50_resource.h" +/* VERTEX_ARRAY_ATTRIB_TYPE is duplicated for unknown reason */ +#define NV50_VAT(x) ((x) | ((x) << 3)) + static INLINE uint32_t nv50_vbo_type_to_hw(enum pipe_format format) { @@ -39,22 +42,22 @@ nv50_vbo_type_to_hw(enum pipe_format format) switch (desc->channel[0].type) { case UTIL_FORMAT_TYPE_FLOAT: - return NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT; + return NV50_VAT(NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_FLOAT); case UTIL_FORMAT_TYPE_UNSIGNED: if (desc->channel[0].normalized) { - return NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM; + return NV50_VAT(NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UNORM); } - return NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED; + return NV50_VAT(NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_USCALED); case UTIL_FORMAT_TYPE_SIGNED: if (desc->channel[0].normalized) { - return NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM; + return NV50_VAT(NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SNORM); } - return NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED; + return NV50_VAT(NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SSCALED); /* case PIPE_FORMAT_TYPE_UINT: - return NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT; + return NV50_VAT(NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_UINT); case PIPE_FORMAT_TYPE_SINT: - return NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT; */ + return NV50_VAT(NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_SINT); */ default: return 0; } -- 2.30.2