1fc5a983dSmrg/* 2fc5a983dSmrg * Copyright (c) 2003 NVIDIA, Corporation 3fc5a983dSmrg * 4fc5a983dSmrg * Permission is hereby granted, free of charge, to any person obtaining a 5fc5a983dSmrg * copy of this software and associated documentation files (the 6fc5a983dSmrg * "Software"), to deal in the Software without restriction, including 7fc5a983dSmrg * without limitation the rights to use, copy, modify, merge, publish, 8fc5a983dSmrg * distribute, sublicense, and/or sell copies of the Software, and to 9fc5a983dSmrg * permit persons to whom the Software is furnished to do so, subject to 10fc5a983dSmrg * the following conditions: 11fc5a983dSmrg * 12fc5a983dSmrg * The above copyright notice and this permission notice shall be included 13fc5a983dSmrg * in all copies or substantial portions of the Software. 14fc5a983dSmrg * 15fc5a983dSmrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 16fc5a983dSmrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17fc5a983dSmrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18fc5a983dSmrg * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 19fc5a983dSmrg * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 20fc5a983dSmrg * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 21fc5a983dSmrg * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22fc5a983dSmrg */ 23fc5a983dSmrg 24fc5a983dSmrg#define SURFACE_FORMAT 0x00000300 25fc5a983dSmrg#define SURFACE_FORMAT_DEPTH8 0x00000001 26fc5a983dSmrg#define SURFACE_FORMAT_DEPTH15 0x00000002 27fc5a983dSmrg#define SURFACE_FORMAT_DEPTH16 0x00000004 28fc5a983dSmrg#define SURFACE_FORMAT_DEPTH24 0x00000006 29fc5a983dSmrg#define SURFACE_PITCH 0x00000304 30fc5a983dSmrg#define SURFACE_PITCH_SRC 15:0 31fc5a983dSmrg#define SURFACE_PITCH_DST 31:16 32fc5a983dSmrg#define SURFACE_OFFSET_SRC 0x00000308 33fc5a983dSmrg#define SURFACE_OFFSET_DST 0x0000030C 34fc5a983dSmrg 35fc5a983dSmrg#define ROP_SET 0x00002300 36fc5a983dSmrg 37fc5a983dSmrg#define PATTERN_FORMAT 0x00004300 38fc5a983dSmrg#define PATTERN_FORMAT_DEPTH8 0x00000003 39fc5a983dSmrg#define PATTERN_FORMAT_DEPTH16 0x00000001 40fc5a983dSmrg#define PATTERN_FORMAT_DEPTH24 0x00000003 41fc5a983dSmrg#define PATTERN_COLOR_0 0x00004310 42fc5a983dSmrg#define PATTERN_COLOR_1 0x00004314 43fc5a983dSmrg#define PATTERN_PATTERN_0 0x00004318 44fc5a983dSmrg#define PATTERN_PATTERN_1 0x0000431C 45fc5a983dSmrg 46fc5a983dSmrg#define CLIP_POINT 0x00006300 47fc5a983dSmrg#define CLIP_POINT_X 15:0 48fc5a983dSmrg#define CLIP_POINT_Y 31:16 49fc5a983dSmrg#define CLIP_SIZE 0x00006304 50fc5a983dSmrg#define CLIP_SIZE_WIDTH 15:0 51fc5a983dSmrg#define CLIP_SIZE_HEIGHT 31:16 52fc5a983dSmrg 53fc5a983dSmrg#define LINE_FORMAT 0x00008300 54fc5a983dSmrg#define LINE_FORMAT_DEPTH8 0x00000003 55fc5a983dSmrg#define LINE_FORMAT_DEPTH16 0x00000001 56fc5a983dSmrg#define LINE_FORMAT_DEPTH24 0x00000003 57fc5a983dSmrg#define LINE_COLOR 0x00008304 58fc5a983dSmrg#define LINE_MAX_LINES 16 59fc5a983dSmrg#define LINE_LINES(i) 0x00008400\ 60fc5a983dSmrg +(i)*8 61fc5a983dSmrg#define LINE_LINES_POINT0_X 15:0 62fc5a983dSmrg#define LINE_LINES_POINT0_Y 31:16 63fc5a983dSmrg#define LINE_LINES_POINT1_X 47:32 64fc5a983dSmrg#define LINE_LINES_POINT1_Y 63:48 65fc5a983dSmrg 66fc5a983dSmrg#define BLIT_POINT_SRC 0x0000A300 67fc5a983dSmrg#define BLIT_POINT_SRC_X 15:0 68fc5a983dSmrg#define BLIT_POINT_SRC_Y 31:16 69fc5a983dSmrg#define BLIT_POINT_DST 0x0000A304 70fc5a983dSmrg#define BLIT_POINT_DST_X 15:0 71fc5a983dSmrg#define BLIT_POINT_DST_Y 31:16 72fc5a983dSmrg#define BLIT_SIZE 0x0000A308 73fc5a983dSmrg#define BLIT_SIZE_WIDTH 15:0 74fc5a983dSmrg#define BLIT_SIZE_HEIGHT 31:16 75fc5a983dSmrg 76fc5a983dSmrg#define RECT_FORMAT 0x0000C300 77fc5a983dSmrg#define RECT_FORMAT_DEPTH8 0x00000003 78fc5a983dSmrg#define RECT_FORMAT_DEPTH16 0x00000001 79fc5a983dSmrg#define RECT_FORMAT_DEPTH24 0x00000003 80fc5a983dSmrg#define RECT_SOLID_COLOR 0x0000C3FC 81fc5a983dSmrg#define RECT_SOLID_RECTS_MAX_RECTS 32 82fc5a983dSmrg#define RECT_SOLID_RECTS(i) 0x0000C400\ 83fc5a983dSmrg +(i)*8 84fc5a983dSmrg#define RECT_SOLID_RECTS_Y 15:0 85fc5a983dSmrg#define RECT_SOLID_RECTS_X 31:16 86fc5a983dSmrg#define RECT_SOLID_RECTS_HEIGHT 47:32 87fc5a983dSmrg#define RECT_SOLID_RECTS_WIDTH 63:48 88fc5a983dSmrg 89fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_CLIP 0x0000C7EC 90fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_CLIP_POINT0_X 15:0 91fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_CLIP_POINT0_Y 31:16 92fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_CLIP_POINT1_X 47:32 93fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_CLIP_POINT1_Y 63:48 94fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_COLOR 0x0000C7F4 95fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_SIZE 0x0000C7F8 96fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_SIZE_WIDTH 15:0 97fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_SIZE_HEIGHT 31:16 98fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_POINT 0x0000C7FC 99fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_POINT_X 15:0 100fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_POINT_Y 31:16 101fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_DATA_MAX_DWORDS 128 102fc5a983dSmrg#define RECT_EXPAND_ONE_COLOR_DATA(i) 0x0000C800\ 103fc5a983dSmrg +(i)*4 104fc5a983dSmrg 105fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_CLIP 0x0000CBE4 106fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_CLIP_POINT0_X 15:0 107fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_CLIP_POINT0_Y 31:16 108fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_CLIP_POINT1_X 47:32 109fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_CLIP_POINT1_Y 63:48 110fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_COLOR_0 0x0000CBEC 111fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_COLOR_1 0x0000CBF0 112fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_SIZE_IN 0x0000CBF4 113fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_SIZE_IN_WIDTH 15:0 114fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_SIZE_IN_HEIGHT 31:16 115fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_SIZE_OUT 0x0000CBF8 116fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_SIZE_OUT_WIDTH 15:0 117fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_SIZE_OUT_HEIGHT 31:16 118fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_POINT 0x0000CBFC 119fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_POINT_X 15:0 120fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_POINT_Y 31:16 121fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_DATA_MAX_DWORDS 128 122fc5a983dSmrg#define RECT_EXPAND_TWO_COLOR_DATA(i) 0x0000CC00\ 123fc5a983dSmrg +(i)*4 124fc5a983dSmrg 125fc5a983dSmrg#define STRETCH_BLIT_FORMAT 0x0000E300 126fc5a983dSmrg#define STRETCH_BLIT_FORMAT_DEPTH8 0x00000004 127fc5a983dSmrg#define STRETCH_BLIT_FORMAT_DEPTH16 0x00000007 128fc5a983dSmrg#define STRETCH_BLIT_FORMAT_DEPTH24 0x00000004 129fc5a983dSmrg#define STRETCH_BLIT_FORMAT_A8R8G8B8 0x00000003 130fc5a983dSmrg#define STRETCH_BLIT_FORMAT_X8R8G8B8 0x00000004 131fc5a983dSmrg#define STRETCH_BLIT_FORMAT_YUYV 0x00000005 132fc5a983dSmrg#define STRETCH_BLIT_FORMAT_UYVY 0x00000006 133fc5a983dSmrg/* STRETCH_BLIT_OPERATION is only supported on TNT2 and newer */ 134fc5a983dSmrg#define STRETCH_BLIT_OPERATION 0x0000E304 135fc5a983dSmrg#define STRETCH_BLIT_OPERATION_ROP 0x00000001 136fc5a983dSmrg#define STRETCH_BLIT_OPERATION_COPY 0x00000003 137fc5a983dSmrg#define STRETCH_BLIT_OPERATION_BLEND 0x00000002 138fc5a983dSmrg#define STRETCH_BLIT_CLIP_POINT 0x0000E308 139fc5a983dSmrg#define STRETCH_BLIT_CLIP_POINT_X 15:0 140fc5a983dSmrg#define STRETCH_BLIT_CLIP_POINT_Y 31:16 141fc5a983dSmrg#define STRETCH_BLIT_CLIP_POINT 0x0000E308 142fc5a983dSmrg#define STRETCH_BLIT_CLIP_SIZE 0x0000E30C 143fc5a983dSmrg#define STRETCH_BLIT_CLIP_SIZE_WIDTH 15:0 144fc5a983dSmrg#define STRETCH_BLIT_CLIP_SIZE_HEIGHT 31:16 145fc5a983dSmrg#define STRETCH_BLIT_DST_POINT 0x0000E310 146fc5a983dSmrg#define STRETCH_BLIT_DST_POINT_X 15:0 147fc5a983dSmrg#define STRETCH_BLIT_DST_POINT_Y 31:16 148fc5a983dSmrg#define STRETCH_BLIT_DST_SIZE 0x0000E314 149fc5a983dSmrg#define STRETCH_BLIT_DST_SIZE_WIDTH 15:0 150fc5a983dSmrg#define STRETCH_BLIT_DST_SIZE_HEIGHT 31:16 151fc5a983dSmrg#define STRETCH_BLIT_DU_DX 0x0000E318 152fc5a983dSmrg#define STRETCH_BLIT_DV_DY 0x0000E31C 153fc5a983dSmrg#define STRETCH_BLIT_SRC_SIZE 0x0000E400 154fc5a983dSmrg#define STRETCH_BLIT_SRC_SIZE_WIDTH 15:0 155fc5a983dSmrg#define STRETCH_BLIT_SRC_SIZE_HEIGHT 31:16 156fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT 0x0000E404 157fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT_PITCH 15:0 158fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT_ORIGIN 23:16 159fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT_ORIGIN_CENTER 0x00000001 160fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT_ORIGIN_CORNER 0x00000002 161fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT_FILTER 31:24 162fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT_FILTER_POINT_SAMPLE 0x00000000 163fc5a983dSmrg#define STRETCH_BLIT_SRC_FORMAT_FILTER_BILINEAR 0x00000001 164fc5a983dSmrg#define STRETCH_BLIT_SRC_OFFSET 0x0000E408 165fc5a983dSmrg#define STRETCH_BLIT_SRC_POINT 0x0000E40C 166fc5a983dSmrg#define STRETCH_BLIT_SRC_POINT_U 15:0 167fc5a983dSmrg#define STRETCH_BLIT_SRC_POINT_V 31:16 168