162306a36Sopenharmony_ci
262306a36Sopenharmony_ci /***************************************************************************\
362306a36Sopenharmony_ci|*                                                                           *|
462306a36Sopenharmony_ci|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
562306a36Sopenharmony_ci|*                                                                           *|
662306a36Sopenharmony_ci|*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
762306a36Sopenharmony_ci|*     international laws.  Users and possessors of this source code are     *|
862306a36Sopenharmony_ci|*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
962306a36Sopenharmony_ci|*     use this code in individual and commercial software.                  *|
1062306a36Sopenharmony_ci|*                                                                           *|
1162306a36Sopenharmony_ci|*     Any use of this source code must include,  in the user documenta-     *|
1262306a36Sopenharmony_ci|*     tion and  internal comments to the code,  notices to the end user     *|
1362306a36Sopenharmony_ci|*     as follows:                                                           *|
1462306a36Sopenharmony_ci|*                                                                           *|
1562306a36Sopenharmony_ci|*       Copyright 2003 NVIDIA, Corporation.  All rights reserved.           *|
1662306a36Sopenharmony_ci|*                                                                           *|
1762306a36Sopenharmony_ci|*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
1862306a36Sopenharmony_ci|*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
1962306a36Sopenharmony_ci|*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
2062306a36Sopenharmony_ci|*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
2162306a36Sopenharmony_ci|*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
2262306a36Sopenharmony_ci|*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
2362306a36Sopenharmony_ci|*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
2462306a36Sopenharmony_ci|*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
2562306a36Sopenharmony_ci|*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
2662306a36Sopenharmony_ci|*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
2762306a36Sopenharmony_ci|*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
2862306a36Sopenharmony_ci|*                                                                           *|
2962306a36Sopenharmony_ci|*     U.S. Government  End  Users.   This source code  is a "commercial     *|
3062306a36Sopenharmony_ci|*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
3162306a36Sopenharmony_ci|*     consisting  of "commercial  computer  software"  and  "commercial     *|
3262306a36Sopenharmony_ci|*     computer  software  documentation,"  as such  terms  are  used in     *|
3362306a36Sopenharmony_ci|*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
3462306a36Sopenharmony_ci|*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
3562306a36Sopenharmony_ci|*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
3662306a36Sopenharmony_ci|*     all U.S. Government End Users  acquire the source code  with only     *|
3762306a36Sopenharmony_ci|*     those rights set forth herein.                                        *|
3862306a36Sopenharmony_ci|*                                                                           *|
3962306a36Sopenharmony_ci \***************************************************************************/
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci/*
4262306a36Sopenharmony_ci * GPL Licensing Note - According to Mark Vojkovich, author of the Xorg/
4362306a36Sopenharmony_ci * XFree86 'nv' driver, this source code is provided under MIT-style licensing
4462306a36Sopenharmony_ci * where the source code is provided "as is" without warranty of any kind.
4562306a36Sopenharmony_ci * The only usage restriction is for the copyright notices to be retained
4662306a36Sopenharmony_ci * whenever code is used.
4762306a36Sopenharmony_ci *
4862306a36Sopenharmony_ci * Antonino Daplas <adaplas@pol.net> 2005-03-11
4962306a36Sopenharmony_ci */
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ci#define SURFACE_FORMAT                                              0x00000300
5262306a36Sopenharmony_ci#define SURFACE_FORMAT_DEPTH8                                       0x00000001
5362306a36Sopenharmony_ci#define SURFACE_FORMAT_DEPTH15                                      0x00000002
5462306a36Sopenharmony_ci#define SURFACE_FORMAT_DEPTH16                                      0x00000004
5562306a36Sopenharmony_ci#define SURFACE_FORMAT_DEPTH24                                      0x00000006
5662306a36Sopenharmony_ci#define SURFACE_PITCH                                               0x00000304
5762306a36Sopenharmony_ci#define SURFACE_PITCH_SRC                                           15:0
5862306a36Sopenharmony_ci#define SURFACE_PITCH_DST                                           31:16
5962306a36Sopenharmony_ci#define SURFACE_OFFSET_SRC                                          0x00000308
6062306a36Sopenharmony_ci#define SURFACE_OFFSET_DST                                          0x0000030C
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci#define ROP_SET                                                     0x00002300
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci#define PATTERN_FORMAT                                              0x00004300
6562306a36Sopenharmony_ci#define PATTERN_FORMAT_DEPTH8                                       0x00000003
6662306a36Sopenharmony_ci#define PATTERN_FORMAT_DEPTH16                                      0x00000001
6762306a36Sopenharmony_ci#define PATTERN_FORMAT_DEPTH24                                      0x00000003
6862306a36Sopenharmony_ci#define PATTERN_COLOR_0                                             0x00004310
6962306a36Sopenharmony_ci#define PATTERN_COLOR_1                                             0x00004314
7062306a36Sopenharmony_ci#define PATTERN_PATTERN_0                                           0x00004318
7162306a36Sopenharmony_ci#define PATTERN_PATTERN_1                                           0x0000431C
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci#define CLIP_POINT                                                  0x00006300
7462306a36Sopenharmony_ci#define CLIP_POINT_X                                                15:0
7562306a36Sopenharmony_ci#define CLIP_POINT_Y                                                31:16
7662306a36Sopenharmony_ci#define CLIP_SIZE                                                   0x00006304
7762306a36Sopenharmony_ci#define CLIP_SIZE_WIDTH                                             15:0
7862306a36Sopenharmony_ci#define CLIP_SIZE_HEIGHT                                            31:16
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci#define LINE_FORMAT                                                 0x00008300
8162306a36Sopenharmony_ci#define LINE_FORMAT_DEPTH8                                          0x00000003
8262306a36Sopenharmony_ci#define LINE_FORMAT_DEPTH16                                         0x00000001
8362306a36Sopenharmony_ci#define LINE_FORMAT_DEPTH24                                         0x00000003
8462306a36Sopenharmony_ci#define LINE_COLOR                                                  0x00008304
8562306a36Sopenharmony_ci#define LINE_MAX_LINES                                              16
8662306a36Sopenharmony_ci#define LINE_LINES(i)                                               0x00008400\
8762306a36Sopenharmony_ci                                                                    +(i)*8
8862306a36Sopenharmony_ci#define LINE_LINES_POINT0_X                                         15:0
8962306a36Sopenharmony_ci#define LINE_LINES_POINT0_Y                                         31:16
9062306a36Sopenharmony_ci#define LINE_LINES_POINT1_X                                         47:32
9162306a36Sopenharmony_ci#define LINE_LINES_POINT1_Y                                         63:48
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci#define BLIT_POINT_SRC                                              0x0000A300
9462306a36Sopenharmony_ci#define BLIT_POINT_SRC_X                                            15:0
9562306a36Sopenharmony_ci#define BLIT_POINT_SRC_Y                                            31:16
9662306a36Sopenharmony_ci#define BLIT_POINT_DST                                              0x0000A304
9762306a36Sopenharmony_ci#define BLIT_POINT_DST_X                                            15:0
9862306a36Sopenharmony_ci#define BLIT_POINT_DST_Y                                            31:16
9962306a36Sopenharmony_ci#define BLIT_SIZE                                                   0x0000A308
10062306a36Sopenharmony_ci#define BLIT_SIZE_WIDTH                                             15:0
10162306a36Sopenharmony_ci#define BLIT_SIZE_HEIGHT                                            31:16
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci#define RECT_FORMAT                                                 0x0000C300
10462306a36Sopenharmony_ci#define RECT_FORMAT_DEPTH8                                          0x00000003
10562306a36Sopenharmony_ci#define RECT_FORMAT_DEPTH16                                         0x00000001
10662306a36Sopenharmony_ci#define RECT_FORMAT_DEPTH24                                         0x00000003
10762306a36Sopenharmony_ci#define RECT_SOLID_COLOR                                            0x0000C3FC
10862306a36Sopenharmony_ci#define RECT_SOLID_RECTS_MAX_RECTS                                  32
10962306a36Sopenharmony_ci#define RECT_SOLID_RECTS(i)                                         0x0000C400\
11062306a36Sopenharmony_ci                                                                    +(i)*8
11162306a36Sopenharmony_ci#define RECT_SOLID_RECTS_Y                                          15:0
11262306a36Sopenharmony_ci#define RECT_SOLID_RECTS_X                                          31:16
11362306a36Sopenharmony_ci#define RECT_SOLID_RECTS_HEIGHT                                     47:32
11462306a36Sopenharmony_ci#define RECT_SOLID_RECTS_WIDTH                                      63:48
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_CLIP                                  0x0000C7EC
11762306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_CLIP_POINT0_X                         15:0
11862306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_CLIP_POINT0_Y                         31:16
11962306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_CLIP_POINT1_X                         47:32
12062306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_CLIP_POINT1_Y                         63:48
12162306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_COLOR                                 0x0000C7F4
12262306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_SIZE                                  0x0000C7F8
12362306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_SIZE_WIDTH                            15:0
12462306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_SIZE_HEIGHT                           31:16
12562306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_POINT                                 0x0000C7FC
12662306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_POINT_X                               15:0
12762306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_POINT_Y                               31:16
12862306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_DATA_MAX_DWORDS                       128
12962306a36Sopenharmony_ci#define RECT_EXPAND_ONE_COLOR_DATA(i)                               0x0000C800\
13062306a36Sopenharmony_ci                                                                    +(i)*4
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_CLIP                                  0x0000CBE4
13362306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_CLIP_POINT0_X                         15:0
13462306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_CLIP_POINT0_Y                         31:16
13562306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_CLIP_POINT1_X                         47:32
13662306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_CLIP_POINT1_Y                         63:48
13762306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_COLOR_0                               0x0000CBEC
13862306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_COLOR_1                               0x0000CBF0
13962306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_SIZE_IN                               0x0000CBF4
14062306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_SIZE_IN_WIDTH                         15:0
14162306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_SIZE_IN_HEIGHT                        31:16
14262306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_SIZE_OUT                              0x0000CBF8
14362306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_SIZE_OUT_WIDTH                        15:0
14462306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_SIZE_OUT_HEIGHT                       31:16
14562306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_POINT                                 0x0000CBFC
14662306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_POINT_X                               15:0
14762306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_POINT_Y                               31:16
14862306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_DATA_MAX_DWORDS                       128
14962306a36Sopenharmony_ci#define RECT_EXPAND_TWO_COLOR_DATA(i)                               0x0000CC00\
15062306a36Sopenharmony_ci                                                                    +(i)*4
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ci#define STRETCH_BLIT_FORMAT                                         0x0000E300
15362306a36Sopenharmony_ci#define STRETCH_BLIT_FORMAT_DEPTH8                                  0x00000004
15462306a36Sopenharmony_ci#define STRETCH_BLIT_FORMAT_DEPTH16                                 0x00000007
15562306a36Sopenharmony_ci#define STRETCH_BLIT_FORMAT_DEPTH24                                 0x00000004
15662306a36Sopenharmony_ci#define STRETCH_BLIT_FORMAT_X8R8G8B8                                0x00000004
15762306a36Sopenharmony_ci#define STRETCH_BLIT_FORMAT_YUYV                                    0x00000005
15862306a36Sopenharmony_ci#define STRETCH_BLIT_FORMAT_UYVY                                    0x00000006
15962306a36Sopenharmony_ci#define STRETCH_BLIT_CLIP_POINT                                     0x0000E308
16062306a36Sopenharmony_ci#define STRETCH_BLIT_CLIP_POINT_X                                   15:0
16162306a36Sopenharmony_ci#define STRETCH_BLIT_CLIP_POINT_Y                                   31:16
16262306a36Sopenharmony_ci#define STRETCH_BLIT_CLIP_POINT                                     0x0000E308
16362306a36Sopenharmony_ci#define STRETCH_BLIT_CLIP_SIZE                                      0x0000E30C
16462306a36Sopenharmony_ci#define STRETCH_BLIT_CLIP_SIZE_WIDTH                                15:0
16562306a36Sopenharmony_ci#define STRETCH_BLIT_CLIP_SIZE_HEIGHT                               31:16
16662306a36Sopenharmony_ci#define STRETCH_BLIT_DST_POINT                                      0x0000E310
16762306a36Sopenharmony_ci#define STRETCH_BLIT_DST_POINT_X                                    15:0
16862306a36Sopenharmony_ci#define STRETCH_BLIT_DST_POINT_Y                                    31:16
16962306a36Sopenharmony_ci#define STRETCH_BLIT_DST_SIZE                                       0x0000E314
17062306a36Sopenharmony_ci#define STRETCH_BLIT_DST_SIZE_WIDTH                                 15:0
17162306a36Sopenharmony_ci#define STRETCH_BLIT_DST_SIZE_HEIGHT                                31:16
17262306a36Sopenharmony_ci#define STRETCH_BLIT_DU_DX                                          0x0000E318
17362306a36Sopenharmony_ci#define STRETCH_BLIT_DV_DY                                          0x0000E31C
17462306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_SIZE                                       0x0000E400
17562306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_SIZE_WIDTH                                 15:0
17662306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_SIZE_HEIGHT                                31:16
17762306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT                                     0x0000E404
17862306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT_PITCH                               15:0
17962306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT_ORIGIN                              23:16
18062306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT_ORIGIN_CENTER                       0x00000001
18162306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT_ORIGIN_CORNER                       0x00000002
18262306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT_FILTER                              31:24
18362306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT_FILTER_POINT_SAMPLE                 0x00000000
18462306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_FORMAT_FILTER_BILINEAR                     0x00000001
18562306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_OFFSET                                     0x0000E408
18662306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_POINT                                      0x0000E40C
18762306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_POINT_U                                    15:0
18862306a36Sopenharmony_ci#define STRETCH_BLIT_SRC_POINT_V                                    31:16
189