 /***************************************************************************\
|*                                                                           *|
|*       Copyright 1993-1998 NVIDIA, Corporation.  All rights reserved.      *|
|*                                                                           *|
|*     NOTICE TO USER:   The source code  is copyrighted under  U.S. and     *|
|*     international laws.  Users and possessors of this source code are     *|
|*     hereby granted a nonexclusive,  royalty-free copyright license to     *|
|*     use this code in individual and commercial software.                  *|
|*                                                                           *|
|*     Any use of this source code must include,  in the user documenta-     *|
|*     tion and  internal comments to the code,  notices to the end user     *|
|*     as follows:                                                           *|
|*                                                                           *|
|*       Copyright 1993-1998 NVIDIA, Corporation.  All rights reserved.      *|
|*                                                                           *|
|*     NVIDIA, CORPORATION MAKES NO REPRESENTATION ABOUT THE SUITABILITY     *|
|*     OF  THIS SOURCE  CODE  FOR ANY PURPOSE.  IT IS  PROVIDED  "AS IS"     *|
|*     WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.  NVIDIA, CORPOR-     *|
|*     ATION DISCLAIMS ALL WARRANTIES  WITH REGARD  TO THIS SOURCE CODE,     *|
|*     INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGE-     *|
|*     MENT,  AND FITNESS  FOR A PARTICULAR PURPOSE.   IN NO EVENT SHALL     *|
|*     NVIDIA, CORPORATION  BE LIABLE FOR ANY SPECIAL,  INDIRECT,  INCI-     *|
|*     DENTAL, OR CONSEQUENTIAL DAMAGES,  OR ANY DAMAGES  WHATSOEVER RE-     *|
|*     SULTING FROM LOSS OF USE,  DATA OR PROFITS,  WHETHER IN AN ACTION     *|
|*     OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,  ARISING OUT OF     *|
|*     OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.     *|
|*                                                                           *|
|*     U.S. Government  End  Users.   This source code  is a "commercial     *|
|*     item,"  as that  term is  defined at  48 C.F.R. 2.101 (OCT 1995),     *|
|*     consisting  of "commercial  computer  software"  and  "commercial     *|
|*     computer  software  documentation,"  as such  terms  are  used in     *|
|*     48 C.F.R. 12.212 (SEPT 1995)  and is provided to the U.S. Govern-     *|
|*     ment only as  a commercial end item.   Consistent with  48 C.F.R.     *|
|*     12.212 and  48 C.F.R. 227.7202-1 through  227.7202-4 (JUNE 1995),     *|
|*     all U.S. Government End Users  acquire the source code  with only     *|
|*     those rights set forth herein.                                        *|
|*                                                                           *|
 \***************************************************************************/



 /***************************************************************************\
|*                                                                           *|
|*                         NV Architecture Interface                         *|
|*                                                                           *|
|*  <nv32.h> defines a 32-bit wide naming convention  for the functionality  *|
|*  of NVIDIA's Unified Media Architecture (TM).                             *|
|*                                                                           *|
 \***************************************************************************/


#ifndef NV32_INCLUDED
#define NV32_INCLUDED
#ifdef __cplusplus
extern "C" {
#endif

#include <nvtypes.h>


 /***************************************************************************\
|*                                NV Classes                                 *|
 \***************************************************************************/

/*
 * These structures indicate the offsets of hardware registers corresponding to
 * the methods of each class.  Since the first 256 bytes of each subchannel is
 * the NvControlPio registers, the hexadecimal offsets in comments start at
 * 0x100.
 */

/* class NV01_ROOT */
#define  NV01_ROOT                                                 (0x00000000)
/* NvNotification[] fields and values */
#define NV000_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv000Typedef, Nv01Root;
#define NV000_TYPEDEF                                              Nv01Root
/* obsolete stuff */
#define Nv1Root                                                    Nv01Root
#define nv1Root                                                    Nv01Root
#define nv01Root                                                   Nv01Root


/* class NV01_CLASS */
#define  NV01_CLASS                                                (0x00000001)
/* NvNotification[] fields and values */
#define NV001_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv001Typedef, Nv01Class;
#define NV001_TYPEDEF                                              Nv01Class
/* obsolete stuff */
#define  NV1_CLASS                                                 (0x00000001)
#define Nv1Class                                                   Nv01Class
#define nv1Class                                                   Nv01Class
#define nv01Class                                                  Nv01Class


/* class NV01_CONTEXT_DMA_FROM_MEMORY */
#define  NV01_CONTEXT_DMA_FROM_MEMORY                              (0x00000002)
/* NvNotification[] fields and values */
#define NV002_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv002Typedef, Nv01ContextDmaFromMemory;
#define  NV002_TYPEDEF                                 Nv01ContextDmaFromMemory
/* obsolete stuff */
#define  NV1_CONTEXT_DMA_FROM_MEMORY                               (0x00000002)
#define  NV01_CONTEXT_DMA                                          (0x00000002)
#define  Nv1ContextDmaFromMemory                       Nv01ContextDmaFromMemory
#define  nv1ContextDmaFromMemory                       Nv01ContextDmaFromMemory
#define  nv01ContextDmaFromMemory                      Nv01ContextDmaFromMemory


/* class NV01_CONTEXT_DMA_TO_MEMORY */
#define  NV01_CONTEXT_DMA_TO_MEMORY                                (0x00000003)
/* NvNotification[] fields and values */
#define NV003_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv003Typedef, Nv01ContextDmaToMemory;
#define  NV003_TYPEDEF                                   Nv01ContextDmaToMemory
/* obsolete stuff */
#define  NV1_CONTEXT_DMA_TO_MEMORY                                 (0x00000003)
#define  Nv1ContextDmaToMemory                           Nv01ContextDmaToMemory
#define  nv1ContextDmaToMemory                           Nv01ContextDmaToMemory
#define  nv01ContextDmaToMemory                          Nv01ContextDmaToMemory


/* class NV01_TIMER */
#define  NV01_TIMER                                                (0x00000004)
/* NvNotification[] elements */
#define NV004_NOTIFIERS_NOTIFY                                     (0)
#define NV004_NOTIFIERS_SET_ALARM_NOTIFY                           (1)
/* NvNotification[] fields and values */
#define NV004_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV004_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV004_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV004_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV004_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV004_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;            /* ignored                           0100-0103*/
 NvV32 Notify;                 /* NV004_NOTIFY_*                    0104-0107*/
 NvV32 StopTransfer;           /* NV004_STOP_TRANSFER_VALUE         0108-010b*/
 NvV32 Reserved00[0x01d];
 NvV32 SetContextDmaNotifies;  /* NV01_CONTEXT_DMA                  0180-0183*/
 NvV32 Reserved01[0x05f];
 struct {                      /* start of method                   0300-    */
  NvU32 nanoseconds[2];        /* nsec since 1970-01-01 0=immediate    0-   7*/
 } SetAlarmTime;               /* end of method                         -0307*/
 struct {                      /* start of method                   0308-    */
  NvU32 nanoseconds[2];        /* nsec relative to current time        8-   f*/
 } SetAlarmTimeRelative;       /* end of method                         -030f*/
 NvV32 Reserved02[0x004];
 NvV32 SetAlarmNotify;         /* NV004_SET_ALARM_NOTIFY_*          0320-0323*/
 NvV32 Reserved03[0x737];
} Nv004Typedef, Nv01Timer;
#define NV004_TYPEDEF                                              Nv01Timer
/* dma method offsets, fields, and values */
#define NV004_SET_OBJECT                                           (0x00000000)
#define NV004_NO_OPERATION                                         (0x00000100)
#define NV004_NOTIFY                                               (0x00000104)
#define NV004_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV004_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV004_STOP_TRANSFER                                        (0x00000108)
#define NV004_STOP_TRANSFER_VALUE                                  (0x00000000)
#define NV004_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV004_SET_ALARM_TIME                                       (0x00000300)
#define NV004_SET_ALARM_TIME_RELATIVE                              (0x00000308)
#define NV004_SET_ALARM_NOTIFY                                     (0x00000320)
#define NV004_SET_ALARM_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NV004_SET_ALARM_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
/* obsolete stuff */
#define Nv1Timer                                                   Nv01Timer
#define nv1Timer                                                   Nv01Timer
#define nv01Timer                                                  Nv01Timer


/* class NV01_EVENT */
#define  NV01_EVENT                                                (0x00000005)
/* NvNotification[] fields and values */
#define NV003_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct _Nv005Typedef{
 NvV32 Reserved00[0x7c0];
} Nv005Typedef, Nv01Event;
#define NV005_TYPEDEF                                              Nv01Event
/* obsolete stuff */
#define NV1_TIMER                                                  (0x00000004)
#define Nv1Event                                                   Nv01Event
#define nv1Event                                                   Nv01Event
#define nv01Event                                                  Nv01Event


typedef NvV32 Nv006Typedef;

typedef NvV32 Nv007Typedef;

typedef NvV32 Nv008Typedef;

typedef NvV32 Nv009Typedef;

typedef NvV32 Nv00aTypedef;

typedef NvV32 Nv00bTypedef;

typedef NvV32 Nv00cTypedef;

typedef NvV32 Nv00dTypedef;

typedef NvV32 Nv00eTypedef;

typedef NvV32 Nv00fTypedef;

typedef NvV32 Nv010Typedef;

typedef NvV32 Nv011Typedef;


/* class NV01_CONTEXT_BETA */
#define  NV01_CONTEXT_BETA                                         (0x00000012)
/* NvNotification[] elements */
#define NV012_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV012_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV012_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV012_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV012_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV012_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV012_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV012_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetBeta1d31;             /* S1d31 beta value                 0300-0303*/
 NvV32 Reserved02[0x73f];
} Nv012Typedef, Nv01ContextBeta;
#define NV012_TYPEDEF                                           Nv01ContextBeta
/* dma method offsets, fields, and values */
#define NV012_SET_OBJECT                                           (0x00000000)
#define NV012_NO_OPERATION                                         (0x00000100)
#define NV012_NOTIFY                                               (0x00000104)
#define NV012_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV012_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV012_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV012_SET_BETA_1D31                                        (0x00000300)
/* obsolete stuff */
#define NV01_BETA_SOLID                                            (0x00000012)
#define NV1_BETA_SOLID                                             (0x00000012)
#define Nv01BetaSolid                                           Nv01ContextBeta
#define nv01BetaSolid                                           Nv01ContextBeta
#define Nv1BetaSolid                                            Nv01ContextBeta
#define nv1BetaSolid                                            Nv01ContextBeta

typedef NvV32 Nv013Typedef;

typedef NvV32 Nv014Typedef;

typedef NvV32 Nv015Typedef;

typedef NvV32 Nv016Typedef;


/* class NV01_CONTEXT_COLOR_KEY */
#define  NV01_CONTEXT_COLOR_KEY                                    (0x00000017)
/* NvNotification[] elements */
#define NV017_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV017_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV017_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV017_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV017_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV017_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV017_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV017_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetColorFormat;          /* NV017_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetColor;                /* color key value                  0304-0307*/
 NvV32 Reserved02[0x73e];
} Nv017Typedef, Nv01ContextColorKey;
#define NV017_TYPEDEF                                       Nv01ContextColorKey
/* dma method offsets, fields, and values */
#define NV017_SET_OBJECT                                           (0x00000000)
#define NV017_NO_OPERATION                                         (0x00000100)
#define NV017_NOTIFY                                               (0x00000104)
#define NV017_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV017_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV017_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV017_SET_COLOR_FORMAT                                     (0x00000300)
#define NV017_SET_COLOR_FORMAT_LE_X16A8Y8                          (0x00000001)
#define NV017_SET_COLOR_FORMAT_LE_X16A1R5G5B5                      (0x00000002)
#define NV017_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV017_SET_COLOR                                            (0x00000304)
/* obsolete stuff */
#define NV01_IMAGE_SOLID                                           (0x00000017)
#define NV1_IMAGE_SOLID                                            (0x00000017)
#define Nv01ImageSolid                                      Nv01ContextColorKey
#define nv01ImageSolid                                      Nv01ContextColorKey
#define Nv1ImageSolid                                       Nv01ContextColorKey
#define nv1ImageSolid                                       Nv01ContextColorKey
#define nv01ContextColorKey                                 Nv01ContextColorKey


/* class NV01_CONTEXT_PATTERN */
#define  NV01_CONTEXT_PATTERN                                      (0x00000018)
/* NvNotification[] elements */
#define NV018_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV018_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV018_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV018_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV018_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV018_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV018_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV018_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetColorFormat;          /* NV018_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetMonochromeFormat;     /* NV018_SET_MONOCHROME_FORMAT_*    0304-0307*/
 NvV32 SetMonochromeShape;      /* NV018_SET_MONOCHROME_SHAPE_*     0308-030b*/
 NvV32 Reserved02[0x001];
 NvV32 SetMonochromeColor0;     /* color of 0 pixels                0310-0313*/
 NvV32 SetMonochromeColor1;     /* color of 1 pixels                0314-0317*/
 NvV32 SetMonochromePattern0;   /* first  32 bits of pattern data   0318-031b*/
 NvV32 SetMonochromePattern1;   /* second 32 bits of pattern data   031c-031f*/
 NvV32 Reserved03[0x738];
} Nv018Typedef, Nv01ContextPattern;
#define NV018_TYPEDEF                                        Nv01ContextPattern
/* dma method offsets, fields, and values */
#define NV018_SET_OBJECT                                           (0x00000000)
#define NV018_NO_OPERATION                                         (0x00000100)
#define NV018_NOTIFY                                               (0x00000104)
#define NV018_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV018_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV018_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV018_SET_COLOR_FORMAT                                     (0x00000300)
#define NV018_SET_COLOR_FORMAT_LE_X16A8Y8                          (0x00000001)
#define NV018_SET_COLOR_FORMAT_LE_X16A1R5G5B5                      (0x00000002)
#define NV018_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV018_SET_MONOCHROME_FORMAT                                (0x00000304)
#define NV018_SET_MONOCHROME_FORMAT_CGA6_M1                        (0x00000001)
#define NV018_SET_MONOCHROME_FORMAT_LE_M1                          (0x00000002)
#define NV018_SET_MONOCHROME_SHAPE                                 (0x00000308)
#define NV018_SET_MONOCHROME_SHAPE_8X_8Y                           (0x00000000)
#define NV018_SET_MONOCHROME_SHAPE_64X_1Y                          (0x00000001)
#define NV018_SET_MONOCHROME_SHAPE_1X_64Y                          (0x00000002)
#define NV018_SET_MONOCHORME_COLOR0                                (0x00000310)
#define NV018_SET_MONOCHORME_COLOR1                                (0x00000314)
#define NV018_SET_MONOCHORME_PATTERN0                              (0x00000318)
#define NV018_SET_MONOCHORME_PATTERN1                              (0x0000031C)
/* obsolete stuff */
#define NV01_IMAGE_PATTERN                                         (0x00000018)
#define NV1_IMAGE_PATTERN                                          (0x00000018)
#define Nv01ImagePattern                                     Nv01ContextPattern
#define nv01ImagePattern                                     Nv01ContextPattern
#define Nv1ImagePattern                                      Nv01ContextPattern
#define nv1ImagePattern                                      Nv01ContextPattern
#define nv01ContextPattern                                   Nv01ContextPattern


/* class NV01_CONTEXT_CLIP_RECTANGLE */
#define  NV01_CONTEXT_CLIP_RECTANGLE                               (0x00000019)
/* NvNotification[] elements */
#define NV019_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV019_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV019_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV019_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV019_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV019_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV019_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV019_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetPoint;                /* y_x S16_S16                      0300-0303*/
 NvV32 SetSize;                 /* height_width U16_U16             0304-0307*/
 NvV32 Reserved02[0x73e];
} Nv019Typedef, Nv01ContextClipRectangle;
#define NV019_TYPEDEF                                  Nv01ContextClipRectangle
/* dma method offsets, fields, and values */
#define NV019_SET_OBJECT                                           (0x00000000)
#define NV019_NO_OPERATION                                         (0x00000100)
#define NV019_NOTIFY                                               (0x00000104)
#define NV019_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV019_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV019_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV019_SET_POINT                                            (0x00000300)
#define NV019_SET_POINT_X                                          15:0
#define NV019_SET_POINT_Y                                          31:16
#define NV019_SET_SIZE                                             (0x00000304)
#define NV019_SET_SIZE_WIDTH                                       15:0
#define NV019_SET_SIZE_HEIGHT                                      31:16
/* obsolete stuff */
#define NV01_IMAGE_BLACK_RECTANGLE                                 (0x00000019)
#define NV1_IMAGE_BLACK_RECTANGLE                                  (0x00000019)
#define Nv01ImageBlackRectangle                        Nv01ContextClipRectangle
#define nv01ImageBlackRectangle                        Nv01ContextClipRectangle
#define Nv1ImageBlackRectangle                         Nv01ContextClipRectangle
#define nv1ImageBlackRectangle                         Nv01ContextClipRectangle
#define nv01ContextClipRectangle                       Nv01ContextClipRectangle

typedef NvV32 Nv01aTypedef;

typedef NvV32 Nv01bTypedef;


/* class NV01_RENDER_SOLID_LIN */
#define  NV01_RENDER_SOLID_LIN                                     (0x0000001C)
/* NvNotification[] elements */
#define NV01C_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV01C_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV01C_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV01C_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV01C_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV01C_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV01C_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV01C_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0184-0187*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextSurface;       /* NV03_CONTEXT_SURFACE_2D_DESTINAT 0194-0197*/
 NvV32 Reserved01[0x059];
 NvV32 SetOperation;            /* NV01C_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV01C_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Color;                   /* source color                     0304-0307*/
 NvV32 Reserved02[0x03e];
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 point0;                 /* y_x S16_S16 in pixels               0-   3*/
  NvV32 point1;                 /* y_x S16_S16 in pixels               4-   7*/
 } Lin[16];                     /* end of aliased methods in array      -047f*/
 struct {                       /* start aliased methods in array   0480-    */
  NvS32 point0X;                /* in pixels, 0 at left                0-   3*/
  NvS32 point0Y;                /* in pixels, 0 at top                 4-   7*/
  NvS32 point1X;                /* in pixels, 0 at left                8-   b*/
  NvS32 point1Y;                /* in pixels, 0 at top                 c-   f*/
 } Lin32[8];                    /* end of aliased methods in array      -04ff*/
 NvV32 PolyLin[32];             /* y_x S16_S16 in pixels            0500-057f*/
 struct {                       /* start aliased methods in array   0580-    */
  NvS32 x;                      /* in pixels, 0 at left                0-   3*/
  NvS32 y;                      /* in pixels, 0 at top                 4-   7*/
 } PolyLin32[16];               /* end of aliased methods in array      -05ff*/
 struct {                       /* start aliased methods in array   0600-    */
  NvV32 color;                  /* source color                        0-   3*/
  NvV32 point;                  /* y_x S16_S16 in pixels               4-   7*/
 } ColorPolyLin[16];            /* end of aliased methods in array      -067f*/
 NvV32 Reserved03[0x660];
} Nv01cTypedef, Nv01RenderSolidLin;
#define NV01C_TYPEDEF                                        Nv01RenderSolidLin
/* dma method offsets, fields, and values */
#define NV01C_SET_OBJECT                                           (0x00000000)
#define NV01C_NO_OPERATION                                         (0x00000100)
#define NV01C_NOTIFY                                               (0x00000104)
#define NV01C_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV01C_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV01C_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV01C_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000184)
#define NV01C_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV01C_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV01C_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV01C_SET_CONTEXT_SURFACE                                  (0x00000194)
#define NV01C_SET_OPERATION                                        (0x000002FC)
#define NV01C_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV01C_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV01C_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV01C_SET_COLOR_FORMAT                                     (0x00000300)
#define NV01C_SET_COLOR_FORMAT_LE_X24Y8                            (0x00000001)
#define NV01C_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV01C_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV01C_SET_COLOR_FORMAT_LE_X16Y16                           (0x00000004)
#define NV01C_COLOR                                                (0x00000304)
#define NV01C_LIN(a)                                               (0x00000400\
                                                                   +(a)*0x0008)
#define NV01C_LIN_POINT0(a)                                        (0x00000400\
                                                                   +(a)*0x0008)
#define NV01C_LIN_POINT0_X                                         15:0
#define NV01C_LIN_POINT0_Y                                         31:16
#define NV01C_LIN_POINT1(a)                                        (0x00000404\
                                                                   +(a)*0x0008)
#define NV01C_LIN_POINT1_X                                         15:0
#define NV01C_LIN_POINT1_Y                                         31:16
#define NV01C_LIN32(a)                                             (0x00000480\
                                                                   +(a)*0x0010)
#define NV01C_LIN32_POINT0_X(a)                                    (0x00000480\
                                                                   +(a)*0x0010)
#define NV01C_LIN32_POINT0_Y(a)                                    (0x00000484\
                                                                   +(a)*0x0010)
#define NV01C_LIN32_POINT1_X(a)                                    (0x00000488\
                                                                   +(a)*0x0010)
#define NV01C_LIN32_POINT1_Y(a)                                    (0x0000048C\
                                                                   +(a)*0x0010)
#define NV01C_POLY_LIN(a)                                          (0x00000500\
                                                                   +(a)*0x0004)
#define NV01C_POLY_LIN_X                                           15:0
#define NV01C_POLY_LIN_Y                                           31:16
#define NV01C_POLY_LIN32(a)                                        (0x00000580\
                                                                   +(a)*0x0008)
#define NV01C_POLY_LIN32_X(a)                                      (0x00000580\
                                                                   +(a)*0x0008)
#define NV01C_POLY_LIN32_Y(a)                                      (0x00000584\
                                                                   +(a)*0x0008)
#define NV01C_COLOR_POLY_LIN(a)                                    (0x00000600\
                                                                   +(a)*0x0008)
#define NV01C_COLOR_POLY_LIN_COLOR(a)                              (0x00000600\
                                                                   +(a)*0x0008)
#define NV01C_COLOR_POLY_LIN_POINT(a)                              (0x00000604\
                                                                   +(a)*0x0008)
#define NV01C_COLOR_POLY_LIN_POINT_X                               15:0
#define NV01C_COLOR_POLY_LIN_POINT_Y                               31:16
/* obsolete stuff */
#define NV1_RENDER_SOLID_LIN                                       (0x0000001C)
#define Nv1RenderSolidLin                                    Nv01RenderSolidLin
#define nv1RenderSolidLin                                    Nv01RenderSolidLin
#define nv01RenderSolidLin                                   Nv01RenderSolidLin


/* class NV01_RENDER_SOLID_TRIANGLE */
#define  NV01_RENDER_SOLID_TRIANGLE                                (0x0000001D)
/* NvNotification[] elements */
#define NV01D_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV01D_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV01D_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV01D_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV01D_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV01D_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV01D_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV01D_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0184-0187*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextSurface;       /* NV03_CONTEXT_SURFACE_2D_DESTINAT 0194-0197*/
 NvV32 Reserved01[0x059];
 NvV32 SetOperation;            /* NV01D_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV01D_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Color;                   /* source color                     0304-0307*/
 NvV32 Reserved02[0x002];
 NvV32 TrianglePoint0;          /* y_x S16_S16 in pixels            0310-0313*/
 NvV32 TrianglePoint1;          /* y_x S16_S16 in pixels            0314-0317*/
 NvV32 TrianglePoint2;          /* y_x S16_S16 in pixels            0318-031b*/
 NvV32 Reserved03[0x001];
 NvS32 Triangle32Point0X;       /* in pixels, 0 at left             0320-0323*/
 NvS32 Triangle32Point0Y;       /* in pixels, 0 at top              0324-0327*/
 NvS32 Triangle32Point1X;       /* in pixels, 0 at left             0328-032b*/
 NvS32 Triangle32Point1Y;       /* in pixels, 0 at top              032c-032f*/
 NvS32 Triangle32Point2X;       /* in pixels, 0 at left             0330-0333*/
 NvS32 Triangle32Point2Y;       /* in pixels, 0 at top              0334-0337*/
 NvV32 Reserved04[0x032];
 NvV32 Trimesh[32];             /* y_x S16_S16 in pixels            0400-047f*/
 struct {                       /* start aliased methods in array   0480-    */
  NvS32 x;                      /* in pixels, 0 at left                0-   3*/
  NvS32 y;                      /* in pixels, 0 at top                 4-   7*/
 } Trimesh32[16];               /* end of aliased methods in array      -04ff*/
 struct {                       /* start aliased methods in array   0500-    */
  NvV32 color;                  /* source color                        0-   3*/
  NvV32 point0;                 /* y_x S16_S16 in pixels               4-   7*/
  NvV32 point1;                 /* y_x S16_S16 in pixels               8-   b*/
  NvV32 point2;                 /* y_x S16_S16 in pixels               c-   f*/
 } ColorTriangle[8];            /* end of aliased methods in array      -057f*/
 struct {                       /* start aliased methods in array   0580-    */
  NvV32 color;                  /* source color                        0-   3*/
  NvV32 point;                  /* y_x S16_S16 in pixels               4-   7*/
 } ColorTrimesh[16];            /* end of aliased methods in array      -05ff*/
 NvV32 Reserved05[0x680];
} Nv01dTypedef, Nv01RenderSolidTriangle;
#define NV01D_TYPEDEF                                   Nv01RenderSolidTriangle
/* dma method offsets, fields, and values */
#define NV01D_SET_OBJECT                                           (0x00000000)
#define NV01D_NO_OPERATION                                         (0x00000100)
#define NV01D_NOTIFY                                               (0x00000104)
#define NV01D_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV01D_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV01D_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV01D_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000184)
#define NV01D_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV01D_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV01D_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV01D_SET_CONTEXT_SURFACE                                  (0x00000194)
#define NV01D_SET_OPERATION                                        (0x000002FC)
#define NV01D_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV01D_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV01D_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV01D_SET_COLOR_FORMAT                                     (0x00000300)
#define NV01D_SET_COLOR_FORMAT_LE_X24Y8                            (0x00000001)
#define NV01D_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV01D_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV01D_SET_COLOR_FORMAT_LE_X16Y16                           (0x00000004)
#define NV01D_COLOR                                                (0x00000304)
#define NV01D_TRIANGLE_POINT0                                      (0x00000310)
#define NV01D_TRIANGLE_POINT0_X                                    15:0
#define NV01D_TRIANGLE_POINT0_Y                                    31:16
#define NV01D_TRIANGLE_POINT1                                      (0x00000314)
#define NV01D_TRIANGLE_POINT1_X                                    15:0
#define NV01D_TRIANGLE_POINT1_Y                                    31:16
#define NV01D_TRIANGLE_POINT2                                      (0x00000318)
#define NV01D_TRIANGLE_POINT2_X                                    15:0
#define NV01D_TRIANGLE_POINT2_Y                                    31:16
#define NV01D_TRIANGLE32_POINT0_X                                  (0x00000320)
#define NV01D_TRIANGLE32_POINT0_Y                                  (0x00000324)
#define NV01D_TRIANGLE32_POINT1_X                                  (0x00000328)
#define NV01D_TRIANGLE32_POINT1_Y                                  (0x0000032C)
#define NV01D_TRIANGLE32_POINT2_X                                  (0x00000330)
#define NV01D_TRIANGLE32_POINT2_Y                                  (0x00000334)
#define NV01D_TRIMESH(a)                                           (0x00000400\
                                                                   +(a)*0x0004)
#define NV01D_TRIMESH_X                                            15:0
#define NV01D_TRIMESH_Y                                            31:16
#define NV01D_TRIMESH32(a)                                         (0x00000480\
                                                                   +(a)*0x0008)
#define NV01D_TRIMESH32_X(a)                                       (0x00000480\
                                                                   +(a)*0x0008)
#define NV01D_TRIMESH32_Y(a)                                       (0x00000484\
                                                                   +(a)*0x0008)
#define NV01D_COLOR_TRIANGLE(a)                                    (0x00000500\
                                                                   +(a)*0x0010)
#define NV01D_COLOR_TRIANGLE_COLOR(a)                              (0x00000500\
                                                                   +(a)*0x0010)
#define NV01D_COLOR_TRIANGLE_POINT0(a)                             (0x00000504\
                                                                   +(a)*0x0010)
#define NV01D_COLOR_TRIANGLE_POINT0_X                              15:0
#define NV01D_COLOR_TRIANGLE_POINT0_Y                              31:16
#define NV01D_COLOR_TRIANGLE_POINT1(a)                             (0x00000508\
                                                                   +(a)*0x0010)
#define NV01D_COLOR_TRIANGLE_POINT1_X                              15:0
#define NV01D_COLOR_TRIANGLE_POINT1_Y                              31:16
#define NV01D_COLOR_TRIANGLE_POINT2(a)                             (0x0000050C\
                                                                   +(a)*0x0010)
#define NV01D_COLOR_TRIANGLE_POINT2_X                              15:0
#define NV01D_COLOR_TRIANGLE_POINT2_Y                              31:16
#define NV01D_COLOR_TRIMESH(a)                                     (0x00000580\
                                                                   +(a)*0x0008)
#define NV01D_COLOR_TRIMESH_COLOR(a)                               (0x00000580\
                                                                   +(a)*0x0008)
#define NV01D_COLOR_TRIMESH_POINT(a)                               (0x00000584\
                                                                   +(a)*0x0008)
#define NV01D_COLOR_TRIMESH_POINT_X                                15:0
#define NV01D_COLOR_TRIMESH_POINT_Y                                31:16
/* obsolete stuff */
#define NV1_RENDER_SOLID_TRIANGLE                                  (0x0000001D)
#define Nv1RenderSolidTriangle                          Nv01RenderSolidTriangle
#define nv1RenderSolidTriangle                          Nv01RenderSolidTriangle
#define nv01RenderSolidTriangle                         Nv01RenderSolidTriangle


/* class NV01_RENDER_SOLID_RECTANGLE */
#define  NV01_RENDER_SOLID_RECTANGLE                               (0x0000001E)
/* NvNotification[] elements */
#define NV01E_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV01E_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV01E_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV01E_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV01E_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV01E_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV01E_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV01E_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0184-0187*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextSurface;       /* NV03_CONTEXT_SURFACE_2D_DESTINAT 0194-0197*/
 NvV32 Reserved01[0x059];
 NvV32 SetOperation;            /* NV01E_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV01E_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Color;                   /* source color                     0304-0307*/
 NvV32 Reserved02[0x03e];
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 point;                  /* y_x S16_S16                         0-   3*/
  NvV32 size;                   /* height_width U16_U16                4-   7*/
 } Rectangle[16];               /* end of method in array in array      -047f*/
 NvV32 Reserved03[0x6e0];
} Nv01eTypedef, Nv01RenderSolidRectangle;
#define NV01E_TYPEDEF                                  Nv01RenderSolidRectangle
/* dma method offsets, fields, and values */
#define NV01E_SET_OBJECT                                           (0x00000000)
#define NV01E_NO_OPERATION                                         (0x00000100)
#define NV01E_NOTIFY                                               (0x00000104)
#define NV01E_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV01E_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV01E_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV01E_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000184)
#define NV01E_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV01E_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV01E_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV01E_SET_CONTEXT_SURFACE                                  (0x00000194)
#define NV01E_SET_OPERATION                                        (0x000002FC)
#define NV01E_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV01E_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV01E_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV01E_SET_COLOR_FORMAT                                     (0x00000300)
#define NV01E_SET_COLOR_FORMAT_LE_X24Y8                            (0x00000001)
#define NV01E_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV01E_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV01E_SET_COLOR_FORMAT_LE_X16Y16                           (0x00000004)
#define NV01E_COLOR                                                (0x00000304)
#define NV01E_RECTANGLE(a)                                         (0x00000400\
                                                                   +(a)*0x0008)
#define NV01E_RECTANGLE_POINT(a)                                   (0x00000400\
                                                                   +(a)*0x0008)
#define NV01E_RECTANGLE_POINT_X                                    15:0
#define NV01E_RECTANGLE_POINT_Y                                    31:16
#define NV01E_RECTANGLE_SIZE(a)                                    (0x00000404\
                                                                   +(a)*0x0008)
#define NV01E_RECTANGLE_SIZE_WIDTH                                 15:0
#define NV01E_RECTANGLE_SIZE_HEIGHT                                31:16
/* obsolete stuff */
#define NV1_RENDER_SOLID_RECTANGLE                                 (0x0000001E)
#define Nv1RenderSolidRectangle                        Nv01RenderSolidRectangle
#define nv1RenderSolidRectangle                        Nv01RenderSolidRectangle
#define nv01RenderSolidRectangle                       Nv01RenderSolidRectangle


/* class NV01_IMAGE_BLIT */
#define  NV01_IMAGE_BLIT                                           (0x0000001F)
/* NvNotification[] elements */
#define NV01F_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV01F_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV01F_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV01F_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV01F_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV01F_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV01F_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV01F_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV01_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurfaceSource; /* NV03_CONTEXT_SURFACE_2D_SOURCE   0198-019b*/
 NvV32 SetContextSurfaceDestin; /* NV03_CONTEXT_SURFACE_2D_DESTINAT 019c-019f*/
 NvV32 Reserved01[0x057];
 NvV32 SetOperation;            /* NV01F_SET_OPERATION_*            02fc-02ff*/
 NvV32 ControlPointIn;          /* y_x U16_U16, pixels              0300-0303*/
 NvV32 ControlPointOut;         /* y_x S16_S16, pixels              0304-0307*/
 NvV32 Size;                    /* height_width U16_U16 in pixels   0308-030b*/
 NvV32 Reserved02[0x73d];
} Nv01fTypedef, Nv01ImageBlit;
#define NV01F_TYPEDEF                                             Nv01ImageBlit
/* dma method offsets, fields, and values */
#define NV01F_SET_OBJECT                                           (0x00000000)
#define NV01F_NO_OPERATION                                         (0x00000100)
#define NV01F_NOTIFY                                               (0x00000104)
#define NV01F_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV01F_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV01F_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV01F_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV01F_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV01F_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV01F_SET_CONTEXT_ROP                                      (0x00000190)
#define NV01F_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV01F_SET_CONTEXT_SURFACE_SOURCE                           (0x00000198)
#define NV01F_SET_CONTEXT_SURFACE_DESTIN                           (0x0000019C)
#define NV01F_SET_OPERATION                                        (0x000002FC)
#define NV01F_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV01F_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV01F_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV01F_CONTROL_POINT_IN                                     (0x00000300)
#define NV01F_CONTROL_POINT_IN_X                                   15:0
#define NV01F_CONTROL_POINT_IN_Y                                   31:16
#define NV01F_CONTROL_POINT_OUT                                    (0x00000304)
#define NV01F_CONTROL_POINT_OUT_X                                  15:0
#define NV01F_CONTROL_POINT_OUT_Y                                  31:16
#define NV01F_SIZE                                                 (0x00000308)
#define NV01F_SIZE_WIDTH                                           15:0
#define NV01F_SIZE_HEIGHT                                          31:16
/* obsolete stuff */
#define NV1_IMAGE_BLIT                                             (0x0000001F)
#define Nv1ImageBlit                                              Nv01ImageBlit
#define nv1ImageBlit                                              Nv01ImageBlit
#define nv01ImageBlit                                             Nv01ImageBlit

typedef NvV32 Nv020Typedef;


/* class NV01_IMAGE_FROM_CPU */
#define  NV01_IMAGE_FROM_CPU                                       (0x00000021)
/* NvNotification[] elements */
#define NV021_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV021_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV021_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV021_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV021_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV021_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV021_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV021_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV01_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV03_CONTEXT_SURFACE_2D_DESTINAT 0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetOperation;            /* NV021_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV021_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Point;                   /* y_x S16_S16 in pixels            0304-0307*/
 NvV32 SizeOut;                 /* height_width U16_U16, in pixels  0308-030b*/
 NvV32 SizeIn;                  /* height_width U16_U16, in pixels  030c-030f*/
 NvV32 Reserved02[0x03c];
 NvV32 Color[32];               /* packed pixel(s) to add to image  0400-047f*/
 NvV32 Reserved03[0x6e0];
} Nv021Typedef, Nv01ImageFromCpu;
#define NV021_TYPEDEF                                          Nv01ImageFromCpu
/* dma method offsets, fields, and values */
#define NV021_SET_OBJECT                                           (0x00000000)
#define NV021_NO_OPERATION                                         (0x00000100)
#define NV021_NOTIFY                                               (0x00000104)
#define NV021_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV021_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV021_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV021_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV021_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV021_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV021_SET_CONTEXT_ROP                                      (0x00000190)
#define NV021_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV021_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV021_SET_OPERATION                                        (0x000002FC)
#define NV021_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV021_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV021_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV021_SET_COLOR_FORMAT                                     (0x00000300)
#define NV021_SET_COLOR_FORMAT_LE_Y8                               (0x00000001)
#define NV021_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV021_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV021_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV021_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV021_POINT                                                (0x00000304)
#define NV021_POINT_X                                              15:0
#define NV021_POINT_Y                                              31:16
#define NV021_SIZE_OUT                                             (0x00000308)
#define NV021_SIZE_OUT_WIDTH                                       15:0
#define NV021_SIZE_OUT_HEIGHT                                      31:16
#define NV021_SIZE_IN                                              (0x0000030C)
#define NV021_SIZE_IN_WIDTH                                        15:0
#define NV021_SIZE_IN_HEIGHT                                       31:16
#define NV021_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0004)
/* obsolete stuff */
#define NV1_IMAGE_FROM_CPU                                         (0x00000021)
#define Nv1ImageFromCpu                                        Nv01ImageFromCpu
#define nv1ImageFromCpu                                        Nv01ImageFromCpu
#define nv01ImageFromCpu                                       Nv01ImageFromCpu

typedef NvV32 Nv022Typedef;

typedef NvV32 Nv023Typedef;

typedef NvV32 Nv024Typedef;

typedef NvV32 Nv025Typedef;

typedef NvV32 Nv026Typedef;

typedef NvV32 Nv027Typedef;

typedef NvV32 Nv028Typedef;

typedef NvV32 Nv029Typedef;

typedef NvV32 Nv02aTypedef;

typedef NvV32 Nv02bTypedef;

typedef NvV32 Nv02cTypedef;

typedef NvV32 Nv02dTypedef;

typedef NvV32 Nv02eTypedef;

typedef NvV32 Nv02fTypedef;


/* class NV01_NULL */
#define  NV01_NULL                                                 (0x00000030)
/* NvNotification[] fields and values */
#define NV030_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv030Typedef, Nv01Null;
#define NV030_TYPEDEF                                              Nv01Null
/* obsolete stuff */
#define NV1_NULL                                                   (0x00000030)
#define Nv1Null                                                    Nv01Null
#define nv1Null                                                    Nv01Null
#define nv01Null                                                   Nv01Null

typedef NvV32 Nv031Typedef;

typedef NvV32 Nv032Typedef;

typedef NvV32 Nv033Typedef;

typedef NvV32 Nv034Typedef;

typedef NvV32 Nv035Typedef;



/* class NV03_STRETCHED_IMAGE_FROM_CPU */
#define  NV03_STRETCHED_IMAGE_FROM_CPU                             (0x00000036)
/* NvNotification[] elements */
#define NV036_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV036_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV036_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV036_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV036_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV036_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV036_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV036_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV01_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextSurface;       /* NV03_CONTEXT_SURFACE_2D_DESTINAT 0194-0197*/
 NvV32 Reserved01[0x059];
 NvV32 SetOperation;            /* NV036_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV036_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SizeIn;                  /* height_width U16_U16 in texels   0304-0307*/
 NvV32 DeltaDxDu;               /* S12d20 ratio dx/du               0308-030b*/
 NvV32 DeltaDyDv;               /* S12d20 ratio dy/dv               030c-030f*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0310-0313*/
 NvV32 ClipSize;                /* height_width U16_U16             0314-0317*/
 NvV32 Point12d4;               /* y_x S12d4_S12d4 in pixels        0318-031b*/
 NvV32 Reserved02[0x039];
 NvV32 Color[1792];             /* source colors (packed texels)    0400-1fff*/
} Nv036Typedef, Nv03StretchedImageFromCpu;
#define NV036_TYPEDEF                                 Nv03StretchedImageFromCpu
/* dma method offsets, fields, and values */
#define NV036_SET_OBJECT                                           (0x00000000)
#define NV036_NO_OPERATION                                         (0x00000100)
#define NV036_NOTIFY                                               (0x00000104)
#define NV036_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV036_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV036_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV036_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV036_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV036_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV036_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV036_SET_CONTEXT_SURFACE                                  (0x00000194)
#define NV036_SET_OPERATION                                        (0x000002FC)
#define NV036_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV036_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV036_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV036_SET_COLOR_FORMAT                                     (0x00000300)
#define NV036_SET_COLOR_FORMAT_LE_Y8                               (0x00000001)
#define NV036_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV036_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV036_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV036_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV036_SIZE_IN                                              (0x00000304)
#define NV036_SIZE_IN_WIDTH                                        15:0
#define NV036_SIZE_IN_HEIGHT                                       31:16
#define NV036_DELTA_DX_DU                                          (0x00000308)
#define NV036_DELTA_DY_DV                                          (0x0000030C)
#define NV036_CLIP_POINT                                           (0x00000310)
#define NV036_CLIP_POINT_X                                         15:0
#define NV036_CLIP_POINT_Y                                         31:16
#define NV036_CLIP_SIZE                                            (0x00000314)
#define NV036_CLIP_SIZE_WIDTH                                      15:0
#define NV036_CLIP_SIZE_HEIGHT                                     31:16
#define NV036_POINT_12D4                                           (0x00000318)
#define NV036_POINT_12D4_X                                         15:0
#define NV036_POINT_12D4_Y                                         31:16
#define NV036_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0004)
/* obsolete stuff */
#define NV3_STRETCHED_IMAGE_FROM_CPU                               (0x00000036)
#define Nv3StretchedImageFromCpu                      Nv03StretchedImageFromCpu
#define nv3StretchedImageFromCpu                      Nv03StretchedImageFromCpu
#define nv03StretchedImageFromCpu                     Nv03StretchedImageFromCpu


/* class NV03_SCALED_IMAGE_FROM_MEMORY */
#define  NV03_SCALED_IMAGE_FROM_MEMORY                             (0x00000037)
/* NvNotification[] elements */
#define NV037_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV037_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV037_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV037_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV037_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV037_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV037_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV037_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextSurface;       /* NV03_CONTEXT_SURFACE_2D_DESTINAT 0194-0197*/
 NvV32 Reserved01[0x05A];
 NvV32 SetColorFormat;          /* NV037_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetOperation;            /* NV037_SET_OPERATION_*            0304-0307*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0308-030b*/
 NvV32 ClipSize;                /* height_width U16_U16             030c-030f*/
 NvV32 ImageOutPoint;           /* y_x S16_S16                      0310-0313*/
 NvV32 ImageOutSize;            /* height_width U16_U16             0314-0317*/
 NvV32 DeltaDuDx;               /* S12d20 ratio du/dx               0318-031b*/
 NvV32 DeltaDvDy;               /* S12d20 ratio dv/dy               031c-031f*/
 NvV32 Reserved02[0x038];
 NvV32 ImageInSize;             /* height_width U16_U16             0400-0403*/
 NvU32 ImageInPitch;            /* bytes, vertical pixel delta      0404-0407*/
 NvU32 ImageInOffset;           /* byte offset of top-left texel    0408-040b*/
 NvV32 ImageInPoint;            /* v_u U12d4_U12d4                  040c-040f*/
 NvV32 Reserved03[0x6fc];
} Nv037Typedef, Nv03ScaledImageFromMemory;
#define NV037_TYPEDEF                                 Nv03ScaledImageFromMemory
/* dma method offsets, fields, and values */
#define NV037_SET_OBJECT                                           (0x00000000)
#define NV037_NO_OPERATION                                         (0x00000100)
#define NV037_NOTIFY                                               (0x00000104)
#define NV037_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV037_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV037_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV037_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV037_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV037_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV037_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV037_SET_CONTEXT_SURFACE                                  (0x00000194)
#define NV037_SET_COLOR_FORMAT                                     (0x00000300)
#define NV037_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000001)
#define NV037_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000002)
#define NV037_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV037_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000004)
#define NV037_SET_COLOR_FORMAT_LE_V8YB8U8YA8                       (0x00000005)
#define NV037_SET_COLOR_FORMAT_LE_YB8V8YA8U8                       (0x00000006)
#define NV037_SET_OPERATION                                        (0x00000304)
#define NV037_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV037_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV037_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV037_CLIP_POINT                                           (0x00000308)
#define NV037_CLIP_POINT_X                                         15:0
#define NV037_CLIP_POINT_Y                                         31:16
#define NV037_CLIP_SIZE                                            (0x0000030C)
#define NV037_CLIP_SIZE_WIDTH                                      15:0
#define NV037_CLIP_SIZE_HEIGHT                                     31:16
#define NV037_IMAGE_OUT_POINT                                      (0x00000310)
#define NV037_IMAGE_OUT_POINT_X                                    15:0
#define NV037_IMAGE_OUT_POINT_Y                                    31:16
#define NV037_IMAGE_OUT_SIZE                                       (0x00000314)
#define NV037_IMAGE_OUT_SIZE_WIDTH                                 15:0
#define NV037_IMAGE_OUT_SIZE_HEIGHT                                31:16
#define NV037_DELTA_DU_DX                                          (0x00000318)
#define NV037_DELTA_DV_DY                                          (0x0000031C)
#define NV037_IMAGE_IN_SIZE                                        (0x00000400)
#define NV037_IMAGE_IN_SIZE_WIDTH                                  15:0
#define NV037_IMAGE_IN_SIZE_HEIGHT                                 31:16
#define NV037_IMAGE_IN_PITCH                                       (0x00000404)
#define NV037_IMAGE_IN_OFFSET                                      (0x00000408)
#define NV037_IMAGE_IN_POINT                                       (0x0000040C)
#define NV037_IMAGE_IN_POINT_U                                     15:0
#define NV037_IMAGE_IN_POINT_V                                     31:16
/* obsolete stuff */
#define NV3_SCALED_IMAGE_FROM_MEMORY                               (0x00000037)
#define Nv3ScaledImageFromMemory                      Nv03ScaledImageFromMemory
#define nv3ScaledImageFromMemory                      Nv03ScaledImageFromMemory
#define nv03ScaledImageFromMemory                     Nv03ScaledImageFromMemory


/* class NV04_DVD_SUBPICTURE */
#define  NV04_DVD_SUBPICTURE                                       (0x00000038)
/* NvNotification[] elements */
#define NV038_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV038_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV038_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV038_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV038_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV038_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV038_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV038_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaOverlay;    /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaImageIn;    /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 SetContextDmaImageOut;   /* NV01_CONTEXT_DMA                 018c-018f*/
 NvV32 Reserved01[0x05c];
 NvV32 ImageOutPoint;           /* y_x S16_S16                      0300-0303*/
 NvV32 ImageOutSize;            /* height_width U16_U16             0304-0307*/
 NvU32 ImageOutFormat;          /* color_pitch V16_U16              0308-030b*/
 NvU32 ImageOutOffset;          /* byte offset of top-left pixel    030c-030f*/
 NvV32 ImageInDeltaDuDx;        /* S12d20 ratio du/dx               0310-0313*/
 NvV32 ImageInDeltaDvDy;        /* S12d20 ratio dv/dy               0314-0317*/
 NvV32 ImageInSize;             /* height_width U16_U16 in texels   0318-031b*/
 NvV32 ImageInFormat;           /* color_pitch V16_U16              031c-031f*/
 NvU32 ImageInOffset;           /* byte offset of top-left texel    0320-0323*/
 NvV32 ImageInPoint;            /* v_u U12d4_U12d4 in texels        0324-0317*/
 NvV32 OverlayDeltaDuDx;        /* S12d20 ratio du/dx               0328-032b*/
 NvV32 OverlayDeltaDvDy;        /* S12d20 ratio dv/dy               032c-032f*/
 NvV32 OverlaySize;             /* height_width U16_U16 in texels   0330-0333*/
 NvV32 OverlayFormat;           /* color_pitch V16_U16              0334-0337*/
 NvU32 OverlayOffset;           /* byte offset of top-left texel    0338-033b*/
 NvV32 OverlayPoint;            /* v_u U12d4_U12d4 in texels        033c-033f*/
 NvV32 Reserved02[0x730];
} Nv038Typedef, Nv04DvdSubpicture;
#define NV038_TYPEDEF                                         Nv04DvdSubpicture
/* dma method offsets, fields, and values */
#define NV038_SET_OBJECT                                           (0x00000000)
#define NV038_NO_OPERATION                                         (0x00000100)
#define NV038_NOTIFY                                               (0x00000104)
#define NV038_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV038_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV038_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV038_SET_CONTEXT_DMA_OVERLAY                              (0x00000184)
#define NV038_SET_CONTEXT_DMA_IMAGE_IN                             (0x00000188)
#define NV038_SET_CONTEXT_DMA_IMAGE_OUT                            (0x0000018C)
#define NV038_IMAGE_OUT_POINT                                      (0x00000300)
#define NV038_IMAGE_OUT_POINT_X                                    15:0
#define NV038_IMAGE_OUT_POINT_Y                                    31:16
#define NV038_IMAGE_OUT_SIZE                                       (0x00000304)
#define NV038_IMAGE_OUT_SIZE_WIDTH                                 15:0
#define NV038_IMAGE_OUT_SIZE_HEIGHT                                31:16
#define NV038_IMAGE_OUT_FORMAT                                     (0x00000308)
#define NV038_IMAGE_OUT_FORMAT_PITCH                               15:0
#define NV038_IMAGE_OUT_FORMAT_COLOR                               31:16
#define NV038_IMAGE_OUT_FORMAT_COLOR_LE_V8YB8U8YA8                 (0x00000001)
#define NV038_IMAGE_OUT_FORMAT_COLOR_LE_YB8V8YA8U8                 (0x00000002)
#define NV038_IMAGE_OUT_OFFSET                                     (0x0000030C)
#define NV038_IMAGE_IN_DELTA_DU_DX                                 (0x00000310)
#define NV038_IMAGE_IN_DELTA_DV_DY                                 (0x00000314)
#define NV038_IMAGE_IN_SIZE                                        (0x00000318)
#define NV038_IMAGE_IN_SIZE_WIDTH                                  15:0
#define NV038_IMAGE_IN_SIZE_HEIGHT                                 31:16
#define NV038_IMAGE_IN_FORMAT                                      (0x0000031C)
#define NV038_IMAGE_IN_FORMAT_PITCH                                15:0
#define NV038_IMAGE_IN_FORMAT_COLOR                                31:16
#define NV038_IMAGE_IN_FORMAT_COLOR_LE_V8YB8U8YA8                  (0x00000001)
#define NV038_IMAGE_IN_FORMAT_COLOR_LE_YB8V8YA8U8                  (0x00000002)
#define NV038_IMAGE_IN_OFFSET                                      (0x00000320)
#define NV038_IMAGE_IN_POINT                                       (0x00000324)
#define NV038_IMAGE_IN_POINT_U                                     15:0
#define NV038_IMAGE_IN_POINT_V                                     31:16
#define NV038_OVERLAY_DELTA_DU_DX                                  (0x00000328)
#define NV038_OVERLAY_DELTA_DV_DY                                  (0x0000032C)
#define NV038_OVERLAY_SIZE                                         (0x00000330)
#define NV038_OVERLAY_SIZE_WIDTH                                   15:0
#define NV038_OVERLAY_SIZE_HEIGHT                                  31:16
#define NV038_OVERLAY_FORMAT                                       (0x00000334)
#define NV038_OVERLAY_FORMAT_PITCH                                 15:0
#define NV038_OVERLAY_FORMAT_COLOR                                 31:16
#define NV038_OVERLAY_FORMAT_COLOR_LE_A8V8U8Y8                     (0x00000001)
#define NV038_OVERLAY_FORMAT_COLOR_LE_A4V6YB6A4U6YA6               (0x00000002)
#define NV038_OVERLAY_FORMAT_COLOR_LE_TRANSPARENT                  (0x00000003)
#define NV038_OVERLAY_OFFSET                                       (0x00000338)
#define NV038_OVERLAY_POINT                                        (0x0000033C)
#define NV038_OVERLAY_POINT_U                                      15:0
#define NV038_OVERLAY_POINT_V                                      31:16
/* obsolete stuff */
#define NV4_DVD_SUBPICTURE                                         (0x00000038)
#define Nv4DvdSubpicture                                      Nv04DvdSubpicture
#define nv4DvdSubpicture                                      Nv04DvdSubpicture
#define nv04DvdSubpicture                                     Nv04DvdSubpicture


/* class NV03_MEMORY_TO_MEMORY_FORMAT */
#define  NV03_MEMORY_TO_MEMORY_FORMAT                              (0x00000039)
/* NvNotification[] elements */
#define NV039_NOTIFIERS_NOTIFY                                     (0)
#define NV039_NOTIFIERS_BUFFER_NOTIFY                              (1)
/* NvNotification[] fields and values */
#define NV039_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV039_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV039_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV039_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV039_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV039_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV039_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaBufferIn;   /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaBufferOut;  /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 Reserved01[0x060];
 NvU32 OffsetIn;                /* src offset in bytes              030c-030f*/
 NvU32 OffsetOut;               /* dst offset in bytes              0310-0313*/
 NvS32 PitchIn;                 /* delta in bytes, vert pixel delta 0314-0317*/
 NvS32 PitchOut;                /* delta in bytes, vert pixel delta 0318-031b*/
 NvU32 LineLengthIn;            /* in bytes                         031c-031f*/
 NvU32 LineCount;               /* in lines                         0320-0323*/
 NvV32 Format;                  /* out_in U24_U8                    0324-0327*/
 NvV32 BufferNotify;            /* NV039_BUFFER_NOTIFY_*            0328-032b*/
 NvV32 Reserved02[0x735];
} Nv039Typedef, Nv03MemoryToMemoryFormat;
#define NV039_TYPEDEF                                  Nv03MemoryToMemoryFormat
/* dma method offsets, fields, and values */
#define NV039_SET_OBJECT                                           (0x00000000)
#define NV039_NO_OPERATION                                         (0x00000100)
#define NV039_NOTIFY                                               (0x00000104)
#define NV039_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV039_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV039_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV039_SET_CONTEXT_DMA_BUFFER_IN                            (0x00000184)
#define NV039_SET_CONTEXT_DMA_BUFFER_OUT                           (0x00000188)
#define NV039_OFFSET_IN                                            (0x0000030C)
#define NV039_OFFSET_OUT                                           (0x00000310)
#define NV039_PITCH_IN                                             (0x00000314)
#define NV039_PITCH_OUT                                            (0x00000318)
#define NV039_LINE_LENGTH_IN                                       (0x0000031C)
#define NV039_LINE_COUNT                                           (0x00000320)
#define NV039_FORMAT                                               (0x00000324)
#define NV039_FORMAT_IN                                            7:0
#define NV039_FORMAT_OUT                                           31:8
#define NV039_BUFFER_NOTIFY                                        (0x00000328)
#define NV039_BUFFER_NOTIFY_WRITE_ONLY                             (0x00000000)
#define NV039_BUFFER_NOTIFY_WRITE_THEN_AWAKEN                      (0x00000001)
/* obsolete stuff */
#define NV3_MEMORY_TO_MEMORY_FORMAT                                (0x00000039)
#define Nv3MemoryToMemoryFormat                        Nv03MemoryToMemoryFormat
#define nv3MemoryToMemoryFormat                        Nv03MemoryToMemoryFormat
#define nv03MemoryToMemoryFormat                       Nv03MemoryToMemoryFormat

typedef NvV32 Nv03aTypedef;

typedef NvV32 Nv03bTypedef;

typedef NvV32 Nv03cTypedef;

/* class NV01_CONTEXT_DMA_IN_MEMORY */
#define  NV01_CONTEXT_DMA_IN_MEMORY                                (0x0000003D)
/* NvNotification[] fields and values */
#define NV03D_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv03dTypedef, Nv01ContextDmaInMemory;
#define  NV03D_TYPEDEF                                   Nv01ContextDmaInMemory
/* obsolete stuff */
#define  NV1_CONTEXT_DMA_IN_MEMORY                                 (0x0000003D)
#define  Nv1ContextDmaInMemory                           Nv01ContextDmaInMemory
#define  nv1ContextDmaInMemory                           Nv01ContextDmaInMemory
#define  nv01ContextDmaInMemory                          Nv01ContextDmaInMemory


#define  NV01_MEMORY_SYSTEM                                        (0x0000003E)
/* obsolete stuff */
/* class NV01_CONTEXT_ERROR_TO_MEMORY */
#define   NV01_CONTEXT_ERROR_TO_MEMORY                             (0x0000003E)
/* NvNotification[] fields and values */
#define NV03E_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv03eTypedef, Nv01ContextErrorToMemory;
#define  NV03E_TYPEDEF                                 Nv01ContextErrorToMemory
#define  NV1_CONTEXT_ERROR_TO_MEMORY                               (0x0000003E)
#define  Nv1ContextErrorToMemory                       Nv01ContextErrorToMemory
#define  nv1ContextErrorToMemory                       Nv01ContextErrorToMemory
#define  nv01ContextErrorToMemory                      Nv01ContextErrorToMemory


/* class NV01_MEMORY_LOCAL_PRIVILEGED */
#define  NV01_MEMORY_LOCAL_PRIVILEGED                              (0x0000003F)
/* NvNotification[] fields and values */
#define NV03F_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv03fTypedef, Nv01MemoryLocalPrivileged;
#define NV03F_TYPEDEF                                 Nv01MemoryLocalPrivileged
/* obsolete stuff */
#define NV01_MEMORY_PRIVILEGED                                     (0x0000003F)
#define NV1_MEMORY_PRIVILEGED                                      (0x0000003F)
#define Nv01MemoryPrivileged                          Nv01MemoryLocalPrivileged
#define nv01MemoryPrivileged                          Nv01MemoryLocalPrivileged
#define Nv1MemoryPrivileged                           Nv01MemoryLocalPrivileged
#define nv1MemoryPrivileged                           Nv01MemoryLocalPrivileged
#define nv01MemoryLocalPrivileged                     Nv01MemoryLocalPrivileged


/* class NV01_MEMORY_LOCAL_USER */

/* Class MEMORY_LOCAL_USER refers to framebuffer heap memory that is local to our device
   and accessable to every client.  This is in contrast to MEMORY_SYSTEM, that is 
   considered local to the system CPU, and MEMORY_LOCAL_PRIVILEGED, that refers to
   local instance memory and the local priveledge register space. - Chuck Moidel*/

/* Please note that RmAllocMemory(NV01_MEMORY_LOCAL_USER) and RmAlloc(NV01_MEMORY_LOCAL USER) 
   do VERY different things.  The older RmAllocMemory(NV01_MEMORY_LOCAL_USER) function does 
   not allocate ANY framebuffer memory.  It only allocates and returns a dumb linear mapping
   to the entire framebuffer. RmAlloc(NV01_MEMORY_LOCAL USER) on the other hand allocates blocks
   from the framebuffer heap.  - Chuck Moidel*/

#define  NV01_MEMORY_LOCAL_USER                                    (0x00000040)
/* NvNotification[] fields and values */
#define NV040_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv040Typedef, Nv01MemoryLocalUser;
#define NV040_TYPEDEF                                       Nv01MemoryLocalUser
/* obsolete stuff */
#define NV01_MEMORY_USER                                           (0x00000040)
#define NV1_MEMORY_USER                                            (0x00000040)
#define Nv01MemoryUser                                      Nv01MemoryLocalUser
#define nv01MemoryUser                                      Nv01MemoryLocalUser
#define Nv1MemoryUser                                       Nv01MemoryLocalUser
#define nv1MemoryUser                                       Nv01MemoryLocalUser
#define nv01MemoryLocalUser                                 Nv01MemoryLocalUser


/* class NV03_VIDEO_LUT_CURSOR_PAL */
#define  NV03_VIDEO_LUT_CURSOR_PAL                                 (0x00000041)
/* NvNotification[] elements */
#define NV041_NOTIFIERS_NOTIFY                                     (0)
#define NV041_NOTIFIERS_SET_IMAGE(b)                               (1+(b))
#define NV041_NOTIFIERS_GET_IMAGE_OFFSET_NOTIFY(b)                 (3+(b))
#define NV041_NOTIFIERS_SET_LUT(b)                                 (5+(b))
#define NV041_NOTIFIERS_SET_CURSOR_IMAGE(b)                        (7+(b))
#define NV041_NOTIFIERS_SET_CURSOR_POINT(b)                        (9+(b))
#define NV041_NOTIFIERS_SET_ENCODER(b)                             (11+(b))
/* NvNotification[] fields and values */
#define NV041_NOTIFICATION_INFO16_OFFSET_VALID                     (0x0001)
#define NV041_NOTIFICATION_INFO16_OFFSET_INVALID                   (0x0002)
#define NV041_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV041_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV041_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV041_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV041_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV041_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NV041_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV041_NOTIFY_*                   0104-0107*/
 NvV32 StopTransfer;            /* NV041_STOP_TRANSFER_VALUE        0108-010b*/
 NvV32 Reserved00[0x01D];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaLut;        /* NV01_CONTEXT_DMA                 018c-018f*/
 NvV32 SetContextDmaCursor;     /* NV01_CONTEXT_DMA                 0190-0193*/
 NvV32 Reserved01[0x05B];
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvU32 size;                   /* height_width U16_U16 in pixels      4-   7*/
  NvV32 format;                 /* pitch_color_field_notify            8-   b*/
 } SetImage[2];                 /* end of methods in array              -0317*/
 NvV32 GetImageOffsetNotify[2]; /* NV041_GET_IMAGE_OFFSET_NOTIFY_*  0318-031f*/
 NvV32 SetLut[2];               /* notify_offset V02_U30            0320-0327*/
 NvV32 SetCursorImage[2];       /* notify_offset V02_U30            0328-032f*/
 NvV32 SetCursorPoint[2];       /* notify_y_x V02_S14_S16           0330-0337*/
 NvV32 SetEncoder[2];           /* see text                         0338-033f*/
 NvV32 Reserved02[0x730];
} Nv041Typedef, Nv03VideoLutCursorPal;
#define NV041_TYPEDEF                                     Nv03VideoLutCursorPal
/* dma method offsets, fields, and values */
#define NV041_SET_OBJECT                                           (0x00000000)
#define NV041_NO_OPERATION                                         (0x00000100)
#define NV041_NOTIFY                                               (0x00000104)
#define NV041_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV041_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV041_STOP_TRANSFER                                        (0x00000108)
#define NV041_STOP_TRANSFER_VALUE                                  (0x00000000)
#define NV041_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV041_SET_CONTEXT_DMA_IMAGE(b)                             (0x00000184\
                                                                   +(b)*0x0004)
#define NV041_SET_CONTEXT_DMA_LUT                                  (0x0000018C)
#define NV041_SET_CONTEXT_DMA_CURSOR                               (0x00000190)
#define NV041_SET_IMAGE(b)                                         (0x00000300\
                                                                   +(b)*0x000C)
#define NV041_SET_IMAGE_OFFSET(b)                                  (0x00000300\
                                                                   +(b)*0x000C)
#define NV041_SET_IMAGE_SIZE(b)                                    (0x00000304\
                                                                   +(b)*0x000C)
#define NV041_SET_IMAGE_SIZE_WIDTH                                 15:0
#define NV041_SET_IMAGE_SIZE_HEIGHT                                31:16
#define NV041_SET_IMAGE_FORMAT(b)                                  (0x00000308\
                                                                   +(b)*0x000C)
#define NV041_SET_IMAGE_FORMAT_PITCH                               15:0
#define NV041_SET_IMAGE_FORMAT_COLOR                               23:16
#define NV041_SET_IMAGE_FORMAT_COLOR_LUT_LE_Y8                     (0x00000000)
#define NV041_SET_IMAGE_FORMAT_COLOR_BYPASS_LE_R5G6B5              (0x00000001)
#define NV041_SET_IMAGE_FORMAT_COLOR_LE_BYPASS1R5G5B5              (0x00000002)
#define NV041_SET_IMAGE_FORMAT_COLOR_LE_BYPASS1X7R8G8B8            (0x00000003)
#define NV041_SET_IMAGE_FORMAT_FIELD                               29:24
#define NV041_SET_IMAGE_FORMAT_FIELD_PROGRESSIVE                   (0x00000000)
#define NV041_SET_IMAGE_FORMAT_FIELD_EVEN_FIELD                    (0x00000001)
#define NV041_SET_IMAGE_FORMAT_FIELD_ODD_FIELD                     (0x00000002)
#define NV041_SET_IMAGE_FORMAT_NOTIFY                              31:30
#define NV041_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV041_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV041_GET_IMAGE_OFFSET_NOTIFY(b)                           (0x00000318\
                                                                   +(b)*0x0004)
#define NV041_GET_IMAGE_OFFSET_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV041_GET_IMAGE_OFFSET_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV041_SET_LUT(b)                                           (0x00000320\
                                                                   +(b)*0x0004)
#define NV041_SET_LUT_OFFSET                                       29:0
#define NV041_SET_LUT_NOTIFY                                       31:30
#define NV041_SET_LUT_NOTIFY_WRITE_ONLY                            (0x00000000)
#define NV041_SET_LUT_NOTIFY_WRITE_THEN_AWAKEN                     (0x00000001)
#define NV041_SET_CURSOR_IMAGE(b)                                  (0x00000328\
                                                                   +(b)*0x0004)
#define NV041_SET_CURSOR_IMAGE_OFFSET                              29:0
#define NV041_SET_CURSOR_IMAGE_NOTIFY                              31:30
#define NV041_SET_CURSOR_IMAGE_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV041_SET_CURSOR_IMAGE_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV041_SET_CURSOR_POINT(b)                                  (0x00000330\
                                                                   +(b)*0x0004)
#define NV041_SET_CURSOR_POINT_X                                   15:0
#define NV041_SET_CURSOR_POINT_Y                                   29:16
#define NV041_SET_CURSOR_POINT_NOTIFY                              31:30
#define NV041_SET_CURSOR_POINT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV041_SET_CURSOR_POINT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV041_SET_ENCODER(b)                                       (0x00000338\
                                                                   +(b)*0x0004)
#define NV041_SET_ENCODER_UNDERSCAN_LEFT                           4:0
#define NV041_SET_ENCODER_UNDERSCAN_RIGHT                          9:5
#define NV041_SET_ENCODER_UNDERSCAN_TOP                            14:10
#define NV041_SET_ENCODER_UNDERSCAN_BOTTOM                         19:15
#define NV041_SET_ENCODER_FILTER_HORIZONTAL                        21:20
#define NV041_SET_ENCODER_FILTER_HORIZONTAL_ZOH                    (0x00000000)
#define NV041_SET_ENCODER_FILTER_HORIZONTAL_FOH                    (0x00000001)
#define NV041_SET_ENCODER_FILTER_HORIZONTAL_SOH                    (0x00000002)
#define NV041_SET_ENCODER_FILTER_VERTICAL                          23:22
#define NV041_SET_ENCODER_FILTER_VERTICAL_ZOH                      (0x00000000)
#define NV041_SET_ENCODER_FILTER_VERTICAL_FOH                      (0x00000001)
#define NV041_SET_ENCODER_FILTER_VERTICAL_SOH                      (0x00000002)
#define NV041_SET_ENCODER_VERTICAL_FRONT_PORCH_ADJUST              29:24
#define NV041_SET_ENCODER_REFRESH                                  30:30
#define NV041_SET_ENCODER_REFRESH_INTERLACED                       (0x00000000)
#define NV041_SET_ENCODER_REFRESH_NONINTERLACED                    (0x00000001)
#define NV041_SET_ENCODER_NOTIFY                                   31:31
#define NV041_SET_ENCODER_NOTIFY_WRITE_ONLY                        (0x00000000)
#define NV041_SET_ENCODER_NOTIFY_WRITE_THEN_AWAKEN                 (0x00000001)


/* class NV04_CONTEXT_SURFACES_2D */
#define  NV04_CONTEXT_SURFACES_2D                                  (0x00000042)
/* NvNotification[] elements */
#define NV042_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV042_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV042_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV042_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV042_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV042_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV042_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV042_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImageSource;/* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaImageDestin;/* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 Reserved01[0x05d];
 NvV32 SetColorFormat;          /* NV042_SET_COLOR_FORMAT_*         0300-0303*/
 NvU32 SetPitch;                /* destin_source U16_U16            0304-0307*/
 NvU32 SetOffsetSource;         /* byte offset of top-left pixel    0308-030b*/
 NvU32 SetOffsetDestin;         /* byte offset of top-left pixel    030c-030f*/
 NvV32 Reserved02[0x73c];
} Nv042Typedef, Nv04ContextSurfaces2d;
#define NV042_TYPEDEF                                     Nv04ContextSurfaces2d
/* dma method offsets, fields, and values */
#define NV042_SET_OBJECT                                           (0x00000000)
#define NV042_NO_OPERATION                                         (0x00000100)
#define NV042_NOTIFY                                               (0x00000104)
#define NV042_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV042_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV042_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV042_SET_CONTEXT_DMA_IMAGE_SOURCE                         (0x00000184)
#define NV042_SET_CONTEXT_DMA_IMAGE_DESTIN                         (0x00000188)
#define NV042_SET_COLOR_FORMAT                                     (0x00000300)
#define NV042_SET_COLOR_FORMAT_LE_Y8                               (0x00000001)
#define NV042_SET_COLOR_FORMAT_LE_X1R5G5B5_Z1R5G5B5                (0x00000002)
#define NV042_SET_COLOR_FORMAT_LE_X1R5G5B5_O1R5G5B5                (0x00000003)
#define NV042_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000004)
#define NV042_SET_COLOR_FORMAT_LE_Y16                              (0x00000005)
#define NV042_SET_COLOR_FORMAT_LE_X8R8G8B8_Z8R8G8B8                (0x00000006)
#define NV042_SET_COLOR_FORMAT_LE_X8R8G8B8_O8R8G8B8                (0x00000007)
#define NV042_SET_COLOR_FORMAT_LE_X1A7R8G8B8_Z1A7R8G8B8            (0x00000008)
#define NV042_SET_COLOR_FORMAT_LE_X1A7R8G8B8_O1A7R8G8B8            (0x00000009)
#define NV042_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x0000000A)
#define NV042_SET_COLOR_FORMAT_LE_Y32                              (0x0000000B)
#define NV042_SET_PITCH                                            (0x00000304)
#define NV042_SET_PITCH_SOURCE                                     15:0
#define NV042_SET_PITCH_DESTIN                                     31:16
#define NV042_SET_OFFSET_SOURCE                                    (0x00000308)
#define NV042_SET_OFFSET_DESTIN                                    (0x0000030C)
/* obsolete stuff */
#define NV4_CONTEXT_SURFACES_2D                                    (0x00000042)
#define Nv4ContextSurfaces2d                              Nv04ContextSurfaces2d
#define nv4ContextSurfaces2d                              Nv04ContextSurfaces2d
#define nv4ContextSurfaces2D                              Nv04ContextSurfaces2d
#define nv04ContextSurfaces2d                             Nv04ContextSurfaces2d


/* class NV03_CONTEXT_ROP */
#define  NV03_CONTEXT_ROP                                          (0x00000043)
/* NvNotification[] elements */
#define NV043_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV043_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV043_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV043_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV043_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV043_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV043_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV043_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetRop5;                 /* 32-bit ROP5                      0300-0303*/
 NvV32 Reserved02[0x73f];
} Nv043Typedef, Nv03ContextRop;
#define NV043_TYPEDEF                                            Nv03ContextRop
/* dma method offsets, fields, and values */
#define NV043_SET_OBJECT                                           (0x00000000)
#define NV043_NO_OPERATION                                         (0x00000100)
#define NV043_NOTIFY                                               (0x00000104)
#define NV043_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV043_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV043_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV043_SET_ROP5                                             (0x00000300)
/* obsolete stuff */
#define NV3_CONTEXT_ROP                                            (0x00000043)
#define Nv3ContextRop                                            Nv03ContextRop
#define nv3ContextRop                                            Nv03ContextRop
#define nv03ContextRop                                           Nv03ContextRop


/* class NV04_CONTEXT_PATTERN */
#define  NV04_CONTEXT_PATTERN                                      (0x00000044)
/* NvNotification[] elements */
#define NV044_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV044_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV044_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV044_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV044_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV044_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV044_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV044_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetColorFormat;          /* NV044_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetMonochromeFormat;     /* NV044_SET_MONOCHROME_FORMAT_*    0304-0307*/
 NvV32 SetMonochromeShape;      /* NV044_SET_MONOCHROME_SHAPE_*     0308-030b*/
 NvV32 SetPatternSelect;        /* NV044_SET_PATTERN_SELECT_*       030c-030f*/
 NvV32 SetMonochromeColor0;     /* color of 0 pixels                0310-0313*/
 NvV32 SetMonochromeColor1;     /* color of 1 pixels                0314-0317*/
 NvV32 SetMonochromePattern0;   /* first  32 bits of pattern data   0318-031b*/
 NvV32 SetMonochromePattern1;   /* second 32 bits of pattern data   031c-031f*/
 NvV32 Reserved02[0x038];
 NvV32 SetPatternY8[16];        /* y3_y2_y1_y0 U8_U8_U8_U8          0400-043f*/
 NvV32 Reserved03[0x030];
 NvV32 SetPatternR5G6B5[32];    /* see text                         0500-057f*/
 NvV32 Reserved04[0x020];
 NvV32 SetPatternX1R5G5B5[32];  /* see text                         0600-067f*/
 NvV32 Reserved05[0x020];
 NvV32 SetPatternX8R8G8B8[64];  /* ignore_red_green_blu U8_U8_U8_U8 0700-07ff*/
 NvV32 Reserved06[0x600];
} Nv044Typedef, Nv04ContextPattern;
#define NV044_TYPEDEF                                          Nv04ContextPattern
/* dma method offsets, fields, and values */
#define NV044_SET_OBJECT                                           (0x00000000)
#define NV044_NO_OPERATION                                         (0x00000100)
#define NV044_NOTIFY                                               (0x00000104)
#define NV044_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV044_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV044_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV044_SET_COLOR_FORMAT                                     (0x00000300)
#define NV044_SET_COLOR_FORMAT_LE_A16R5G6B5                        (0x00000001)
#define NV044_SET_COLOR_FORMAT_LE_X16A1R5G5B5                      (0x00000002)
#define NV044_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV044_SET_MONOCHROME_FORMAT                                (0x00000304)
#define NV044_SET_MONOCHROME_FORMAT_CGA6_M1                        (0x00000001)
#define NV044_SET_MONOCHROME_FORMAT_LE_M1                          (0x00000002)
#define NV044_SET_MONOCHROME_SHAPE                                 (0x00000308)
#define NV044_SET_MONOCHROME_SHAPE_8X_8Y                           (0x00000000)
#define NV044_SET_MONOCHROME_SHAPE_64X_1Y                          (0x00000001)
#define NV044_SET_MONOCHROME_SHAPE_1X_64Y                          (0x00000002)
#define NV044_SET_PATTERN_SELECT                                   (0x0000030C)
#define NV044_SET_PATTERN_SELECT_MONOCHROME                        (0x00000001)
#define NV044_SET_PATTERN_SELECT_COLOR                             (0x00000002)
#define NV044_SET_MONOCHORME_COLOR0                                (0x00000310)
#define NV044_SET_MONOCHORME_COLOR1                                (0x00000314)
#define NV044_SET_MONOCHORME_PATTERN0                              (0x00000318)
#define NV044_SET_MONOCHORME_PATTERN1                              (0x0000031C)

#define NV044_SET_MONOCHROME_COLOR0                                (0x00000310)
#define NV044_SET_MONOCHROME_COLOR1                                (0x00000314)
#define NV044_SET_MONOCHROME_PATTERN0                              (0x00000318)
#define NV044_SET_MONOCHROME_PATTERN1                              (0x0000031C)

#define NV044_SET_PATTERN_Y8(i)                                    (0x00000400\
                                                                   +(i)*0x0004)
#define NV044_SET_PATTERN_Y8_Y0                                    7:0
#define NV044_SET_PATTERN_Y8_Y1                                    15:8
#define NV044_SET_PATTERN_Y8_Y2                                    23:16
#define NV044_SET_PATTERN_Y8_Y3                                    31:24
#define NV044_SET_PATTERN_R5G6B5(i)                                (0x00000500\
                                                                   +(i)*0x0004)
#define NV044_SET_PATTERN_R5G6B5_BLUE0                             4:0
#define NV044_SET_PATTERN_R5G6B5_GREEN0                            10:5
#define NV044_SET_PATTERN_R5G6B5_RED0                              15:11
#define NV044_SET_PATTERN_R5G6B5_BLUE1                             20:16
#define NV044_SET_PATTERN_R5G6B5_GREEN1                            26:21
#define NV044_SET_PATTERN_R5G6B5_RED1                              31:27
#define NV044_SET_PATTERN_X1R5G5B5(i)                              (0x00000600\
                                                                   +(i)*0x0004)
#define NV044_SET_PATTERN_X1R5G5B5_BLUE0                           4:0
#define NV044_SET_PATTERN_X1R5G5B5_GREEN0                          9:5
#define NV044_SET_PATTERN_X1R5G5B5_RED0                            14:10
#define NV044_SET_PATTERN_X1R5G5B5_IGNORE0                         15:15
#define NV044_SET_PATTERN_X1R5G5B5_BLUE1                           20:16
#define NV044_SET_PATTERN_X1R5G5B5_GREEN1                          25:21
#define NV044_SET_PATTERN_X1R5G5B5_RED1                            30:26
#define NV044_SET_PATTERN_X1R5G5B5_IGNORE1                         31:31
#define NV044_SET_PATTERN_X8R8G8B8(i)                              (0x00000700\
                                                                   +(i)*0x0004)
#define NV044_SET_PATTERN_X8R8G8B8_BLUE                            7:0
#define NV044_SET_PATTERN_X8R8G8B8_GREEN                           15:8
#define NV044_SET_PATTERN_X8R8G8B8_RED                             23:16
#define NV044_SET_PATTERN_X8R8G8B8_IGNORE                          31:24
/* obsolete stuff */
#define NV4_CONTEXT_PATTERN                                        (0x00000044)
#define Nv04ImagePattern                                     Nv04ContextPattern
#define Nv4ImagePattern                                      Nv04ContextPattern
#define nv4ImagePattern                                      Nv04ContextPattern
#define Nv4ContextPattern                                    Nv04ContextPattern
#define nv4ContextPattern                                    Nv04ContextPattern
#define nv04ContextPattern                                   Nv04ContextPattern


/* class NV03_VIDEO_LUT_CURSOR_NTSC */
#define  NV03_VIDEO_LUT_CURSOR_NTSC                                (0x00000045)
/* NvNotification[] elements */
#define NV045_NOTIFIERS_NOTIFY                                     (0)
#define NV045_NOTIFIERS_SET_IMAGE(b)                               (1+(b))
#define NV045_NOTIFIERS_GET_IMAGE_OFFSET_NOTIFY(b)                 (3+(b))
#define NV045_NOTIFIERS_SET_LUT(b)                                 (5+(b))
#define NV045_NOTIFIERS_SET_CURSOR_IMAGE(b)                        (7+(b))
#define NV045_NOTIFIERS_SET_CURSOR_POINT(b)                        (9+(b))
#define NV045_NOTIFIERS_SET_ENCODER(b)                             (11+(b))
/* NvNotification[] fields and values */
#define NV045_NOTIFICATION_INFO16_OFFSET_VALID                     (0x0001)
#define NV045_NOTIFICATION_INFO16_OFFSET_INVALID                   (0x0002)
#define NV045_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV045_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV045_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV045_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV045_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV045_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NV045_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV045_NOTIFY_*                   0104-0107*/
 NvV32 StopTransfer;            /* NV045_STOP_TRANSFER_VALUE        0108-010b*/
 NvV32 Reserved00[0x01D];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaLut;        /* NV01_CONTEXT_DMA                 018c-018f*/
 NvV32 SetContextDmaCursor;     /* NV01_CONTEXT_DMA                 0190-0193*/
 NvV32 Reserved01[0x05B];
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvU32 size;                   /* height_width U16_U16 in pixels      4-   7*/
  NvV32 format;                 /* pitch_color_field_notify            8-   b*/
 } SetImage[2];                 /* end of methods in array              -0317*/
 NvV32 GetImageOffsetNotify[2]; /* NV045_GET_IMAGE_OFFSET_NOTIFY_*  0318-031f*/
 NvV32 SetLut[2];               /* notify_offset V02_U30            0320-0327*/
 NvV32 SetCursorImage[2];       /* notify_offset V02_U30            0328-032f*/
 NvV32 SetCursorPoint[2];       /* notify_y_x V02_S14_S16           0330-0337*/
 NvV32 SetEncoder[2];           /* see text                         0338-033f*/
 NvV32 Reserved02[0x730];
} Nv045Typedef, Nv03VideoLutCursorNtsc;
#define NV045_TYPEDEF                                    Nv03VideoLutCursorNtsc
/* dma method offsets, fields, and values */
#define NV045_SET_OBJECT                                           (0x00000000)
#define NV045_NO_OPERATION                                         (0x00000100)
#define NV045_NOTIFY                                               (0x00000104)
#define NV045_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV045_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV045_STOP_TRANSFER                                        (0x00000108)
#define NV045_STOP_TRANSFER_VALUE                                  (0x00000000)
#define NV045_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV045_SET_CONTEXT_DMA_IMAGE(b)                             (0x00000184\
                                                                   +(b)*0x0004)
#define NV045_SET_CONTEXT_DMA_LUT                                  (0x0000018C)
#define NV045_SET_CONTEXT_DMA_CURSOR                               (0x00000190)
#define NV045_SET_IMAGE(b)                                         (0x00000300\
                                                                   +(b)*0x000C)
#define NV045_SET_IMAGE_OFFSET(b)                                  (0x00000300\
                                                                   +(b)*0x000C)
#define NV045_SET_IMAGE_SIZE(b)                                    (0x00000304\
                                                                   +(b)*0x000C)
#define NV045_SET_IMAGE_SIZE_WIDTH                                 15:0
#define NV045_SET_IMAGE_SIZE_HEIGHT                                31:16
#define NV045_SET_IMAGE_FORMAT(b)                                  (0x00000308\
                                                                   +(b)*0x000C)
#define NV045_SET_IMAGE_FORMAT_PITCH                               15:0
#define NV045_SET_IMAGE_FORMAT_COLOR                               23:16
#define NV045_SET_IMAGE_FORMAT_COLOR_LUT_LE_Y8                     (0x00000000)
#define NV045_SET_IMAGE_FORMAT_COLOR_BYPASS_LE_R5G6B5              (0x00000001)
#define NV045_SET_IMAGE_FORMAT_COLOR_LE_BYPASS1R5G5B5              (0x00000002)
#define NV045_SET_IMAGE_FORMAT_COLOR_LE_BYPASS1X7R8G8B8            (0x00000003)
#define NV045_SET_IMAGE_FORMAT_FIELD                               29:24
#define NV045_SET_IMAGE_FORMAT_FIELD_PROGRESSIVE                   (0x00000000)
#define NV045_SET_IMAGE_FORMAT_FIELD_EVEN_FIELD                    (0x00000001)
#define NV045_SET_IMAGE_FORMAT_FIELD_ODD_FIELD                     (0x00000002)
#define NV045_SET_IMAGE_FORMAT_NOTIFY                              31:30
#define NV045_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV045_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV045_GET_IMAGE_OFFSET_NOTIFY(b)                           (0x00000318\
                                                                   +(b)*0x0004)
#define NV045_GET_IMAGE_OFFSET_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV045_GET_IMAGE_OFFSET_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV045_SET_LUT(b)                                           (0x00000320\
                                                                   +(b)*0x0004)
#define NV045_SET_LUT_OFFSET                                       29:0
#define NV045_SET_LUT_NOTIFY                                       31:30
#define NV045_SET_LUT_NOTIFY_WRITE_ONLY                            (0x00000000)
#define NV045_SET_LUT_NOTIFY_WRITE_THEN_AWAKEN                     (0x00000001)
#define NV045_SET_CURSOR_IMAGE(b)                                  (0x00000328\
                                                                   +(b)*0x0004)
#define NV045_SET_CURSOR_IMAGE_OFFSET                              29:0
#define NV045_SET_CURSOR_IMAGE_NOTIFY                              31:30
#define NV045_SET_CURSOR_IMAGE_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV045_SET_CURSOR_IMAGE_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV045_SET_CURSOR_POINT(b)                                  (0x00000330\
                                                                   +(b)*0x0004)
#define NV045_SET_CURSOR_POINT_X                                   15:0
#define NV045_SET_CURSOR_POINT_Y                                   29:16
#define NV045_SET_CURSOR_POINT_NOTIFY                              31:30
#define NV045_SET_CURSOR_POINT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV045_SET_CURSOR_POINT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV045_SET_ENCODER(b)                                       (0x00000338\
                                                                   +(b)*0x0004)
#define NV045_SET_ENCODER_UNDERSCAN_LEFT                           4:0
#define NV045_SET_ENCODER_UNDERSCAN_RIGHT                          9:5
#define NV045_SET_ENCODER_UNDERSCAN_TOP                            14:10
#define NV045_SET_ENCODER_UNDERSCAN_BOTTOM                         19:15
#define NV045_SET_ENCODER_FILTER_HORIZONTAL                        21:20
#define NV045_SET_ENCODER_FILTER_HORIZONTAL_ZOH                    (0x00000000)
#define NV045_SET_ENCODER_FILTER_HORIZONTAL_FOH                    (0x00000001)
#define NV045_SET_ENCODER_FILTER_HORIZONTAL_SOH                    (0x00000002)
#define NV045_SET_ENCODER_FILTER_VERTICAL                          23:22
#define NV045_SET_ENCODER_VERTICAL_FRONT_PORCH_ADJUST              29:24
#define NV045_SET_ENCODER_FILTER_VERTICAL_ZOH                      (0x00000000)
#define NV045_SET_ENCODER_FILTER_VERTICAL_FOH                      (0x00000001)
#define NV045_SET_ENCODER_FILTER_VERTICAL_SOH                      (0x00000002)
#define NV045_SET_ENCODER_REFRESH                                  30:30
#define NV045_SET_ENCODER_REFRESH_INTERLACED                       (0x00000000)
#define NV045_SET_ENCODER_REFRESH_NONINTERLACED                    (0x00000001)
#define NV045_SET_ENCODER_NOTIFY                                   31:31
#define NV045_SET_ENCODER_NOTIFY_WRITE_ONLY                        (0x00000000)
#define NV045_SET_ENCODER_NOTIFY_WRITE_THEN_AWAKEN                 (0x00000001)


/* class NV04_VIDEO_LUT_CURSOR_DAC */
#define  NV04_VIDEO_LUT_CURSOR_DAC                                 (0x00000046)
/* NvNotification[] elements */
#define NV046_NOTIFIERS_NOTIFY                                     (0)
#define NV046_NOTIFIERS_SET_IMAGE(b)                               (1+(b))
#define NV046_NOTIFIERS_SET_LUT(b)                                 (3+(b))
#define NV046_NOTIFIERS_SET_CURSOR_IMAGE(b)                        (5+(b))
#define NV046_NOTIFIERS_SET_DAC(b)                                 (7+(b))
/* NvNotification[] fields and values */
#define NV046_NOTIFICATION_INFO16_NOT_STARTED                      (0x0000)
#define NV046_NOTIFICATION_INFO16_VALID_OFFSET                     (0x0001)
#define NV046_NOTIFICATION_INFO16_DONE                             (0x0002)
#define NV046_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV046_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV046_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV046_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV046_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV046_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV046_NOTIFY_*                   0104-0107*/
 NvV32 StopImage[2];            /* NV046_STOP_IMAGE_*               0108-010f*/
 NvV32 StopLut[2];              /* NV046_STOP_LUT_*                 0110-0117*/
 NvV32 StopCursorImage[2];      /* NV046_STOP_CURSOR_IMAGE_*        0118-011f*/
 NvV32 StopDac[2];              /* NV046_STOP_DAC_*                 0120-0127*/
 NvV32 Reserved00[0x016];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaLut[2];     /* NV01_CONTEXT_DMA                 018c-0193*/
 NvV32 SetContextDmaCursor[2];  /* NV01_CONTEXT_DMA                 0194-019b*/
 NvV32 Reserved01[0x057];
 NvV32 SetPanOffset;            /* byte offset for panning          0220-0223*/
 NvV32 GetOffset;               /* NV046_GET_OFFSET_*               02fc-02ff*/
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* notify_pitch V1_U16_U16             4-   7*/
 } SetImage[2];                 /* end of methods in array              -030f*/
 struct {                       /* start of methods in array        0310-    */
  NvU32 offset;                 /* byte offset of first byte           0-   3*/
  NvV32 format;                 /* notify                              4-   7*/
 } SetLut[2];                   /* end of methods in array              -031f*/
 struct {                       /* start of methods in array        0320-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* notify                              4-   7*/
 } SetCursorImage[2];           /* end of methods in array              -032f*/
 NvV32 SetCursorPoint;          /* y_x S16_S16                      0330-0333*/
 NvV32 Reserved03[0x003];
 struct {                       /* start of methods in array        0340-    */
  NvV32 imageSize;              /* height_width U16_U16 in pixels      0-   3*/
  NvV32 horizontalBlank;        /* width_start U16_U16 in pixels       4-   7*/
  NvV32 horizontalSync;         /* width_start U16_U16 in pixels       8-   b*/
  NvV32 verticalBlank;          /* width_start U16_U16 in pixels       c-   f*/
  NvV32 verticalSync;           /* width_start U16_U16 in pixels      10-  13*/
  NvV32 totalSize;              /* height_width U16_U16               14-  17*/
  NvV32 pixelClock;             /* in Hertz                           18-  1b*/
  NvV32 format;                 /* see text                           1c-  1f*/
 } SetDac[2];                   /* end of methods in array              -037f*/
 NvV32 Reserved04[0x720];
} Nv046Typedef, Nv04VideoLutCursorDac;
#define NV046_TYPEDEF                                     Nv04VideoLutCursorDac
/* dma method offsets, fields, and values */
#define NV046_SET_OBJECT                                           (0x00000000)
#define NV046_NO_OPERATION                                         (0x00000100)
#define NV046_NOTIFY                                               (0x00000104)
#define NV046_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV046_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV046_STOP_IMAGE(b)                                        (0x00000108\
                                                                   +(b)*0x0004)
#define NV046_STOP_IMAGE_AS_SOON_AS_POSSIBLE                       (0x00000000)
#define NV046_STOP_IMAGE_BETWEEN_BUFFERS                           (0x00000001)
#define NV046_STOP_LUT(b)                                          (0x00000110\
                                                                   +(b)*0x0004)
#define NV046_STOP_LUT_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV046_STOP_LUT_BETWEEN_BUFFERS                             (0x00000001)
#define NV046_STOP_CURSOR_IMAGE(b)                                 (0x00000118\
                                                                   +(b)*0x0004)
#define NV046_STOP_CURSOR_IMAGE_AS_SOON_AS_POSSIBLE                (0x00000000)
#define NV046_STOP_CURSOR_IMAGE_BETWEEN_BUFFERS                    (0x00000001)
#define NV046_STOP_DAC(b)                                          (0x00000120\
                                                                   +(b)*0x0004)
#define NV046_STOP_DAC_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV046_STOP_DAC_BETWEEN_BUFFERS                             (0x00000001)
#define NV046_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV046_SET_CONTEXT_DMA_IMAGE(b)                             (0x00000184\
                                                                   +(b)*0x0004)
#define NV046_SET_CONTEXT_DMA_LUT(b)                               (0x0000018C\
                                                                   +(b)*0x0004)
#define NV046_SET_CONTEXT_DMA_CURSOR(b)                            (0x00000194\
                                                                   +(b)*0x0004)
#define NV046_SET_PAN_OFFSET                                       (0x00000220)
#define NV046_GET_OFFSET                                           (0x000002FC)
#define NV046_GET_OFFSET_IMAGE_0                                   (0x00000000)
#define NV046_GET_OFFSET_IMAGE_1                                   (0x00000001)
#define NV046_SET_IMAGE(b)                                         (0x00000300\
                                                                   +(b)*0x0008)
#define NV046_SET_IMAGE_OFFSET(b)                                  (0x00000300\
                                                                   +(b)*0x0008)
#define NV046_SET_IMAGE_FORMAT(b)                                  (0x00000304\
                                                                   +(b)*0x0008)
#define NV046_SET_IMAGE_FORMAT_PITCH                               15:0
#define NV046_SET_IMAGE_FORMAT_FLAGS                               27:25
#define NV046_SET_IMAGE_FORMAT_FLAGS_COMPLETE_ON_OBJECT_CLEANUP    (0x00000001)
#define NV046_SET_IMAGE_FORMAT_NOTIFY                              31:31
#define NV046_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV046_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV046_SET_LUT(b)                                           (0x00000310\
                                                                   +(b)*0x0008)
#define NV046_SET_LUT_OFFSET(b)                                    (0x00000310\
                                                                   +(b)*0x0008)
#define NV046_SET_LUT_FORMAT(b)                                    (0x00000314\
                                                                   +(b)*0x0008)
#define NV046_SET_LUT_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV046_SET_LUT_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)
#define NV046_SET_CURSOR_IMAGE(b)                                  (0x00000320\
                                                                   +(b)*0x0008)
#define NV046_SET_CURSOR_IMAGE_OFFSET(b)                           (0x00000320\
                                                                   +(b)*0x0008)
#define NV046_SET_CURSOR_IMAGE_FORMAT(b)                           (0x00000324\
                                                                   +(b)*0x0008)
#define NV046_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_ONLY            (0x00000000)
#define NV046_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN     (0x00000001)
#define NV046_SET_CURSOR_POINT                                     (0x00000330)
#define NV046_SET_CURSOR_POINT_X                                   15:0
#define NV046_SET_CURSOR_POINT_Y                                   31:16
#define NV046_SET_DAC(b)                                           (0x00000340\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_IMAGE_SIZE(b)                                (0x00000340\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_IMAGE_SIZE_WIDTH                             15:0
#define NV046_SET_DAC_IMAGE_SIZE_HEIGHT                            31:16
#define NV046_SET_DAC_HORIZONTAL_BLANK(b)                          (0x00000344\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_HORIZONTAL_BLANK_START                       15:0
#define NV046_SET_DAC_HORIZONTAL_BLANK_WIDTH                       31:16
#define NV046_SET_DAC_HORIZONTAL_SYNC(b)                           (0x00000348\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_HORIZONTAL_SYNC_START                        15:0
#define NV046_SET_DAC_HORIZONTAL_SYNC_WIDTH                        31:16
#define NV046_SET_DAC_VERTICAL_BLANK(b)                            (0x0000034c\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_VERTICAL_BLANK_START                         15:0
#define NV046_SET_DAC_VERTICAL_BLANK_WIDTH                         31:16
#define NV046_SET_DAC_VERTICAL_SYNC(b)                             (0x00000350\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_VERTICAL_SYNC_START                          15:0
#define NV046_SET_DAC_VERTICAL_SYNC_WIDTH                          31:16
#define NV046_SET_DAC_TOTAL_SIZE(b)                                (0x00000354\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_TOTAL_SIZE_WIDTH                             15:0
#define NV046_SET_DAC_TOTAL_SIZE_HEIGHT                            31:16
#define NV046_SET_DAC_PIXEL_CLOCK(b)                               (0x00000358\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_FORMAT(b)                                    (0x0000035c\
                                                                   +(b)*0x0020)
#define NV046_SET_DAC_FORMAT_DOUBLE_SCAN                           0:0
#define NV046_SET_DAC_FORMAT_DOUBLE_SCAN_DISABLED                  (0x00000000)
#define NV046_SET_DAC_FORMAT_DOUBLE_SCAN_ENABLED                   (0x00000001)
#define NV046_SET_DAC_FORMAT_INTERLACE                             1:1
#define NV046_SET_DAC_FORMAT_INTERLACE_DISABLED                    (0x00000000)
#define NV046_SET_DAC_FORMAT_INTERLACE_ENABLED                     (0x00000001)
#define NV046_SET_DAC_FORMAT_HORIZONTAL_SYNC                       2:2
#define NV046_SET_DAC_FORMAT_HORIZONTAL_SYNC_POSITIVE              (0x00000000)
#define NV046_SET_DAC_FORMAT_HORIZONTAL_SYNC_NEGATIVE              (0x00000001)
#define NV046_SET_DAC_FORMAT_VERTICAL_SYNC                         3:3
#define NV046_SET_DAC_FORMAT_VERTICAL_SYNC_POSITIVE                (0x00000000)
#define NV046_SET_DAC_FORMAT_VERTICAL_SYNC_NEGATIVE                (0x00000001)
#define NV046_SET_DAC_FORMAT_COLOR                                 19:16
#define NV046_SET_DAC_FORMAT_COLOR_LUT_LE_Y8                       (0x00000000)
#define NV046_SET_DAC_FORMAT_COLOR_BYPASS_LE_R5G6B5                (0x00000001)
#define NV046_SET_DAC_FORMAT_COLOR_LE_BYPASS1R5G5B5                (0x00000002)
#define NV046_SET_DAC_FORMAT_COLOR_LE_BYPASS1X7R8G8B8              (0x00000003)
#define NV046_SET_DAC_FORMAT_DISPLAY_TYPE                          21:20
#define NV046_SET_DAC_FORMAT_DISPLAY_TYPE_CRT                      (0x00000000)
#define NV046_SET_DAC_FORMAT_DISPLAY_TYPE_TV                       (0x00000001)
#define NV046_SET_DAC_FORMAT_DISPLAY_TYPE_DFP                      (0x00000003)
#define NV046_SET_DAC_FORMAT_TV_STANDARD                           25:22
#define NV046_SET_DAC_FORMAT_TV_STANDARD_NTSC_M                    (0x00000000)
#define NV046_SET_DAC_FORMAT_TV_STANDARD_NTSC_J                    (0x00000001)
#define NV046_SET_DAC_FORMAT_TV_STANDARD_PAL_M                     (0x00000002)
#define NV046_SET_DAC_FORMAT_TV_STANDARD_PAL_A                     (0x00000003)
#define NV046_SET_DAC_FORMAT_TV_STANDARD_PAL_N                     (0x00000004)
#define NV046_SET_DAC_FORMAT_TV_STANDARD_PAL_NC                    (0x00000005)
#define NV046_SET_DAC_FORMAT_PRIMARY_DEVICE                        28:28
#define NV046_SET_DAC_FORMAT_PRIMARY_DEVICE_FALSE                  (0x00000000)
#define NV046_SET_DAC_FORMAT_PRIMARY_DEVICE_TRUE                   (0x00000001)
#define NV046_SET_DAC_FORMAT_NOTIFY                                31:31
#define NV046_SET_DAC_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV046_SET_DAC_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)


/* class NV04_VIDEO_OVERLAY */
#define  NV04_VIDEO_OVERLAY                                        (0x00000047)
/* NvNotification[] elements */
#define NV047_NOTIFIERS_NOTIFY                                     (0)
#define NV047_NOTIFIERS_SET_OVERLAY(b)                             (1+(b))
/* NvNotification[] fields and values */
#define NV047_NOTIFICATION_INFO16_NOT_STARTED                      (0x0000)
#define NV047_NOTIFICATION_INFO16_VALID_OFFSET                     (0x0001)
#define NV047_NOTIFICATION_INFO16_DONE                             (0x0002)
#define NV047_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV047_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV047_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV047_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV047_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV047_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV047_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x006];
 NvV32 StopOverlay[2];          /* NV047_STOP_OVERLAY_*             0120-0127*/
 NvV32 Reserved01[0x016];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved02[0x006];
 NvV32 SetContextDmaOverlay[2]; /* NV01_CONTEXT_DMA                 019c-01a3*/
 NvV32 Reserved03[0x056];
 NvV32 GetOffset;               /* NV047_GET_OFFSET_*               02FC-02FF*/
 NvV32 Reserved04[0x040];
 struct {                       /* start of methods in array        0400-    */
  NvV32 reserved05[0x017];      /* see text                           00-  5b*/
  NvV32 colorKey;               /* see text                           5c-  5f*/
  NvU32 offset;                 /* byte offset of top-left texel      60-  63*/
  NvV32 sizeIn;                 /* height_width U16_U16               64-  67*/
  NvV32 pointIn;                /* t_s U12d4_U12d4                    68-  6b*/
  NvV32 dsDx;                   /* U12d20 ds/dx                       6c-  6f*/
  NvV32 dtDy;                   /* U12d20 dt/dy                       70-  73*/
  NvV32 pointOut;               /* y_x U16_U16                        74-  77*/
  NvV32 sizeOut;                /* height_width U16_U16               78-  7b*/
  NvV32 format;                 /* format_display_color_pitch         7c-  7f*/
 } SetOverlay[2];               /* end of methods in array              -04ff*/
 NvV32 SetOverlayPointOutA;     /* y_x U16_U16                      0500-0503*/
 NvV32 Reserved06[0x6bf];
} Nv047Typedef, Nv04VideoOverlay;
#define NV047_TYPEDEF                                          Nv04VideoOverlay
/* dma method offsets, fields, and values */
#define NV047_SET_OBJECT                                           (0x00000000)
#define NV047_NO_OPERATION                                         (0x00000100)
#define NV047_NOTIFY                                               (0x00000104)
#define NV047_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV047_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV047_STOP_OVERLAY(b)                                      (0x00000120\
                                                                   +(b)*0x0004)
#define NV047_STOP_OVERLAY_AS_SOON_AS_POSSIBLE                     (0x00000000)
#define NV047_STOP_OVERLAY_BETWEEN_BUFFERS                         (0x00000001)
#define NV047_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV047_SET_CONTEXT_DMA_OVERLAY(b)                           (0x0000019C\
                                                                   +(b)*0x0004)
#define NV047_SET_OVERLAY(b)                                       (0x00000400\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_COLORKEY(b)                              (0x0000045C\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_OFFSET(b)                                (0x00000460\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_SIZE_IN(b)                               (0x00000464\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_SIZE_IN_WIDTH                            15:0
#define NV047_SET_OVERLAY_SIZE_IN_HEIGHT                           31:16
#define NV047_SET_OVERLAY_POINT_IN(b)                              (0x00000468\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_POINT_IN_S                               15:0
#define NV047_SET_OVERLAY_POINT_IN_T                               31:16
#define NV047_SET_OVERLAY_DS_DX(b)                                 (0x0000046C\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_DT_DY(b)                                 (0x00000470\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_POINT_OUT(b)                             (0x00000474\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_POINT_OUT_X                              15:0
#define NV047_SET_OVERLAY_POINT_OUT_Y                              31:16
#define NV047_SET_OVERLAY_SIZE_OUT(b)                              (0x00000478\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_SIZE_OUT_WIDTH                           15:0
#define NV047_SET_OVERLAY_SIZE_OUT_HEIGHT                          31:16
#define NV047_SET_OVERLAY_FORMAT(b)                                (0x0000047C\
                                                                   +(b)*0x0080)
#define NV047_SET_OVERLAY_FORMAT_PITCH                             15:0
#define NV047_SET_OVERLAY_FORMAT_COLOR                             19:16
#define NV047_SET_OVERLAY_FORMAT_COLOR_LE_YB8CR8YA8CB8             (0x00000000)
#define NV047_SET_OVERLAY_FORMAT_COLOR_LE_CR8YB8CB8YA8             (0x00000001)
#define NV047_SET_OVERLAY_FORMAT_DISPLAY                           30:20
#define NV047_SET_OVERLAY_FORMAT_DISPLAY_ALWAYS                    (0x00000000)
#define NV047_SET_OVERLAY_FORMAT_DISPLAY_COLOR_KEY_EQUAL           (0x00000001)
#define NV047_SET_OVERLAY_FORMAT_NOTIFY                            31:31
#define NV047_SET_OVERLAY_FORMAT_NOTIFY_WRITE_ONLY                 (0x00000000)
#define NV047_SET_OVERLAY_FORMAT_NOTIFY_WRITE_THEN_AWAKEN          (0x00000001)
#define NV047_SET_OVERLAY_POINT_OUT_A                              (0x00000500)
#define NV047_SET_OVERLAY_POINT_OUT_A_X                            15:0
#define NV047_SET_OVERLAY_POINT_OUT_A_Y                            31:16

/* class NV03_DX3_TEXTURED_TRIANGLE */
#define  NV03_DX3_TEXTURED_TRIANGLE                                (0x00000048)
/* NvNotification[] elements */
#define NV048_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV048_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV048_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV048_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV048_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV048_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV048_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV048_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaTexture;    /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextSurfaceColor;  /* NV03_CONTEXT_SURFACE_3D_COLOR    018c-018f*/
 NvV32 SetContextSurfaceZeta;   /* NV03_CONTEXT_SURFACE_3D_DEPTH    0190-0193*/
 NvV32 Reserved01[0x05c];
 NvU32 TextureOffset;           /* offset in bytes                  0304-0307*/
 NvV32 TextureFormat;           /* see text                         0308-030b*/
 NvV32 TextureFilter;           /* ignre_sizeAdjust_spreadY_spreadX 030c-030f*/
 NvV32 FogColor;                /* X8R8G8B8 fog color               0310-0313*/
 NvV32 Control0;                /* see text                         0314-0317*/
 NvV32 Control1;                /* alphafunc_alpharef V24_U8        0318-031b*/
 NvV32 Reserved02[0x339];
 struct {                       /* start of method in array         1000-    */
  NvV32 specular;               /* fog_i5-i0 U0d8_U4_U4_U4_U4_U4_U4   00-  03*/
  NvV32 color;                  /* X8R8G8B8 or A8R8G8B8               04-  07*/
  NvF32 sx;                     /* screen x coordinate                08-  0b*/
  NvF32 sy;                     /* screen y coordinate                0c-  0f*/
  NvF32 sz;                     /* screen z coordinate                10-  13*/
  NvF32 rhw;                    /* reciprocal homogeneous W (1/W)     14-  17*/
  NvF32 tu;                     /* texture u coordinate               18-  1b*/
  NvF32 tv;                     /* texture v coordinate               1c-  1f*/
 } Tlvertex[128];               /* end of method in array               -1fff*/
} Nv048Typedef, Nv03Dx3TexturedTriangle;
#define NV048_TYPEDEF                                   Nv03Dx3TexturedTriangle
/* dma method offsets, fields, and values */
#define NV048_SET_OBJECT                                           (0x00000000)
#define NV048_NO_OPERATION                                         (0x00000100)
#define NV048_NOTIFY                                               (0x00000104)
#define NV048_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV048_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV048_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV048_SET_CONTEXT_DMA_TEXTURE                              (0x00000184)
#define NV048_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV048_SET_CONTEXT_SURFACE_COLOR                            (0x0000018C)
#define NV048_SET_CONTEXT_SURFACE_ZETA                             (0x00000190)
#define NV048_TEXTURE_OFFSET                                       (0x00000304)
#define NV048_TEXTURE_FORMAT                                       (0x00000308)
#define NV048_TEXTURE_FORMAT_VALUE                                 15:0
#define NV048_TEXTURE_FORMAT_KEY                                   19:16
#define NV048_TEXTURE_FORMAT_KEY_DISABLED                          (0x00000000)
#define NV048_TEXTURE_FORMAT_KEY_ENABLED                           (0x00000001)
#define NV048_TEXTURE_FORMAT_COLOR                                 23:20
#define NV048_TEXTURE_FORMAT_COLOR_LE_A1R5G5B5                     (0x00000000)
#define NV048_TEXTURE_FORMAT_COLOR_LE_X1R5G5B5                     (0x00000001)
#define NV048_TEXTURE_FORMAT_COLOR_LE_A4R4G4B4                     (0x00000002)
#define NV048_TEXTURE_FORMAT_COLOR_LE_R5G6B5                       (0x00000003)
#define NV048_TEXTURE_FORMAT_SIZE_MIN                              27:24
#define NV048_TEXTURE_FORMAT_SIZE_MIN_4X4                          (0x00000002)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_8X8                          (0x00000003)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_16X16                        (0x00000004)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_32X32                        (0x00000005)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_64X64                        (0x00000006)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_128X128                      (0x00000007)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_256X256                      (0x00000008)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_512X512                      (0x00000009)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_1024X1024                    (0x0000000A)
#define NV048_TEXTURE_FORMAT_SIZE_MIN_2048X2048                    (0x0000000B)
#define NV048_TEXTURE_FORMAT_SIZE_MAX                              31:28
#define NV048_TEXTURE_FORMAT_SIZE_MAX_4X4                          (0x00000002)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_8X8                          (0x00000003)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_16X16                        (0x00000004)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_32X32                        (0x00000005)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_64X64                        (0x00000006)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_128X128                      (0x00000007)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_256X256                      (0x00000008)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_512X512                      (0x00000009)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_1024X1024                    (0x0000000A)
#define NV048_TEXTURE_FORMAT_SIZE_MAX_2048X2048                    (0x0000000B)
#define NV048_TEXTURE_FILTER                                       (0x0000030C)
#define NV048_TEXTURE_FILTER_SPREAD_X                              4:0
#define NV048_TEXTURE_FILTER_IGNORE0                               7:5
#define NV048_TEXTURE_FILTER_SPREAD_Y                              12:8
#define NV048_TEXTURE_FILTER_IGNORE1                               15:13
#define NV048_TEXTURE_FILTER_SIZE_ADJUST                           23:16
#define NV048_TEXTURE_FILTER_IGNORE2                               31:24
#define NV048_FOG_COLOR                                            (0x00000310)
#define NV048_CONTROL0                                             (0x00000314)
#define NV048_CONTROL0_INTERPOLATOR                                3:0
#define NV048_CONTROL0_INTERPOLATOR_ZOH_CORNER                     (0x00000000)
#define NV048_CONTROL0_INTERPOLATOR_ZOH_CENTER                     (0x00000001)
#define NV048_CONTROL0_INTERPOLATOR_FOH_CENTER                     (0x00000002)
#define NV048_CONTROL0_WRAP_U                                      5:4
#define NV048_CONTROL0_WRAP_U_CYLINDRICAL                          (0x00000000)
#define NV048_CONTROL0_WRAP_U_WRAP                                 (0x00000001)
#define NV048_CONTROL0_WRAP_U_MIRROR                               (0x00000002)
#define NV048_CONTROL0_WRAP_U_CLAMP                                (0x00000003)
#define NV048_CONTROL0_WRAP_V                                      7:6
#define NV048_CONTROL0_WRAP_V_CYLINDRICAL                          (0x00000000)
#define NV048_CONTROL0_WRAP_V_WRAP                                 (0x00000001)
#define NV048_CONTROL0_WRAP_V_MIRROR                               (0x00000002)
#define NV048_CONTROL0_WRAP_V_CLAMP                                (0x00000003)
#define NV048_CONTROL0_COLOR_FORMAT                                9:8
#define NV048_CONTROL0_COLOR_FORMAT_LE_X8R8G8B8                    (0x00000000)
#define NV048_CONTROL0_COLOR_FORMAT_LE_A8R8G8B8                    (0x00000001)
#define NV048_CONTROL0_SOURCE_COLOR                                11:10
#define NV048_CONTROL0_SOURCE_COLOR_NORMAL                         (0x00000000)
#define NV048_CONTROL0_SOURCE_COLOR_COLOR_INVERSE                  (0x00000001)
#define NV048_CONTROL0_SOURCE_COLOR_ALPHA_INVERSE                  (0x00000002)
#define NV048_CONTROL0_SOURCE_COLOR_ALPHA_ONE                      (0x00000003)
#define NV048_CONTROL0_CULLING                                     14:12
#define NV048_CONTROL0_CULLING_NONE                                (0x00000001)
#define NV048_CONTROL0_CULLING_COUNTERCLOCKWISE                    (0x00000002)
#define NV048_CONTROL0_CULLING_CLOCKWISE                           (0x00000003)
#define NV048_CONTROL0_Z_PERSPECTIVE_ENABLE                        15:15
#define NV048_CONTROL0_Z_PERSPECTIVE_ENABLE_FALSE                  (0x00000000)
#define NV048_CONTROL0_Z_PERSPECTIVE_ENABLE_TRUE                   (0x00000001)
#define NV048_CONTROL0_ZFUNC                                       19:16
#define NV048_CONTROL0_ZFUNC_NEVER                                 (0x00000001)
#define NV048_CONTROL0_ZFUNC_LESS                                  (0x00000002)
#define NV048_CONTROL0_ZFUNC_EQUAL                                 (0x00000003)
#define NV048_CONTROL0_ZFUNC_LESSEQUAL                             (0x00000004)
#define NV048_CONTROL0_ZFUNC_GREATER                               (0x00000005)
#define NV048_CONTROL0_ZFUNC_NOTEQUAL                              (0x00000006)
#define NV048_CONTROL0_ZFUNC_GREATEREQUAL                          (0x00000007)
#define NV048_CONTROL0_ZFUNC_ALWAYS                                (0x00000008)
#define NV048_CONTROL0_ZETA_WRITE                                  23:20
#define NV048_CONTROL0_ZETA_WRITE_NEVER                            (0x00000000)
#define NV048_CONTROL0_ZETA_WRITE_ALPHA                            (0x00000001)
#define NV048_CONTROL0_ZETA_WRITE_ALPHA_ZETA                       (0x00000002)
#define NV048_CONTROL0_ZETA_WRITE_ZETA                             (0x00000003)
#define NV048_CONTROL0_ZETA_WRITE_ALWAYS                           (0x00000004)
#define NV048_CONTROL0_COLOR_WRITE                                 27:24
#define NV048_CONTROL0_COLOR_WRITE_NEVER                           (0x00000000)
#define NV048_CONTROL0_COLOR_WRITE_ALPHA                           (0x00000001)
#define NV048_CONTROL0_COLOR_WRITE_ALPHA_ZETA                      (0x00000002)
#define NV048_CONTROL0_COLOR_WRITE_ZETA                            (0x00000003)
#define NV048_CONTROL0_COLOR_WRITE_ALWAYS                          (0x00000004)
#define NV048_CONTROL0_ROP                                         28:28
#define NV048_CONTROL0_ROP_BLEND_AND                               (0x00000000)
#define NV048_CONTROL0_ROP_ADD_WITH_SATURATION                     (0x00000001)
#define NV048_CONTROL0_BLEND_BETA                                  29:29
#define NV048_CONTROL0_BLEND_BETA_SRCALPHA                         (0x00000000)
#define NV048_CONTROL0_BLEND_BETA_DESTCOLOR                        (0x00000001)
#define NV048_CONTROL0_BLEND_INPUT0                                30:30
#define NV048_CONTROL0_BLEND_INPUT0_DESTCOLOR                      (0x00000000)
#define NV048_CONTROL0_BLEND_INPUT0_ZERO                           (0x00000001)
#define NV048_CONTROL0_BLEND_INPUT1                                31:31
#define NV048_CONTROL0_BLEND_INPUT1_SRCCOLOR                       (0x00000000)
#define NV048_CONTROL0_BLEND_INPUT1_ZERO                           (0x00000001)
#define NV048_CONTROL1                                             (0x00000318)
#define NV048_CONTROL1_ALPHAREF                                    7:0
#define NV048_CONTROL1_ALPHAFUNC                                   31:8
#define NV048_CONTROL1_ALPHAFUNC_NEVER                             (0x00000001)
#define NV048_CONTROL1_ALPHAFUNC_LESS                              (0x00000002)
#define NV048_CONTROL1_ALPHAFUNC_EQUAL                             (0x00000003)
#define NV048_CONTROL1_ALPHAFUNC_LESSEQUAL                         (0x00000004)
#define NV048_CONTROL1_ALPHAFUNC_GREATER                           (0x00000005)
#define NV048_CONTROL1_ALPHAFUNC_NOTEQUAL                          (0x00000006)
#define NV048_CONTROL1_ALPHAFUNC_GREATEREQUAL                      (0x00000007)
#define NV048_CONTROL1_ALPHAFUNC_ALWAYS                            (0x00000008)

#define NV048_TLVERTEX(a)                                          (0x00001000\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_SPECULAR(a)                                 (0x00001000\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_SPECULAR_I0                                 3:0
#define NV048_TLVERTEX_SPECULAR_I1                                 7:4
#define NV048_TLVERTEX_SPECULAR_I2                                 11:8
#define NV048_TLVERTEX_SPECULAR_I3                                 15:12
#define NV048_TLVERTEX_SPECULAR_I4                                 19:16
#define NV048_TLVERTEX_SPECULAR_I5                                 23:20
#define NV048_TLVERTEX_SPECULAR_FOG                                31:24
#define NV048_TLVERTEX_COLOR(a)                                    (0x00001004\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_SX(a)                                       (0x00001008\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_SY(a)                                       (0x0000100C\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_SZ(a)                                       (0x00001010\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_RHW(a)                                      (0x00001014\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_TU(a)                                       (0x00001018\
                                                                   +(a)*0x0020)
#define NV048_TLVERTEX_TV(a)                                       (0x0000101C\
                                                                   +(a)*0x0020)
/* obsolete stuff */
#define NV3_DX3_TEXTURED_TRIANGLE                                  (0x00000048)
#define Nv3Dx3TexturedTriangle                          Nv03Dx3TexturedTriangle
#define nv3Dx3TexturedTriangle                          Nv03Dx3TexturedTriangle
#define nv03Dx3TexturedTriangle                         Nv03Dx3TexturedTriangle

/* class NV05_VIDEO_LUT_CURSOR_DAC */
#define  NV05_VIDEO_LUT_CURSOR_DAC                                 (0x00000049)
#define NV049_NOTIFIERS_NOTIFY                                     (0)
#define NV049_NOTIFIERS_SET_IMAGE(b)                               (1+(b))
#define NV049_NOTIFIERS_SET_LUT(b)                                 (3+(b))
#define NV049_NOTIFIERS_SET_CURSOR_IMAGE(b)                        (5+(b))
#define NV049_NOTIFIERS_SET_DAC(b)                                 (7+(b))
#define NV049_NOTIFICATION_INFO16_NOT_STARTED                      (0x0000)
#define NV049_NOTIFICATION_INFO16_VALID_OFFSET                     (0x0001)
#define NV049_NOTIFICATION_INFO16_DONE                             (0x0002)
#define NV049_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV049_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV049_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV049_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV049_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV049_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV049_NOTIFY_*                   0104-0107*/
 NvV32 StopImage[2];            /* NV049_STOP_IMAGE_*               0108-010f*/
 NvV32 StopLut[2];              /* NV049_STOP_LUT_*                 0110-0117*/
 NvV32 StopCursorImage[2];      /* NV049_STOP_CURSOR_IMAGE_*        0118-011f*/
 NvV32 StopDac[2];              /* NV049_STOP_DAC_*                 0120-0127*/
 NvV32 Reserved00[0x016];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaLut[2];     /* NV01_CONTEXT_DMA                 018c-0193*/
 NvV32 SetContextDmaCursor[2];  /* NV01_CONTEXT_DMA                 0194-019b*/
 NvV32 Reserved01[0x057];
 NvV32 SetPanOffset;            /* byte offset for panning          0220-0223*/
 NvV32 GetOffset;               /* NV049_GET_OFFSET_*               02fc-02ff*/
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* see text                            4-   7*/
 } SetImage[2];                 /* end of methods in array              -030f*/
 struct {                       /* start of methods in array        0310-    */
  NvU32 offset;                 /* byte offset of first byte           0-   3*/
  NvV32 format;                 /* notify                              4-   7*/
 } SetLut[2];                   /* end of methods in array              -031f*/
 struct {                       /* start of methods in array        0320-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* notify                              4-   7*/
 } SetCursorImage[2];           /* end of methods in array              -032f*/
 NvV32 SetCursorPoint;          /* y_x S16_S16                      0330-0333*/
 NvV32 Reserved03[0x003];
 struct {                       /* start of methods in array        0340-    */
  NvV32 imageSize;              /* height_width U16_U16 in pixels      0-   3*/
  NvV32 horizontalSync;         /* width_start U16_U16 in pixels       4-   7*/
  NvV32 verticalSync;           /* width_start U16_U16 in pixels       8-   b*/
  NvV32 totalSize;              /* height_width U16_U16                c-   f*/
  NvV32 pixelClock;             /* in Hertz                           10-  13*/
  NvV32 format;                 /* see text                           14-  17*/
 } SetDac[2];                   /* end of methods in array              -037f*/
 NvV32 Reserved04[0x724];
} Nv049Typedef, NV05VideoLutCursorDac;
#define NV049_TYPEDEF                                     NV05VideoLutCursorDac
/* dma method offsets, fields, and values */
#define NV049_SET_OBJECT                                           (0x00000000)
#define NV049_NO_OPERATION                                         (0x00000100)
#define NV049_NOTIFY                                               (0x00000104)
#define NV049_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV049_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV049_STOP_IMAGE(b)                                        (0x00000108\
                                                                   +(b)*0x0004)
#define NV049_STOP_IMAGE_AS_SOON_AS_POSSIBLE                       (0x00000000)
#define NV049_STOP_IMAGE_BETWEEN_BUFFERS                           (0x00000001)
#define NV049_STOP_LUT(b)                                          (0x00000110\
                                                                   +(b)*0x0004)
#define NV049_STOP_LUT_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV049_STOP_LUT_BETWEEN_BUFFERS                             (0x00000001)
#define NV049_STOP_CURSOR_IMAGE(b)                                 (0x00000118\
                                                                   +(b)*0x0004)
#define NV049_STOP_CURSOR_IMAGE_AS_SOON_AS_POSSIBLE                (0x00000000)
#define NV049_STOP_CURSOR_IMAGE_BETWEEN_BUFFERS                    (0x00000001)
#define NV049_STOP_DAC(b)                                          (0x00000120\
                                                                   +(b)*0x0004)
#define NV049_STOP_DAC_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV049_STOP_DAC_BETWEEN_BUFFERS                             (0x00000001)
#define NV049_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV049_SET_CONTEXT_DMA_IMAGE(b)                             (0x00000184\
                                                                   +(b)*0x0004)
#define NV049_SET_CONTEXT_DMA_LUT(b)                               (0x0000018C\
                                                                   +(b)*0x0004)
#define NV049_SET_CONTEXT_DMA_CURSOR(b)                            (0x00000194\
                                                                   +(b)*0x0004)
#define NV049_SET_PAN_OFFSET                                       (0x00000220)
#define NV049_GET_OFFSET                                           (0x000002FC)
#define NV049_GET_OFFSET_IMAGE_0                                   (0x00000000)
#define NV049_GET_OFFSET_IMAGE_1                                   (0x00000001)
#define NV049_SET_IMAGE(b)                                         (0x00000300\
                                                                   +(b)*0x0008)
#define NV049_SET_IMAGE_OFFSET(b)                                  (0x00000300\
                                                                   +(b)*0x0008)
#define NV049_SET_IMAGE_FORMAT(b)                                  (0x00000304\
                                                                   +(b)*0x0008)
#define NV049_SET_IMAGE_FORMAT_PITCH                               15:0
#define NV049_SET_IMAGE_FORMAT_WHEN                                23:20
#define NV049_SET_IMAGE_FORMAT_WHEN_NOT_WITHIN_BUFFER              (0x00000000)
#define NV049_SET_IMAGE_FORMAT_WHEN_IMMEDIATELY                    (0x00000001)
#define NV049_SET_IMAGE_FORMAT_FLAGS                               27:25
#define NV049_SET_IMAGE_FORMAT_FLAGS_COMPLETE_ON_OBJECT_CLEANUP    (0x00000001)
#define NV049_SET_IMAGE_FORMAT_NOTIFY                              31:31
#define NV049_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV049_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV049_SET_LUT(b)                                           (0x00000310\
                                                                   +(b)*0x0008)
#define NV049_SET_LUT_OFFSET(b)                                    (0x00000310\
                                                                   +(b)*0x0008)
#define NV049_SET_LUT_FORMAT(b)                                    (0x00000314\
                                                                   +(b)*0x0008)
#define NV049_SET_LUT_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV049_SET_LUT_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)
#define NV049_SET_CURSOR_IMAGE(b)                                  (0x00000320\
                                                                   +(b)*0x0008)
#define NV049_SET_CURSOR_IMAGE_OFFSET(b)                           (0x00000320\
                                                                   +(b)*0x0008)
#define NV049_SET_CURSOR_IMAGE_FORMAT(b)                           (0x00000324\
                                                                   +(b)*0x0008)
#define NV049_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_ONLY            (0x00000000)
#define NV049_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN     (0x00000001)
#define NV049_SET_CURSOR_POINT                                     (0x00000330)
#define NV049_SET_CURSOR_POINT_X                                   15:0
#define NV049_SET_CURSOR_POINT_Y                                   31:16
#define NV049_SET_DAC(b)                                           (0x00000340\
                                                                   +(b)*0x0018)
#define NV049_SET_DAC_IMAGE_SIZE(b)                                (0x00000340\
                                                                   +(b)*0x0018)
#define NV049_SET_DAC_IMAGE_SIZE_WIDTH                             15:0
#define NV049_SET_DAC_IMAGE_SIZE_HEIGHT                            31:16
#define NV049_SET_DAC_HORIZONTAL_SYNC(b)                           (0x00000344\
                                                                   +(b)*0x0018)
#define NV049_SET_DAC_HORIZONTAL_SYNC_START                        15:0
#define NV049_SET_DAC_HORIZONTAL_SYNC_WIDTH                        31:16
#define NV049_SET_DAC_VERTICAL_SYNC(b)                             (0x00000348\
                                                                   +(b)*0x0018)
#define NV049_SET_DAC_VERTICAL_SYNC_START                          15:0
#define NV049_SET_DAC_VERTICAL_SYNC_WIDTH                          31:16
#define NV049_SET_DAC_TOTAL_SIZE(b)                                (0x0000034C\
                                                                   +(b)*0x0018)
#define NV049_SET_DAC_TOTAL_SIZE_WIDTH                             15:0
#define NV049_SET_DAC_TOTAL_SIZE_HEIGHT                            31:16
#define NV049_SET_DAC_PIXEL_CLOCK(b)                               (0x00000350\
                                                                   +(b)*0x0018)
#define NV049_SET_DAC_FORMAT(b)                                    (0x00000354\
                                                                   +(b)*0x0018)
#define NV049_SET_DAC_FORMAT_DOUBLE_SCAN                           0:0
#define NV049_SET_DAC_FORMAT_DOUBLE_SCAN_DISABLED                  (0x00000000)
#define NV049_SET_DAC_FORMAT_DOUBLE_SCAN_ENABLED                   (0x00000001)
#define NV049_SET_DAC_FORMAT_INTERLACE                             1:1
#define NV049_SET_DAC_FORMAT_INTERLACE_DISABLED                    (0x00000000)
#define NV049_SET_DAC_FORMAT_INTERLACE_ENABLED                     (0x00000001)
#define NV049_SET_DAC_FORMAT_HORIZONTAL_SYNC                       2:2
#define NV049_SET_DAC_FORMAT_HORIZONTAL_SYNC_POSITIVE              (0x00000000)
#define NV049_SET_DAC_FORMAT_HORIZONTAL_SYNC_NEGATIVE              (0x00000001)
#define NV049_SET_DAC_FORMAT_VERTICAL_SYNC                         3:3
#define NV049_SET_DAC_FORMAT_VERTICAL_SYNC_POSITIVE                (0x00000000)
#define NV049_SET_DAC_FORMAT_VERTICAL_SYNC_NEGATIVE                (0x00000001)
#define NV049_SET_DAC_FORMAT_COLOR                                 19:16
#define NV049_SET_DAC_FORMAT_COLOR_LUT_LE_Y8                       (0x00000000)
#define NV049_SET_DAC_FORMAT_COLOR_BYPASS_LE_R5G6B5                (0x00000001)
#define NV049_SET_DAC_FORMAT_COLOR_LE_BYPASS1R5G5B5                (0x00000002)
#define NV049_SET_DAC_FORMAT_COLOR_LE_BYPASS1X7R8G8B8              (0x00000003)
#define NV049_SET_DAC_FORMAT_DISPLAY_TYPE                          21:20
#define NV049_SET_DAC_FORMAT_DISPLAY_TYPE_CRT                      (0x00000000)
#define NV049_SET_DAC_FORMAT_DISPLAY_TYPE_TV                       (0x00000001)
#define NV049_SET_DAC_FORMAT_DISPLAY_TYPE_DFP                      (0x00000003)
#define NV049_SET_DAC_FORMAT_TV_STANDARD                           25:22
#define NV049_SET_DAC_FORMAT_TV_STANDARD_NTSC_M                    (0x00000000)
#define NV049_SET_DAC_FORMAT_TV_STANDARD_NTSC_J                    (0x00000001)
#define NV049_SET_DAC_FORMAT_TV_STANDARD_PAL_M                     (0x00000002)
#define NV049_SET_DAC_FORMAT_TV_STANDARD_PAL_A                     (0x00000003)
#define NV049_SET_DAC_FORMAT_TV_STANDARD_PAL_N                     (0x00000004)
#define NV049_SET_DAC_FORMAT_TV_STANDARD_PAL_NC                    (0x00000005)
#define NV049_SET_DAC_FORMAT_PRIMARY_DEVICE                        28:28
#define NV049_SET_DAC_FORMAT_PRIMARY_DEVICE_FALSE                  (0x00000000)
#define NV049_SET_DAC_FORMAT_PRIMARY_DEVICE_TRUE                   (0x00000001)
#define NV049_SET_DAC_FORMAT_NOTIFY                                31:31
#define NV049_SET_DAC_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV049_SET_DAC_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)


/* class NV04_GDI_RECTANGLE_TEXT */
#define  NV04_GDI_RECTANGLE_TEXT                                   (0x0000004A)
/* NvNotification[] elements */
#define NV04A_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV04A_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV04A_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV04A_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV04A_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV04A_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV04A_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* memory data structures */
typedef struct {                /* start of data structure          0000-    */
   NvV32 size;                  /* height_width U16_U16 in pixels      0-   3*/
   NvV32 monochrome[1];         /* 32 monochrome pixels per write      4-   7*/
} Nv04aCharacter8[];            /* end of data structure                -0007*/
typedef struct {                /* start of data structure          0000-    */
  NvV32 size;                   /* height_width U16_U16 in pixels      0-   3*/
  NvV32 monochrome[3];          /* 32 monochrome pixels per write      4-   f*/
} Nv04aCharacter16[];           /* end of data structure                -000f*/
typedef struct {                /* start of data structure          0000-    */
  NvV32 size;                   /* height_width U16_U16 in pixels     00-  03*/
  NvV32 monochrome[7];          /* 32 monochrome pixels per write     04-  1f*/
} Nv04aCharacter32[];           /* end of data structure                -001f*/
typedef struct {                /* start of data structure          0000-    */
  NvV32 size;                   /* height_width U16_U16 in pixels     00-  03*/
  NvV32 monochrome[15];         /* 32 monochrome pixels per write     04-  3f*/
} Nv04aCharacter64[];           /* end of data structure                -003f*/
typedef struct {                /* start of data structure          0000-    */
  NvV32 size;                   /* height_width U16_U16 in pixels     00-  03*/
  NvV32 monochrome[31];         /* 32 monochrome pixels per write     04-  7f*/
} Nv04aCharacter128[];          /* end of data structure                -007f*/
typedef struct {                /* start of data structure          0000-    */
  NvV32 size;                   /* height_width U16_U16 in pixels     00-  03*/
  NvV32 monochrome[63];         /* 32 monochrome pixels per write     04-  ff*/
} Nv04aCharacter256[];          /* end of data structure                -00ff*/
typedef struct {                /* start of data structure          0000-    */
  NvV32 size;                   /* height_width U16_U16 in pixels    000- 003*/
  NvV32 monochrome[127];        /* 32 monochrome pixels per write    004- 1ff*/
} Nv04aCharacter512[];          /* end of data structure                -01ff*/
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV04A_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaFonts;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetOperation;            /* NV04A_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV04A_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetMonochromeFormat;     /* NV04A_SET_MONOCHROME_FORMAT_*    0304-0307*/
 NvV32 Reserved02[0x03D];
 NvV32 Color1A;                 /* rectangle color                  03fc-03ff*/
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 point;                  /* x_y S16_S16 in pixels               0-   3*/
  NvV32 size;                   /* width_height U16_U16 in pixels      4-   7*/
 } UnclippedRectangle[32];      /* end of aliased methods in array      -04ff*/
 NvV32 Reserved03[0x03D];
 NvV32 ClipPoint0B;             /* top_left S16_S16 in pixels       05f4-05f7*/
 NvV32 ClipPoint1B;             /* bottom_right S16_S16 in pixels   05f8-05fb*/
 NvV32 Color1B;                 /* rectangle color                  05fc-05ff*/
 struct {                       /* start aliased methods in array   0600-    */
  NvV32 point0;                 /* top_left S16_S16 in pixels          0-   3*/
  NvV32 point1;                 /* bottom_right S16_S16 in pixels      4-   7*/
 } ClippedRectangle[32];        /* end of aliased methods in array      -06ff*/
 NvV32 Reserved04[0x03B];
 NvV32 ClipPoint0C;             /* top_left S16_S16 in pixels       07ec-07ef*/
 NvV32 ClipPoint1C;             /* bottom_right S16_S16 in pixe     07f0-07f3*/
 NvV32 Color1C;                 /* color of 1 pixels                07f4-07f7*/
 NvV32 SizeC;                   /* height_width U16_U16 in pixels   07f8-07fb*/
 NvV32 PointC;                  /* y_x S16_S16 in pixels            07fc-07ff*/
 NvV32 MonochromeColor1C[128];  /* 32 monochrome pixels per write   0800-09ff*/
 NvV32 Reserved05[0x079];
 NvV32 ClipPoint0E;             /* top_left S16_S16 in pixels       0be4-0be7*/
 NvV32 ClipPoint1E;             /* bottom_right S16_S16 in pixels   0be8-0beb*/
 NvV32 Color0E;                 /* color of 0 pixels                0bec-0bef*/
 NvV32 Color1E;                 /* color of 1 pixels                0bf0-0bf3*/
 NvV32 SizeInE;                 /* height_width U16_U16 in pixels   0bf4-0bf7*/
 NvV32 SizeOutE;                /* height_width U16_U16 in pixels   0bf8-0bfb*/
 NvV32 PointE;                  /* y_x S16_S16 in pixels            0bfc-0bff*/
 NvV32 MonochromeColor01E[128]; /* 32 monochrome pixels per write   0c00-0dff*/
 NvV32 Reserved06[0x07C];
 NvV32 FontF;                   /* pitch_offset V4_U28              0ff0-0ff3*/
 NvV32 ClipPoint0F;             /* top_left S16_S16 in pixels       0ff4-0ff7*/
 NvV32 ClipPoint1F;             /* bottom_right S16_S16 in pixels   0ff8-0ffb*/
 NvV32 Color1F;                 /* color of 1 pixels                0ffc-0fff*/
 NvV32 CharacterColor1F[256];   /* y_x_index S12_S12_U8             1000-13ff*/
 NvV32 Reserved07[0x0FC];
 NvV32 FontG;                   /* pitch_offset V4_U28              17f0-17f3*/
 NvV32 ClipPoint0G;             /* top_left S16_S16 in pixels       17f4-17f7*/
 NvV32 ClipPoint1G;             /* bottom_right S16_S16 in pixels   17f8-17fb*/
 NvV32 Color1G;                 /* color of 1 pixels                17fc-17ff*/
 struct {                       /* start aliased methods in array   1800-    */
  NvV32 point;                  /* y_x S16_S16 in pixels               0-   3*/
  NvU32 index;                  /* 0<=index<=65525                     4-   7*/
 } CharacterColor1G[256];       /* end of aliased methods in array      -1fff*/
} Nv04aTypedef, Nv04GdiRectangleText;
#define NV04A_TYPEDEF                                      Nv04GdiRectangleText
/* dma method offsets, fields, and values */
#define NV04A_SET_OBJECT                                           (0x00000000)
#define NV04A_NO_OPERATION                                         (0x00000100)
#define NV04A_NOTIFY                                               (0x00000104)
#define NV04A_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV04A_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV04A_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV04A_SET_CONTEXT_DMA_FONTS                                (0x00000184)
#define NV04A_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV04A_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV04A_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV04A_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV04A_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV04A_SET_OPERATION                                        (0x000002FC)
#define NV04A_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV04A_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV04A_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV04A_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV04A_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV04A_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV04A_SET_COLOR_FORMAT                                     (0x00000300)
#define NV04A_SET_COLOR_FORMAT_LE_X16R5G6B5                        (0x00000001)
#define NV04A_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV04A_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV04A_SET_MONOCHROME_FORMAT                                (0x00000304)
#define NV04A_SET_MONOCHROME_FORMAT_CGA6_M1                        (0x00000001)
#define NV04A_SET_MONOCHROME_FORMAT_LE_M1                          (0x00000002)
#define NV04A_COLOR1_A                                             (0x000003FC)
#define NV04A_UNCLIPPED_RECTANGLE(a)                               (0x00000400\
                                                                   +(a)*0x0008)
#define NV04A_UNCLIPPED_RECTANGLE_POINT(a)                         (0x00000400\
                                                                   +(a)*0x0008)
#define NV04A_UNCLIPPED_RECTANGLE_POINT_Y                          15:0
#define NV04A_UNCLIPPED_RECTANGLE_POINT_X                          31:16
#define NV04A_UNCLIPPED_RECTANGLE_SIZE(a)                          (0x00000404\
                                                                   +(a)*0x0008)
#define NV04A_UNCLIPPED_RECTANGLE_SIZE_HEIGHT                      15:0
#define NV04A_UNCLIPPED_RECTANGLE_SIZE_WIDTH                       31:16
#define NV04A_CLIP_POINT0_B                                        (0x000005F4)
#define NV04A_CLIP_POINT0_B_LEFT                                   15:0
#define NV04A_CLIP_POINT0_B_TOP                                    31:16
#define NV04A_CLIP_POINT1_B                                        (0x000005F8)
#define NV04A_CLIP_POINT1_B_RIGHT                                  15:0
#define NV04A_CLIP_POINT1_B_BOTTOM                                 31:16
#define NV04A_COLOR1_B                                             (0x000005FC)
#define NV04A_CLIPPED_RECTANGLE(a)                                 (0x00000600\
                                                                   +(a)*0x0008)
#define NV04A_CLIPPED_RECTANGLE_POINT_0(a)                         (0x00000600\
                                                                   +(a)*0x0008)
#define NV04A_CLIPPED_RECTANGLE_POINT_0_LEFT                       15:0
#define NV04A_CLIPPED_RECTANGLE_POINT_0_TOP                        31:16
#define NV04A_CLIPPED_RECTANGLE_POINT_1(a)                         (0x00000604\
                                                                   +(a)*0x0008)
#define NV04A_CLIPPED_RECTANGLE_POINT_1_RIGHT                      15:0
#define NV04A_CLIPPED_RECTANGLE_POINT_1_BOTTOM                     31:16
#define NV04A_CLIP_POINT0_C                                        (0x000007EC)
#define NV04A_CLIP_POINT0_C_LEFT                                   15:0
#define NV04A_CLIP_POINT0_C_TOP                                    31:16
#define NV04A_CLIP_POINT1_C                                        (0x000007F0)
#define NV04A_CLIP_POINT1_C_RIGHT                                  15:0
#define NV04A_CLIP_POINT1_C_BOTTOM                                 31:16
#define NV04A_COLOR1_C                                             (0x000007F4)
#define NV04A_SIZE_C                                               (0x000007F8)
#define NV04A_SIZE_C_WIDTH                                         15:0
#define NV04A_SIZE_C_HEIGHT                                        31:16
#define NV04A_POINT_C                                              (0x000007FC)
#define NV04A_POINT_C_X                                            15:0
#define NV04A_POINT_C_Y                                            31:16
#define NV04A_MONOCHROME_COLOR1_C(a)                               (0x00000800\
                                                                   +(a)*0x0004)
#define NV04A_CLIP_POINT0_E                                        (0x00000BE4)
#define NV04A_CLIP_POINT0_E_LEFT                                   15:0
#define NV04A_CLIP_POINT0_E_TOP                                    31:16
#define NV04A_CLIP_POINT1_E                                        (0x00000BE8)
#define NV04A_CLIP_POINT1_E_RIGHT                                  15:0
#define NV04A_CLIP_POINT1_E_BOTTOM                                 31:16
#define NV04A_COLOR0_E                                             (0x00000BEC)
#define NV04A_COLOR1_E                                             (0x00000BF0)
#define NV04A_SIZE_IN_E                                            (0x00000BF4)
#define NV04A_SIZE_IN_E_WIDTH                                      15:0
#define NV04A_SIZE_IN_E_HEIGHT                                     31:16
#define NV04A_SIZE_OUT_E                                           (0x00000BF8)
#define NV04A_SIZE_OUT_E_WIDTH                                     15:0
#define NV04A_SIZE_OUT_E_HEIGHT                                    31:16
#define NV04A_POINT_E                                              (0x00000BFC)
#define NV04A_POINT_E_X                                            15:0
#define NV04A_POINT_E_Y                                            31:16
#define NV04A_MONOCHROME_COLOR01_E(a)                              (0x00000C00\
                                                                   +(a)*0x0004)
#define NV04A_FONT_F                                               (0x00000FF0)
#define NV04A_FONT_F_OFFSET                                        27:0
#define NV04A_FONT_F_PITCH                                         31:28
#define NV04A_FONT_F_PITCH_8                                       (0x00000003)
#define NV04A_FONT_F_PITCH_16                                      (0x00000004)
#define NV04A_FONT_F_PITCH_32                                      (0x00000005)
#define NV04A_FONT_F_PITCH_64                                      (0x00000006)
#define NV04A_FONT_F_PITCH_128                                     (0x00000007)
#define NV04A_FONT_F_PITCH_256                                     (0x00000008)
#define NV04A_FONT_F_PITCH_512                                     (0x00000009)
#define NV04A_CLIP_POINT0_F                                        (0x00000FF4)
#define NV04A_CLIP_POINT0_F_LEFT                                   15:0
#define NV04A_CLIP_POINT0_F_TOP                                    31:16
#define NV04A_CLIP_POINT1_F                                        (0x00000FF8)
#define NV04A_CLIP_POINT1_F_RIGHT                                  15:0
#define NV04A_CLIP_POINT1_F_BOTTOM                                 31:16
#define NV04A_COLOR1_F                                             (0x00000FFC)
#define NV04A_CHARACTER_COLOR1_F(a)                                (0x00001000\
                                                                   +(a)*0x0004)
#define NV04A_CHARACTER_COLOR1_F_INDEX                             7:0
#define NV04A_CHARACTER_COLOR1_F_X                                 19:8
#define NV04A_CHARACTER_COLOR1_F_Y                                 31:20
#define NV04A_FONT_G                                               (0x000017F0)
#define NV04A_FONT_G_OFFSET                                        27:0
#define NV04A_FONT_G_PITCH                                         31:28
#define NV04A_FONT_G_PITCH_8                                       (0x00000003)
#define NV04A_FONT_G_PITCH_16                                      (0x00000004)
#define NV04A_FONT_G_PITCH_32                                      (0x00000005)
#define NV04A_FONT_G_PITCH_64                                      (0x00000006)
#define NV04A_FONT_G_PITCH_128                                     (0x00000007)
#define NV04A_FONT_G_PITCH_256                                     (0x00000008)
#define NV04A_FONT_G_PITCH_512                                     (0x00000009)
#define NV04A_CLIP_POINT0_G                                        (0x000017F4)
#define NV04A_CLIP_POINT0_G_LEFT                                   15:0
#define NV04A_CLIP_POINT0_G_TOP                                    31:16
#define NV04A_CLIP_POINT1_G                                        (0x000017F8)
#define NV04A_CLIP_POINT1_G_RIGHT                                  15:0
#define NV04A_CLIP_POINT1_G_BOTTOM                                 31:16
#define NV04A_COLOR1_G                                             (0x000017FC)
#define NV04A_CHARACTER_COLOR1_G(a)                                (0x00001800\
                                                                   +(a)*0x0008)
#define NV04A_CHARACTER_COLOR1_G_POINT(a)                          (0x00001800\
                                                                   +(a)*0x0008)
#define NV04A_CHARACTER_COLOR1_G_POINT_X                           15:0
#define NV04A_CHARACTER_COLOR1_G_POINT_Y                           31:16
#define NV04A_CHARACTER_COLOR1_G_INDEX(a)                          (0x00001804\
                                                                   +(a)*0x0008)
/* obsolete stuff */
#define NV4_GDI_RECTANGLE_TEXT                                     (0x0000004A)
#define Nv4GdiRectangleText                                Nv04GdiRectangleText
#define nv4GdiRectangleText                                Nv04GdiRectangleText
#define nv04GdiRectangleText                               Nv04GdiRectangleText


/* class NV03_GDI_RECTANGLE_TEXT */
#define  NV03_GDI_RECTANGLE_TEXT                                   (0x0000004B)
/* NvNotification[] elements */
#define NV04B_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV04B_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV04B_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV04B_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV04B_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV04B_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV04B_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV04B_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextPattern;       /* NV01_CONTEXT_PATTERN             0184-0187*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0188-018b*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                018c-018f*/
 NvV32 SetContextSurface;       /* NV03_CONTEXT_SURFACE_2D_DESTINAT 0190-0193*/
 NvV32 Reserved01[0x05a];
 NvV32 SetOperation;            /* NV04B_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV04B_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetMonochromeFormat;     /* NV04B_SET_MONOCHROME_FORMAT_*    0304-0307*/
 NvV32 Reserved02[0x03d];
 NvV32 Color1A;                 /* rectangle color                  03fc-03ff*/
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 point;                  /* x_y S16_S16 in pixels               0-   3*/
  NvV32 size;                   /* width_height U16_U16 in pixels      4-   7*/
 } UnclippedRectangle[64];      /* end of aliased methods in array      -05ff*/
 NvV32 Reserved03[0x07D];
 NvV32 ClipPoint0B;             /* top_left S16_S16 in pixels       07f4-07f7*/
 NvV32 ClipPoint1B;             /* bottom_right S16_S16 in pixels   07f8-07fb*/
 NvV32 Color1B;                 /* rectangle color                  07fc-07ff*/
 struct {                       /* start aliased methods in array   0800-    */
  NvV32 point0;                 /* top_left S16_S16 in pixels          0-   3*/
  NvV32 point1;                 /* bottom_right S16_S16 in pixels      4-   7*/
 } ClippedRectangle[64];        /* end of aliased methods in array      -09ff*/
 NvV32 Reserved04[0x07B];
 NvV32 ClipPoint0C;             /* top_left S16_S16 in pixels       0bec-0bef*/
 NvV32 ClipPoint1C;             /* bottom_right S16_S16 in pixels   0bf0-0bf3*/
 NvV32 Color1C;                 /* color of 1 pixels                0bf4-0bf7*/
 NvV32 SizeC;                   /* height_width U16_U16 in pixels   0bf8-0bfb*/
 NvV32 PointC;                  /* y_x S16_S16 in pixels            0bfc-0bff*/
 NvV32 MonochromeColor1C[128];  /* 32 monochrome pixels per write   0c00-0dff*/
 NvV32 Reserved05[0x07A];
 NvV32 ClipPoint0D;             /* top_left S16_S16 in pixels       0fe8-0feb*/
 NvV32 ClipPoint1D;             /* bottom_right S16_S16 in pixels   0fec-0fef*/
 NvV32 Color1D;                 /* color of 1 pixels                0ff0-0ff3*/
 NvV32 SizeInD;                 /* height_width U16_U16 in pixels   0ff4-0ff7*/
 NvV32 SizeOutD;                /* height_width U16_U16 in pixels   0ff8-0ffb*/
 NvV32 PointD;                  /* y_x S16_S16 in pixels            0ffc-0fff*/
 NvV32 MonochromeColor1D[128];  /* 32 monochrome pixels per write   1000-11ff*/
 NvV32 Reserved06[0x079];
 NvV32 ClipPoint0E;             /* top_left S16_S16 in pixels       13e4-13e7*/
 NvV32 ClipPoint1E;             /* bottom_right S16_S16 in pixels   13e8-13eb*/
 NvV32 Color0E;                 /* color of 0 pixels                13ec-13ef*/
 NvV32 Color1E;                 /* color of 1 pixels                13f0-13f3*/
 NvV32 SizeInE;                 /* height_width U16_U16 in pixels   13f4-13f7*/
 NvV32 SizeOutE;                /* height_width U16_U16 in pixels   13f8-13fb*/
 NvV32 PointE;                  /* y_x S16_S16 in pixels            13fc-13ff*/
 NvV32 MonochromeColor01E[128]; /* 32 monochrome pixels per write   1400-15ff*/
 NvV32 Reserved07[0x280];
} Nv04bTypedef, Nv03GdiRectangleText;
#define NV04B_TYPEDEF                                      Nv03GdiRectangleText
/* dma method offsets, fields, and values */
#define NV04B_SET_OBJECT                                           (0x00000000)
#define NV04B_NO_OPERATION                                         (0x00000100)
#define NV04B_NOTIFY                                               (0x00000104)
#define NV04B_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV04B_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV04B_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV04B_SET_CONTEXT_PATTERN                                  (0x00000184)
#define NV04B_SET_CONTEXT_ROP                                      (0x00000188)
#define NV04B_SET_CONTEXT_BETA1                                    (0x0000018C)
#define NV04B_SET_CONTEXT_SURFACE                                  (0x00000190)
#define NV04B_SET_OPERATION                                        (0x000002FC)
#define NV04B_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV04B_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV04B_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV04B_SET_COLOR_FORMAT                                     (0x00000300)
#define NV04B_SET_COLOR_FORMAT_LE_X24Y8                            (0x00000001)
#define NV04B_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV04B_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV04B_SET_MONOCHROME_FORMAT                                (0x00000304)
#define NV04B_SET_MONOCHROME_FORMAT_CGA6_M1                        (0x00000001)
#define NV04B_SET_MONOCHROME_FORMAT_LE_M1                          (0x00000002)
#define NV04B_COLOR1_A                                             (0x000003FC)
#define NV04B_UNCLIPPED_RECTANGLE(a)                               (0x00000400\
                                                                   +(a)*0x0008)
#define NV04B_UNCLIPPED_RECTANGLE_POINT(a)                         (0x00000400\
                                                                   +(a)*0x0008)
#define NV04B_UNCLIPPED_RECTANGLE_POINT_X                          15:0
#define NV04B_UNCLIPPED_RECTANGLE_POINT_Y                          31:16
#define NV04B_UNCLIPPED_RECTANGLE_SIZE(a)                          (0x00000404\
                                                                   +(a)*0x0008)
#define NV04B_UNCLIPPED_RECTANGLE_SIZE_WIDTH                       15:0
#define NV04B_UNCLIPPED_RECTANGLE_SIZE_HEIGHT                      31:16
#define NV04B_CLIP_POINT0_B                                        (0x000007F4)
#define NV04B_CLIP_POINT0_B_LEFT                                   15:0
#define NV04B_CLIP_POINT0_B_TOP                                    31:16
#define NV04B_CLIP_POINT1_B                                        (0x000007F8)
#define NV04B_CLIP_POINT1_B_RIGHT                                  15:0
#define NV04B_CLIP_POINT1_B_BOTTOM                                 31:16
#define NV04B_COLOR1_B                                             (0x000007FC)
#define NV04B_CLIPPED_RECTANGLE(a)                                 (0x00000800\
                                                                   +(a)*0x0008)
#define NV04B_CLIPPED_RECTANGLE_POINT0(a)                          (0x00000800\
                                                                   +(a)*0x0008)
#define NV04B_CLIPPED_RECTANGLE_POINT0_LEFT                        15:0
#define NV04B_CLIPPED_RECTANGLE_POINT0_TOP                         31:16
#define NV04B_CLIPPED_RECTANGLE_POINT1(a)                          (0x00000804\
                                                                   +(a)*0x0008)
#define NV04B_CLIPPED_RECTANGLE_POINT1_RIGHT                       15:0
#define NV04B_CLIPPED_RECTANGLE_POINT1_BOTTOM                      31:16
#define NV04B_CLIP_POINT0_C                                        (0x00000BEC)
#define NV04B_CLIP_POINT0_C_LEFT                                   15:0
#define NV04B_CLIP_POINT0_C_TOP                                    31:16
#define NV04B_CLIP_POINT1_C                                        (0x00000BF0)
#define NV04B_CLIP_POINT1_C_RIGHT                                  15:0
#define NV04B_CLIP_POINT1_C_BOTTOM                                 31:16
#define NV04B_COLOR1_C                                             (0x00000BF4)
#define NV04B_SIZE_C                                               (0x00000BF8)
#define NV04B_SIZE_C_WIDTH                                         15:0
#define NV04B_SIZE_C_HEIGHT                                        31:16
#define NV04B_POINT_C                                              (0x00000BFC)
#define NV04B_POINT_C_X                                            15:0
#define NV04B_POINT_C_Y                                            31:16
#define NV04B_MONOCHROME_COLOR1_C(a)                               (0x00000C00\
                                                                   +(a)*0x0004)
#define NV04B_CLIP_POINT0_D                                        (0x00000FE8)
#define NV04B_CLIP_POINT0_D_LEFT                                   15:0
#define NV04B_CLIP_POINT0_D_TOP                                    31:16
#define NV04B_CLIP_POINT1_D                                        (0x00000FEC)
#define NV04B_CLIP_POINT1_D_RIGHT                                  15:0
#define NV04B_CLIP_POINT1_D_BOTTOM                                 31:16
#define NV04B_COLOR1_D                                             (0x00000FF0)
#define NV04B_SIZE_IN_D                                            (0x00000FF4)
#define NV04B_SIZE_IN_D_WIDTH                                      15:0
#define NV04B_SIZE_IN_D_HEIGHT                                     31:16
#define NV04B_SIZE_OUT_D                                           (0x00000FF8)
#define NV04B_SIZE_OUT_D_WIDTH                                     15:0
#define NV04B_SIZE_OUT_D_HEIGHT                                    31:16
#define NV04B_POINT_D                                              (0x00000FFC)
#define NV04B_POINT_D_X                                            15:0
#define NV04B_POINT_D_Y                                            31:16
#define NV04B_MONOCHROME_COLOR1_D(a)                               (0x00001000\
                                                                   +(a)*0x0004)
#define NV04B_CLIP_POINT0_E                                        (0x000013E4)
#define NV04B_CLIP_POINT0_E_LEFT                                   15:0
#define NV04B_CLIP_POINT0_E_TOP                                    31:16
#define NV04B_CLIP_POINT1_E                                        (0x000013E8)
#define NV04B_CLIP_POINT1_E_RIGHT                                  15:0
#define NV04B_CLIP_POINT1_E_BOTTOM                                 31:16
#define NV04B_COLOR0_E                                             (0x000013EC)
#define NV04B_COLOR1_E                                             (0x000013F0)
#define NV04B_SIZE_IN_E                                            (0x000013F4)
#define NV04B_SIZE_IN_E_WIDTH                                      15:0
#define NV04B_SIZE_IN_E_HEIGHT                                     31:16
#define NV04B_SIZE_OUT_E                                           (0x000013F8)
#define NV04B_SIZE_OUT_E_WIDTH                                     15:0
#define NV04B_SIZE_OUT_E_HEIGHT                                    31:16
#define NV04B_POINT_E                                              (0x000013FC)
#define NV04B_POINT_E_X                                            15:0
#define NV04B_POINT_E_Y                                            31:16
#define NV04B_MONOCHROME_COLOR01_E(a)                              (0x00001400\
                                                                   +(a)*0x0004)
/* obsolete stuff */
#define NV3_GDI_RECTANGLE_TEXT                                     (0x0000004B)
#define Nv3GdiRectangleText                                Nv03GdiRectangleText
#define nv3GdiRectangleText                                Nv03GdiRectangleText
#define nv03GdiRectangleText                               Nv03GdiRectangleText

typedef NvV32 Nv04cTypedef;


/* class NV03_EXTERNAL_VIDEO_DECODER */
#define  NV03_EXTERNAL_VIDEO_DECODER                               (0x0000004D)
/* NvNotification[] elements */
#define NV04D_NOTIFIERS_NOTIFY                                     (0)
#define NV04D_NOTIFIERS_SET_VBI_FORMAT_NOTIFY(b)                   (1+(b))
#define NV04D_NOTIFIERS_GET_VBI_OFFSET_NOTIFY(b)                   (3+(b))
#define NV04D_NOTIFIERS_SET_IMAGE_FORMAT_NOTIFY(b)                 (5+(b))
#define NV04D_NOTIFIERS_GET_IMAGE_OFFSET_NOTIFY(b)                 (7+(b))
/* NvNotification[] fields and values */
#define NV04D_NOTIFICATION_INFO16_FIELD_NOT_STARTED                (0x0000)
#define NV04D_NOTIFICATION_INFO16_FIELD_VALID_OFFSET               (0x0001)
#define NV04D_NOTIFICATION_INFO16_FIELD_DONE                       (0x0002)
#define NV04D_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV04D_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV04D_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV04D_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV04D_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV04D_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NV04D_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV04D_NOTIFY_*                   0104-0107*/
 NvV32 StopTransferVbi;         /* NV04D_STOP_TRANSFER_VBI_VALUE    0108-010b*/
 NvV32 StopTransferImage;       /* NV04D_STOP_TRANSFER_IMAGE_VALUE  010c-010f*/
 NvV32 Reserved00[0x01c];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaVbi[2];     /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 018c-0193*/
 NvV32 Reserved01[0x059];
 NvU32 SetImageConfig;          /* data width, task bit, null data  02f8-02fb*/
 NvU32 SetImageStartLine;       /* lines                            02fc-02ff*/
 struct {                       /* start of methods in array        0300-    */
  NvV32 size;                   /* height_firstLine U16_U16            0-   3*/
  NvU32 offset;                 /* byte offset of top-left pixel       4-   7*/
  NvV32 format;                 /* notify_field_pitch V8_V8_U16        8-   b*/
 } SetVbi[2];                   /* end of methods in array              -0317*/
 NvV32 GetVbiOffsetNotify[2];   /* NV04D_GET_VBI_OFFSET_NOTIFY_*    0318-031f*/
 struct {                       /* start of methods in array        0320-    */
  NvV32 sizeIn;                 /* height_width U16_U16 in pixels      0-   3*/
  NvV32 sizeOut;                /* height_width U16_U16 in pixels      4-   7*/
  NvU32 offset;                 /* byte offset of top-left pixel       8-   b*/
  NvV32 format;                 /* notify_field_pitch V8_V8_U16        c-   f*/
 } SetImage[2];                 /* end of methods in array              -033f*/
 NvV32 GetImageOffsetNotify[2]; /* NV04D_GET_IMAGE_OFFSET_NOTIFY_*  0340-0347*/
 NvV32 Reserved02[0x72e];
} Nv04dTypedef, Nv03ExternalVideoDecoder;
#define NV04D_TYPEDEF                                  Nv03ExternalVideoDecoder
/* dma method offsets, fields, and values */
#define NV04D_SET_OBJECT                                           (0x00000000)
#define NV04D_NO_OPERATION                                         (0x00000100)
#define NV04D_NOTIFY                                               (0x00000104)
#define NV04D_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV04D_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV04D_STOP_TRANSFER_VBI                                    (0x00000108)
#define NV04D_STOP_TRANSFER_VBI_VALUE                              (0x00000000)
#define NV04D_STOP_TRANSFER_IMAGE                                  (0x0000010C)
#define NV04D_STOP_TRANSFER_IMAGE_VALUE                            (0x00000000)
#define NV04D_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV04D_SET_CONTEXT_DMA_VBI(b)                               (0x00000184\
                                                                   +(b)*0x0004)
#define NV04D_SET_CONTEXT_DMA_IMAGE(b)                             (0x0000018C\
                                                                   +(b)*0x0004)
#define NV04D_SET_IMAGE_CONFIG                                     (0x000002f8)
#define NV04D_SET_IMAGE_CONFIG_DATA_WIDTH                          7:0
#define NV04D_SET_IMAGE_CONFIG_TASK                                8:8
#define NV04D_SET_IMAGE_CONFIG_TASK_A                              (0x00000000)
#define NV04D_SET_IMAGE_CONFIG_TASK_B                              (0x00000001)
#define NV04D_SET_IMAGE_CONFIG_NULL_DATA                           13:12
#define NV04D_SET_IMAGE_CONFIG_NULL_DATA_DISABLED                  (0x00000000)
#define NV04D_SET_IMAGE_CONFIG_NULL_DATA_BYTE_ENABLED              (0x00000001)
#define NV04D_SET_IMAGE_CONFIG_NULL_DATA_LINE_ENABLED              (0x00000002)
#define NV04D_SET_IMAGE_CONFIG_NULL_VALUE                          31:16
#define NV04D_SET_IMAGE_START_LINE                                 (0x000002FC)
#define NV04D_SET_VBI(b)                                           (0x00000300\
                                                                   +(b)*0x000C)
#define NV04D_SET_VBI_SIZE(b)                                      (0x00000300\
                                                                   +(b)*0x000C)
#define NV04D_SET_VBI_SIZE_FIRST_LINE                              15:0
#define NV04D_SET_VBI_SIZE_HEIGHT                                  31:16
#define NV04D_SET_VBI_OFFSET(b)                                    (0x00000304\
                                                                   +(b)*0x000C)
#define NV04D_SET_VBI_FORMAT(b)                                    (0x00000308\
                                                                   +(b)*0x000C)
#define NV04D_SET_VBI_FORMAT_PITCH                                 15:0
#define NV04D_SET_VBI_FORMAT_FIELD                                 23:16
#define NV04D_SET_VBI_FORMAT_FIELD_PROGRESSIVE                     (0x00000000)
#define NV04D_SET_VBI_FORMAT_FIELD_EVEN_FIELD                      (0x00000001)
#define NV04D_SET_VBI_FORMAT_FIELD_ODD_FIELD                       (0x00000002)
#define NV04D_SET_VBI_FORMAT_NOTIFY                                31:24
#define NV04D_SET_VBI_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV04D_SET_VBI_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)
#define NV04D_GET_VBI_OFFSET_NOTIFY(b)                             (0x00000318\
                                                                   +(b)*0x0004)
#define NV04D_GET_VBI_OFFSET_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV04D_GET_VBI_OFFSET_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)
#define NV04D_SET_IMAGE(b)                                         (0x00000320\
                                                                   +(b)*0x0010)
#define NV04D_SET_IMAGE_SIZE_IN(b)                                 (0x00000320\
                                                                   +(b)*0x0010)
#define NV04D_SET_IMAGE_SIZE_IN_WIDTH                              15:0
#define NV04D_SET_IMAGE_SIZE_IN_HEIGHT                             31:16
#define NV04D_SET_IMAGE_SIZE_OUT(b)                                (0x00000324\
                                                                   +(b)*0x0010)
#define NV04D_SET_IMAGE_SIZE_OUT_WIDTH                             15:0
#define NV04D_SET_IMAGE_SIZE_OUT_HEIGHT                            31:16
#define NV04D_SET_IMAGE_OFFSET(b)                                  (0x00000328\
                                                                   +(b)*0x0010)
#define NV04D_SET_IMAGE_FORMAT(b)                                  (0x0000032C\
                                                                   +(b)*0x0010)
#define NV04D_SET_IMAGE_FORMAT_PITCH                               15:0
#define NV04D_SET_IMAGE_FORMAT_FIELD                               23:16
#define NV04D_SET_IMAGE_FORMAT_FIELD_PROGRESSIVE                   (0x00000000)
#define NV04D_SET_IMAGE_FORMAT_FIELD_EVEN_FIELD                    (0x00000001)
#define NV04D_SET_IMAGE_FORMAT_FIELD_ODD_FIELD                     (0x00000002)
#define NV04D_SET_IMAGE_FORMAT_NOTIFY                              31:24
#define NV04D_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV04D_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV04D_GET_IMAGE_OFFSET_NOTIFY(b)                           (0x00000340\
                                                                   +(b)*0x0004)
#define NV04D_GET_IMAGE_OFFSET_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV04D_GET_IMAGE_OFFSET_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
/* obsolete stuff */
#define NV3_EXTERNAL_VIDEO_DECOMPRESSOR                            (0x0000004E)
#define Nv3ExternalVideoDecoder                        Nv03ExternalVideoDecoder
#define nv3ExternalVideoDecoder                        Nv03ExternalVideoDecoder
#define nv03ExternalVideoDecoder                       Nv03ExternalVideoDecoder


/* class NV03_EXTERNAL_VIDEO_DECOMPRESSOR */
#define  NV03_EXTERNAL_VIDEO_DECOMPRESSOR                          (0x0000004E)
/* NvNotification[] elements */
#define NV04E_NOTIFIERS_NOTIFY                                     (0)
#define NV04E_NOTIFIERS_SET_DATA_NOTIFY(b)                         (1+(b))
#define NV04E_NOTIFIERS_SET_IMAGE_NOTIFY(b)                        (3+(b))
/* NvNotification[] fields and values */
#define NV04E_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV04E_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV04E_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV04E_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV04E_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV04E_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NV04E_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV04E_NOTIFY_*                   0104-0107*/
 NvV32 StopTransfer;            /* NV04E_STOP_TRANSFER_VALUE        0108-010b*/
 NvV32 Reserved00[0x01d];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaData[2];    /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 018c-0193*/
 NvV32 Reserved01[0x05b];
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* in bytes                            0-   3*/
  NvU32 length;                 /* in bytes                            4-   7*/
  NvV32 notify;                 /* NV04E_SET_DATA_NOTIFY_*             8-   b*/
 } SetData[2];                  /* end of methods in array              -0317*/
 struct {                       /* start of methods in array        0318-    */
  NvV32 formatIn;               /* zero_field V16_V16                 00-  03*/
  NvV32 size;                   /* height_width U16_U16 in pixels     04-  07*/
  NvU32 offsetOut;              /* byte offset of top-left pixel      08-  0b*/
  NvV32 formatOut;              /* ignore_pitch V16_U16               0c-  0f*/
  NvV32 notify;                 /* NV04E_SET_IMAGE_NOTIFY_*           10-  13*/
 } SetImage[2];                 /* end of methods in array              -033f*/
 NvV32 Reserved02[0x730];
} Nv04eTypedef, Nv03ExternalVideoDecompressor;
#define NV04E_TYPEDEF                             Nv03ExternalVideoDecompressor
/* dma method offsets, fields, and values */
#define NV04E_SET_OBJECT                                           (0x00000000)
#define NV04E_NO_OPERATION                                         (0x00000100)
#define NV04E_NOTIFY                                               (0x00000104)
#define NV04E_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV04E_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV04E_STOP_TRANSFER                                        (0x00000108)
#define NV04E_STOP_TRANSFER_VALUE                                  (0x00000000)
#define NV04E_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV04E_SET_CONTEXT_DMA_DATA(b)                              (0x00000184\
                                                                   +(b)*0x0004)
#define NV04E_SET_CONTEXT_DMA_IMAGE(b)                             (0x0000018C\
                                                                   +(b)*0x0004)
#define NV04E_SET_DATA(b)                                          (0x00000300\
                                                                   +(b)*0x000C)
#define NV04E_SET_DATA_OFFSET(b)                                   (0x00000300\
                                                                   +(b)*0x000C)
#define NV04E_SET_DATA_LENGTH(b)                                   (0x00000304\
                                                                   +(b)*0x000C)
#define NV04E_SET_DATA_NOTIFY(b)                                   (0x00000308\
                                                                   +(b)*0x000C)
#define NV04E_SET_DATA_NOTIFY_WRITE_ONLY                           (0x00000000)
#define NV04E_SET_DATA_NOTIFY_WRITE_THEN_AWAKEN                    (0x00000001)
#define NV04E_SET_IMAGE(b)                                         (0x00000318\
                                                                   +(b)*0x0014)
#define NV04E_SET_IMAGE_FORMAT_IN(b)                               (0x00000318\
                                                                   +(b)*0x0014)
#define NV04E_SET_IMAGE_FORMAT_IN_FIELD                            15:0
#define NV04E_SET_IMAGE_FORMAT_IN_FIELD_PROGRESSIVE                (0x00000001)
#define NV04E_SET_IMAGE_FORMAT_IN_FIELD_EVEN_FIELD                 (0x00000002)
#define NV04E_SET_IMAGE_FORMAT_IN_FIELD_ODD_FIELD                  (0x00000003)
#define NV04E_SET_IMAGE_FORMAT_IN_ZERO                             31:16
#define NV04E_SET_IMAGE_SIZE(b)                                    (0x0000031C\
                                                                   +(b)*0x0014)
#define NV04E_SET_IMAGE_SIZE_WIDTH                                 15:0
#define NV04E_SET_IMAGE_SIZE_HEIGHT                                31:16
#define NV04E_SET_IMAGE_OFFSET_OUT(b)                              (0x00000320\
                                                                   +(b)*0x0014)
#define NV04E_SET_IMAGE_FORMAT_OUT(b)                              (0x00000324\
                                                                   +(b)*0x0014)
#define NV04E_SET_IMAGE_FORMAT_OUT_PITCH                           15:0
#define NV04E_SET_IMAGE_FORMAT_OUT_IGNORE                          31:16
#define NV04E_SET_IMAGE_NOTIFY(b)                                  (0x00000328\
                                                                   +(b)*0x0014)
#define NV04E_SET_IMAGE_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NV04E_SET_IMAGE_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
/* obsolete stuff */
#define NV3_EXTERNAL_VIDEO_DECOMPRESSOR                            (0x0000004E)
#define Nv3ExternalVideoDecompressor              Nv03ExternalVideoDecompressor
#define nv3ExternalVideoDecompressor              Nv03ExternalVideoDecompressor
#define nv03ExternalVideoDecompressor             Nv03ExternalVideoDecompressor


/* class NV01_EXTERNAL_PARALLEL_BUS */
#define  NV01_EXTERNAL_PARALLEL_BUS                                (0x0000004F)
/* NvNotification[] elements */
#define NV04F_NOTIFIERS_NOTIFY                                     (0)
#define NV04F_NOTIFICATION_READ_GET_DATA_NOTIFY                    (1)
#define NV04F_NOTIFICATION_SET_INTERRUPT_NOTIFY                    (2)
/* NvNotification[] fields and values */
#define NV04F_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV04F_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV04F_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV04F_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV04F_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV04F_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NV04F_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV04F_NOTIFY_*                   0104-0107*/
 NvV32 StopTransfer;            /* NV04F_STOP_TRANSFER_VALUE        0108-010b*/
 NvV32 Reserved00[0x01d];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 WriteSize;               /* address_data U16_U16             0300-0303*/
 NvU32 WriteAddress;            /* in bytes                         0304-0307*/
 NvV32 WriteData;               /* data                             0308-030b*/
 NvV32 ReadSize;                /* address_data U16_U16             030c-030f*/
 NvU32 ReadAddress;             /* in bytes                         0310-0313*/
 NvV32 ReadGetDataNotify;       /* NV04F_READ_GET_DATA_NOTIFY_*     0314-0317*/
 NvV32 SetInterruptNotify;      /* NV04F_SET_INTERRUPT_NOTIFY_*     0318-031b*/
 NvV32 Reserved02[0x739];
} Nv04fTypedef, Nv01ExternalParallelBus;
#define NV04F_TYPEDEF                                   Nv01ExternalParallelBus
/* dma method offsets, fields, and values */
#define NV04F_SET_OBJECT                                           (0x00000000)
#define NV04F_NO_OPERATION                                         (0x00000100)
#define NV04F_NOTIFY                                               (0x00000104)
#define NV04F_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV04F_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV04F_STOP_TRANSFER                                        (0x00000108)
#define NV04F_STOP_TRANSFER_VALUE                                  (0x00000000)
#define NV04F_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV04F_WRITE                                                (0x00000300)
#define NV04F_WRITE_SIZE                                           (0x00000300)
#define NV04F_WRITE_SIZE_DATA                                      15:0
#define NV04F_WRITE_SIZE_ADDRESS                                   31:16
#define NV04F_WRITE_ADDRESS                                        (0x00000304)
#define NV04F_WRITE_DATA                                           (0x00000308)
#define NV04F_READ                                                 (0x0000030C)
#define NV04F_READ_SIZE                                            (0x0000030C)
#define NV04F_READ_SIZE_DATA                                       15:0
#define NV04F_READ_SIZE_ADDRESS                                    31:16
#define NV04F_READ_ADDRESS                                         (0x00000310)
#define NV04F_READ_GET_DATA_NOTIFY                                 (0x00000314)
#define NV04F_READ_GET_DATA_NOTIFY_WRITE_ONLY                      (0x00000000)
#define NV04F_READ_GET_DATA_NOTIFY_WRITE_THEN_AWAKEN               (0x00000001)
#define NV04F_SET_INTERRUPT_NOTIFY                                 (0x00000318)
#define NV04F_SET_INTERRUPT_NOTIFY_WRITE_ONLY                      (0x00000000)
#define NV04F_SET_INTERRUPT_NOTIFY_WRITE_THEN_AWAKEN               (0x00000001)
/* obsolete stuff */
#define NV1_EXTERNAL_PARALLEL_BUS                                  (0x0000004F)
#define Nv1ExternalParallelBus                          Nv01ExternalParallelBus
#define nv1ExternalParallelBus                          Nv01ExternalParallelBus
#define nv01ExternalParallelBus                         Nv01ExternalParallelBus


/* class NV03_EXTERNAL_MONITOR_BUS */
#define  NV03_EXTERNAL_MONITOR_BUS                                 (0x00000050)
/* NvNotification[] elements */
#define NV050_NOTIFIERS_NOTIFY                                     (0)
#define NV050_NOTIFICATION_READ_GET_DATA_NOTIFY                    (1)
#define NV050_NOTIFICATION_SET_INTERRUPT_NOTIFY                    (2)
/* NvNotification[] fields and values */
#define NV050_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV050_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV050_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV050_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV050_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV050_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NV050_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV050_NOTIFY_*                   0104-0107*/
 NvV32 StopTransfer;            /* NV050_STOP_TRANSFER_VALUE        0108-010b*/
 NvV32 Reserved00[0x01d];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 WriteSize;               /* address_data U16_U16             0300-0303*/
 NvU32 WriteAddress;            /* in bytes                         0304-0307*/
 NvV32 WriteData;               /* data                             0308-030b*/
 NvV32 ReadSize;                /* address_data U16_U16             030c-030f*/
 NvU32 ReadAddress;             /* in bytes                         0310-0313*/
 NvV32 ReadGetDataNotify;       /* NV050_READ_GET_DATA_NOTIFY_*     0314-0317*/
 NvV32 SetInterruptNotify;      /* NV050_SET_INTERRUPT_NOTIFY_*     0318-031b*/
 NvV32 Reserved02[0x739];
} Nv050Typedef, Nv03ExternalMonitorBus;
#define NV050_TYPEDEF                                    Nv03ExternalMonitorBus
/* dma method offsets, fields, and values */
#define NV050_SET_OBJECT                                           (0x00000000)
#define NV050_NO_OPERATION                                         (0x00000100)
#define NV050_NOTIFY                                               (0x00000104)
#define NV050_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV050_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV050_STOP_TRANSFER                                        (0x00000108)
#define NV050_STOP_TRANSFER_VALUE                                  (0x00000000)
#define NV050_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV050_WRITE                                                (0x00000300)
#define NV050_WRITE_SIZE                                           (0x00000300)
#define NV050_WRITE_SIZE_DATA                                      15:0
#define NV050_WRITE_SIZE_ADDRESS                                   31:16
#define NV050_WRITE_ADDRESS                                        (0x00000304)
#define NV050_WRITE_DATA                                           (0x00000308)
#define NV050_READ                                                 (0x0000030C)
#define NV050_READ_SIZE                                            (0x0000030C)
#define NV050_READ_SIZE_DATA                                       15:0
#define NV050_READ_SIZE_ADDRESS                                    31:16
#define NV050_READ_ADDRESS                                         (0x00000310)
#define NV050_READ_GET_DATA_NOTIFY                                 (0x00000314)
#define NV050_READ_GET_DATA_NOTIFY_WRITE_ONLY                      (0x00000000)
#define NV050_READ_GET_DATA_NOTIFY_WRITE_THEN_AWAKEN               (0x00000001)
#define NV050_SET_INTERRUPT_NOTIFY                                 (0x00000318)
#define NV050_SET_INTERRUPT_NOTIFY_WRITE_ONLY                      (0x00000000)
#define NV050_SET_INTERRUPT_NOTIFY_WRITE_THEN_AWAKEN               (0x00000001)
/* obsolete stuff */
#define NV3_EXTERNAL_MONITOR_BUS                                   (0x00000050)
#define Nv3ExternalMonitorBus                            Nv03ExternalMonitorBus
#define nv3ExternalMonitorBus                            Nv03ExternalMonitorBus
#define nv03ExternalMonitorBus                           Nv03ExternalMonitorBus


/* class NV04_EXTERNAL_SERIAL_BUS */
#define  NV04_EXTERNAL_SERIAL_BUS                                  (0x00000051)
/* NvNotification[] elements */
#define NV051_NOTIFIERS_NOTIFY                                     (0)
#define NV051_NOTIFICATION_READ_GET_DATA_NOTIFY                    (1)
#define NV051_NOTIFICATION_SET_INTERRUPT_NOTIFY                    (2)
/* NvNotification[] fields and values */
#define NV051_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV051_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV051_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV051_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV051_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV051_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NV051_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV051_NOTIFY_*                   0104-0107*/
 NvV32 StopTransfer;            /* NV051_STOP_TRANSFER_VALUE        0108-010b*/
 NvV32 Reserved00[0x01d];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 WriteSize;               /* address_data U16_U16             0300-0303*/
 NvU32 WriteAddress;            /* in bytes                         0304-0307*/
 NvV32 WriteData;               /* data                             0308-030b*/
 NvV32 ReadSize;                /* address_data U16_U16             030c-030f*/
 NvU32 ReadAddress;             /* in bytes                         0310-0313*/
 NvV32 ReadGetDataNotify;       /* NV051_READ_GET_DATA_NOTIFY_*     0314-0317*/
 NvV32 SetInterruptNotify;      /* NV051_SET_INTERRUPT_NOTIFY_*     0318-031b*/
 NvV32 Reserved02[0x739];
} Nv051Typedef, Nv04ExternalSerialBus;
#define NV051_TYPEDEF                                     Nv04ExternalSerialBus
/* dma method offsets, fields, and values */
#define NV051_SET_OBJECT                                           (0x00000000)
#define NV051_NO_OPERATION                                         (0x00000100)
#define NV051_NOTIFY                                               (0x00000104)
#define NV051_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV051_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV051_STOP_TRANSFER                                        (0x00000108)
#define NV051_STOP_TRANSFER_VALUE                                  (0x00000000)
#define NV051_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV051_WRITE                                                (0x00000300)
#define NV051_WRITE_SIZE                                           (0x00000300)
#define NV051_WRITE_SIZE_DATA                                      15:0
#define NV051_WRITE_SIZE_ADDRESS                                   31:16
#define NV051_WRITE_ADDRESS                                        (0x00000304)
#define NV051_WRITE_DATA                                           (0x00000308)
#define NV051_READ                                                 (0x0000030C)
#define NV051_READ_SIZE                                            (0x0000030C)
#define NV051_READ_SIZE_DATA                                       15:0
#define NV051_READ_SIZE_ADDRESS                                    31:16
#define NV051_READ_ADDRESS                                         (0x00000310)
#define NV051_READ_GET_DATA_NOTIFY                                 (0x00000314)
#define NV051_READ_GET_DATA_NOTIFY_WRITE_ONLY                      (0x00000000)
#define NV051_READ_GET_DATA_NOTIFY_WRITE_THEN_AWAKEN               (0x00000001)
#define NV051_SET_INTERRUPT_NOTIFY                                 (0x00000318)
#define NV051_SET_INTERRUPT_NOTIFY_WRITE_ONLY                      (0x00000000)
#define NV051_SET_INTERRUPT_NOTIFY_WRITE_THEN_AWAKEN               (0x00000001)
/* obsolete stuff */
#define NV03_EXTERNAL_SERIAL_BUS                                   (0x00000051)
#define NV3_EXTERNAL_SERIAL_BUS                                    (0x00000051)
#define Nv03ExternalSerialBus                             Nv04ExternalSerialBus
#define nv03ExternalSerialBus                             Nv04ExternalSerialBus
#define Nv3ExternalSerialBus                              Nv04ExternalSerialBus
#define nv3ExternalSerialBus                              Nv04ExternalSerialBus
#define nv04ExternalSerialBus                             Nv04ExternalSerialBus


/* class NV04_CONTEXT_SURFACE_SWIZZLED */
#define  NV04_CONTEXT_SURFACE_SWIZZLED                             (0x00000052)
/* NvNotification[] elements */
#define NV052_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV052_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV052_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV052_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV052_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV052_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV052_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV052_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 Reserved01[0x05e];
 NvV32 SetFormat;               /* height_width_color V8_V8_V16     0300-0303*/
 NvU32 SetOffset;               /* byte offset of top-left pixel    0304-0307*/
 NvV32 Reserved02[0x73e];
} Nv052Typedef, Nv04ContextSurfaceSwizzled;
#define NV052_TYPEDEF                                Nv04ContextSurfaceSwizzled
/* dma method offsets, fields, and values */
#define NV052_SET_OBJECT                                           (0x00000000)
#define NV052_NO_OPERATION                                         (0x00000100)
#define NV052_NOTIFY                                               (0x00000104)
#define NV052_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV052_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV052_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV052_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV052_SET_FORMAT                                           (0x00000300)
#define NV052_SET_FORMAT_COLOR                                     15:0
#define NV052_SET_FORMAT_COLOR_LE_Y8                               (0x00000001)
#define NV052_SET_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5                (0x00000002)
#define NV052_SET_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5                (0x00000003)
#define NV052_SET_FORMAT_COLOR_LE_R5G6B5                           (0x00000004)
#define NV052_SET_FORMAT_COLOR_LE_Y16                              (0x00000005)
#define NV052_SET_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8                (0x00000006)
#define NV052_SET_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8                (0x00000007)
#define NV052_SET_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8            (0x00000008)
#define NV052_SET_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8            (0x00000009)
#define NV052_SET_FORMAT_COLOR_LE_A8R8G8B8                         (0x0000000A)
#define NV052_SET_FORMAT_COLOR_LE_Y32                              (0x0000000B)
#define NV052_SET_FORMAT_WIDTH                                     23:16
#define NV052_SET_FORMAT_WIDTH_1                                   (0x00000000)
#define NV052_SET_FORMAT_WIDTH_2                                   (0x00000001)
#define NV052_SET_FORMAT_WIDTH_4                                   (0x00000002)
#define NV052_SET_FORMAT_WIDTH_8                                   (0x00000003)
#define NV052_SET_FORMAT_WIDTH_16                                  (0x00000004)
#define NV052_SET_FORMAT_WIDTH_32                                  (0x00000005)
#define NV052_SET_FORMAT_WIDTH_64                                  (0x00000006)
#define NV052_SET_FORMAT_WIDTH_128                                 (0x00000007)
#define NV052_SET_FORMAT_WIDTH_256                                 (0x00000008)
#define NV052_SET_FORMAT_WIDTH_512                                 (0x00000009)
#define NV052_SET_FORMAT_WIDTH_1024                                (0x0000000A)
#define NV052_SET_FORMAT_WIDTH_2048                                (0x0000000B)
#define NV052_SET_FORMAT_HEIGHT                                    31:24
#define NV052_SET_FORMAT_HEIGHT_1                                  (0x00000000)
#define NV052_SET_FORMAT_HEIGHT_2                                  (0x00000001)
#define NV052_SET_FORMAT_HEIGHT_4                                  (0x00000002)
#define NV052_SET_FORMAT_HEIGHT_8                                  (0x00000003)
#define NV052_SET_FORMAT_HEIGHT_16                                 (0x00000004)
#define NV052_SET_FORMAT_HEIGHT_32                                 (0x00000005)
#define NV052_SET_FORMAT_HEIGHT_64                                 (0x00000006)
#define NV052_SET_FORMAT_HEIGHT_128                                (0x00000007)
#define NV052_SET_FORMAT_HEIGHT_256                                (0x00000008)
#define NV052_SET_FORMAT_HEIGHT_512                                (0x00000009)
#define NV052_SET_FORMAT_HEIGHT_1024                               (0x0000000A)
#define NV052_SET_FORMAT_HEIGHT_2048                               (0x0000000B)
#define NV052_SET_OFFSET                                           (0x00000304)
/* obsolete stuff */
#define NV4_CONTEXT_SURFACE_SWIZZLED                               (0x00000052)
#define Nv4ContextSurfaceSwizzled                    Nv04ContextSurfaceSwizzled
#define nv4ContextSurfaceSwizzled                    Nv04ContextSurfaceSwizzled
#define nv04ContextSurfaceSwizzled                   Nv04ContextSurfaceSwizzled


/* class NV04_CONTEXT_SURFACES_3D */
#define  NV04_CONTEXT_SURFACES_3D                                  (0x00000053)
/* NvNotification[] elements */
#define NV053_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV053_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV053_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV053_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV053_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV053_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV053_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV053_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaColor;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaZeta;       /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 Reserved01[0x05b];
 NvV32 SetClipHorizontal;       /* width_x U16_U16                  02F8-02FB*/
 NvV32 SetClipVertical;         /* height_y U16_U16                 02FC-02FF*/
 NvV32 SetFormat;               /* height_width_type_color all V8   0300-0303*/
 NvV32 SetClipSize;             /* height_width U16_U16             0304-0307*/
 NvU32 SetPitch;                /* zeta_color U16_U16               0308-030b*/
 NvU32 SetOffsetColor;          /* byte offset of top-left pixel    030c-030f*/
 NvU32 SetOffsetZeta;           /* byte offset of top-left pixel    0310-0313*/
 NvV32 Reserved02[0x73b];
} Nv053Typedef, Nv04ContextSurfaces3d;
#define NV053_TYPEDEF                                     Nv04ContextSurfaces3d
/* dma method offsets, fields, and values */
#define NV053_SET_OBJECT                                           (0x00000000)
#define NV053_NO_OPERATION                                         (0x00000100)
#define NV053_NOTIFY                                               (0x00000104)
#define NV053_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV053_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV053_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV053_SET_CONTEXT_DMA_COLOR                                (0x00000184)
#define NV053_SET_CONTEXT_DMA_ZETA                                 (0x00000188)
#define NV053_SET_FORMAT                                           (0x00000300)
#define NV053_SET_FORMAT_COLOR                                     7:0
#define NV053_SET_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5                (0x00000001)
#define NV053_SET_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5                (0x00000002)
#define NV053_SET_FORMAT_COLOR_LE_R5G6B5                           (0x00000003)
#define NV053_SET_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8                (0x00000004)
#define NV053_SET_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8                (0x00000005)
#define NV053_SET_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8            (0x00000006)
#define NV053_SET_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8            (0x00000007)
#define NV053_SET_FORMAT_COLOR_LE_A8R8G8B8                         (0x00000008)
#define NV053_SET_FORMAT_TYPE                                      15:8
#define NV053_SET_FORMAT_TYPE_PITCH                                (0x00000001)
#define NV053_SET_FORMAT_TYPE_SWIZZLE                              (0x00000002)
#define NV053_SET_FORMAT_WIDTH                                     23:16
#define NV053_SET_FORMAT_HEIGHT                                    31:24
#define NV053_SET_CLIP_HORIZONTAL                                  (0x000002F8)
#define NV053_SET_CLIP_HORIZONTAL_X                                15:0
#define NV053_SET_CLIP_HORIZONTAL_WIDTH                            31:16
#define NV053_SET_CLIP_VERTICAL                                    (0x000002FC)
#define NV053_SET_CLIP_VERTICAL_Y                                  15:0
#define NV053_SET_CLIP_VERTICAL_HEIGHT                             31:16
#define NV053_SET_CLIP_SIZE                                        (0x00000304)
#define NV053_SET_CLIP_SIZE_WIDTH                                  15:0
#define NV053_SET_CLIP_SIZE_HEIGHT                                 31:16
#define NV053_SET_PITCH                                            (0x00000308)
#define NV053_SET_PITCH_COLOR                                      15:0
#define NV053_SET_PITCH_ZETA                                       31:16
#define NV053_SET_OFFSET_COLOR                                     (0x0000030C)
#define NV053_SET_OFFSET_ZETA                                      (0x00000310)
/* obsolete stuff */
#define NV04_CONTEXT_SURFACES_ARGB_ZS                              (0x00000053)
#define NV4_CONTEXT_SURFACES_ARGB_ZS                               (0x00000053)
#define Nv04ContextSurfacesArgbZs                         Nv04ContextSurfaces3d
#define nv04ContextSurfacesArgbZs                         Nv04ContextSurfaces3d
#define Nv4ContextSurfacesArgbZs                          Nv04ContextSurfaces3d
#define nv4ContextSurfacesArgbZs                          Nv04ContextSurfaces3d
#define nv04ContextSurfaces3d                             Nv04ContextSurfaces3d


/* class NV04_DX5_TEXTURED_TRIANGLE */
#define  NV04_DX5_TEXTURED_TRIANGLE                                (0x00000054)
/* NvNotification[] elements */
#define NV054_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV054_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV054_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV054_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV054_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV054_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV054_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV054_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaA;          /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaB;          /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 SetContextSurfaces;      /* NV04_CONTEXT_SURFACES_3D         018c-018f*/
 NvV32 Reserved01[0x05c];
 NvV32 ColorKey;                /* texture color key value          0300-0303*/
 NvU32 Offset;                  /* texture offset in bytes          0304-0307*/
 NvV32 Format;                  /* see text                         0308-030b*/
 NvV32 Filter;                  /* see text                         030c-030f*/
 NvV32 Blend;                   /* see text                         0310-0313*/
 NvV32 Control;                 /* see text                         0314-0317*/
 NvV32 FogColor;                /* X8R8G8B8 fog color               0318-031b*/
 NvV32 Reserved02[0x039];
 struct {                       /* start of methods in array        0400-    */
  NvF32 sx;                     /* screen x coordinate                00-  03*/
  NvF32 sy;                     /* screen y coordinate                04-  07*/
  NvF32 sz;                     /* screen z coordinate                08-  0b*/
  NvF32 rhw;                    /* reciprocal homogeneous W (1/W)     0c-  0f*/
  NvV32 color;                  /* A8R8G8B8                           10-  13*/
  NvV32 specular;               /* F8R8G8B8                           14-  17*/
  NvF32 tu;                     /* texture u coordinate               18-  1b*/
  NvF32 tv;                     /* texture v coordinate               1c-  1f*/
 } Tlvertex[16];                /* end of methods in array              -05ff*/
 NvV32 DrawPrimitive[64];       /* see text                         0600-06ff*/
 NvV32 Reserved03[0x640];
} Nv054Typedef, Nv04Dx5TexturedTriangle;
#define NV054_TYPEDEF                                   Nv04Dx5TexturedTriangle
/* dma method offsets, fields, and values */
#define NV054_SET_OBJECT                                           (0x00000000)
#define NV054_NO_OPERATION                                         (0x00000100)
#define NV054_NOTIFY                                               (0x00000104)
#define NV054_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV054_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV054_STALL_PIPE                                           (0x00000108)
#define NV054_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV054_SET_CONTEXT_DMA_A                                    (0x00000184)
#define NV054_SET_CONTEXT_DMA_B                                    (0x00000188)
#define NV054_SET_CONTEXT_SURFACES                                 (0x0000018C)
#define NV054_COLOR_KEY                                            (0x00000300)
#define NV054_OFFSET                                               (0x00000304)
#define NV054_FORMAT                                               (0x00000308)
#define NV054_FORMAT_CONTEXT_DMA                                   1:0
#define NV054_FORMAT_CONTEXT_DMA_A                                 (0x00000001)
#define NV054_FORMAT_CONTEXT_DMA_B                                 (0x00000002)
#define NV054_FORMAT_COLORKEYENABLE                                3:2
#define NV054_FORMAT_COLORKEYENABLE_FALSE                          (0x00000000)
#define NV054_FORMAT_COLORKEYENABLE_TRUE                           (0x00000001)
#define NV054_FORMAT_ORIGIN_ZOH                                    5:4
#define NV054_FORMAT_ORIGIN_ZOH_CENTER                             (0x00000001)
#define NV054_FORMAT_ORIGIN_ZOH_CORNER                             (0x00000002)
#define NV054_FORMAT_ORIGIN_FOH                                    7:6
#define NV054_FORMAT_ORIGIN_FOH_CENTER                             (0x00000001)
#define NV054_FORMAT_ORIGIN_FOH_CORNER                             (0x00000002)
#define NV054_FORMAT_COLOR                                         11:8
#define NV054_FORMAT_COLOR_LE_Y8                                   (0x00000001)
#define NV054_FORMAT_COLOR_LE_A1R5G5B5                             (0x00000002)
#define NV054_FORMAT_COLOR_LE_X1R5G5B5                             (0x00000003)
#define NV054_FORMAT_COLOR_LE_A4R4G4B4                             (0x00000004)
#define NV054_FORMAT_COLOR_LE_R5G6B5                               (0x00000005)
#define NV054_FORMAT_COLOR_LE_A8R8G8B8                             (0x00000006)
#define NV054_FORMAT_COLOR_LE_X8R8G8B8                             (0x00000007)
#define NV054_FORMAT_MIPMAP_LEVELS                                 15:12
#define NV054_FORMAT_BASE_SIZE_U                                   19:16
#define NV054_FORMAT_BASE_SIZE_U_1                                 (0x00000000)
#define NV054_FORMAT_BASE_SIZE_U_2                                 (0x00000001)
#define NV054_FORMAT_BASE_SIZE_U_4                                 (0x00000002)
#define NV054_FORMAT_BASE_SIZE_U_8                                 (0x00000003)
#define NV054_FORMAT_BASE_SIZE_U_16                                (0x00000004)
#define NV054_FORMAT_BASE_SIZE_U_32                                (0x00000005)
#define NV054_FORMAT_BASE_SIZE_U_64                                (0x00000006)
#define NV054_FORMAT_BASE_SIZE_U_128                               (0x00000007)
#define NV054_FORMAT_BASE_SIZE_U_256                               (0x00000008)
#define NV054_FORMAT_BASE_SIZE_U_512                               (0x00000009)
#define NV054_FORMAT_BASE_SIZE_U_1024                              (0x0000000A)
#define NV054_FORMAT_BASE_SIZE_U_2048                              (0x0000000B)
#define NV054_FORMAT_BASE_SIZE_V                                   23:20
#define NV054_FORMAT_BASE_SIZE_V_1                                 (0x00000000)
#define NV054_FORMAT_BASE_SIZE_V_2                                 (0x00000001)
#define NV054_FORMAT_BASE_SIZE_V_4                                 (0x00000002)
#define NV054_FORMAT_BASE_SIZE_V_8                                 (0x00000003)
#define NV054_FORMAT_BASE_SIZE_V_16                                (0x00000004)
#define NV054_FORMAT_BASE_SIZE_V_32                                (0x00000005)
#define NV054_FORMAT_BASE_SIZE_V_64                                (0x00000006)
#define NV054_FORMAT_BASE_SIZE_V_128                               (0x00000007)
#define NV054_FORMAT_BASE_SIZE_V_256                               (0x00000008)
#define NV054_FORMAT_BASE_SIZE_V_512                               (0x00000009)
#define NV054_FORMAT_BASE_SIZE_V_1024                              (0x0000000A)
#define NV054_FORMAT_BASE_SIZE_V_2048                              (0x0000000B)
#define NV054_FORMAT_TEXTUREADDRESSU                               26:24
#define NV054_FORMAT_TEXTUREADDRESSU_WRAP                          (0x00000001)
#define NV054_FORMAT_TEXTUREADDRESSU_MIRROR                        (0x00000002)
#define NV054_FORMAT_TEXTUREADDRESSU_CLAMP                         (0x00000003)
#define NV054_FORMAT_TEXTUREADDRESSU_BORDER                        (0x00000004)
#define NV054_FORMAT_WRAPU                                         27:27
#define NV054_FORMAT_WRAPU_FALSE                                   (0x00000000)
#define NV054_FORMAT_WRAPU_TRUE                                    (0x00000001)
#define NV054_FORMAT_TEXTUREADDRESSV                               30:28
#define NV054_FORMAT_TEXTUREADDRESSV_WRAP                          (0x00000001)
#define NV054_FORMAT_TEXTUREADDRESSV_MIRROR                        (0x00000002)
#define NV054_FORMAT_TEXTUREADDRESSV_CLAMP                         (0x00000003)
#define NV054_FORMAT_TEXTUREADDRESSV_BORDER                        (0x00000004)
#define NV054_FORMAT_WRAPV                                         31:31
#define NV054_FORMAT_WRAPV_FALSE                                   (0x00000000)
#define NV054_FORMAT_WRAPV_TRUE                                    (0x00000001)
#define NV054_FILTER                                               (0x0000030C)
#define NV054_FILTER_KERNEL_SIZE_X                                 7:0
#define NV054_FILTER_KERNEL_SIZE_Y                                 14:8
#define NV054_FILTER_MIPMAP_DITHER_ENABLE                          15:15
#define NV054_FILTER_MIPMAP_DITHER_ENABLE_FALSE                    (0x00000000)
#define NV054_FILTER_MIPMAP_DITHER_ENABLE_TRUE                     (0x00000001)
#define NV054_FILTER_MIPMAPLODBIAS                                 23:16
#define NV054_FILTER_TEXTUREMIN                                    26:24
#define NV054_FILTER_TEXTUREMIN_NEAREST                            (0x00000001)
#define NV054_FILTER_TEXTUREMIN_LINEAR                             (0x00000002)
#define NV054_FILTER_TEXTUREMIN_MIPNEAREST                         (0x00000003)
#define NV054_FILTER_TEXTUREMIN_MIPLINEAR                          (0x00000004)
#define NV054_FILTER_TEXTUREMIN_LINEARMIPNEAREST                   (0x00000005)
#define NV054_FILTER_TEXTUREMIN_LINEARMIPLINEAR                    (0x00000006)
#define NV054_FILTER_ANISOTROPIC_MINIFY_ENABLE                     27:27
#define NV054_FILTER_ANISOTROPIC_MINIFY_ENABLE_FALSE               (0x00000000)
#define NV054_FILTER_ANISOTROPIC_MINIFY_ENABLE_TRUE                (0x00000001)
#define NV054_FILTER_TEXTUREMAG                                    30:28
#define NV054_FILTER_TEXTUREMAG_NEAREST                            (0x00000001)
#define NV054_FILTER_TEXTUREMAG_LINEAR                             (0x00000002)
#define NV054_FILTER_TEXTUREMAG_MIPNEAREST                         (0x00000003)
#define NV054_FILTER_TEXTUREMAG_MIPLINEAR                          (0x00000004)
#define NV054_FILTER_TEXTUREMAG_LINEARMIPNEAREST                   (0x00000005)
#define NV054_FILTER_TEXTUREMAG_LINEARMIPLINEAR                    (0x00000006)
#define NV054_FILTER_ANISOTROPIC_MAGNIFY_ENABLE                    31:31
#define NV054_FILTER_ANISOTROPIC_MAGNIFY_ENABLE_FALSE              (0x00000000)
#define NV054_FILTER_ANISOTROPIC_MAGNIFY_ENABLE_TRUE               (0x00000001)
#define NV054_BLEND                                                (0x00000310)
#define NV054_BLEND_TEXTUREMAPBLEND                                3:0
#define NV054_BLEND_TEXTUREMAPBLEND_DECAL                          (0x00000001)
#define NV054_BLEND_TEXTUREMAPBLEND_MODULATE                       (0x00000002)
#define NV054_BLEND_TEXTUREMAPBLEND_DECALALPHA                     (0x00000003)
#define NV054_BLEND_TEXTUREMAPBLEND_MODULATEALPHA                  (0x00000004)
#define NV054_BLEND_TEXTUREMAPBLEND_DECALMASK                      (0x00000005)
#define NV054_BLEND_TEXTUREMAPBLEND_MODULATEMASK                   (0x00000006)
#define NV054_BLEND_TEXTUREMAPBLEND_COPY                           (0x00000007)
#define NV054_BLEND_TEXTUREMAPBLEND_ADD                            (0x00000008)
#define NV054_BLEND_MASK_BIT                                       5:4
#define NV054_BLEND_MASK_BIT_LSB                                   (0x00000001)
#define NV054_BLEND_MASK_BIT_MSB                                   (0x00000002)
#define NV054_BLEND_SHADEMODE                                      7:6
#define NV054_BLEND_SHADEMODE_FLAT                                 (0x00000001)
#define NV054_BLEND_SHADEMODE_GOURAUD                              (0x00000002)
#define NV054_BLEND_SHADEMODE_PHONG                                (0x00000003)
#define NV054_BLEND_TEXTUREPERSPECTIVE                             11:8
#define NV054_BLEND_TEXTUREPERSPECTIVE_FALSE                       (0x00000000)
#define NV054_BLEND_TEXTUREPERSPECTIVE_TRUE                        (0x00000001)
#define NV054_BLEND_SPECULARENABLE                                 15:12
#define NV054_BLEND_SPECULARENABLE_FALSE                           (0x00000000)
#define NV054_BLEND_SPECULARENABLE_TRUE                            (0x00000001)
#define NV054_BLEND_FOGENABLE                                      19:16
#define NV054_BLEND_FOGENABLE_FALSE                                (0x00000000)
#define NV054_BLEND_FOGENABLE_TRUE                                 (0x00000001)
#define NV054_BLEND_ALPHABLENDENABLE                               23:20
#define NV054_BLEND_ALPHABLENDENABLE_FALSE                         (0x00000000)
#define NV054_BLEND_ALPHABLENDENABLE_TRUE                          (0x00000001)
#define NV054_BLEND_SRCBLEND                                       27:24
#define NV054_BLEND_SRCBLEND_ZERO                                  (0x00000001)
#define NV054_BLEND_SRCBLEND_ONE                                   (0x00000002)
#define NV054_BLEND_SRCBLEND_SRCCOLOR                              (0x00000003)
#define NV054_BLEND_SRCBLEND_INVSRCCOLOR                           (0x00000004)
#define NV054_BLEND_SRCBLEND_SRCALPHA                              (0x00000005)
#define NV054_BLEND_SRCBLEND_INVSRCALPHA                           (0x00000006)
#define NV054_BLEND_SRCBLEND_DESTALPHA                             (0x00000007)
#define NV054_BLEND_SRCBLEND_INVDESTALPHA                          (0x00000008)
#define NV054_BLEND_SRCBLEND_DESTCOLOR                             (0x00000009)
#define NV054_BLEND_SRCBLEND_INVDESTCOLOR                          (0x0000000A)
#define NV054_BLEND_SRCBLEND_SRCALPHASAT                           (0x0000000B)
#define NV054_BLEND_DESTBLEND                                      31:28
#define NV054_BLEND_DESTBLEND_ZERO                                 (0x00000001)
#define NV054_BLEND_DESTBLEND_ONE                                  (0x00000002)
#define NV054_BLEND_DESTBLEND_SRCCOLOR                             (0x00000003)
#define NV054_BLEND_DESTBLEND_INVSRCCOLOR                          (0x00000004)
#define NV054_BLEND_DESTBLEND_SRCALPHA                             (0x00000005)
#define NV054_BLEND_DESTBLEND_INVSRCALPHA                          (0x00000006)
#define NV054_BLEND_DESTBLEND_DESTALPHA                            (0x00000007)
#define NV054_BLEND_DESTBLEND_INVDESTALPHA                         (0x00000008)
#define NV054_BLEND_DESTBLEND_DESTCOLOR                            (0x00000009)
#define NV054_BLEND_DESTBLEND_INVDESTCOLOR                         (0x0000000A)
#define NV054_BLEND_DESTBLEND_SRCALPHASAT                          (0x0000000B)
#define NV054_CONTROL                                              (0x00000314)
#define NV054_CONTROL_ALPHAREF                                     7:0
#define NV054_CONTROL_ALPHAFUNC                                    11:8
#define NV054_CONTROL_ALPHAFUNC_NEVER                              (0x00000001)
#define NV054_CONTROL_ALPHAFUNC_LESS                               (0x00000002)
#define NV054_CONTROL_ALPHAFUNC_EQUAL                              (0x00000003)
#define NV054_CONTROL_ALPHAFUNC_LESSEQUAL                          (0x00000004)
#define NV054_CONTROL_ALPHAFUNC_GREATER                            (0x00000005)
#define NV054_CONTROL_ALPHAFUNC_NOTEQUAL                           (0x00000006)
#define NV054_CONTROL_ALPHAFUNC_GREATEREQUAL                       (0x00000007)
#define NV054_CONTROL_ALPHAFUNC_ALWAYS                             (0x00000008)
#define NV054_CONTROL_ALPHATESTENABLE                              12:12
#define NV054_CONTROL_ALPHATESTENABLE_FALSE                        (0x00000000)
#define NV054_CONTROL_ALPHATESTENABLE_TRUE                         (0x00000001)
#define NV054_CONTROL_ORIGIN                                       13:13
#define NV054_CONTROL_ORIGIN_CENTER                                (0x00000000)
#define NV054_CONTROL_ORIGIN_CORNER                                (0x00000001)
#define NV054_CONTROL_ZENABLE                                      15:14
#define NV054_CONTROL_ZENABLE_FALSE                                (0x00000000)
#define NV054_CONTROL_ZENABLE_TRUE                                 (0x00000001)
#define NV054_CONTROL_ZFUNC                                        19:16
#define NV054_CONTROL_ZFUNC_NEVER                                  (0x00000001)
#define NV054_CONTROL_ZFUNC_LESS                                   (0x00000002)
#define NV054_CONTROL_ZFUNC_EQUAL                                  (0x00000003)
#define NV054_CONTROL_ZFUNC_LESSEQUAL                              (0x00000004)
#define NV054_CONTROL_ZFUNC_GREATER                                (0x00000005)
#define NV054_CONTROL_ZFUNC_NOTEQUAL                               (0x00000006)
#define NV054_CONTROL_ZFUNC_GREATEREQUAL                           (0x00000007)
#define NV054_CONTROL_ZFUNC_ALWAYS                                 (0x00000008)
#define NV054_CONTROL_CULLMODE                                     21:20
#define NV054_CONTROL_CULLMODE_NONE                                (0x00000001)
#define NV054_CONTROL_CULLMODE_CW                                  (0x00000002)
#define NV054_CONTROL_CULLMODE_CCW                                 (0x00000003)
#define NV054_CONTROL_DITHERENABLE                                 22:22
#define NV054_CONTROL_DITHERENABLE_FALSE                           (0x00000000)
#define NV054_CONTROL_DITHERENABLE_TRUE                            (0x00000001)
#define NV054_CONTROL_Z_PERSPECTIVE_ENABLE                         23:23
#define NV054_CONTROL_Z_PERSPECTIVE_ENABLE_FALSE                   (0x00000000)
#define NV054_CONTROL_Z_PERSPECTIVE_ENABLE_TRUE                    (0x00000001)
#define NV054_CONTROL_ZWRITEENABLE                                 29:24
#define NV054_CONTROL_ZWRITEENABLE_FALSE                           (0x00000000)
#define NV054_CONTROL_ZWRITEENABLE_TRUE                            (0x00000001)
#define NV054_CONTROL_Z_FORMAT                                     31:30
#define NV054_CONTROL_Z_FORMAT_FIXED                               (0x00000001)
#define NV054_CONTROL_Z_FORMAT_FLOAT                               (0x00000002)
#define NV054_FOG_COLOR                                            (0x00000318)
#define NV054_TLVERTEX(i)                                          (0x00000400\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_SX(i)                                       (0x00000400\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_SY(i)                                       (0x00000404\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_SZ(i)                                       (0x00000408\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_RHW(i)                                      (0x0000040C\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_COLOR(i)                                    (0x00000410\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_COLOR_BLUE                                  7:0
#define NV054_TLVERTEX_COLOR_GREEN                                 15:8
#define NV054_TLVERTEX_COLOR_RED                                   23:16
#define NV054_TLVERTEX_COLOR_ALPHA                                 31:24
#define NV054_TLVERTEX_SPECULAR(i)                                 (0x00000414\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_SPECULAR_BLUE                               7:0
#define NV054_TLVERTEX_SPECULAR_GREEN                              15:8
#define NV054_TLVERTEX_SPECULAR_RED                                23:16
#define NV054_TLVERTEX_SPECULAR_FOG                                31:24
#define NV054_TLVERTEX_TU(i)                                       (0x00000418\
                                                                   +(i)*0x0020)
#define NV054_TLVERTEX_TV(i)                                       (0x0000041C\
                                                                   +(i)*0x0020)
#define NV054_DRAW_PRIMITIVE(a)                                    (0x00000600\
                                                                   +(a)*0x0004)
#define NV054_DRAW_PRIMITIVE_I0                                    3:0
#define NV054_DRAW_PRIMITIVE_I1                                    7:4
#define NV054_DRAW_PRIMITIVE_I2                                    11:8
#define NV054_DRAW_PRIMITIVE_I3                                    15:12
#define NV054_DRAW_PRIMITIVE_I4                                    19:16
#define NV054_DRAW_PRIMITIVE_I5                                    31:20
/* obsolete stuff */
#define NV4_DX5_TEXTURED_TRIANGLE                                  (0x00000054)
#define Nv4Dx5TexturedTriangle                          Nv04Dx5TexturedTriangle
#define nv4Dx5TexturedTriangle                          Nv04Dx5TexturedTriangle
#define nv04Dx5TexturedTriangle                         Nv04Dx5TexturedTriangle


/* class NV04_DX6_MULTI_TEXTURE_TRIANGLE */
#define  NV04_DX6_MULTI_TEXTURE_TRIANGLE                           (0x00000055)
/* NvNotification[] elements */
#define NV055_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV055_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV055_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV055_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV055_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV055_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV055_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV055_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaA;          /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaB;          /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 SetContextSurfaces;      /* NV04_CONTEXT_SURFACES_3D         018c-018f*/
 NvV32 Reserved01[0x05e];
 NvU32 Offset[2];               /* offset in bytes                  0308-030f*/
 NvV32 Format[2];               /* see text                         0310-0317*/
 NvV32 Filter[2];               /* see text                         0318-031f*/
 NvV32 Combine0Alpha;           /* see text                         0320-0323*/
 NvV32 Combine0Color;           /* see text                         0324-0327*/
 NvV32 Reserved02[0x001];
 NvV32 Combine1Alpha;           /* see text                         032c-032f*/
 NvV32 Combine1Color;           /* see text                         0330-0333*/
 NvV32 CombineFactor;           /* A8R8G8B8                         0334-0337*/
 NvV32 Blend;                   /* see text                         0338-033b*/
 NvV32 Control0;                /* see text                         033c-033f*/
 NvV32 Control1;                /* see text                         0340-0343*/
 NvV32 Control2;                /* see text                         0344-0347*/
 NvV32 FogColor;                /* X8R8G8B8 fog color               0348-034b*/
 NvV32 Reserved03[0x02D];
 struct {                       /* start of methods in array        0400-    */
  NvF32 sx;                     /* screen x coordinate                00-  03*/
  NvF32 sy;                     /* screen y coordinate                04-  07*/
  NvF32 sz;                     /* screen z coordinate                08-  0b*/
  NvF32 rhw;                    /* reciprocal homogeneous W (1/W)     0c-  0f*/
  NvV32 color;                  /* A8R8G8B8                           10-  13*/
  NvV32 specular;               /* F8R8G8B8                           14-  17*/
  NvF32 tu0;                    /* texture 0 u coordinate             18-  1b*/
  NvF32 tv0;                    /* texture 0 v coordinate             1c-  1f*/
  NvF32 tu1;                    /* texture 1 u coordinate             20-  23*/
  NvF32 tv1;                    /* texture 1 v coordinate             24-  27*/
 } Tlmtvertex[8];               /* end of methods in array              -053f*/
 NvV32 DrawPrimitive[48];       /* see text                         0540-05ff*/
 NvV32 Reserved04[0x680];
} Nv055Typedef, Nv04Dx6MultiTextureTriangle;
#define NV055_TYPEDEF                               Nv04Dx6MultiTextureTriangle
/* dma method offsets, fields, and values */
#define NV055_SET_OBJECT                                           (0x00000000)
#define NV055_NO_OPERATION                                         (0x00000100)
#define NV055_NOTIFY                                               (0x00000104)
#define NV055_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV055_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV055_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV055_SET_CONTEXT_DMA_A                                    (0x00000184)
#define NV055_SET_CONTEXT_DMA_B                                    (0x00000188)
#define NV055_SET_CONTEXT_SURFACES                                 (0x0000018C)
#define NV055_OFFSET(b)                                            (0x00000308\
                                                                   +(b)*0x0004)
#define NV055_FORMAT(b)                                            (0x00000310\
                                                                   +(b)*0x0004)
#define NV055_FORMAT_CONTEXT_DMA                                   3:0
#define NV055_FORMAT_CONTEXT_DMA_A                                 (0x00000001)
#define NV055_FORMAT_CONTEXT_DMA_B                                 (0x00000002)
#define NV055_FORMAT_ORIGIN_ZOH                                    5:4
#define NV055_FORMAT_ORIGIN_ZOH_CENTER                             (0x00000001)
#define NV055_FORMAT_ORIGIN_ZOH_CORNER                             (0x00000002)
#define NV055_FORMAT_ORIGIN_FOH                                    7:6
#define NV055_FORMAT_ORIGIN_FOH_CENTER                             (0x00000001)
#define NV055_FORMAT_ORIGIN_FOH_CORNER                             (0x00000002)
#define NV055_FORMAT_COLOR                                         11:8
#define NV055_FORMAT_COLOR_LE_AY8                                  (0x00000001)
#define NV055_FORMAT_COLOR_LE_A1R5G5B5                             (0x00000002)
#define NV055_FORMAT_COLOR_LE_X1R5G5B5                             (0x00000003)
#define NV055_FORMAT_COLOR_LE_A4R4G4B4                             (0x00000004)
#define NV055_FORMAT_COLOR_LE_R5G6B5                               (0x00000005)
#define NV055_FORMAT_COLOR_LE_A8R8G8B8                             (0x00000006)
#define NV055_FORMAT_COLOR_LE_X8R8G8B8                             (0x00000007)
#define NV055_FORMAT_MIPMAP_LEVELS                                 15:12
#define NV055_FORMAT_BASE_SIZE_U                                   19:16
#define NV055_FORMAT_BASE_SIZE_U_1                                 (0x00000000)
#define NV055_FORMAT_BASE_SIZE_U_2                                 (0x00000001)
#define NV055_FORMAT_BASE_SIZE_U_4                                 (0x00000002)
#define NV055_FORMAT_BASE_SIZE_U_8                                 (0x00000003)
#define NV055_FORMAT_BASE_SIZE_U_16                                (0x00000004)
#define NV055_FORMAT_BASE_SIZE_U_32                                (0x00000005)
#define NV055_FORMAT_BASE_SIZE_U_64                                (0x00000006)
#define NV055_FORMAT_BASE_SIZE_U_128                               (0x00000007)
#define NV055_FORMAT_BASE_SIZE_U_256                               (0x00000008)
#define NV055_FORMAT_BASE_SIZE_U_512                               (0x00000009)
#define NV055_FORMAT_BASE_SIZE_U_1024                              (0x0000000A)
#define NV055_FORMAT_BASE_SIZE_U_2048                              (0x0000000B)
#define NV055_FORMAT_BASE_SIZE_V                                   23:20
#define NV055_FORMAT_BASE_SIZE_V_1                                 (0x00000000)
#define NV055_FORMAT_BASE_SIZE_V_2                                 (0x00000001)
#define NV055_FORMAT_BASE_SIZE_V_4                                 (0x00000002)
#define NV055_FORMAT_BASE_SIZE_V_8                                 (0x00000003)
#define NV055_FORMAT_BASE_SIZE_V_16                                (0x00000004)
#define NV055_FORMAT_BASE_SIZE_V_32                                (0x00000005)
#define NV055_FORMAT_BASE_SIZE_V_64                                (0x00000006)
#define NV055_FORMAT_BASE_SIZE_V_128                               (0x00000007)
#define NV055_FORMAT_BASE_SIZE_V_256                               (0x00000008)
#define NV055_FORMAT_BASE_SIZE_V_512                               (0x00000009)
#define NV055_FORMAT_BASE_SIZE_V_1024                              (0x0000000A)
#define NV055_FORMAT_BASE_SIZE_V_2048                              (0x0000000B)
#define NV055_FORMAT_TEXTUREADDRESSU                               26:24
#define NV055_FORMAT_TEXTUREADDRESSU_WRAP                          (0x00000001)
#define NV055_FORMAT_TEXTUREADDRESSU_MIRROR                        (0x00000002)
#define NV055_FORMAT_TEXTUREADDRESSU_CLAMP                         (0x00000003)
#define NV055_FORMAT_TEXTUREADDRESSU_BORDER                        (0x00000004)
#define NV055_FORMAT_WRAPU                                         27:27
#define NV055_FORMAT_WRAPU_FALSE                                   (0x00000000)
#define NV055_FORMAT_WRAPU_TRUE                                    (0x00000001)
#define NV055_FORMAT_TEXTUREADDRESSV                               30:28
#define NV055_FORMAT_TEXTUREADDRESSV_WRAP                          (0x00000001)
#define NV055_FORMAT_TEXTUREADDRESSV_MIRROR                        (0x00000002)
#define NV055_FORMAT_TEXTUREADDRESSV_CLAMP                         (0x00000003)
#define NV055_FORMAT_TEXTUREADDRESSV_BORDER                        (0x00000004)
#define NV055_FORMAT_WRAPV                                         31:31
#define NV055_FORMAT_WRAPV_FALSE                                   (0x00000000)
#define NV055_FORMAT_WRAPV_TRUE                                    (0x00000001)
#define NV055_FILTER(b)                                            (0x00000318\
                                                                   +(b)*0x0004)
#define NV055_FILTER_KERNEL_SIZE_X                                 7:0
#define NV055_FILTER_KERNEL_SIZE_Y                                 14:8
#define NV055_FILTER_MIPMAP_DITHER_ENABLE                          15:15
#define NV055_FILTER_MIPMAP_DITHER_ENABLE_FALSE                    (0x00000000)
#define NV055_FILTER_MIPMAP_DITHER_ENABLE_TRUE                     (0x00000001)
#define NV055_FILTER_MIPMAPLODBIAS                                 23:16
#define NV055_FILTER_TEXTUREMIN                                    26:24
#define NV055_FILTER_TEXTUREMIN_NEAREST                            (0x00000001)
#define NV055_FILTER_TEXTUREMIN_LINEAR                             (0x00000002)
#define NV055_FILTER_TEXTUREMIN_MIPNEAREST                         (0x00000003)
#define NV055_FILTER_TEXTUREMIN_MIPLINEAR                          (0x00000004)
#define NV055_FILTER_TEXTUREMIN_LINEARMIPNEAREST                   (0x00000005)
#define NV055_FILTER_TEXTUREMIN_LINEARMIPLINEAR                    (0x00000006)
#define NV055_FILTER_ANISOTROPIC_MINIFY_ENABLE                     27:27
#define NV055_FILTER_ANISOTROPIC_MINIFY_ENABLE_FALSE               (0x00000000)
#define NV055_FILTER_ANISOTROPIC_MINIFY_ENABLE_TRUE                (0x00000001)
#define NV055_FILTER_TEXTUREMAG                                    30:28
#define NV055_FILTER_TEXTUREMAG_NEAREST                            (0x00000001)
#define NV055_FILTER_TEXTUREMAG_LINEAR                             (0x00000002)
#define NV055_FILTER_TEXTUREMAG_MIPNEAREST                         (0x00000003)
#define NV055_FILTER_TEXTUREMAG_MIPLINEAR                          (0x00000004)
#define NV055_FILTER_TEXTUREMAG_LINEARMIPNEAREST                   (0x00000005)
#define NV055_FILTER_TEXTUREMAG_LINEARMIPLINEAR                    (0x00000006)
#define NV055_FILTER_ANISOTROPIC_MAGNIFY_ENABLE                    31:31
#define NV055_FILTER_ANISOTROPIC_MAGNIFY_ENABLE_FALSE              (0x00000000)
#define NV055_FILTER_ANISOTROPIC_MAGNIFY_ENABLE_TRUE               (0x00000001)
#define NV055_COMBINE_0_ALPHA                                      (0x00000320)
#define NV055_COMBINE_0_ALPHA_INVERSE_0                            0:0
#define NV055_COMBINE_0_ALPHA_INVERSE_0_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_ALPHA_INVERSE_0_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_ALPHA_ALPHA_0                              1:1
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0                           7:2
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0_ZERO                      (0x00000001)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0_INPUT                     (0x00000004)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_ALPHA_INVERSE_1                            8:8
#define NV055_COMBINE_0_ALPHA_INVERSE_1_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_ALPHA_INVERSE_1_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_ALPHA_ALPHA_1                              9:9
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1                           15:10
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1_ZERO                      (0x00000001)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1_INPUT                     (0x00000004)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_ALPHA_INVERSE_2                            16:16
#define NV055_COMBINE_0_ALPHA_INVERSE_2_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_ALPHA_INVERSE_2_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_ALPHA_ALPHA_2                              17:17
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2                           23:18
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2_ZERO                      (0x00000001)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2_INPUT                     (0x00000004)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_ALPHA_INVERSE_3                            24:24
#define NV055_COMBINE_0_ALPHA_INVERSE_3_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_ALPHA_INVERSE_3_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_ALPHA_ALPHA_3                              25:25
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3                           28:26
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3_ZERO                      (0x00000001)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3_INPUT                     (0x00000004)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_ALPHA_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_ALPHA_OPERATION                            31:29
#define NV055_COMBINE_0_ALPHA_OPERATION_ADD                        (0x00000001)
#define NV055_COMBINE_0_ALPHA_OPERATION_ADD2                       (0x00000002)
#define NV055_COMBINE_0_ALPHA_OPERATION_ADD4                       (0x00000003)
#define NV055_COMBINE_0_ALPHA_OPERATION_ADDSIGNED                  (0x00000004)
#define NV055_COMBINE_0_ALPHA_OPERATION_MUX                        (0x00000005)
#define NV055_COMBINE_0_ALPHA_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV055_COMBINE_0_ALPHA_OPERATION_ADDSIGNED2                 (0x00000007)
#define NV055_COMBINE_0_COLOR                                      (0x00000324)
#define NV055_COMBINE_0_COLOR_INVERSE_0                            0:0
#define NV055_COMBINE_0_COLOR_INVERSE_0_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_COLOR_INVERSE_0_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_COLOR_ALPHA_0                              1:1
#define NV055_COMBINE_0_COLOR_ALPHA_0_COLOR                        (0x00000000)
#define NV055_COMBINE_0_COLOR_ALPHA_0_ALPHA                        (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_0                           7:2
#define NV055_COMBINE_0_COLOR_ARGUMENT_0_ZERO                      (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_COLOR_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_COLOR_ARGUMENT_0_INPUT                     (0x00000004)
#define NV055_COMBINE_0_COLOR_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_COLOR_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_COLOR_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_COLOR_INVERSE_1                            8:8
#define NV055_COMBINE_0_COLOR_INVERSE_1_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_COLOR_INVERSE_1_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_COLOR_ALPHA_1                              9:9
#define NV055_COMBINE_0_COLOR_ALPHA_1_COLOR                        (0x00000000)
#define NV055_COMBINE_0_COLOR_ALPHA_1_ALPHA                        (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_1                           15:10
#define NV055_COMBINE_0_COLOR_ARGUMENT_1_ZERO                      (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_COLOR_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_COLOR_ARGUMENT_1_INPUT                     (0x00000004)
#define NV055_COMBINE_0_COLOR_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_COLOR_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_COLOR_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_COLOR_INVERSE_2                            16:16
#define NV055_COMBINE_0_COLOR_INVERSE_2_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_COLOR_INVERSE_2_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_COLOR_ALPHA_2                              17:17
#define NV055_COMBINE_0_COLOR_ALPHA_2_COLOR                        (0x00000000)
#define NV055_COMBINE_0_COLOR_ALPHA_2_ALPHA                        (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_2                           23:18
#define NV055_COMBINE_0_COLOR_ARGUMENT_2_ZERO                      (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_COLOR_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_COLOR_ARGUMENT_2_INPUT                     (0x00000004)
#define NV055_COMBINE_0_COLOR_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_COLOR_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_COLOR_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_COLOR_INVERSE_3                            24:24
#define NV055_COMBINE_0_COLOR_INVERSE_3_NORMAL                     (0x00000000)
#define NV055_COMBINE_0_COLOR_INVERSE_3_INVERSE                    (0x00000001)
#define NV055_COMBINE_0_COLOR_ALPHA_3                              25:25
#define NV055_COMBINE_0_COLOR_ALPHA_3_COLOR                        (0x00000000)
#define NV055_COMBINE_0_COLOR_ALPHA_3_ALPHA                        (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_3                           28:26
#define NV055_COMBINE_0_COLOR_ARGUMENT_3_ZERO                      (0x00000001)
#define NV055_COMBINE_0_COLOR_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV055_COMBINE_0_COLOR_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_0_COLOR_ARGUMENT_3_INPUT                     (0x00000004)
#define NV055_COMBINE_0_COLOR_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_0_COLOR_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_0_COLOR_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_0_COLOR_OPERATION                            31:29
#define NV055_COMBINE_0_COLOR_OPERATION_ADD                        (0x00000001)
#define NV055_COMBINE_0_COLOR_OPERATION_ADD2                       (0x00000002)
#define NV055_COMBINE_0_COLOR_OPERATION_ADD4                       (0x00000003)
#define NV055_COMBINE_0_COLOR_OPERATION_ADDSIGNED                  (0x00000004)
#define NV055_COMBINE_0_COLOR_OPERATION_MUX                        (0x00000005)
#define NV055_COMBINE_0_COLOR_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV055_COMBINE_0_COLOR_OPERATION_ADDSIGNED2                 (0x00000007)
#define NV055_COMBINE_1_ALPHA                                      (0x0000032C)
#define NV055_COMBINE_1_ALPHA_INVERSE_0                            0:0
#define NV055_COMBINE_1_ALPHA_INVERSE_0_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_ALPHA_INVERSE_0_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_ALPHA_ALPHA_0                              1:1
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0                           7:2
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0_ZERO                      (0x00000001)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0_INPUT                     (0x00000004)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_ALPHA_INVERSE_1                            8:8
#define NV055_COMBINE_1_ALPHA_INVERSE_1_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_ALPHA_INVERSE_1_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_ALPHA_ALPHA_1                              9:9
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1                           15:10
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1_ZERO                      (0x00000001)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1_INPUT                     (0x00000004)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_ALPHA_INVERSE_2                            16:16
#define NV055_COMBINE_1_ALPHA_INVERSE_2_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_ALPHA_INVERSE_2_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_ALPHA_ALPHA_2                              17:17
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2                           23:18
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2_ZERO                      (0x00000001)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2_INPUT                     (0x00000004)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_ALPHA_INVERSE_3                            24:24
#define NV055_COMBINE_1_ALPHA_INVERSE_3_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_ALPHA_INVERSE_3_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_ALPHA_ALPHA_3                              25:25
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3                           28:26
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3_ZERO                      (0x00000001)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3_INPUT                     (0x00000004)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_ALPHA_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_ALPHA_OPERATION                            31:29
#define NV055_COMBINE_1_ALPHA_OPERATION_ADD                        (0x00000001)
#define NV055_COMBINE_1_ALPHA_OPERATION_ADD2                       (0x00000002)
#define NV055_COMBINE_1_ALPHA_OPERATION_ADD4                       (0x00000003)
#define NV055_COMBINE_1_ALPHA_OPERATION_ADDSIGNED                  (0x00000004)
#define NV055_COMBINE_1_ALPHA_OPERATION_MUX                        (0x00000005)
#define NV055_COMBINE_1_ALPHA_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV055_COMBINE_1_ALPHA_OPERATION_ADDSIGNED2                 (0x00000007)
#define NV055_COMBINE_1_COLOR                                      (0x00000330)
#define NV055_COMBINE_1_COLOR_INVERSE_0                            0:0
#define NV055_COMBINE_1_COLOR_INVERSE_0_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_COLOR_INVERSE_0_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_COLOR_ALPHA_0                              1:1
#define NV055_COMBINE_1_COLOR_ALPHA_0_COLOR                        (0x00000000)
#define NV055_COMBINE_1_COLOR_ALPHA_0_ALPHA                        (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_0                           7:2
#define NV055_COMBINE_1_COLOR_ARGUMENT_0_ZERO                      (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_COLOR_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_COLOR_ARGUMENT_0_INPUT                     (0x00000004)
#define NV055_COMBINE_1_COLOR_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_COLOR_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_COLOR_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_COLOR_INVERSE_1                            8:8
#define NV055_COMBINE_1_COLOR_INVERSE_1_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_COLOR_INVERSE_1_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_COLOR_ALPHA_1                              9:9
#define NV055_COMBINE_1_COLOR_ALPHA_1_COLOR                        (0x00000000)
#define NV055_COMBINE_1_COLOR_ALPHA_1_ALPHA                        (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_1                           15:10
#define NV055_COMBINE_1_COLOR_ARGUMENT_1_ZERO                      (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_COLOR_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_COLOR_ARGUMENT_1_INPUT                     (0x00000004)
#define NV055_COMBINE_1_COLOR_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_COLOR_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_COLOR_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_COLOR_INVERSE_2                            16:16
#define NV055_COMBINE_1_COLOR_INVERSE_2_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_COLOR_INVERSE_2_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_COLOR_ALPHA_2                              17:17
#define NV055_COMBINE_1_COLOR_ALPHA_2_COLOR                        (0x00000000)
#define NV055_COMBINE_1_COLOR_ALPHA_2_ALPHA                        (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_2                           23:18
#define NV055_COMBINE_1_COLOR_ARGUMENT_2_ZERO                      (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_COLOR_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_COLOR_ARGUMENT_2_INPUT                     (0x00000004)
#define NV055_COMBINE_1_COLOR_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_COLOR_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_COLOR_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_COLOR_INVERSE_3                            24:24
#define NV055_COMBINE_1_COLOR_INVERSE_3_NORMAL                     (0x00000000)
#define NV055_COMBINE_1_COLOR_INVERSE_3_INVERSE                    (0x00000001)
#define NV055_COMBINE_1_COLOR_ALPHA_3                              25:25
#define NV055_COMBINE_1_COLOR_ALPHA_3_COLOR                        (0x00000000)
#define NV055_COMBINE_1_COLOR_ALPHA_3_ALPHA                        (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_3                           28:26
#define NV055_COMBINE_1_COLOR_ARGUMENT_3_ZERO                      (0x00000001)
#define NV055_COMBINE_1_COLOR_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV055_COMBINE_1_COLOR_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV055_COMBINE_1_COLOR_ARGUMENT_3_INPUT                     (0x00000004)
#define NV055_COMBINE_1_COLOR_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV055_COMBINE_1_COLOR_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV055_COMBINE_1_COLOR_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV055_COMBINE_1_COLOR_OPERATION                            31:29
#define NV055_COMBINE_1_COLOR_OPERATION_ADD                        (0x00000001)
#define NV055_COMBINE_1_COLOR_OPERATION_ADD2                       (0x00000002)
#define NV055_COMBINE_1_COLOR_OPERATION_ADD4                       (0x00000003)
#define NV055_COMBINE_1_COLOR_OPERATION_ADDSIGNED                  (0x00000004)
#define NV055_COMBINE_1_COLOR_OPERATION_MUX                        (0x00000005)
#define NV055_COMBINE_1_COLOR_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV055_COMBINE_1_COLOR_OPERATION_ADDSIGNED2                 (0x00000007)
/* The following NV055_COMBINE_*** defines can be used without regard to the combiner number */
#define NV055_COMBINE_ALPHA_INVERSE_0                              0:0
#define NV055_COMBINE_ALPHA_INVERSE_0_NORMAL                       (0x00000000)
#define NV055_COMBINE_ALPHA_INVERSE_0_INVERSE                      (0x00000001)
#define NV055_COMBINE_ALPHA_ALPHA_0                                1:1
#define NV055_COMBINE_ALPHA_ARGUMENT_0                             7:2
#define NV055_COMBINE_ALPHA_ARGUMENT_0_ZERO                        (0x00000001)
#define NV055_COMBINE_ALPHA_ARGUMENT_0_FACTOR                      (0x00000002)
#define NV055_COMBINE_ALPHA_ARGUMENT_0_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_ALPHA_ARGUMENT_0_INPUT                       (0x00000004)
#define NV055_COMBINE_ALPHA_ARGUMENT_0_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_ALPHA_ARGUMENT_0_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_ALPHA_ARGUMENT_0_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_ALPHA_INVERSE_1                              8:8
#define NV055_COMBINE_ALPHA_INVERSE_1_NORMAL                       (0x00000000)
#define NV055_COMBINE_ALPHA_INVERSE_1_INVERSE                      (0x00000001)
#define NV055_COMBINE_ALPHA_ALPHA_1                                9:9
#define NV055_COMBINE_ALPHA_ARGUMENT_1                             15:10
#define NV055_COMBINE_ALPHA_ARGUMENT_1_ZERO                        (0x00000001)
#define NV055_COMBINE_ALPHA_ARGUMENT_1_FACTOR                      (0x00000002)
#define NV055_COMBINE_ALPHA_ARGUMENT_1_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_ALPHA_ARGUMENT_1_INPUT                       (0x00000004)
#define NV055_COMBINE_ALPHA_ARGUMENT_1_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_ALPHA_ARGUMENT_1_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_ALPHA_ARGUMENT_1_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_ALPHA_INVERSE_2                              16:16
#define NV055_COMBINE_ALPHA_INVERSE_2_NORMAL                       (0x00000000)
#define NV055_COMBINE_ALPHA_INVERSE_2_INVERSE                      (0x00000001)
#define NV055_COMBINE_ALPHA_ALPHA_2                                17:17
#define NV055_COMBINE_ALPHA_ARGUMENT_2                             23:18
#define NV055_COMBINE_ALPHA_ARGUMENT_2_ZERO                        (0x00000001)
#define NV055_COMBINE_ALPHA_ARGUMENT_2_FACTOR                      (0x00000002)
#define NV055_COMBINE_ALPHA_ARGUMENT_2_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_ALPHA_ARGUMENT_2_INPUT                       (0x00000004)
#define NV055_COMBINE_ALPHA_ARGUMENT_2_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_ALPHA_ARGUMENT_2_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_ALPHA_ARGUMENT_2_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_ALPHA_INVERSE_3                              24:24
#define NV055_COMBINE_ALPHA_INVERSE_3_NORMAL                       (0x00000000)
#define NV055_COMBINE_ALPHA_INVERSE_3_INVERSE                      (0x00000001)
#define NV055_COMBINE_ALPHA_ALPHA_3                                25:25
#define NV055_COMBINE_ALPHA_ARGUMENT_3                             28:26
#define NV055_COMBINE_ALPHA_ARGUMENT_3_ZERO                        (0x00000001)
#define NV055_COMBINE_ALPHA_ARGUMENT_3_FACTOR                      (0x00000002)
#define NV055_COMBINE_ALPHA_ARGUMENT_3_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_ALPHA_ARGUMENT_3_INPUT                       (0x00000004)
#define NV055_COMBINE_ALPHA_ARGUMENT_3_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_ALPHA_ARGUMENT_3_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_ALPHA_ARGUMENT_3_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_ALPHA_OPERATION                              31:29
#define NV055_COMBINE_ALPHA_OPERATION_ADD                          (0x00000001)
#define NV055_COMBINE_ALPHA_OPERATION_ADD2                         (0x00000002)
#define NV055_COMBINE_ALPHA_OPERATION_ADD4                         (0x00000003)
#define NV055_COMBINE_ALPHA_OPERATION_ADDSIGNED                    (0x00000004)
#define NV055_COMBINE_ALPHA_OPERATION_MUX                          (0x00000005)
#define NV055_COMBINE_ALPHA_OPERATION_ADDCOMPLEMENT                (0x00000006)
#define NV055_COMBINE_ALPHA_OPERATION_ADDSIGNED2                   (0x00000007)
#define NV055_COMBINE_COLOR_INVERSE_0                              0:0
#define NV055_COMBINE_COLOR_INVERSE_0_NORMAL                       (0x00000000)
#define NV055_COMBINE_COLOR_INVERSE_0_INVERSE                      (0x00000001)
#define NV055_COMBINE_COLOR_ALPHA_0                                1:1
#define NV055_COMBINE_COLOR_ALPHA_0_COLOR                          (0x00000000)
#define NV055_COMBINE_COLOR_ALPHA_0_ALPHA                          (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_0                             7:2
#define NV055_COMBINE_COLOR_ARGUMENT_0_ZERO                        (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_0_FACTOR                      (0x00000002)
#define NV055_COMBINE_COLOR_ARGUMENT_0_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_COLOR_ARGUMENT_0_INPUT                       (0x00000004)
#define NV055_COMBINE_COLOR_ARGUMENT_0_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_COLOR_ARGUMENT_0_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_COLOR_ARGUMENT_0_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_COLOR_INVERSE_1                              8:8
#define NV055_COMBINE_COLOR_INVERSE_1_NORMAL                       (0x00000000)
#define NV055_COMBINE_COLOR_INVERSE_1_INVERSE                      (0x00000001)
#define NV055_COMBINE_COLOR_ALPHA_1                                9:9
#define NV055_COMBINE_COLOR_ALPHA_1_COLOR                          (0x00000000)
#define NV055_COMBINE_COLOR_ALPHA_1_ALPHA                          (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_1                             15:10
#define NV055_COMBINE_COLOR_ARGUMENT_1_ZERO                        (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_1_FACTOR                      (0x00000002)
#define NV055_COMBINE_COLOR_ARGUMENT_1_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_COLOR_ARGUMENT_1_INPUT                       (0x00000004)
#define NV055_COMBINE_COLOR_ARGUMENT_1_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_COLOR_ARGUMENT_1_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_COLOR_ARGUMENT_1_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_COLOR_INVERSE_2                              16:16
#define NV055_COMBINE_COLOR_INVERSE_2_NORMAL                       (0x00000000)
#define NV055_COMBINE_COLOR_INVERSE_2_INVERSE                      (0x00000001)
#define NV055_COMBINE_COLOR_ALPHA_2                                17:17
#define NV055_COMBINE_COLOR_ALPHA_2_COLOR                          (0x00000000)
#define NV055_COMBINE_COLOR_ALPHA_2_ALPHA                          (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_2                             23:18
#define NV055_COMBINE_COLOR_ARGUMENT_2_ZERO                        (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_2_FACTOR                      (0x00000002)
#define NV055_COMBINE_COLOR_ARGUMENT_2_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_COLOR_ARGUMENT_2_INPUT                       (0x00000004)
#define NV055_COMBINE_COLOR_ARGUMENT_2_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_COLOR_ARGUMENT_2_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_COLOR_ARGUMENT_2_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_COLOR_INVERSE_3                              24:24
#define NV055_COMBINE_COLOR_INVERSE_3_NORMAL                       (0x00000000)
#define NV055_COMBINE_COLOR_INVERSE_3_INVERSE                      (0x00000001)
#define NV055_COMBINE_COLOR_ALPHA_3                                25:25
#define NV055_COMBINE_COLOR_ALPHA_3_COLOR                          (0x00000000)
#define NV055_COMBINE_COLOR_ALPHA_3_ALPHA                          (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_3                             28:26
#define NV055_COMBINE_COLOR_ARGUMENT_3_ZERO                        (0x00000001)
#define NV055_COMBINE_COLOR_ARGUMENT_3_FACTOR                      (0x00000002)
#define NV055_COMBINE_COLOR_ARGUMENT_3_DIFFUSE                     (0x00000003)
#define NV055_COMBINE_COLOR_ARGUMENT_3_INPUT                       (0x00000004)
#define NV055_COMBINE_COLOR_ARGUMENT_3_TEXTURE0                    (0x00000005)
#define NV055_COMBINE_COLOR_ARGUMENT_3_TEXTURE1                    (0x00000006)
#define NV055_COMBINE_COLOR_ARGUMENT_3_TEXTURELOD                  (0x00000007)
#define NV055_COMBINE_COLOR_OPERATION                              31:29
#define NV055_COMBINE_COLOR_OPERATION_ADD                          (0x00000001)
#define NV055_COMBINE_COLOR_OPERATION_ADD2                         (0x00000002)
#define NV055_COMBINE_COLOR_OPERATION_ADD4                         (0x00000003)
#define NV055_COMBINE_COLOR_OPERATION_ADDSIGNED                    (0x00000004)
#define NV055_COMBINE_COLOR_OPERATION_MUX                          (0x00000005)
#define NV055_COMBINE_COLOR_OPERATION_ADDCOMPLEMENT                (0x00000006)
#define NV055_COMBINE_COLOR_OPERATION_ADDSIGNED2                   (0x00000007)
#define NV055_COMBINE_FACTOR                                       (0x00000334)
#define NV055_COMBINE_FACTOR_BLUE                                  7:0
#define NV055_COMBINE_FACTOR_GREEN                                 15:8
#define NV055_COMBINE_FACTOR_RED                                   23:16
#define NV055_COMBINE_FACTOR_ALPHA                                 31:24
#define NV055_BLEND                                                (0x00000338)
#define NV055_BLEND_MASK_BIT                                       5:0
#define NV055_BLEND_MASK_BIT_LSB                                   (0x00000010)
#define NV055_BLEND_MASK_BIT_MSB                                   (0x00000020)
#define NV055_BLEND_SHADEMODE                                      7:6
#define NV055_BLEND_SHADEMODE_FLAT                                 (0x00000001)
#define NV055_BLEND_SHADEMODE_GOURAUD                              (0x00000002)
#define NV055_BLEND_SHADEMODE_PHONG                                (0x00000003)
#define NV055_BLEND_TEXTUREPERSPECTIVE                             11:8
#define NV055_BLEND_TEXTUREPERSPECTIVE_FALSE                       (0x00000000)
#define NV055_BLEND_TEXTUREPERSPECTIVE_TRUE                        (0x00000001)
#define NV055_BLEND_SPECULARENABLE                                 15:12
#define NV055_BLEND_SPECULARENABLE_FALSE                           (0x00000000)
#define NV055_BLEND_SPECULARENABLE_TRUE                            (0x00000001)
#define NV055_BLEND_FOGENABLE                                      19:16
#define NV055_BLEND_FOGENABLE_FALSE                                (0x00000000)
#define NV055_BLEND_FOGENABLE_TRUE                                 (0x00000001)
#define NV055_BLEND_ALPHABLENDENABLE                               23:20
#define NV055_BLEND_ALPHABLENDENABLE_FALSE                         (0x00000000)
#define NV055_BLEND_ALPHABLENDENABLE_TRUE                          (0x00000001)
#define NV055_BLEND_SRCBLEND                                       27:24
#define NV055_BLEND_SRCBLEND_ZERO                                  (0x00000001)
#define NV055_BLEND_SRCBLEND_ONE                                   (0x00000002)
#define NV055_BLEND_SRCBLEND_SRCCOLOR                              (0x00000003)
#define NV055_BLEND_SRCBLEND_INVSRCCOLOR                           (0x00000004)
#define NV055_BLEND_SRCBLEND_SRCALPHA                              (0x00000005)
#define NV055_BLEND_SRCBLEND_INVSRCALPHA                           (0x00000006)
#define NV055_BLEND_SRCBLEND_DESTALPHA                             (0x00000007)
#define NV055_BLEND_SRCBLEND_INVDESTALPHA                          (0x00000008)
#define NV055_BLEND_SRCBLEND_DESTCOLOR                             (0x00000009)
#define NV055_BLEND_SRCBLEND_INVDESTCOLOR                          (0x0000000A)
#define NV055_BLEND_SRCBLEND_SRCALPHASAT                           (0x0000000B)
#define NV055_BLEND_DESTBLEND                                      31:28
#define NV055_BLEND_DESTBLEND_ZERO                                 (0x00000001)
#define NV055_BLEND_DESTBLEND_ONE                                  (0x00000002)
#define NV055_BLEND_DESTBLEND_SRCCOLOR                             (0x00000003)
#define NV055_BLEND_DESTBLEND_INVSRCCOLOR                          (0x00000004)
#define NV055_BLEND_DESTBLEND_SRCALPHA                             (0x00000005)
#define NV055_BLEND_DESTBLEND_INVSRCALPHA                          (0x00000006)
#define NV055_BLEND_DESTBLEND_DESTALPHA                            (0x00000007)
#define NV055_BLEND_DESTBLEND_INVDESTALPHA                         (0x00000008)
#define NV055_BLEND_DESTBLEND_DESTCOLOR                            (0x00000009)
#define NV055_BLEND_DESTBLEND_INVDESTCOLOR                         (0x0000000A)
#define NV055_BLEND_DESTBLEND_SRCALPHASAT                          (0x0000000B)
#define NV055_CONTROL0                                             (0x0000033C)
#define NV055_CONTROL0_ALPHAREF                                    7:0
#define NV055_CONTROL0_ALPHAFUNC                                   11:8
#define NV055_CONTROL0_ALPHAFUNC_NEVER                             (0x00000001)
#define NV055_CONTROL0_ALPHAFUNC_LESS                              (0x00000002)
#define NV055_CONTROL0_ALPHAFUNC_EQUAL                             (0x00000003)
#define NV055_CONTROL0_ALPHAFUNC_LESSEQUAL                         (0x00000004)
#define NV055_CONTROL0_ALPHAFUNC_GREATER                           (0x00000005)
#define NV055_CONTROL0_ALPHAFUNC_NOTEQUAL                          (0x00000006)
#define NV055_CONTROL0_ALPHAFUNC_GREATEREQUAL                      (0x00000007)
#define NV055_CONTROL0_ALPHAFUNC_ALWAYS                            (0x00000008)
#define NV055_CONTROL0_ALPHATESTENABLE                             12:12
#define NV055_CONTROL0_ALPHATESTENABLE_FALSE                       (0x00000000)
#define NV055_CONTROL0_ALPHATESTENABLE_TRUE                        (0x00000001)
#define NV055_CONTROL0_ORIGIN                                      13:13
#define NV055_CONTROL0_ORIGIN_CENTER                               (0x00000000)
#define NV055_CONTROL0_ORIGIN_CORNER                               (0x00000001)
#define NV055_CONTROL0_ZENABLE                                     15:14
#define NV055_CONTROL0_ZENABLE_FALSE                               (0x00000000)
#define NV055_CONTROL0_ZENABLE_TRUE                                (0x00000001)
#define NV055_CONTROL0_ZFUNC                                       19:16
#define NV055_CONTROL0_ZFUNC_NEVER                                 (0x00000001)
#define NV055_CONTROL0_ZFUNC_LESS                                  (0x00000002)
#define NV055_CONTROL0_ZFUNC_EQUAL                                 (0x00000003)
#define NV055_CONTROL0_ZFUNC_LESSEQUAL                             (0x00000004)
#define NV055_CONTROL0_ZFUNC_GREATER                               (0x00000005)
#define NV055_CONTROL0_ZFUNC_NOTEQUAL                              (0x00000006)
#define NV055_CONTROL0_ZFUNC_GREATEREQUAL                          (0x00000007)
#define NV055_CONTROL0_ZFUNC_ALWAYS                                (0x00000008)
#define NV055_CONTROL0_CULLMODE                                    21:20
#define NV055_CONTROL0_CULLMODE_NONE                               (0x00000001)
#define NV055_CONTROL0_CULLMODE_CW                                 (0x00000002)
#define NV055_CONTROL0_CULLMODE_CCW                                (0x00000003)
#define NV055_CONTROL0_DITHERENABLE                                22:22
#define NV055_CONTROL0_DITHERENABLE_FALSE                          (0x00000000)
#define NV055_CONTROL0_DITHERENABLE_TRUE                           (0x00000001)
#define NV055_CONTROL0_Z_PERSPECTIVE_ENABLE                        23:23
#define NV055_CONTROL0_Z_PERSPECTIVE_ENABLE_FALSE                  (0x00000000)
#define NV055_CONTROL0_Z_PERSPECTIVE_ENABLE_TRUE                   (0x00000001)
#define NV055_CONTROL0_ZWRITEENABLE                                24:24
#define NV055_CONTROL0_ZWRITEENABLE_FALSE                          (0x00000000)
#define NV055_CONTROL0_ZWRITEENABLE_TRUE                           (0x00000001)
#define NV055_CONTROL0_STENCIL_WRITE_ENABLE                        25:25
#define NV055_CONTROL0_STENCIL_WRITE_ENABLE_FALSE                  (0x00000000)
#define NV055_CONTROL0_STENCIL_WRITE_ENABLE_TRUE                   (0x00000001)
#define NV055_CONTROL0_ALPHA_WRITE_ENABLE                          26:26
#define NV055_CONTROL0_ALPHA_WRITE_ENABLE_FALSE                    (0x00000000)
#define NV055_CONTROL0_ALPHA_WRITE_ENABLE_TRUE                     (0x00000001)
#define NV055_CONTROL0_RED_WRITE_ENABLE                            27:27
#define NV055_CONTROL0_RED_WRITE_ENABLE_FALSE                      (0x00000000)
#define NV055_CONTROL0_RED_WRITE_ENABLE_TRUE                       (0x00000001)
#define NV055_CONTROL0_GREEN_WRITE_ENABLE                          28:28
#define NV055_CONTROL0_GREEN_WRITE_ENABLE_FALSE                    (0x00000000)
#define NV055_CONTROL0_GREEN_WRITE_ENABLE_TRUE                     (0x00000001)
#define NV055_CONTROL0_BLUE_WRITE_ENABLE                           29:29
#define NV055_CONTROL0_BLUE_WRITE_ENABLE_FALSE                     (0x00000000)
#define NV055_CONTROL0_BLUE_WRITE_ENABLE_TRUE                      (0x00000001)
#define NV055_CONTROL0_Z_FORMAT                                    31:30
#define NV055_CONTROL0_Z_FORMAT_FIXED                              (0x00000001)
#define NV055_CONTROL0_Z_FORMAT_FLOAT                              (0x00000002)
#define NV055_CONTROL1                                             (0x00000340)
#define NV055_CONTROL1_STENCIL_TEST_ENABLE                         3:0
#define NV055_CONTROL1_STENCIL_TEST_ENABLE_FALSE                   (0x00000000)
#define NV055_CONTROL1_STENCIL_TEST_ENABLE_TRUE                    (0x00000001)
#define NV055_CONTROL1_STENCIL_FUNC                                7:4
#define NV055_CONTROL1_STENCIL_FUNC_NEVER                          (0x00000001)
#define NV055_CONTROL1_STENCIL_FUNC_LESS                           (0x00000002)
#define NV055_CONTROL1_STENCIL_FUNC_EQUAL                          (0x00000003)
#define NV055_CONTROL1_STENCIL_FUNC_LESSEQUAL                      (0x00000004)
#define NV055_CONTROL1_STENCIL_FUNC_GREATER                        (0x00000005)
#define NV055_CONTROL1_STENCIL_FUNC_NOTEQUAL                       (0x00000006)
#define NV055_CONTROL1_STENCIL_FUNC_GREATEREQUAL                   (0x00000007)
#define NV055_CONTROL1_STENCIL_FUNC_ALWAYS                         (0x00000008)
#define NV055_CONTROL1_STENCIL_REF                                 15:8
#define NV055_CONTROL1_STENCIL_MASK_READ                           23:16
#define NV055_CONTROL1_STENCIL_MASK_WRITE                          31:24
#define NV055_CONTROL2                                             (0x00000344)
#define NV055_CONTROL2_STENCIL_OP_FAIL                             3:0
#define NV055_CONTROL2_STENCIL_OP_FAIL_KEEP                        (0x00000001)
#define NV055_CONTROL2_STENCIL_OP_FAIL_ZERO                        (0x00000002)
#define NV055_CONTROL2_STENCIL_OP_FAIL_REPLACE                     (0x00000003)
#define NV055_CONTROL2_STENCIL_OP_FAIL_INCRSAT                     (0x00000004)
#define NV055_CONTROL2_STENCIL_OP_FAIL_DECRSAT                     (0x00000005)
#define NV055_CONTROL2_STENCIL_OP_FAIL_INVERT                      (0x00000006)
#define NV055_CONTROL2_STENCIL_OP_FAIL_INCR                        (0x00000007)
#define NV055_CONTROL2_STENCIL_OP_FAIL_DECR                        (0x00000008)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL                            7:4
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_KEEP                       (0x00000001)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_ZERO                       (0x00000002)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_REPLACE                    (0x00000003)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_INCRSAT                    (0x00000004)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_DECRSAT                    (0x00000005)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_INVERT                     (0x00000006)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_INCR                       (0x00000007)
#define NV055_CONTROL2_STENCIL_OP_ZFAIL_DECR                       (0x00000008)
#define NV055_CONTROL2_STENCIL_OP_ZPASS                            31:8
#define NV055_CONTROL2_STENCIL_OP_ZPASS_KEEP                       (0x00000001)
#define NV055_CONTROL2_STENCIL_OP_ZPASS_ZERO                       (0x00000002)
#define NV055_CONTROL2_STENCIL_OP_ZPASS_REPLACE                    (0x00000003)
#define NV055_CONTROL2_STENCIL_OP_ZPASS_INCRSAT                    (0x00000004)
#define NV055_CONTROL2_STENCIL_OP_ZPASS_DECRSAT                    (0x00000005)
#define NV055_CONTROL2_STENCIL_OP_ZPASS_INVERT                     (0x00000006)
#define NV055_CONTROL2_STENCIL_OP_ZPASS_INCR                       (0x00000007)
#define NV055_CONTROL2_STENCIL_OP_ZPASS_DECR                       (0x00000008)
#define NV055_FOG_COLOR                                            (0x00000348)
#define NV055_TLMTVERTEX(i)                                        (0x00000400\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_SX(i)                                     (0x00000400\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_SY(i)                                     (0x00000404\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_SZ(i)                                     (0x00000408\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_RHW(i)                                    (0x0000040C\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_COLOR(i)                                  (0x00000410\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_COLOR_BLUE                                7:0
#define NV055_TLMTVERTEX_COLOR_GREEN                               15:8
#define NV055_TLMTVERTEX_COLOR_RED                                 23:16
#define NV055_TLMTVERTEX_COLOR_ALPHA                               31:24
#define NV055_TLMTVERTEX_SPECULAR(i)                               (0x00000414\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_SPECULAR_BLUE                             7:0
#define NV055_TLMTVERTEX_SPECULAR_GREEN                            15:8
#define NV055_TLMTVERTEX_SPECULAR_RED                              23:16
#define NV055_TLMTVERTEX_SPECULAR_FOG                              31:24
#define NV055_TLMTVERTEX_TU0(i)                                    (0x00000418\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_TV0(i)                                    (0x0000041C\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_TU1(i)                                    (0x00000420\
                                                                   +(i)*0x0028)
#define NV055_TLMTVERTEX_TV1(i)                                    (0x00000424\
                                                                   +(i)*0x0028)
#define NV055_DRAW_PRIMITIVE(a)                                    (0x00000540\
                                                                   +(a)*0x0004)
#define NV055_DRAW_PRIMITIVE_I0                                    3:0
#define NV055_DRAW_PRIMITIVE_I1                                    7:4
#define NV055_DRAW_PRIMITIVE_I2                                    11:8
#define NV055_DRAW_PRIMITIVE_I3                                    15:12
#define NV055_DRAW_PRIMITIVE_I4                                    19:16
#define NV055_DRAW_PRIMITIVE_I5                                    31:20
/* obsolete stuff */
#define NV4_DX6_MULTI_TEXTURE_TRIANGLE                             (0x00000055)
#define Nv4Dx6MultiTextureTriangle                  Nv04Dx6MultiTextureTriangle
#define nv4Dx6MultiTextureTriangle                  Nv04Dx6MultiTextureTriangle
#define nv04Dx6MultiTextureTriangle                 Nv04Dx6MultiTextureTriangle


// This typedef really should be the same as Nv10CelsiusPrimitive, but this
// causes the NV03/NV04_CHANNEL_PIO union to become too large for the 16bit
// compiler. Since we don't expect to use a PIO channel with Celsius, we'll
// just use the old DWORD size typedef.


typedef NvV32 Nv056Typedef;


/* class NV10_CELSIUS_PRIMITIVE */
#define  NV10_CELSIUS_PRIMITIVE                                    (0x00000056)
/* NvNotification[] elements */
#define NV056_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV056_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV056_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV056_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV056_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV056_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV056_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
typedef volatile struct {
    // system method
    NvV32 ctx_Switch;
    NvV32 Reserved00[0xfc/4];
    NvV32 NoOperation;
    NvV32 Notify;
    NvV32 SetWarningEnable;
    NvV32 GetState;
    NvV32 WaitForIdle;
    NvV32 Reserved01[0x2c/4];
    NvV32 PmTrigger;
    NvV32 Reserved02[0x3c/4];
    NvV32 SetContextDmaNotifies;
    NvV32 SetContextDmaA;
    NvV32 SetContextDmaB;
    NvV32 SetContextDmaVertex;
    NvV32 SetContextDmaState;
    NvV32 SetContextDmaColor;
    NvV32 SetContextDmaZeta;
    NvV32 Reserved03[0x64/4];
    NvV32 SetSurfaceClipHorizontal;
    NvV32 SetSurfaceClipVertical;
    NvV32 SetSurfaceFormat;
    NvV32 SetSurfacePitch;
    NvU32 SetSurfaceColorOffset;
    NvU32 SetSurfaceZetaOffset;
    NvU32 SetTextureOffset[2];
    NvV32 SetTextureFormat[2];
    NvV32 SetTextureControl0[2];
    NvV32 SetTextureControl1[2];
    NvV32 SetTextureControl2[2];
    NvV32 SetTextureImageRect[2];
    NvV32 SetTextureFilter[2];
    NvV32 SetTexturePalette[2];
    NvV32 Reserved04[0x8/4];
    NvV32 SetCombinerAlphaICW[2];
    NvV32 SetCombinerColorICW[2];
    NvV32 SetCombineFactor[2];
    NvV32 SetCombinerAlphaOCW[2];
    NvV32 SetCombiner0ColorOCW;
    NvV32 SetCombiner1ColorOCW;
    NvV32 SetCombinerSpecularFogCW0;
    NvV32 SetCombinerSpecularFogCW1;
    NvV32 SetControl0;
    NvV32 SetLightControl;
    NvV32 SetColorMaterial;
    NvV32 SetFogMode;
    NvV32 SetFogGenMode;
    NvV32 SetFogEnable;
    NvV32 SetFogColor;
    NvV32 SetColorKeyColor[2];
    NvV32 SetWindowClipType;
    NvV32 Reserved05[0x8/4];
    NvV32 SetWindowClipHorizontal[8];
    NvV32 SetWindowClipVertical[8];
    NvV32 SetAlphaTestEnable;
    NvV32 SetBlendEnable;
    NvV32 SetCullFaceEnable;
    NvV32 SetDepthTestEnable;
    NvV32 SetDitherEnable;
    NvV32 SetLightingEnable;
    NvV32 SetPointParamsEnable;
    NvV32 SetPointSmoothEnable;
    NvV32 SetLineSmoothEnable;
    NvV32 SetPolySmoothEnable;
    NvV32 SetSkinEnable;
    NvV32 SetStencilTestEnable;
    NvV32 SetPolyOffsetPointEnable;
    NvV32 SetPolyOffsetLineEnable;
    NvV32 SetPolyOffsetFillEnable;
    NvV32 SetAlphaFunc;
    NvV32 SetAlphaRef;
    NvV32 SetBlendFuncSfactor;
    NvV32 SetBlendFuncDfactor;
    NvV32 SetBlendColor;
    NvV32 SetBlendEquation;
    NvV32 SetDepthFunc;
    NvV32 SetColorMask;
    NvV32 SetDepthMask;
    NvV32 SetStencilMask;
    NvV32 SetStencilFunc;
    NvV32 SetStencilFuncRef;
    NvV32 SetStencilFuncMask;
    NvV32 SetStencilOpFail;
    NvV32 SetStencilOpZfail;
    NvV32 SetStencilOpZpass;
    NvV32 SetShadeMode;
    NvV32 SetLineWidth;
    NvF32 SetPolygonOffsetScaleFactor;
    NvF32 SetPolygonOffsetBias;
    NvV32 SetFrontPolygonMode;
    NvV32 SetBackPolygonMode;
    NvF32 SetClipMin;
    NvF32 SetClipMax;
    NvV32 SetCullFace;
    NvV32 SetFrontFace;
    NvV32 SetNormalizationEnable;
    NvV32 SetMaterialEmission[3];
    NvV32 SetMaterialAlpha;
    NvV32 SetSpecularEnable;
    NvV32 SetLightEnableMask;
    struct {
        NvV32 S;
        NvV32 T;
        NvV32 R;
        NvV32 Q;
    } SetTexgen[2];
    NvV32 SetTextureMatrix0Enable;
    NvV32 SetTextureMatrix1Enable;
    NvV32 SetTLMode;
    NvV32 SetPointSize;
    NvV32 SetSwathWidth;
    NvV32 SetFlatShadeOp;
    NvV32 Reserved06[0x8/4];
    NvF32 SetModelViewMatrix0[16];
    NvF32 SetModelViewMatrix1[16];
    NvF32 SetInverseModelViewMatrix0[16];
    NvF32 SetInverseModelViewMatrix1[16];
    NvF32 SetCompositeMatrix[16];
    NvF32 SetTextureMatrix0[16];
    NvF32 SetTextureMatrix1[16];
    NvV32 Reserved07[0x40/4];
    NvF32 SetTexgenSPlane0[4];
    NvF32 SetTexgenTPlane0[4];
    NvF32 SetTexgenRPlane0[4];
    NvF32 SetTexgenQPlane0[4];
    NvF32 SetTexgenSPlane1[4];
    NvF32 SetTexgenTPlane1[4];
    NvF32 SetTexgenRPlane1[4];
    NvF32 SetTexgenQPlane1[4];
    NvF32 SetFogParams[3];
    NvF32 SetFogPlane[4];
    NvV32 Reserved08[0x4/4];
    NvF32 SetSpecularParams[6];
    NvV32 Reserved09[0xc/4];
    NvF32 SetSceneAmbientColor[3];
    NvV32 Reserved0a[0x18/4];
    NvF32 SetViewportOffset[4];
    NvF32 SetPointParams[8];
    NvF32 SetEyePosition[4];
    NvV32 Flush;
    NvF32 SetEyeDirectionSW[3];
    NvV32 Reserved0b[0xc8/4];
    struct {
        NvF32 AmbientColor[3];
        NvF32 DiffuseColor[3];
        NvF32 SpecularColor[3];
        NvF32 LocalRange;
        NvF32 InfiniteHalfVector[3];
        NvF32 InfiniteDirection[3];
        NvF32 SpotFalloff[3];
        NvF32 SpotDirection[4];
        NvF32 LocalPosition[3];
        NvF32 LocalAttenuation[3];
        NvV32 Reserved0c[0xc/4];
    } SetLight[8];
    NvF32 SetVertex3f[3];
    NvV32 Reserved0d[0xc/4];
    NvF32 SetVertex4f[4];
    NvS16 SetVertex4s[4];
    NvF32 SetNormal3f[3];
    NvV32 Reserved0e[0x4/4];
    NvS16 SetNormal3s[3];
    NvV16 Reserved0f[0xa/2];
    NvF32 SetDiffuseColor4f[4];
    NvF32 SetDiffuseColor3f[3];
    NvV32 SetDiffuseColor4ub;
    NvF32 SetSpecularColor4f[4];
    NvF32 SetSpecularColor3f[3];
    NvV32 SetSpecularColor4ub;
    NvF32 SetTexcoord0_2f[2];
    NvS16 SetTexcoord0_2s[2];
    NvV32 Reserved10[0x4/4];
    NvF32 SetTexcoord0_4f[4];
    NvS16 SetTexcoord0_4s[4];
    NvF32 SetTexcoord1_2f[2];
    NvS16 SetTexcoord1_2s[2];
    NvV32 Reserved11[0x4/4];
    NvF32 SetTexcoord1_4f[4];
    NvS16 SetTexcoord1_4s[4];
    NvF32 SetFog1f;
    NvF32 SetWeight1f;
    NvV32 Reserved12[0x4/4];
    NvV32 SetEdgeFlag;
    NvV32 InvalidateVertexCacheFile;
    NvV32 InvalidateVertexFile;
    NvV32 TlNop;
    NvV32 TlSync;
    NvU32 SetVertexArrayOffset;
    NvV32 SetVertexArrayFormat;
    NvU32 SetDiffuseArrayOffset;
    NvV32 SetDiffuseArrayFormat;
    NvU32 SetSpecularArrayOffset;
    NvV32 SetSpecularArrayFormat;
    NvU32 SetTexCoord0ArrayOffset;
    NvV32 SetTexCoord0ArrayFormat;
    NvU32 SetTexCoord1ArrayOffset;
    NvV32 SetTexCoord1ArrayFormat;
    NvU32 SetNormalArrayOffset;
    NvV32 SetNormalArrayFormat;
    NvU32 SetWeightArrayOffset;
    NvV32 SetWeightArrayFormat;
    NvU32 SetFogArrayOffset;
    NvV32 SetFogArrayFormat;
    NvV32 Reserved13[0xbc/4];
    NvV32 SetBeginEnd;
    NvV16 ArrayElement16[256];
    NvV32 Reserved14[0xfc/4];
    NvV32 SetBeginEnd2;
    NvV32 ArrayElement32[64];
    NvV32 Reserved15[0x1fc/4];
    NvV32 SetBeginEnd3;
    NvV32 DrawArrays[128];
    NvV32 DebugInit[10];
    NvV32 SetMaterialEmissionSW[3];
    NvV32 Reserved16[1];
    NvF32 SetViewportOffsetSW[4];
    NvF32 SetPassthruViewportOffsetSW[4];
    NvV32 Reserved17[0x1a4/4];
    NvV32 SetBeginEnd4;
    NvV32 InlineArray[512];
} Nv10CelsiusPrimitive;


#define NV056_TYPEDEF                                      Nv10CelsiusPrimitive
#define NV056_SET_OBJECT                                           (0x00000000)


#define NV056_DEBUG_INIT(i)                                        (0x00001600+(i)*4)


#define NV056_FLUSH                                                        0x00000728


#define NV056_NO_OPERATION                                                 0x00000100


#define NV056_NOTIFY                                                       0x00000104
#define NV056_NOTIFY_TYPE                                                        23:0
#define NV056_NOTIFY_TYPE_WRITE_ONLY                                       0x00000000
#define NV056_NOTIFY_TYPE_WRITE_THEN_AWAKEN                                0x00000001


#define NV056_SET_WARNING_ENABLE                                           0x00000108
#define NV056_SET_WARNING_ENABLE_V                                               23:0
#define NV056_SET_WARNING_ENABLE_V_FALSE                                   0x00000000
#define NV056_SET_WARNING_ENABLE_V_TRUE                                    0x00000001


#define NV056_GET_STATE                                                    0x0000010c
#define NV056_GET_STATE_GETSTATE                                                 31:0
#define NV056_GET_STATE_GETSTATE_ALL_STATE                                 0x00000001
#define NV056_GET_STATE_PUTSTATE_ALL_STATE                                 0x00000002
#define NV056_GET_STATE_GETSTATE_TRANSFORMLIGHTING_STATE                   0x00000003
#define NV056_GET_STATE_GETSTATE_RENDERING_STATE                           0x00000004
#define NV056_GET_STATE_GETSTATE_GEOMETRY_STATE                            0x00000005
#define NV056_GET_STATE_GETSTATE_SNAPSHOT_PRIM_ASSM                        0x00000006
#define NV056_GET_STATE_GETSTATE_RELOAD_PRIM_ASSM                          0x00000007

#define NV056_WAIT_FOR_IDLE                                                0x00000110


#define NV056_PM_TRIGGER                                                   0x00000140


#define NV056_SET_CONTEXT_DMA_NOTIFIES                                     0x00000180


#define NV056_SET_CONTEXT_DMA_A                                            0x00000184


#define NV056_SET_CONTEXT_DMA_B                                            0x00000188


#define NV056_SET_CONTEXT_DMA_VERTEX                                       0x0000018c


#define NV056_SET_CONTEXT_DMA_STATE                                        0x00000190


#define NV056_SET_CONTEXT_DMA_COLOR                                        0x00000194


#define NV056_SET_CONTEXT_DMA_ZETA                                         0x00000198


#define NV056_SET_SURFACE_CLIP_HORIZONTAL                                  0x00000200
#define NV056_SET_SURFACE_CLIP_HORIZONTAL_X                                      15:0
#define NV056_SET_SURFACE_CLIP_HORIZONTAL_WIDTH                                 31:16


#define NV056_SET_SURFACE_CLIP_VERTICAL                                    0x00000204
#define NV056_SET_SURFACE_CLIP_VERTICAL_Y                                        15:0
#define NV056_SET_SURFACE_CLIP_VERTICAL_HEIGHT                                  31:16


#define NV056_SET_SURFACE_FORMAT                                           0x00000208
#define NV056_SET_SURFACE_FORMAT_COLOR                                            7:0
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5                0x00000001
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5                0x00000002
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_R5G6B5                           0x00000003
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8                0x00000004
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8                0x00000005
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8            0x00000006
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8            0x00000007
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_A8R8G8B8                         0x00000008
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_B8                               0x00000009
#define NV056_SET_SURFACE_FORMAT_COLOR_LE_G8B8                             0x0000000A
#define NV056_SET_SURFACE_FORMAT_TYPE                                            15:8
#define NV056_SET_SURFACE_FORMAT_TYPE_PITCH                                0x00000001
#define NV056_SET_SURFACE_FORMAT_TYPE_SWIZZLE                              0x00000002
#define NV056_SET_SURFACE_FORMAT_WIDTH                                          23:16
#define NV056_SET_SURFACE_FORMAT_WIDTH_1                                   0x00000000
#define NV056_SET_SURFACE_FORMAT_WIDTH_2                                   0x00000001
#define NV056_SET_SURFACE_FORMAT_WIDTH_4                                   0x00000002
#define NV056_SET_SURFACE_FORMAT_WIDTH_8                                   0x00000003
#define NV056_SET_SURFACE_FORMAT_WIDTH_16                                  0x00000004
#define NV056_SET_SURFACE_FORMAT_WIDTH_32                                  0x00000005
#define NV056_SET_SURFACE_FORMAT_WIDTH_64                                  0x00000006
#define NV056_SET_SURFACE_FORMAT_WIDTH_128                                 0x00000007
#define NV056_SET_SURFACE_FORMAT_WIDTH_256                                 0x00000008
#define NV056_SET_SURFACE_FORMAT_WIDTH_512                                 0x00000009
#define NV056_SET_SURFACE_FORMAT_WIDTH_1024                                0x0000000A
#define NV056_SET_SURFACE_FORMAT_WIDTH_2048                                0x0000000B
#define NV056_SET_SURFACE_FORMAT_HEIGHT                                         31:24
#define NV056_SET_SURFACE_FORMAT_HEIGHT_1                                  0x00000000
#define NV056_SET_SURFACE_FORMAT_HEIGHT_2                                  0x00000001
#define NV056_SET_SURFACE_FORMAT_HEIGHT_4                                  0x00000002
#define NV056_SET_SURFACE_FORMAT_HEIGHT_8                                  0x00000003
#define NV056_SET_SURFACE_FORMAT_HEIGHT_16                                 0x00000004
#define NV056_SET_SURFACE_FORMAT_HEIGHT_32                                 0x00000005
#define NV056_SET_SURFACE_FORMAT_HEIGHT_64                                 0x00000006
#define NV056_SET_SURFACE_FORMAT_HEIGHT_128                                0x00000007
#define NV056_SET_SURFACE_FORMAT_HEIGHT_256                                0x00000008
#define NV056_SET_SURFACE_FORMAT_HEIGHT_512                                0x00000009
#define NV056_SET_SURFACE_FORMAT_HEIGHT_1024                               0x0000000A
#define NV056_SET_SURFACE_FORMAT_HEIGHT_2048                               0x0000000B


#define NV056_SET_SURFACE_PITCH                                            0x0000020c
#define NV056_SET_SURFACE_PITCH_COLOR                                            15:0
#define NV056_SET_SURFACE_PITCH_ZETA                                            31:16


#define NV056_SET_SURFACE_COLOR_OFFSET                                     0x00000210
#define NV056_SET_SURFACE_COLOR_OFFSET_V                                         31:0


#define NV056_SET_SURFACE_ZETA_OFFSET                                      0x00000214
#define NV056_SET_SURFACE_ZETA_OFFSET_V                                          31:0


#define NV056_SET_TEXTURE_OFFSET(i)                                (0x00000218+(i)*4)
#define NV056_SET_TEXTURE_OFFSET_V                                               31:0


#define NV056_SET_TEXTURE_FORMAT(i)                                (0x00000220+(i)*4)
#define NV056_SET_TEXTURE_FORMAT_CONTEXT_DMA                                      1:0
#define NV056_SET_TEXTURE_FORMAT_CONTEXT_DMA_A                             0x00000001
#define NV056_SET_TEXTURE_FORMAT_CONTEXT_DMA_B                             0x00000002
#define NV056_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE                                   2:2
#define NV056_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_FALSE                      0x00000000
#define NV056_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_TRUE                       0x00000001
#define NV056_SET_TEXTURE_FORMAT_ORIGIN_ZOH                                       4:3
#define NV056_SET_TEXTURE_FORMAT_ORIGIN_ZOH_CENTER                         0x00000001
#define NV056_SET_TEXTURE_FORMAT_ORIGIN_ZOH_CORNER                         0x00000002
#define NV056_SET_TEXTURE_FORMAT_ORIGIN_FOH                                       6:5
#define NV056_SET_TEXTURE_FORMAT_ORIGIN_FOH_CENTER                         0x00000001
#define NV056_SET_TEXTURE_FORMAT_ORIGIN_FOH_CORNER                         0x00000002
#define NV056_SET_TEXTURE_FORMAT_COLOR                                           11:7
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_Y8                               0x00000000
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_AY8                              0x00000001
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_A1R5G5B5                         0x00000002
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_X1R5G5B5                         0x00000003
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_A4R4G4B4                         0x00000004
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_R5G6B5                           0x00000005
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_A8R8G8B8                         0x00000006
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_X8R8G8B8                         0x00000007
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_I8_A1R5G5B5                      0x00000008
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_I8_R5G6B5                        0x00000009
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_I8_A4R4G4B4                      0x0000000A
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_I8_A8R8G8B8                      0x0000000B
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_DXT1_A1R5G5B5                    0x0000000C
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_DXT23_A8R8G8B8                   0x0000000E
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_DXT45_A8R8G8B8                   0x0000000F
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_A1R5G5B5                   0x00000010
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_R5G6B5                     0x00000011
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_A8R8G8B8                   0x00000012
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_Y8                         0x00000013
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_SY8                        0x00000014
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_X7SY9                      0x00000015
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_R8B8                       0x00000016
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_G8B8                       0x00000017
#define NV056_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_SG8SB8                     0x00000018
#define NV056_SET_TEXTURE_FORMAT_MIPMAP_LEVELS                                  15:12
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U                                    19:16
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_1                             0x00000000
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_2                             0x00000001
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_4                             0x00000002
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_8                             0x00000003
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_16                            0x00000004
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_32                            0x00000005
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_64                            0x00000006
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_128                           0x00000007
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_256                           0x00000008
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_512                           0x00000009
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_1024                          0x0000000A
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_U_2048                          0x0000000B
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V                                    23:20
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_1                             0x00000000
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_2                             0x00000001
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_4                             0x00000002
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_8                             0x00000003
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_16                            0x00000004
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_32                            0x00000005
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_64                            0x00000006
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_128                           0x00000007
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_256                           0x00000008
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_512                           0x00000009
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_1024                          0x0000000A
#define NV056_SET_TEXTURE_FORMAT_BASE_SIZE_V_2048                          0x0000000B
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSU                                26:24
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_WRAP                      0x00000001
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_MIRROR                    0x00000002
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_CLAMP                     0x00000003
#define NV056_SET_TEXTURE_FORMAT_WRAPU                                          27:27
#define NV056_SET_TEXTURE_FORMAT_WRAPU_FALSE                               0x00000000
#define NV056_SET_TEXTURE_FORMAT_WRAPU_TRUE                                0x00000001
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSV                                30:28
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_WRAP                      0x00000001
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_MIRROR                    0x00000002
#define NV056_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_CLAMP                     0x00000003
#define NV056_SET_TEXTURE_FORMAT_WRAPV                                          31:31
#define NV056_SET_TEXTURE_FORMAT_WRAPV_FALSE                               0x00000000
#define NV056_SET_TEXTURE_FORMAT_WRAPV_TRUE                                0x00000001


#define NV056_SET_TEXTURE_CONTROL0(i)                              (0x00000228+(i)*4)
#define NV056_SET_TEXTURE_CONTROL0_ENABLE                                       30:30
#define NV056_SET_TEXTURE_CONTROL0_ENABLE_FALSE                            0x00000000
#define NV056_SET_TEXTURE_CONTROL0_ENABLE_TRUE                             0x00000001
#define NV056_SET_TEXTURE_CONTROL0_MIN_LOD_CLAMP                                29:18
#define NV056_SET_TEXTURE_CONTROL0_MAX_LOD_CLAMP                                 17:6
#define NV056_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO                                  5:4
#define NV056_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_0                         0x00000000
#define NV056_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_1                         0x00000001
#define NV056_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE                             3:3
#define NV056_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_FALSE                0x00000000
#define NV056_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_TRUE                 0x00000001
#define NV056_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE                              2:2
#define NV056_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_FALSE                 0x00000000
#define NV056_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_TRUE                  0x00000001
#define NV056_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION                            1:0
#define NV056_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_FALSE               0x00000000
#define NV056_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_ALPHA               0x00000001
#define NV056_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_RGBA                0x00000002
#define NV056_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_KILL                0x00000003


#define NV056_SET_TEXTURE_CONTROL1(i)                              (0x00000230+(i)*4)
#define NV056_SET_TEXTURE_CONTROL1_IMAGE_PITCH                                  31:16
#define NV056_SET_TEXTURE_CONTROL1_ZERO                                          15:0


#define NV056_SET_TEXTURE_CONTROL2(i)                              (0x00000238+(i)*4)
#define NV056_SET_TEXTURE_CONTROL2_PERTURB_DU                                    11:0
#define NV056_SET_TEXTURE_CONTROL2_PERTURB_DV                                   23:12
#define NV056_SET_TEXTURE_CONTROL2_IMAGE_LODF                                   31:24


#define NV056_SET_TEXTURE_IMAGE_RECT(i)                            (0x00000240+(i)*4)
#define NV056_SET_TEXTURE_IMAGE_RECT_WIDTH                                      31:16
#define NV056_SET_TEXTURE_IMAGE_RECT_HEIGHT                                      15:0


#define NV056_SET_TEXTURE_FILTER(i)                                (0x00000248+(i)*4)
#define NV056_SET_TEXTURE_FILTER_MIPMAPLODBIAS                                   23:0
#define NV056_SET_TEXTURE_FILTER_TEXTUREMIN                                     27:24
#define NV056_SET_TEXTURE_FILTER_TEXTUREMIN_NEAREST                        0x00000001
#define NV056_SET_TEXTURE_FILTER_TEXTUREMIN_LINEAR                         0x00000002
#define NV056_SET_TEXTURE_FILTER_TEXTUREMIN_MIPNEAREST                     0x00000003
#define NV056_SET_TEXTURE_FILTER_TEXTUREMIN_MIPLINEAR                      0x00000004
#define NV056_SET_TEXTURE_FILTER_TEXTUREMIN_LINEARMIPNEAREST               0x00000005
#define NV056_SET_TEXTURE_FILTER_TEXTUREMIN_LINEARMIPLINEAR                0x00000006
#define NV056_SET_TEXTURE_FILTER_TEXTUREMAG                                     31:28
#define NV056_SET_TEXTURE_FILTER_TEXTUREMAG_NEAREST                        0x00000001
#define NV056_SET_TEXTURE_FILTER_TEXTUREMAG_LINEAR                         0x00000002


#define NV056_SET_TEXTURE_PALETTE(i)                               (0x00000250+(i)*4)
#define NV056_SET_TEXTURE_PALETTE_CONTEXT_DMA                                     5:0
#define NV056_SET_TEXTURE_PALETTE_CONTEXT_DMA_A                            0x00000000
#define NV056_SET_TEXTURE_PALETTE_CONTEXT_DMA_B                            0x00000001
#define NV056_SET_TEXTURE_PALETTE_PALETTE_OFFSET                                 31:6


#define NV056_SET_COMBINER_ALPHA_ICW(i)                            (0x00000260+(i)*4)
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP                                      31:29
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_ALPHA_ICW_A_ALPHA                                    28:28
#define NV056_SET_COMBINER_ALPHA_ICW_A_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_A_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE                                   27:24
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_D                        0x0000000D
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP                                      23:21
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_ALPHA_ICW_B_ALPHA                                    20:20
#define NV056_SET_COMBINER_ALPHA_ICW_B_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_B_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE                                   19:16
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_D                        0x0000000D
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP                                      15:13
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_ALPHA_ICW_C_ALPHA                                    12:12
#define NV056_SET_COMBINER_ALPHA_ICW_C_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_C_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE                                    11:8
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_D                        0x0000000D
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP                                        7:5
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_ALPHA_ICW_D_ALPHA                                      4:4
#define NV056_SET_COMBINER_ALPHA_ICW_D_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_D_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE                                     3:0
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_D                        0x0000000D


#define NV056_SET_COMBINER_COLOR_ICW(i)                            (0x00000268+(i)*4)
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP                                      31:29
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_COLOR_ICW_A_ALPHA                                    28:28
#define NV056_SET_COMBINER_COLOR_ICW_A_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_A_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE                                   27:24
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_D                        0x0000000D
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP                                      23:21
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_COLOR_ICW_B_ALPHA                                    20:20
#define NV056_SET_COMBINER_COLOR_ICW_B_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_B_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE                                   19:16
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_D                        0x0000000D
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP                                      15:13
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_COLOR_ICW_C_ALPHA                                    12:12
#define NV056_SET_COMBINER_COLOR_ICW_C_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_C_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE                                    11:8
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_D                        0x0000000D
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP                                        7:5
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_INVERT                 0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NORMAL                   0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NEGATE                   0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_IDENTITY                 0x00000006
#define NV056_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_NEGATE                   0x00000007
#define NV056_SET_COMBINER_COLOR_ICW_D_ALPHA                                      4:4
#define NV056_SET_COMBINER_COLOR_ICW_D_ALPHA_FALSE                         0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_D_ALPHA_TRUE                          0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE                                     3:0
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_0                        0x00000000
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_1                        0x00000001
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_2                        0x00000002
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_3                        0x00000003
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_4                        0x00000004
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_5                        0x00000005
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_8                        0x00000008
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_9                        0x00000009
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_C                        0x0000000C
#define NV056_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_D                        0x0000000D


#define NV056_SET_COMBINE_FACTOR(i)                                (0x00000270+(i)*4)
#define NV056_SET_COMBINE_FACTOR_BLUE                                             7:0
#define NV056_SET_COMBINE_FACTOR_GREEN                                           15:8
#define NV056_SET_COMBINE_FACTOR_RED                                            23:16
#define NV056_SET_COMBINE_FACTOR_ALPHA                                          31:24


#define NV056_SET_COMBINER_ALPHA_OCW(i)                            (0x00000278+(i)*4)
#define NV056_SET_COMBINER_ALPHA_OCW_OPERATION                                  31:15
#define NV056_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT                     0x00000000
#define NV056_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT_BIAS                0x00000001
#define NV056_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1                0x00000002
#define NV056_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1_BIAS           0x00000003
#define NV056_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY2                0x00000004
#define NV056_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTRIGHTBY1               0x00000006
#define NV056_SET_COMBINER_ALPHA_OCW_MUX_ENABLE                                 14:14
#define NV056_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_FALSE                      0x00000000
#define NV056_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_TRUE                       0x00000001
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST                                     11:8
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_0                         0x00000000
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_4                         0x00000004
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_5                         0x00000005
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_8                         0x00000008
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_9                         0x00000009
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_C                         0x0000000C
#define NV056_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_D                         0x0000000D
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST                                       7:4
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST_REG_0                          0x00000000
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST_REG_4                          0x00000004
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST_REG_5                          0x00000005
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST_REG_8                          0x00000008
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST_REG_9                          0x00000009
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST_REG_C                          0x0000000C
#define NV056_SET_COMBINER_ALPHA_OCW_AB_DST_REG_D                          0x0000000D
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST                                       3:0
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST_REG_0                          0x00000000
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST_REG_4                          0x00000004
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST_REG_5                          0x00000005
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST_REG_8                          0x00000008
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST_REG_9                          0x00000009
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST_REG_C                          0x0000000C
#define NV056_SET_COMBINER_ALPHA_OCW_CD_DST_REG_D                          0x0000000D


#define NV056_SET_COMBINER0_COLOR_OCW                                      0x00000280
#define NV056_SET_COMBINER0_COLOR_OCW_ZERO                                      31:27
#define NV056_SET_COMBINER0_COLOR_OCW_OPERATION                                 26:15
#define NV056_SET_COMBINER0_COLOR_OCW_OPERATION_NOSHIFT                    0x00000000
#define NV056_SET_COMBINER0_COLOR_OCW_OPERATION_NOSHIFT_BIAS               0x00000001
#define NV056_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY1               0x00000002
#define NV056_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY1_BIAS          0x00000003
#define NV056_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY2               0x00000004
#define NV056_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTRIGHTBY1              0x00000006
#define NV056_SET_COMBINER0_COLOR_OCW_MUX_ENABLE                                14:14
#define NV056_SET_COMBINER0_COLOR_OCW_MUX_ENABLE_FALSE                     0x00000000
#define NV056_SET_COMBINER0_COLOR_OCW_MUX_ENABLE_TRUE                      0x00000001
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE                             13:13
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE_FALSE                  0x00000000
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE_TRUE                   0x00000001
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE                             12:12
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE_FALSE                  0x00000000
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE_TRUE                   0x00000001
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST                                    11:8
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_0                        0x00000000
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_4                        0x00000004
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_5                        0x00000005
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_8                        0x00000008
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_9                        0x00000009
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_C                        0x0000000C
#define NV056_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_D                        0x0000000D
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST                                      7:4
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST_REG_0                         0x00000000
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST_REG_4                         0x00000004
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST_REG_5                         0x00000005
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST_REG_8                         0x00000008
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST_REG_9                         0x00000009
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST_REG_C                         0x0000000C
#define NV056_SET_COMBINER0_COLOR_OCW_AB_DST_REG_D                         0x0000000D
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST                                      3:0
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST_REG_0                         0x00000000
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST_REG_4                         0x00000004
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST_REG_5                         0x00000005
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST_REG_8                         0x00000008
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST_REG_9                         0x00000009
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST_REG_C                         0x0000000C
#define NV056_SET_COMBINER0_COLOR_OCW_CD_DST_REG_D                         0x0000000D


#define NV056_SET_COMBINER1_COLOR_OCW                                      0x00000284
#define NV056_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT                           31:28
#define NV056_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT_ONE                  0x00000001
#define NV056_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT_TWO                  0x00000002
#define NV056_SET_COMBINER1_COLOR_OCW_MUX_SELECT                                27:27
#define NV056_SET_COMBINER1_COLOR_OCW_MUX_SELECT_LSB                       0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_MUX_SELECT_MSB                       0x00000001
#define NV056_SET_COMBINER1_COLOR_OCW_OPERATION                                 26:15
#define NV056_SET_COMBINER1_COLOR_OCW_OPERATION_NOSHIFT                    0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_OPERATION_NOSHIFT_BIAS               0x00000001
#define NV056_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY1               0x00000002
#define NV056_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY1_BIAS          0x00000003
#define NV056_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY2               0x00000004
#define NV056_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTRIGHTBY1              0x00000006
#define NV056_SET_COMBINER1_COLOR_OCW_MUX_ENABLE                                14:14
#define NV056_SET_COMBINER1_COLOR_OCW_MUX_ENABLE_FALSE                     0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_MUX_ENABLE_TRUE                      0x00000001
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE                             13:13
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE_FALSE                  0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE_TRUE                   0x00000001
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE                             12:12
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE_FALSE                  0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE_TRUE                   0x00000001
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST                                    11:8
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_0                        0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_4                        0x00000004
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_5                        0x00000005
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_8                        0x00000008
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_9                        0x00000009
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_C                        0x0000000C
#define NV056_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_D                        0x0000000D
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST                                      7:4
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST_REG_0                         0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST_REG_4                         0x00000004
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST_REG_5                         0x00000005
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST_REG_8                         0x00000008
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST_REG_9                         0x00000009
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST_REG_C                         0x0000000C
#define NV056_SET_COMBINER1_COLOR_OCW_AB_DST_REG_D                         0x0000000D
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST                                      3:0
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST_REG_0                         0x00000000
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST_REG_4                         0x00000004
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST_REG_5                         0x00000005
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST_REG_8                         0x00000008
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST_REG_9                         0x00000009
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST_REG_C                         0x0000000C
#define NV056_SET_COMBINER1_COLOR_OCW_CD_DST_REG_D                         0x0000000D


#define NV056_SET_COMBINER_SPECULAR_FOG_CW0                                0x00000288
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE                           31:29
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_FALSE                0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_TRUE                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA                             28:28
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_FALSE                  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_TRUE                   0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE                            27:24
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_0                 0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_1                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_2                 0x00000002
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_3                 0x00000003
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_4                 0x00000004
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_5                 0x00000005
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_8                 0x00000008
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_9                 0x00000009
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_C                 0x0000000C
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_D                 0x0000000D
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_SPECLIT           0x0000000E
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_EF_PROD           0x0000000F
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE                           23:21
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_FALSE                0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_TRUE                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA                             20:20
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_FALSE                  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_TRUE                   0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE                            19:16
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_0                 0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_1                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_2                 0x00000002
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_3                 0x00000003
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_4                 0x00000004
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_5                 0x00000005
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_8                 0x00000008
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_9                 0x00000009
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_C                 0x0000000C
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_D                 0x0000000D
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_SPECLIT           0x0000000E
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_EF_PROD           0x0000000F
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE                           15:13
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_FALSE                0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_TRUE                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA                             12:12
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_FALSE                  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_TRUE                   0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE                             11:8
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_0                 0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_1                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_2                 0x00000002
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_3                 0x00000003
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_4                 0x00000004
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_5                 0x00000005
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_8                 0x00000008
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_9                 0x00000009
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_C                 0x0000000C
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_D                 0x0000000D
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_SPECLIT           0x0000000E
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_EF_PROD           0x0000000F
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE                             7:5
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_FALSE                0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_TRUE                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA                               4:4
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_FALSE                  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_TRUE                   0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE                              3:0
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_0                 0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_1                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_2                 0x00000002
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_3                 0x00000003
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_4                 0x00000004
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_5                 0x00000005
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_8                 0x00000008
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_9                 0x00000009
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_C                 0x0000000C
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_D                 0x0000000D
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_SPECLIT           0x0000000E
#define NV056_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_EF_PROD           0x0000000F


#define NV056_SET_COMBINER_SPECULAR_FOG_CW1                                0x0000028c
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE                           31:29
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_FALSE                0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_TRUE                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA                             28:28
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_FALSE                  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_TRUE                   0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE                            27:24
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_0                 0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_1                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_2                 0x00000002
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_3                 0x00000003
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_4                 0x00000004
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_5                 0x00000005
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_8                 0x00000008
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_9                 0x00000009
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_C                 0x0000000C
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_D                 0x0000000D
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE                           23:21
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_FALSE                0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_TRUE                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA                             20:20
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_FALSE                  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_TRUE                   0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE                            19:16
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_0                 0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_1                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_2                 0x00000002
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_3                 0x00000003
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_4                 0x00000004
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_5                 0x00000005
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_8                 0x00000008
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_9                 0x00000009
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_C                 0x0000000C
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_D                 0x0000000D
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE                           15:13
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_FALSE                0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_TRUE                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA                             12:12
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_FALSE                  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_TRUE                   0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE                             11:8
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_0                 0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_1                 0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_2                 0x00000002
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_3                 0x00000003
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_4                 0x00000004
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_5                 0x00000005
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_8                 0x00000008
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_9                 0x00000009
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_C                 0x0000000C
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_D                 0x0000000D
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP                        7:7
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_FALSE           0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_TRUE            0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5                6:6
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_FALSE   0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_TRUE    0x00000001
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12               5:0
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_FALSE  0x00000000
#define NV056_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_TRUE   0x00000020


#define NV056_SET_CONTROL0                                                 0x00000290
#define NV056_SET_CONTROL0_PREMULTIPLIEDALPHA                                   31:24
#define NV056_SET_CONTROL0_PREMULTIPLIEDALPHA_FALSE                        0x00000000
#define NV056_SET_CONTROL0_PREMULTIPLIEDALPHA_TRUE                         0x00000001
#define NV056_SET_CONTROL0_TEXTUREPERSPECTIVE                                   23:20
#define NV056_SET_CONTROL0_TEXTUREPERSPECTIVE_FALSE                        0x00000000
#define NV056_SET_CONTROL0_TEXTUREPERSPECTIVE_TRUE                         0x00000001
#define NV056_SET_CONTROL0_Z_PERSPECTIVE_ENABLE                                 19:16
#define NV056_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_FALSE                      0x00000000
#define NV056_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_TRUE                       0x00000001
#define NV056_SET_CONTROL0_Z_FORMAT                                             15:12
#define NV056_SET_CONTROL0_Z_FORMAT_FIXED                                  0x00000000
#define NV056_SET_CONTROL0_Z_FORMAT_FLOAT                                  0x00000001
#define NV056_SET_CONTROL0_WBUFFER_SELECT                                        11:8
#define NV056_SET_CONTROL0_WBUFFER_SELECT_0                                0x00000000
#define NV056_SET_CONTROL0_WBUFFER_SELECT_1                                0x00000001
#define NV056_SET_CONTROL0_STENCIL_WRITE_ENABLE                                   7:0
#define NV056_SET_CONTROL0_STENCIL_WRITE_ENABLE_FALSE                      0x00000000
#define NV056_SET_CONTROL0_STENCIL_WRITE_ENABLE_TRUE                       0x00000001


#define NV056_SET_LIGHT_CONTROL                                            0x00000294
#define NV056_SET_LIGHT_CONTROL_LOCALEYE                                        31:16
#define NV056_SET_LIGHT_CONTROL_LOCALEYE_FALSE                             0x00000000
#define NV056_SET_LIGHT_CONTROL_LOCALEYE_TRUE                              0x00000001
#define NV056_SET_LIGHT_CONTROL_ATTENUATION_MODE                                 15:2
#define NV056_SET_LIGHT_CONTROL_ATTENUATION_MODE_INVERT                    0x00000000
#define NV056_SET_LIGHT_CONTROL_ATTENUATION_MODE_NOT_INVERT                0x00000001
#define NV056_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN                              1:1
#define NV056_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_FALSE                 0x00000000
#define NV056_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_TRUE                  0x00000001
#define NV056_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN                                0:0
#define NV056_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN_FALSE                   0x00000000
#define NV056_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN_TRUE                    0x00000001


#define NV056_SET_COLOR_MATERIAL                                           0x00000298
#define NV056_SET_COLOR_MATERIAL_V                                               31:0
#define NV056_SET_COLOR_MATERIAL_V_DISABLED                                0x00000000
#define NV056_SET_COLOR_MATERIAL_V_EMISSION                                0x00000001
#define NV056_SET_COLOR_MATERIAL_V_AMBIENT                                 0x00000002
#define NV056_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT                        0x00000003
#define NV056_SET_COLOR_MATERIAL_V_DIFFUSE                                 0x00000004
#define NV056_SET_COLOR_MATERIAL_V_EMISSION_DIFFUSE                        0x00000005
#define NV056_SET_COLOR_MATERIAL_V_AMBIENT_DIFFUSE                         0x00000006
#define NV056_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_DIFFUSE                0x00000007
#define NV056_SET_COLOR_MATERIAL_V_SPECULAR                                0x00000008
#define NV056_SET_COLOR_MATERIAL_V_EMISSION_SPECULAR                       0x00000009
#define NV056_SET_COLOR_MATERIAL_V_AMBIENT_SPECULAR                        0x0000000A
#define NV056_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_SPECULAR               0x0000000B
#define NV056_SET_COLOR_MATERIAL_V_DIFFUSE_SPECULAR                        0x0000000C
#define NV056_SET_COLOR_MATERIAL_V_EMISSION_DIFFUSE_SPECULAR               0x0000000D
#define NV056_SET_COLOR_MATERIAL_V_AMBIENT_DIFFUSE_SPECULAR                0x0000000E
#define NV056_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_DIFFUSE_SPECULAR       0x0000000F


#define NV056_SET_FOG_MODE                                                 0x0000029c
#define NV056_SET_FOG_MODE_FOG_MODE                                              31:0
#define NV056_SET_FOG_MODE_FOG_MODE_LINEAR                                 0x00002601
#define NV056_SET_FOG_MODE_FOG_MODE_EXP                                    0x00000800
#define NV056_SET_FOG_MODE_FOG_MODE_EXP2                                   0x00000801
#define NV056_SET_FOG_MODE_FOG_MODE_EXP_ABS                                0x00000802
#define NV056_SET_FOG_MODE_FOG_MODE_EXP2_ABS                               0x00000803


#define NV056_SET_FOG_GEN_MODE                                             0x000002a0
#define NV056_SET_FOG_GEN_MODE_FOG_GEN_MODE                                      31:0
#define NV056_SET_FOG_GEN_MODE_FOG_GEN_MODE_USE_INPUT                      0x00000000
#define NV056_SET_FOG_GEN_MODE_FOG_GEN_MODE_RADIAL                         0x00000001
#define NV056_SET_FOG_GEN_MODE_FOG_GEN_MODE_PLANAR                         0x00000002
#define NV056_SET_FOG_GEN_MODE_FOG_GEN_MODE_ABS_PLANAR                     0x00000003


#define NV056_SET_FOG_ENABLE                                               0x000002a4
#define NV056_SET_FOG_ENABLE_V                                                   31:0
#define NV056_SET_FOG_ENABLE_V_FALSE                                       0x00000000
#define NV056_SET_FOG_ENABLE_V_TRUE                                        0x00000001


#define NV056_SET_FOG_COLOR                                               0x000002a8
#define NV056_SET_FOG_COLOR_FOG_COLOR_RED                                        7:0
#define NV056_SET_FOG_COLOR_FOG_COLOR_GREEN                                     15:8
#define NV056_SET_FOG_COLOR_FOG_COLOR_BLUE                                     23:16
#define NV056_SET_FOG_COLOR_FOG_COLOR_ALPHA                                    31:24


#define NV056_SET_COLOR_KEY_COLOR(i)                               (0x000002ac+(i)*4)
#define NV056_SET_COLOR_KEY_COLOR_V                                              31:0


#define NV056_SET_WINDOW_CLIP_TYPE                                         0x000002b4
#define NV056_SET_WINDOW_CLIP_TYPE_V                                             31:0
#define NV056_SET_WINDOW_CLIP_TYPE_V_INCLUSIVE                             0x00000000
#define NV056_SET_WINDOW_CLIP_TYPE_V_EXCLUSIVE                             0x00000001


#define NV056_SET_WINDOW_CLIP_HORIZONTAL(i)                        (0x000002c0+(i)*4)
#define NV056_SET_WINDOW_CLIP_HORIZONTAL_XMIN                                    15:0
#define NV056_SET_WINDOW_CLIP_HORIZONTAL_XMAX                                   31:16


#define NV056_SET_WINDOW_CLIP_VERTICAL(i)                          (0x000002e0+(i)*4)
#define NV056_SET_WINDOW_CLIP_VERTICAL_YMIN                                      15:0
#define NV056_SET_WINDOW_CLIP_VERTICAL_YMAX                                     31:16


#define NV056_SET_ALPHA_TEST_ENABLE                                        0x00000300
#define NV056_SET_ALPHA_TEST_ENABLE_V                                            31:0
#define NV056_SET_ALPHA_TEST_ENABLE_V_FALSE                                0x00000000
#define NV056_SET_ALPHA_TEST_ENABLE_V_TRUE                                 0x00000001


#define NV056_SET_BLEND_ENABLE                                             0x00000304
#define NV056_SET_BLEND_ENABLE_V                                                 31:0
#define NV056_SET_BLEND_ENABLE_V_FALSE                                     0x00000000
#define NV056_SET_BLEND_ENABLE_V_TRUE                                      0x00000001


#define NV056_SET_CULL_FACE_ENABLE                                         0x00000308
#define NV056_SET_CULL_FACE_ENABLE_V                                             31:0
#define NV056_SET_CULL_FACE_ENABLE_V_FALSE                                 0x00000000
#define NV056_SET_CULL_FACE_ENABLE_V_TRUE                                  0x00000001


#define NV056_SET_DEPTH_TEST_ENABLE                                        0x0000030c
#define NV056_SET_DEPTH_TEST_ENABLE_V                                            31:0
#define NV056_SET_DEPTH_TEST_ENABLE_V_FALSE                                0x00000000
#define NV056_SET_DEPTH_TEST_ENABLE_V_TRUE                                 0x00000001


#define NV056_SET_DITHER_ENABLE                                            0x00000310
#define NV056_SET_DITHER_ENABLE_V                                                31:0
#define NV056_SET_DITHER_ENABLE_V_FALSE                                    0x00000000
#define NV056_SET_DITHER_ENABLE_V_TRUE                                     0x00000001


#define NV056_SET_LIGHTING_ENABLE                                          0x00000314
#define NV056_SET_LIGHTING_ENABLE_V                                              31:0
#define NV056_SET_LIGHTING_ENABLE_V_FALSE                                  0x00000000
#define NV056_SET_LIGHTING_ENABLE_V_TRUE                                   0x00000001


#define NV056_SET_POINT_PARAMS_ENABLE                                      0x00000318
#define NV056_SET_POINT_PARAMS_ENABLE_V                                          31:0
#define NV056_SET_POINT_PARAMS_ENABLE_V_FALSE                              0x00000000
#define NV056_SET_POINT_PARAMS_ENABLE_V_TRUE                               0x00000001


#define NV056_SET_POINT_SMOOTH_ENABLE                                      0x0000031c
#define NV056_SET_POINT_SMOOTH_ENABLE_V                                          31:0
#define NV056_SET_POINT_SMOOTH_ENABLE_V_FALSE                              0x00000000
#define NV056_SET_POINT_SMOOTH_ENABLE_V_TRUE                               0x00000001


#define NV056_SET_LINE_SMOOTH_ENABLE                                       0x00000320
#define NV056_SET_LINE_SMOOTH_ENABLE_V                                           31:0
#define NV056_SET_LINE_SMOOTH_ENABLE_V_FALSE                               0x00000000
#define NV056_SET_LINE_SMOOTH_ENABLE_V_TRUE                                0x00000001


#define NV056_SET_POLY_SMOOTH_ENABLE                                       0x00000324
#define NV056_SET_POLY_SMOOTH_ENABLE_V                                           31:0
#define NV056_SET_POLY_SMOOTH_ENABLE_V_FALSE                               0x00000000
#define NV056_SET_POLY_SMOOTH_ENABLE_V_TRUE                                0x00000001


#define NV056_SET_SKIN_ENABLE                                              0x00000328
#define NV056_SET_SKIN_ENABLE_V                                                  31:0
#define NV056_SET_SKIN_ENABLE_V_FALSE                                      0x00000000
#define NV056_SET_SKIN_ENABLE_V_TRUE                                       0x00000001


#define NV056_SET_STENCIL_TEST_ENABLE                                      0x0000032c
#define NV056_SET_STENCIL_TEST_ENABLE_V                                          31:0
#define NV056_SET_STENCIL_TEST_ENABLE_V_FALSE                              0x00000000
#define NV056_SET_STENCIL_TEST_ENABLE_V_TRUE                               0x00000001


#define NV056_SET_POLY_OFFSET_POINT_ENABLE                                 0x00000330
#define NV056_SET_POLY_OFFSET_POINT_ENABLE_V                                     31:0
#define NV056_SET_POLY_OFFSET_POINT_ENABLE_V_FALSE                         0x00000000
#define NV056_SET_POLY_OFFSET_POINT_ENABLE_V_TRUE                          0x00000001


#define NV056_SET_POLY_OFFSET_LINE_ENABLE                                  0x00000334
#define NV056_SET_POLY_OFFSET_LINE_ENABLE_V                                      31:0
#define NV056_SET_POLY_OFFSET_LINE_ENABLE_V_FALSE                          0x00000000
#define NV056_SET_POLY_OFFSET_LINE_ENABLE_V_TRUE                           0x00000001


#define NV056_SET_POLY_OFFSET_FILL_ENABLE                                  0x00000338
#define NV056_SET_POLY_OFFSET_FILL_ENABLE_V                                      31:0
#define NV056_SET_POLY_OFFSET_FILL_ENABLE_V_FALSE                          0x00000000
#define NV056_SET_POLY_OFFSET_FILL_ENABLE_V_TRUE                           0x00000001


#define NV056_SET_ALPHA_FUNC                                               0x0000033c
#define NV056_SET_ALPHA_FUNC_V                                                   31:0
#define NV056_SET_ALPHA_FUNC_V_NEVER                                       0x00000200
#define NV056_SET_ALPHA_FUNC_V_LESS                                        0x00000201
#define NV056_SET_ALPHA_FUNC_V_EQUAL                                       0x00000202
#define NV056_SET_ALPHA_FUNC_V_LEQUAL                                      0x00000203
#define NV056_SET_ALPHA_FUNC_V_GREATER                                     0x00000204
#define NV056_SET_ALPHA_FUNC_V_NOTEQUAL                                    0x00000205
#define NV056_SET_ALPHA_FUNC_V_GEQUAL                                      0x00000206
#define NV056_SET_ALPHA_FUNC_V_ALWAYS                                      0x00000207


#define NV056_SET_ALPHA_REF                                                0x00000340


#define NV056_SET_BLEND_FUNC_SFACTOR                                       0x00000344
#define NV056_SET_BLEND_FUNC_SFACTOR_V                                           31:0
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ZERO                                0x00000000
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ONE                                 0x00000001
#define NV056_SET_BLEND_FUNC_SFACTOR_V_SRC_COLOR                           0x00000300
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_COLOR                 0x00000301
#define NV056_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA                           0x00000302
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_ALPHA                 0x00000303
#define NV056_SET_BLEND_FUNC_SFACTOR_V_DST_ALPHA                           0x00000304
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_ALPHA                 0x00000305
#define NV056_SET_BLEND_FUNC_SFACTOR_V_DST_COLOR                           0x00000306
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_COLOR                 0x00000307
#define NV056_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA_SATURATE                  0x00000308
#define NV056_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_COLOR                      0x00008001
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_COLOR            0x00008002
#define NV056_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_ALPHA                      0x00008003
#define NV056_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_ALPHA            0x00008004


#define NV056_SET_BLEND_FUNC_DFACTOR                                       0x00000348
#define NV056_SET_BLEND_FUNC_DFACTOR_V                                           31:0
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ZERO                                0x00000000
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ONE                                 0x00000001
#define NV056_SET_BLEND_FUNC_DFACTOR_V_SRC_COLOR                           0x00000300
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_COLOR                 0x00000301
#define NV056_SET_BLEND_FUNC_DFACTOR_V_SRC_ALPHA                           0x00000302
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_ALPHA                 0x00000303
#define NV056_SET_BLEND_FUNC_DFACTOR_V_DST_ALPHA                           0x00000304
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_ALPHA                 0x00000305
#define NV056_SET_BLEND_FUNC_DFACTOR_V_DST_COLOR                           0x00000306
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_COLOR                 0x00000307
#define NV056_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_COLOR                      0x00008001
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_COLOR            0x00008002
#define NV056_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_ALPHA                      0x00008003
#define NV056_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_ALPHA            0x00008004


#define NV056_SET_BLEND_COLOR                                              0x0000034c
#define NV056_SET_BLEND_COLOR_V                                                  31:0


#define NV056_SET_BLEND_EQUATION                                           0x00000350
#define NV056_SET_BLEND_EQUATION_V                                               31:0
#define NV056_SET_BLEND_EQUATION_V_FUNC_SUBTRACT                           0x0000800A
#define NV056_SET_BLEND_EQUATION_V_FUNC_REVERSE_SUBTRACT                   0x0000800B
#define NV056_SET_BLEND_EQUATION_V_FUNC_ADD                                0x00008006
#define NV056_SET_BLEND_EQUATION_V_MIN                                     0x00008007
#define NV056_SET_BLEND_EQUATION_V_MAX                                     0x00008008


#define NV056_SET_DEPTH_FUNC                                               0x00000354
#define NV056_SET_DEPTH_FUNC_V                                                   31:0
#define NV056_SET_DEPTH_FUNC_V_NEVER                                       0x00000200
#define NV056_SET_DEPTH_FUNC_V_LESS                                        0x00000201
#define NV056_SET_DEPTH_FUNC_V_EQUAL                                       0x00000202
#define NV056_SET_DEPTH_FUNC_V_LEQUAL                                      0x00000203
#define NV056_SET_DEPTH_FUNC_V_GREATER                                     0x00000204
#define NV056_SET_DEPTH_FUNC_V_NOTEQUAL                                    0x00000205
#define NV056_SET_DEPTH_FUNC_V_GEQUAL                                      0x00000206
#define NV056_SET_DEPTH_FUNC_V_ALWAYS                                      0x00000207


#define NV056_SET_COLOR_MASK                                               0x00000358
#define NV056_SET_COLOR_MASK_ALPHA_WRITE_ENABLE                                 31:24
#define NV056_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_FALSE                      0x00000000
#define NV056_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_TRUE                       0x00000001
#define NV056_SET_COLOR_MASK_RED_WRITE_ENABLE                                   23:16
#define NV056_SET_COLOR_MASK_RED_WRITE_ENABLE_FALSE                        0x00000000
#define NV056_SET_COLOR_MASK_RED_WRITE_ENABLE_TRUE                         0x00000001
#define NV056_SET_COLOR_MASK_GREEN_WRITE_ENABLE                                  15:8
#define NV056_SET_COLOR_MASK_GREEN_WRITE_ENABLE_FALSE                      0x00000000
#define NV056_SET_COLOR_MASK_GREEN_WRITE_ENABLE_TRUE                       0x00000001
#define NV056_SET_COLOR_MASK_BLUE_WRITE_ENABLE                                    7:0
#define NV056_SET_COLOR_MASK_BLUE_WRITE_ENABLE_FALSE                       0x00000000
#define NV056_SET_COLOR_MASK_BLUE_WRITE_ENABLE_TRUE                        0x00000001


#define NV056_SET_DEPTH_MASK                                               0x0000035c
#define NV056_SET_DEPTH_MASK_V                                                   31:0
#define NV056_SET_DEPTH_MASK_V_FALSE                                       0x00000000
#define NV056_SET_DEPTH_MASK_V_TRUE                                        0x00000001


#define NV056_SET_STENCIL_MASK                                             0x00000360
#define NV056_SET_STENCIL_MASK_V                                                 31:0


#define NV056_SET_STENCIL_FUNC                                             0x00000364
#define NV056_SET_STENCIL_FUNC_V                                                 31:0
#define NV056_SET_STENCIL_FUNC_V_NEVER                                     0x00000200
#define NV056_SET_STENCIL_FUNC_V_LESS                                      0x00000201
#define NV056_SET_STENCIL_FUNC_V_EQUAL                                     0x00000202
#define NV056_SET_STENCIL_FUNC_V_LEQUAL                                    0x00000203
#define NV056_SET_STENCIL_FUNC_V_GREATER                                   0x00000204
#define NV056_SET_STENCIL_FUNC_V_NOTEQUAL                                  0x00000205
#define NV056_SET_STENCIL_FUNC_V_GEQUAL                                    0x00000206
#define NV056_SET_STENCIL_FUNC_V_ALWAYS                                    0x00000207


#define NV056_SET_STENCIL_FUNC_REF                                         0x00000368
#define NV056_SET_STENCIL_FUNC_REF_V                                             31:0


#define NV056_SET_STENCIL_FUNC_MASK                                        0x0000036c
#define NV056_SET_STENCIL_FUNC_MASK_V                                            31:0


#define NV056_SET_STENCIL_OP_FAIL                                          0x00000370
#define NV056_SET_STENCIL_OP_FAIL_V                                              31:0
#define NV056_SET_STENCIL_OP_FAIL_V_KEEP                                   0x00001E00
#define NV056_SET_STENCIL_OP_FAIL_V_ZERO                                   0x00000000
#define NV056_SET_STENCIL_OP_FAIL_V_REPLACE                                0x00001E01
#define NV056_SET_STENCIL_OP_FAIL_V_INCRSAT                                0x00001E02
#define NV056_SET_STENCIL_OP_FAIL_V_DECRSAT                                0x00001E03
#define NV056_SET_STENCIL_OP_FAIL_V_INVERT                                 0x0000150A
#define NV056_SET_STENCIL_OP_FAIL_V_INCR                                   0x00008507
#define NV056_SET_STENCIL_OP_FAIL_V_DECR                                   0x00008508


#define NV056_SET_STENCIL_OP_ZFAIL                                         0x00000374
#define NV056_SET_STENCIL_OP_ZFAIL_V                                             31:0
#define NV056_SET_STENCIL_OP_ZFAIL_V_KEEP                                  0x00001E00
#define NV056_SET_STENCIL_OP_ZFAIL_V_ZERO                                  0x00000000
#define NV056_SET_STENCIL_OP_ZFAIL_V_REPLACE                               0x00001E01
#define NV056_SET_STENCIL_OP_ZFAIL_V_INCRSAT                               0x00001E02
#define NV056_SET_STENCIL_OP_ZFAIL_V_DECRSAT                               0x00001E03
#define NV056_SET_STENCIL_OP_ZFAIL_V_INVERT                                0x0000150A
#define NV056_SET_STENCIL_OP_ZFAIL_V_INCR                                  0x00008507
#define NV056_SET_STENCIL_OP_ZFAIL_V_DECR                                  0x00008508


#define NV056_SET_STENCIL_OP_ZPASS                                         0x00000378
#define NV056_SET_STENCIL_OP_ZPASS_V                                             31:0
#define NV056_SET_STENCIL_OP_ZPASS_V_KEEP                                  0x00001E00
#define NV056_SET_STENCIL_OP_ZPASS_V_ZERO                                  0x00000000
#define NV056_SET_STENCIL_OP_ZPASS_V_REPLACE                               0x00001E01
#define NV056_SET_STENCIL_OP_ZPASS_V_INCRSAT                               0x00001E02
#define NV056_SET_STENCIL_OP_ZPASS_V_DECRSAT                               0x00001E03
#define NV056_SET_STENCIL_OP_ZPASS_V_INVERT                                0x0000150A
#define NV056_SET_STENCIL_OP_ZPASS_V_INCR                                  0x00008507
#define NV056_SET_STENCIL_OP_ZPASS_V_DECR                                  0x00008508


#define NV056_SET_SHADE_MODE                                               0x0000037c
#define NV056_SET_SHADE_MODE_V                                                   31:0
#define NV056_SET_SHADE_MODE_V_FLAT                                        0x00001D00
#define NV056_SET_SHADE_MODE_V_SMOOTH                                      0x00001D01


#define NV056_SET_LINE_WIDTH                                               0x00000380
#define NV056_SET_LINE_WIDTH_V                                                   31:0


#define NV056_SET_POLYGON_OFFSET_SCALE_FACTOR                              0x00000384
#define NV056_SET_POLYGON_OFFSET_SCALE_FACTOR_V                                  31:0


#define NV056_SET_POLYGON_OFFSET_BIAS                                      0x00000388
#define NV056_SET_POLYGON_OFFSET_BIAS_V                                          31:0


#define NV056_SET_FRONT_POLYGON_MODE                                       0x0000038c
#define NV056_SET_FRONT_POLYGON_MODE_V                                           31:0
#define NV056_SET_FRONT_POLYGON_MODE_V_POINT                               0x00001B00
#define NV056_SET_FRONT_POLYGON_MODE_V_LINE                                0x00001B01
#define NV056_SET_FRONT_POLYGON_MODE_V_FILL                                0x00001B02


#define NV056_SET_BACK_POLYGON_MODE                                        0x00000390
#define NV056_SET_BACK_POLYGON_MODE_V                                            31:0
#define NV056_SET_BACK_POLYGON_MODE_V_POINT                                0x00001B00
#define NV056_SET_BACK_POLYGON_MODE_V_LINE                                 0x00001B01
#define NV056_SET_BACK_POLYGON_MODE_V_FILL                                 0x00001B02


#define NV056_SET_CLIP_MIN                                                 0x00000394
#define NV056_SET_CLIP_MIN_V                                                     31:0


#define NV056_SET_CLIP_MAX                                                 0x00000398
#define NV056_SET_CLIP_MAX_V                                                     31:0


#define NV056_SET_CULL_FACE                                                0x0000039c
#define NV056_SET_CULL_FACE_V                                                    31:0
#define NV056_SET_CULL_FACE_V_FRONT                                        0x00000404
#define NV056_SET_CULL_FACE_V_BACK                                         0x00000405
#define NV056_SET_CULL_FACE_V_FRONT_AND_BACK                               0x00000408


#define NV056_SET_FRONT_FACE                                               0x000003a0
#define NV056_SET_FRONT_FACE_V                                                   31:0
#define NV056_SET_FRONT_FACE_V_CW                                          0x00000900
#define NV056_SET_FRONT_FACE_V_CCW                                         0x00000901


#define NV056_SET_NORMALIZATION_ENABLE                                     0x000003a4
#define NV056_SET_NORMALIZATION_ENABLE_V                                         31:0
#define NV056_SET_NORMALIZATION_ENABLE_V_FALSE                             0x00000000
#define NV056_SET_NORMALIZATION_ENABLE_V_TRUE                              0x00000001


#define NV056_SET_MATERIAL_EMISSION(i)                             (0x000003a8+(i)*4)


#define NV056_SET_MATERIAL_ALPHA                                           0x000003b4


#define NV056_SET_SPECULAR_ENABLE                                          0x000003b8
#define NV056_SET_SPECULAR_ENABLE_V                                              31:0
#define NV056_SET_SPECULAR_ENABLE_V_FALSE                                  0x00000000
#define NV056_SET_SPECULAR_ENABLE_V_TRUE                                   0x00000001


#define NV056_SET_LIGHT_ENABLE_MASK                                        0x000003bc
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT0                                        1:0
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT0_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT0_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT0_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT0_SPOT                            0x00000003
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT1                                        3:2
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT1_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT1_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT1_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT1_SPOT                            0x00000003
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT2                                        5:4
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT2_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT2_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT2_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT2_SPOT                            0x00000003
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT3                                        7:6
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT3_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT3_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT3_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT3_SPOT                            0x00000003
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT4                                        9:8
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT4_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT4_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT4_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT4_SPOT                            0x00000003
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT5                                      11:10
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT5_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT5_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT5_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT5_SPOT                            0x00000003
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT6                                      13:12
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT6_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT6_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT6_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT6_SPOT                            0x00000003
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT7                                      15:14
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT7_OFF                             0x00000000
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT7_INFINITE                        0x00000001
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT7_LOCAL                           0x00000002
#define NV056_SET_LIGHT_ENABLE_MASK_LIGHT7_SPOT                            0x00000003


#define NV056_SET_TEXGEN_S(i)                                     (0x000003c0+(i)*16)
#define NV056_SET_TEXGEN_S_V                                                     31:0
#define NV056_SET_TEXGEN_S_V_DISABLE                                       0x00000000
#define NV056_SET_TEXGEN_S_V_NORMAL_MAP                                    0x00008511
#define NV056_SET_TEXGEN_S_V_REFLECTION_MAP                                0x00008512
#define NV056_SET_TEXGEN_S_V_EYE_LINEAR                                    0x00002400
#define NV056_SET_TEXGEN_S_V_OBJECT_LINEAR                                 0x00002401
#define NV056_SET_TEXGEN_S_V_SPHERE_MAP                                    0x00002402
#define NV056_SET_TEXGEN_S_V_EMBOSS                                        0x0000855F


#define NV056_SET_TEXGEN_T(i)                                     (0x000003c4+(i)*16)
#define NV056_SET_TEXGEN_T_V                                                     31:0
#define NV056_SET_TEXGEN_T_V_DISABLE                                       0x00000000
#define NV056_SET_TEXGEN_T_V_NORMAL_MAP                                    0x00008511
#define NV056_SET_TEXGEN_T_V_REFLECTION_MAP                                0x00008512
#define NV056_SET_TEXGEN_T_V_EYE_LINEAR                                    0x00002400
#define NV056_SET_TEXGEN_T_V_OBJECT_LINEAR                                 0x00002401
#define NV056_SET_TEXGEN_T_V_SPHERE_MAP                                    0x00002402
#define NV056_SET_TEXGEN_T_V_EMBOSS                                        0x0000855F


#define NV056_SET_TEXGEN_R(i)                                     (0x000003c8+(i)*16)
#define NV056_SET_TEXGEN_R_V                                                     31:0
#define NV056_SET_TEXGEN_R_V_DISABLE                                       0x00000000
#define NV056_SET_TEXGEN_R_V_NORMAL_MAP                                    0x00008511
#define NV056_SET_TEXGEN_R_V_REFLECTION_MAP                                0x00008512
#define NV056_SET_TEXGEN_R_V_EYE_LINEAR                                    0x00002400
#define NV056_SET_TEXGEN_R_V_OBJECT_LINEAR                                 0x00002401
#define NV056_SET_TEXGEN_R_V_EMBOSS                                        0x0000855F


#define NV056_SET_TEXGEN_Q(i)                                     (0x000003cc+(i)*16)
#define NV056_SET_TEXGEN_Q_V                                                     31:0
#define NV056_SET_TEXGEN_Q_V_DISABLE                                       0x00000000
#define NV056_SET_TEXGEN_Q_V_EYE_LINEAR                                    0x00002400
#define NV056_SET_TEXGEN_Q_V_OBJECT_LINEAR                                 0x00002401


#define NV056_SET_TEXTURE_MATRIX0_ENABLE                                   0x000003e0
#define NV056_SET_TEXTURE_MATRIX0_ENABLE_V                                       31:0
#define NV056_SET_TEXTURE_MATRIX0_ENABLE_V_FALSE                           0x00000000
#define NV056_SET_TEXTURE_MATRIX0_ENABLE_V_TRUE                            0x00000001


#define NV056_SET_TEXTURE_MATRIX1_ENABLE                                   0x000003e4
#define NV056_SET_TEXTURE_MATRIX1_ENABLE_V                                       31:0
#define NV056_SET_TEXTURE_MATRIX1_ENABLE_V_FALSE                           0x00000000
#define NV056_SET_TEXTURE_MATRIX1_ENABLE_V_TRUE                            0x00000001


#define NV056_SET_TLMODE                                                   0x000003e8
#define NV056_SET_TLMODE_PASSTHROUGH                                              0:0
#define NV056_SET_TLMODE_PASSTHROUGH_TRUE                                  0x00000001
#define NV056_SET_TLMODE_PASSTHROUGH_FALSE                                 0x00000000
#define NV056_SET_TLMODE_W_DIVIDE_0                                               1:1
#define NV056_SET_TLMODE_W_DIVIDE_0_DISABLE                                0x00000000
#define NV056_SET_TLMODE_W_DIVIDE_0_ENABLE                                 0x00000001
#define NV056_SET_TLMODE_W_DIVIDE_1                                               2:2
#define NV056_SET_TLMODE_W_DIVIDE_1_DISABLE                                0x00000000
#define NV056_SET_TLMODE_W_DIVIDE_1_ENABLE                                 0x00000001


#define NV056_SET_POINT_SIZE                                               0x000003ec
#define NV056_SET_POINT_SIZE_V                                                   31:0


#define NV056_SET_SWATH_WIDTH                                              0x000003f0
#define NV056_SET_SWATH_WIDTH_V                                                  31:0
#define NV056_SET_SWATH_WIDTH_V_8                                          0x00000000
#define NV056_SET_SWATH_WIDTH_V_16                                         0x00000001
#define NV056_SET_SWATH_WIDTH_V_32                                         0x00000002
#define NV056_SET_SWATH_WIDTH_V_64                                         0x00000003


#define NV056_SET_FLAT_SHADE_OP                                            0x000003f4
#define NV056_SET_FLAT_SHADE_OP_V                                                31:0
#define NV056_SET_FLAT_SHADE_OP_V_LAST_VTX                                 0x00000000
#define NV056_SET_FLAT_SHADE_OP_V_FIRST_VTX                                0x00000001


#define NV056_SET_MODEL_VIEW_MATRIX0(i)                            (0x00000400+(i)*4)


#define NV056_SET_MODEL_VIEW_MATRIX1(i)                            (0x00000440+(i)*4)


#define NV056_SET_INVERSE_MODEL_VIEW_MATRIX0(i)                    (0x00000480+(i)*4)


#define NV056_SET_INVERSE_MODEL_VIEW_MATRIX1(i)                    (0x000004c0+(i)*4)


#define NV056_SET_COMPOSITE_MATRIX(i)                              (0x00000500+(i)*4)


#define NV056_SET_TEXTURE_MATRIX0(i)                               (0x00000540+(i)*4)


#define NV056_SET_TEXTURE_MATRIX1(i)                               (0x00000580+(i)*4)


#define NV056_SET_TEXGEN_SPLANE0(i)                                (0x00000600+(i)*4)


#define NV056_SET_TEXGEN_TPLANE0(i)                                (0x00000610+(i)*4)


#define NV056_SET_TEXGEN_RPLANE0(i)                                (0x00000620+(i)*4)


#define NV056_SET_TEXGEN_QPLANE0(i)                                (0x00000630+(i)*4)


#define NV056_SET_TEXGEN_SPLANE1(i)                                (0x00000640+(i)*4)


#define NV056_SET_TEXGEN_TPLANE1(i)                                (0x00000650+(i)*4)


#define NV056_SET_TEXGEN_RPLANE1(i)                                (0x00000660+(i)*4)


#define NV056_SET_TEXGEN_QPLANE1(i)                                (0x00000670+(i)*4)


#define NV056_SET_FOG_PARAMS(i)                                    (0x00000680+(i)*4)


#define NV056_SET_FOG_PLANE(i)                                     (0x0000068c+(i)*4)


#define NV056_SET_SPECULAR_PARAMS(i)                               (0x000006a0+(i)*4)


#define NV056_SET_SCENE_AMBIENT_COLOR(i)                           (0x000006c4+(i)*4)


#define NV056_SET_VIEWPORT_OFFSET(i)                               (0x000006e8+(i)*4)


#define NV056_SET_POINT_PARAMS(i)                                  (0x000006f8+(i)*4)


#define NV056_SET_EYE_POSITION(i)                                  (0x00000718+(i)*4)

#define NV056_SET_EYE_DIRECTION_SW(i)                              (0x0000072c+(i)*4)


#define NV056_SET_LIGHT_AMBIENT_COLOR(i,j)                 (0x00000800+(i)*128+(j)*4)


#define NV056_SET_LIGHT_DIFFUSE_COLOR(i,j)                 (0x0000080c+(i)*128+(j)*4)


#define NV056_SET_LIGHT_SPECULAR_COLOR(i,j)                (0x00000818+(i)*128+(j)*4)


#define NV056_SET_LIGHT_LOCAL_RANGE(i)                           (0x00000824+(i)*128)


#define NV056_SET_LIGHT_INFINITE_HALF_VECTOR(i,j)          (0x00000828+(i)*128+(j)*4)


#define NV056_SET_LIGHT_INFINITE_DIRECTION(i,j)            (0x00000834+(i)*128+(j)*4)


#define NV056_SET_LIGHT_SPOT_FALLOFF(i,j)                  (0x00000840+(i)*128+(j)*4)


#define NV056_SET_LIGHT_SPOT_DIRECTION(i,j)                (0x0000084c+(i)*128+(j)*4)


#define NV056_SET_LIGHT_LOCAL_POSITION(i,j)                (0x0000085c+(i)*128+(j)*4)


#define NV056_SET_LIGHT_LOCAL_ATTENUATION(i,j)             (0x00000868+(i)*128+(j)*4)


#define NV056_SET_VERTEX3F(i)                                      (0x00000c00+(i)*4)


#define NV056_SET_VERTEX4F(i)                                      (0x00000c18+(i)*4)


#define NV056_SET_VERTEX4S(i)                                      (0x00000c28+(i)*4)


#define NV056_SET_NORMAL3F(i)                                      (0x00000c30+(i)*4)


#define NV056_SET_NORMAL3S(i)                                      (0x00000c40+(i)*2)


#define NV056_SET_DIFFUSE_COLOR4F(i)                               (0x00000c50+(i)*4)


#define NV056_SET_DIFFUSE_COLOR3F(i)                               (0x00000c60+(i)*4)


#define NV056_SET_DIFFUSE_COLOR4UB                                         0x00000c6c


#define NV056_SET_SPECULAR_COLOR4F(i)                              (0x00000c70+(i)*4)


#define NV056_SET_SPECULAR_COLOR3F(i)                              (0x00000c80+(i)*4)


#define NV056_SET_SPECULAR_COLOR4UB                                        0x00000c8c


#define NV056_SET_TEXCOORD0_2F(i)                                  (0x00000c90+(i)*4)


#define NV056_SET_TEXCOORD0_2S(i)                                  (0x00000c98+(i)*2)


#define NV056_SET_TEXCOORD0_4F(i)                                  (0x00000ca0+(i)*4)


#define NV056_SET_TEXCOORD0_4S(i)                                  (0x00000cb0+(i)*2)


#define NV056_SET_TEXCOORD1_2F(i)                                  (0x00000cb8+(i)*4)


#define NV056_SET_TEXCOORD1_2S(i)                                  (0x00000cc0+(i)*2)


#define NV056_SET_TEXCOORD1_4F(i)                                  (0x00000cc8+(i)*4)


#define NV056_SET_TEXCOORD1_4S(i)                                  (0x00000cd8+(i)*2)


#define NV056_SET_FOG1F                                                    0x00000ce0


#define NV056_SET_WEIGHT1F                                                 0x00000ce4


#define NV056_SET_EDGE_FLAG                                                0x00000cec


#define NV056_INVALIDATE_VERTEX_CACHE_FILE                                 0x00000cf0


#define NV056_INVALIDATE_VERTEX_FILE                                       0x00000cf4


#define NV056_TL_NOP                                                       0x00000cf8


#define NV056_TL_SYNC                                                      0x00000cfc


#define NV056_SET_VERTEX_ARRAY_OFFSET                                      0x00000d00
#define NV056_SET_VERTEX_ARRAY_OFFSET_OFFSET                                     27:0


#define NV056_SET_VERTEX_ARRAY_FORMAT                                      0x00000d04
#define NV056_SET_VERTEX_ARRAY_FORMAT_W                                         31:24
#define NV056_SET_VERTEX_ARRAY_FORMAT_W_NONE                               0x00000000
#define NV056_SET_VERTEX_ARRAY_FORMAT_W_PRESENT                            0x00000001
#define NV056_SET_VERTEX_ARRAY_FORMAT_STRIDE                                     23:8
#define NV056_SET_VERTEX_ARRAY_FORMAT_SIZE                                        7:4
#define NV056_SET_VERTEX_ARRAY_FORMAT_SIZE_2                               0x00000002
#define NV056_SET_VERTEX_ARRAY_FORMAT_SIZE_3                               0x00000003
#define NV056_SET_VERTEX_ARRAY_FORMAT_SIZE_4                               0x00000004
#define NV056_SET_VERTEX_ARRAY_FORMAT_TYPE                                        3:0
#define NV056_SET_VERTEX_ARRAY_FORMAT_TYPE_SHORT                           0x00000001
#define NV056_SET_VERTEX_ARRAY_FORMAT_TYPE_FLOAT                           0x00000002


#define NV056_SET_DIFFUSE_ARRAY_OFFSET                                     0x00000d08
#define NV056_SET_DIFFUSE_ARRAY_OFFSET_OFFSET                                    27:0


#define NV056_SET_DIFFUSE_ARRAY_FORMAT                                     0x00000d0c
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_STRIDE                                    31:8
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_SIZE                                       7:4
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_SIZE_0                              0x00000000
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_SIZE_3                              0x00000003
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_SIZE_4                              0x00000004
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_TYPE                                       3:0
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_BGRA             0x00000000
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_TYPE_FLOAT                          0x00000002
#define NV056_SET_DIFFUSE_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_RGBA             0x00000004


#define NV056_SET_SPECULAR_ARRAY_OFFSET                                    0x00000d10
#define NV056_SET_SPECULAR_ARRAY_OFFSET_OFFSET                                   27:0


#define NV056_SET_SPECULAR_ARRAY_FORMAT                                    0x00000d14
#define NV056_SET_SPECULAR_ARRAY_FORMAT_STRIDE                                   31:8
#define NV056_SET_SPECULAR_ARRAY_FORMAT_SIZE                                      7:4
#define NV056_SET_SPECULAR_ARRAY_FORMAT_SIZE_0                             0x00000000
#define NV056_SET_SPECULAR_ARRAY_FORMAT_SIZE_3                             0x00000003
#define NV056_SET_SPECULAR_ARRAY_FORMAT_SIZE_4                             0x00000004
#define NV056_SET_SPECULAR_ARRAY_FORMAT_TYPE                                      3:0
#define NV056_SET_SPECULAR_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_BGRA            0x00000000
#define NV056_SET_SPECULAR_ARRAY_FORMAT_TYPE_FLOAT                         0x00000002
#define NV056_SET_SPECULAR_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_RGBA            0x00000004


#define NV056_SET_TEX_COORD0_ARRAY_OFFSET                                  0x00000d18
#define NV056_SET_TEX_COORD0_ARRAY_OFFSET_OFFSET                                 27:0


#define NV056_SET_TEX_COORD0_ARRAY_FORMAT                                  0x00000d1c
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_STRIDE                                 31:8
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_SIZE                                    7:4
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_0                           0x00000000
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_1                           0x00000001
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_2                           0x00000002
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_3                           0x00000003
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_4                           0x00000004
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_TYPE                                    3:0
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_TYPE_SHORT                       0x00000001
#define NV056_SET_TEX_COORD0_ARRAY_FORMAT_TYPE_FLOAT                       0x00000002


#define NV056_SET_TEX_COORD1_ARRAY_OFFSET                                  0x00000d20
#define NV056_SET_TEX_COORD1_ARRAY_OFFSET_OFFSET                                 27:0


#define NV056_SET_TEX_COORD1_ARRAY_FORMAT                                  0x00000d24
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_STRIDE                                 31:8
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_SIZE                                    7:4
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_0                           0x00000000
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_1                           0x00000001
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_2                           0x00000002
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_3                           0x00000003
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_4                           0x00000004
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_TYPE                                    3:0
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_TYPE_SHORT                       0x00000001
#define NV056_SET_TEX_COORD1_ARRAY_FORMAT_TYPE_FLOAT                       0x00000002


#define NV056_SET_NORMAL_ARRAY_OFFSET                                      0x00000d28
#define NV056_SET_NORMAL_ARRAY_OFFSET_OFFSET                                     27:0


#define NV056_SET_NORMAL_ARRAY_FORMAT                                      0x00000d2c
#define NV056_SET_NORMAL_ARRAY_FORMAT_STRIDE                                     31:8
#define NV056_SET_NORMAL_ARRAY_FORMAT_SIZE                                        7:4
#define NV056_SET_NORMAL_ARRAY_FORMAT_SIZE_0                               0x00000000
#define NV056_SET_NORMAL_ARRAY_FORMAT_SIZE_3                               0x00000003
#define NV056_SET_NORMAL_ARRAY_FORMAT_TYPE                                        3:0
#define NV056_SET_NORMAL_ARRAY_FORMAT_TYPE_SHORT                           0x00000001
#define NV056_SET_NORMAL_ARRAY_FORMAT_TYPE_FLOAT                           0x00000002


#define NV056_SET_WEIGHT_ARRAY_OFFSET                                      0x00000d30
#define NV056_SET_WEIGHT_ARRAY_OFFSET_OFFSET                                     27:0


#define NV056_SET_WEIGHT_ARRAY_FORMAT                                      0x00000d34
#define NV056_SET_WEIGHT_ARRAY_FORMAT_STRIDE                                     31:8
#define NV056_SET_WEIGHT_ARRAY_FORMAT_SIZE                                        7:4
#define NV056_SET_WEIGHT_ARRAY_FORMAT_SIZE_0                               0x00000000
#define NV056_SET_WEIGHT_ARRAY_FORMAT_SIZE_1                               0x00000001
#define NV056_SET_WEIGHT_ARRAY_FORMAT_TYPE                                        3:0
#define NV056_SET_WEIGHT_ARRAY_FORMAT_TYPE_SHORT                           0x00000001
#define NV056_SET_WEIGHT_ARRAY_FORMAT_TYPE_FLOAT                           0x00000002


#define NV056_SET_FOG_ARRAY_OFFSET                                         0x00000d38
#define NV056_SET_FOG_ARRAY_OFFSET_OFFSET                                        27:0


#define NV056_SET_FOG_ARRAY_FORMAT                                         0x00000d3c
#define NV056_SET_FOG_ARRAY_FORMAT_STRIDE                                        31:8
#define NV056_SET_FOG_ARRAY_FORMAT_SIZE                                           7:4
#define NV056_SET_FOG_ARRAY_FORMAT_SIZE_0                                  0x00000000
#define NV056_SET_FOG_ARRAY_FORMAT_SIZE_1                                  0x00000001
#define NV056_SET_FOG_ARRAY_FORMAT_TYPE                                           3:0
#define NV056_SET_FOG_ARRAY_FORMAT_TYPE_SHORT                              0x00000001
#define NV056_SET_FOG_ARRAY_FORMAT_TYPE_FLOAT                              0x00000002


#define NV056_SET_BEGIN_END                                                0x00000dfc
#define NV056_SET_BEGIN_END_OP                                                   31:0
#define NV056_SET_BEGIN_END_OP_END                                         0x00000000
#define NV056_SET_BEGIN_END_OP_POINTS                                      0x00000001
#define NV056_SET_BEGIN_END_OP_LINES                                       0x00000002
#define NV056_SET_BEGIN_END_OP_LINE_LOOP                                   0x00000003
#define NV056_SET_BEGIN_END_OP_LINE_STRIP                                  0x00000004
#define NV056_SET_BEGIN_END_OP_TRIANGLES                                   0x00000005
#define NV056_SET_BEGIN_END_OP_TRIANGLE_STRIP                              0x00000006
#define NV056_SET_BEGIN_END_OP_TRIANGLE_FAN                                0x00000007
#define NV056_SET_BEGIN_END_OP_QUADS                                       0x00000008
#define NV056_SET_BEGIN_END_OP_QUAD_STRIP                                  0x00000009
#define NV056_SET_BEGIN_END_OP_POLYGON                                     0x0000000A


#define NV056_ARRAY_ELEMENT16(i)                                   (0x00000e00+(i)*2)


#define NV056_SET_BEGIN_END2                                               0x000010fc
#define NV056_SET_BEGIN_END2_OP                                                  31:0
#define NV056_SET_BEGIN_END2_OP_END                                        0x00000000
#define NV056_SET_BEGIN_END2_OP_POINTS                                     0x00000001
#define NV056_SET_BEGIN_END2_OP_LINES                                      0x00000002
#define NV056_SET_BEGIN_END2_OP_LINE_LOOP                                  0x00000003
#define NV056_SET_BEGIN_END2_OP_LINE_STRIP                                 0x00000004
#define NV056_SET_BEGIN_END2_OP_TRIANGLES                                  0x00000005
#define NV056_SET_BEGIN_END2_OP_TRIANGLE_STRIP                             0x00000006
#define NV056_SET_BEGIN_END2_OP_TRIANGLE_FAN                               0x00000007
#define NV056_SET_BEGIN_END2_OP_QUADS                                      0x00000008
#define NV056_SET_BEGIN_END2_OP_QUAD_STRIP                                 0x00000009
#define NV056_SET_BEGIN_END2_OP_POLYGON                                    0x0000000A


#define NV056_ARRAY_ELEMENT32(i)                                   (0x00001100+(i)*4)


#define NV056_SET_BEGIN_END3                                               0x000013fc
#define NV056_SET_BEGIN_END3_OP                                                  31:0
#define NV056_SET_BEGIN_END3_OP_END                                        0x00000000
#define NV056_SET_BEGIN_END3_OP_POINTS                                     0x00000001
#define NV056_SET_BEGIN_END3_OP_LINES                                      0x00000002
#define NV056_SET_BEGIN_END3_OP_LINE_LOOP                                  0x00000003
#define NV056_SET_BEGIN_END3_OP_LINE_STRIP                                 0x00000004
#define NV056_SET_BEGIN_END3_OP_TRIANGLES                                  0x00000005
#define NV056_SET_BEGIN_END3_OP_TRIANGLE_STRIP                             0x00000006
#define NV056_SET_BEGIN_END3_OP_TRIANGLE_FAN                               0x00000007
#define NV056_SET_BEGIN_END3_OP_QUADS                                      0x00000008
#define NV056_SET_BEGIN_END3_OP_QUAD_STRIP                                 0x00000009
#define NV056_SET_BEGIN_END3_OP_POLYGON                                    0x0000000A


#define NV056_DRAW_ARRAYS(i)                                       (0x00001400+(i)*4)
#define NV056_DRAW_ARRAYS_COUNT                                                 31:24
#define NV056_DRAW_ARRAYS_START_INDEX                                            23:0


/* These methods are accepted between a begin/end. */
#define NV056_SET_MATERIAL_EMISSION_SW(i)                          (0x00001628+(i)*4)
#define NV056_SET_VIEWPORT_OFFSET_SW(i)                            (0x00001638+(i)*4)
/* The PASSTHRU_VIEWPORT_OFFSET aliases to row 1 of the MODEL_VIEW_MATRIX1 */
#define NV056_SET_PASSTHRU_VIEWPORT_OFFSET_SW(i)                   (0x00001648+(i)*4)


#define NV056_SET_BEGIN_END4                                               0x000017fc
#define NV056_SET_BEGIN_END4_OP                                                  31:0
#define NV056_SET_BEGIN_END4_OP_END                                        0x00000000
#define NV056_SET_BEGIN_END4_OP_POINTS                                     0x00000001
#define NV056_SET_BEGIN_END4_OP_LINES                                      0x00000002
#define NV056_SET_BEGIN_END4_OP_LINE_LOOP                                  0x00000003
#define NV056_SET_BEGIN_END4_OP_LINE_STRIP                                 0x00000004
#define NV056_SET_BEGIN_END4_OP_TRIANGLES                                  0x00000005
#define NV056_SET_BEGIN_END4_OP_TRIANGLE_STRIP                             0x00000006
#define NV056_SET_BEGIN_END4_OP_TRIANGLE_FAN                               0x00000007
#define NV056_SET_BEGIN_END4_OP_QUADS                                      0x00000008
#define NV056_SET_BEGIN_END4_OP_QUAD_STRIP                                 0x00000009
#define NV056_SET_BEGIN_END4_OP_POLYGON                                    0x0000000A


#define NV056_INLINE_ARRAY(i)                                      (0x00001800+(i)*4)


/* class NV04_CONTEXT_COLOR_KEY */
#define  NV04_CONTEXT_COLOR_KEY                                    (0x00000057)
/* NvNotification[] elements */
#define NV057_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV057_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV057_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV057_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV057_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV057_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV057_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV057_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetColorFormat;          /* NV057_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetColor;                /* color key value                  0304-0307*/
 NvV32 Reserved02[0x73e];
} Nv057Typedef, Nv04ContextColorKey;
#define NV057_TYPEDEF                                       Nv04ContextColorKey
/* dma method offsets, fields, and values */
#define NV057_SET_OBJECT                                           (0x00000000)
#define NV057_NO_OPERATION                                         (0x00000100)
#define NV057_NOTIFY                                               (0x00000104)
#define NV057_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV057_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV057_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV057_SET_COLOR_FORMAT                                     (0x00000300)
#define NV057_SET_COLOR_FORMAT_LE_A16R5G6B5                        (0x00000001)
#define NV057_SET_COLOR_FORMAT_LE_X16A1R5G5B5                      (0x00000002)
#define NV057_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV057_SET_COLOR                                            (0x00000304)
/* obsolete stuff */
#define NV4_CONTEXT_COLOR_KEY                                      (0x00000057)
#define Nv4ContextColorKey                                  Nv04ContextColorKey
#define nv4ContextColorKey                                  Nv04ContextColorKey
#define nv04ContextColorKey                                 Nv04ContextColorKey


/* class NV03_CONTEXT_SURFACE_2D_DESTINATION */
#define  NV03_CONTEXT_SURFACE_2D_DESTINATION                       (0x00000058)
/* NvNotification[] elements */
#define NV058_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV058_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV058_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV058_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV058_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV058_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV058_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV058_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 Reserved01[0x05e];
 NvV32 SetColorFormat;          /* NV058_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Reserved02[0x001];
 NvU32 SetImagePitch;           /* bytes, vertical pixel delta      0308-030b*/
 NvU32 SetImageOffset;          /* byte offset of top-left pixel    030c-030f*/
 NvV32 Reserved03[0x73c];
} Nv058Typedef, Nv03ContextSurface2dDestination;
#define NV058_TYPEDEF                           Nv03ContextSurface2dDestination
/* dma method offsets, fields, and values */
#define NV058_SET_OBJECT                                           (0x00000000)
#define NV058_NO_OPERATION                                         (0x00000100)
#define NV058_NOTIFY                                               (0x00000104)
#define NV058_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV058_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV058_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV058_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV058_SET_COLOR_FORMAT                                     (0x00000300)
#define NV058_SET_COLOR_FORMAT_LE_Y8                               (0x01010000)
#define NV058_SET_COLOR_FORMAT_LE_Y16                              (0x01010001)
#define NV058_SET_COLOR_FORMAT_LE_X1R5G5B5_Z1R5G5B5                (0x01000000)
#define NV058_SET_COLOR_FORMAT_LE_X8R8G8B8_Z8R8G8B8                (0x00000001)
#define NV058_SET_IMAGE_PITCH                                      (0x00000308)
#define NV058_SET_IMAGE_OFFSET                                     (0x0000030C)
/* obsolete stuff */
#define NV03_CONTEXT_SURFACE_0                                     (0x00000058)
#define NV3_CONTEXT_SURFACE_0                                      (0x00000058)
#define Nv03ContextSurface0                     Nv03ContextSurface2dDestination
#define nv03ContextSurface0                     Nv03ContextSurface2dDestination
#define Nv3ContextSurface0                      Nv03ContextSurface2dDestination
#define nv3ContextSurface0                      Nv03ContextSurface2dDestination
#define nv03ContextSurface2dDestination         Nv03ContextSurface2dDestination


/* class NV03_CONTEXT_SURFACE_2D_SOURCE */
#define  NV03_CONTEXT_SURFACE_2D_SOURCE                            (0x00000059)
/* NvNotification[] elements */
#define NV059_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV059_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV059_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV059_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV059_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV059_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV059_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV059_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 Reserved01[0x05e];
 NvV32 SetColorFormat;          /* NV059_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Reserved02[0x001];
 NvU32 SetImagePitch;           /* bytes, vertical pixel delta      0308-030b*/
 NvU32 SetImageOffset;          /* byte offset of top-left pixel    030c-030f*/
 NvV32 Reserved03[0x73c];
} Nv059Typedef, Nv03ContextSurface2dSource;
#define NV059_TYPEDEF                                Nv03ContextSurface2dSource
/* dma method offsets, fields, and values */
#define NV059_SET_OBJECT                                           (0x00000000)
#define NV059_NO_OPERATION                                         (0x00000100)
#define NV059_NOTIFY                                               (0x00000104)
#define NV059_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV059_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV059_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV059_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV059_SET_COLOR_FORMAT                                     (0x00000300)
#define NV059_SET_COLOR_FORMAT_LE_Y8                               (0x01010000)
#define NV059_SET_COLOR_FORMAT_LE_Y16                              (0x01010001)
#define NV059_SET_COLOR_FORMAT_LE_X1R5G5B5_Z1R5G5B5                (0x01000000)
#define NV059_SET_COLOR_FORMAT_LE_X8R8G8B8_Z8R8G8B8                (0x00000001)
#define NV059_SET_IMAGE_PITCH                                      (0x00000308)
#define NV059_SET_IMAGE_OFFSET                                     (0x0000030C)
/* obsolete stuff */
#define NV03_CONTEXT_SURFACE_1                                     (0x00000059)
#define NV3_CONTEXT_SURFACE_1                                      (0x00000059)
#define Nv03ContextSurface1                          Nv03ContextSurface2dSource
#define nv03ContextSurface1                          Nv03ContextSurface2dSource
#define Nv3ContextSurface1                           Nv03ContextSurface2dSource
#define nv3ContextSurface1                           Nv03ContextSurface2dSource
#define nv03ContextSurface2dSource                   Nv03ContextSurface2dSource


/* class NV03_CONTEXT_SURFACE_3D_COLOR */
#define  NV03_CONTEXT_SURFACE_3D_COLOR                             (0x0000005A)
/* NvNotification[] elements */
#define NV05A_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV05A_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV05A_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV05A_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV05A_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV05A_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV05A_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV05A_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 Reserved01[0x05e];
 NvV32 SetColorFormat;          /* NV05A_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Reserved02[0x001];
 NvU32 SetImagePitch;           /* bytes, vertical pixel delta      0308-030b*/
 NvU32 SetImageOffset;          /* byte offset of top-left pixel    030c-030f*/
 NvV32 Reserved03[0x73c];
} Nv05aTypedef, Nv03ContextSurface3dColor;
#define NV05A_TYPEDEF                                 Nv03ContextSurface3dColor
/* dma method offsets, fields, and values */
#define NV05A_SET_OBJECT                                           (0x00000000)
#define NV05A_NO_OPERATION                                         (0x00000100)
#define NV05A_NOTIFY                                               (0x00000104)
#define NV05A_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV05A_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV05A_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV05A_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV05A_SET_COLOR_FORMAT                                     (0x00000300)
#define NV05A_SET_COLOR_FORMAT_DUMMY_0                             (0x01010000)
#define NV05A_SET_COLOR_FORMAT_LE_X1R5G5B5_Z1R5G5B5_1              (0x01010001)
#define NV05A_SET_COLOR_FORMAT_LE_X1R5G5B5_Z1R5G5B5_2              (0x01000000)
#define NV05A_SET_COLOR_FORMAT_DUMMY_3                             (0x00000001)
#define NV05A_SET_IMAGE_PITCH                                      (0x00000308)
#define NV05A_SET_IMAGE_OFFSET                                     (0x0000030C)
/* obsolete stuff */
#define NV03_CONTEXT_SURFACE_2                                     (0x0000005A)
#define NV3_CONTEXT_SURFACE_2                                      (0x0000005A)
#define Nv03ContextSurface2                           Nv03ContextSurface3dColor
#define nv03ContextSurface2                           Nv03ContextSurface3dColor
#define Nv3ContextSurface2                            Nv03ContextSurface3dColor
#define nv3ContextSurface2                            Nv03ContextSurface3dColor
#define nv03ContextSurface3dColor                     Nv03ContextSurface3dColor


/* class NV03_CONTEXT_SURFACE_3D_DEPTH */
#define  NV03_CONTEXT_SURFACE_3D_DEPTH                             (0x0000005B)
/* NvNotification[] elements */
#define NV05B_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV05B_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV05B_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV05B_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV05B_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV05B_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV05B_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV05B_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 Reserved01[0x05e];
 NvV32 SetColorFormat;          /* NV05B_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Reserved02[0x001];
 NvU32 NvDummy;                   /* ignored                          0308-030b*/
 NvU32 SetImageOffset;          /* byte offset of top-left pixel    030c-030f*/
 NvV32 Reserved03[0x73c];
} Nv05bTypedef, Nv03ContextSurface3dDepth;
#define NV05B_TYPEDEF                                 Nv03ContextSurface3dDepth
/* dma method offsets, fields, and values */
#define NV05B_SET_OBJECT                                           (0x00000000)
#define NV05B_NO_OPERATION                                         (0x00000100)
#define NV05B_NOTIFY                                               (0x00000104)
#define NV05B_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_1                           (0x00000001)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_2                           (0x00000002)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_3                           (0x00000003)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_4                           (0x00000004)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_5                           (0x00000005)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_6                           (0x00000006)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_7                           (0x00000007)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_8                           (0x00000008)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_9                           (0x00000009)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_A                           (0x0000000A)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_B                           (0x0000000B)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_C                           (0x0000000C)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_D                           (0x0000000D)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_E                           (0x0000000E)
#define NV05B_NOTIFY_WRITE_THEN_AWAKEN_F                           (0x0000000F)
#define NV05B_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV05B_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV05B_SET_COLOR_FORMAT                                     (0x00000300)
#define NV05B_SET_COLOR_FORMAT_LE_W16_0                            (0x01010000)
#define NV05B_SET_COLOR_FORMAT_LE_W16_1                            (0x01010001)
#define NV05B_SET_COLOR_FORMAT_LE_W16_2                            (0x01000000)
#define NV05B_SET_COLOR_FORMAT_LE_W16_3                            (0x00000001)
#define NV05B_DUMMY                                                (0x00000308)
#define NV05B_SET_IMAGE_OFFSET                                     (0x0000030C)
/* obsolete stuff */
#define NV03_CONTEXT_SURFACE_3                                     (0x0000005B)
#define NV3_CONTEXT_SURFACE_3                                      (0x0000005B)
#define Nv03ContextSurface3                           Nv03ContextSurface3dDepth
#define nv03ContextSurface3                           Nv03ContextSurface3dDepth
#define Nv3ContextSurface3                            Nv03ContextSurface3dDepth
#define nv3ContextSurface3                            Nv03ContextSurface3dDepth
#define nv03ContextSurface3dDepth                     Nv03ContextSurface3dDepth


/* class NV04_RENDER_SOLID_LIN */
#define  NV04_RENDER_SOLID_LIN                                     (0x0000005C)
/* NvNotification[] elements */
#define NV05C_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV05C_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV05C_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV05C_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV05C_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV05C_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV05C_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV05C_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetOperation;            /* NV05C_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV05C_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Color;                   /* source color                     0304-0307*/
 NvV32 Reserved02[0x03e];
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 point0;                 /* y_x S16_S16 in pixels            0400-0403*/
  NvV32 point1;                 /* y_x S16_S16 in pixels            0404-0407*/
 } Lin[16];                     /* end of aliased methods in array      -047f*/
 struct {                       /* start aliased methods in array   0480-    */
  NvS32 point0X;                /* in pixels, 0 at left                0-   3*/
  NvS32 point0Y;                /* in pixels, 0 at top                 4-   7*/
  NvS32 point1X;                /* in pixels, 0 at left                8-   b*/
  NvS32 point1Y;                /* in pixels, 0 at top                 c-   f*/
 } Lin32[8];                    /* end of aliased methods in array      -04ff*/
 NvV32 PolyLin[32];             /* y_x S16_S16 in pixels            0500-057f*/
 struct {                       /* start aliased methods in array   0580-    */
  NvS32 x;                      /* in pixels, 0 at left                0-   3*/
  NvS32 y;                      /* in pixels, 0 at top                 4-   7*/
 } PolyLin32[16];               /* end of aliased methods in array      -05ff*/
 struct {                       /* start aliased methods in array   0600-    */
  NvV32 color;                  /* source color                        0-   3*/
  NvV32 point;                  /* y_x S16_S16 in pixels               4-   7*/
 } ColorPolyLin[16];            /* end of aliased methods in array      -067f*/
 NvV32 Reserved03[0x660];
} Nv05cTypedef, Nv04RenderSolidLin;
#define NV05C_TYPEDEF                                        Nv04RenderSolidLin
/* dma method offsets, fields, and values */
#define NV05C_SET_OBJECT                                           (0x00000000)
#define NV05C_NO_OPERATION                                         (0x00000100)
#define NV05C_NOTIFY                                               (0x00000104)
#define NV05C_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV05C_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV05C_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV05C_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000184)
#define NV05C_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV05C_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV05C_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV05C_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV05C_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV05C_SET_OPERATION                                        (0x000002FC)
#define NV05C_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV05C_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV05C_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV05C_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV05C_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV05C_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV05C_SET_COLOR_FORMAT                                     (0x00000300)
#define NV05C_SET_COLOR_FORMAT_LE_X16R5G6B5                        (0x00000001)
#define NV05C_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV05C_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV05C_COLOR                                                (0x00000304)
#define NV05C_LIN(a)                                               (0x00000400\
                                                                   +(a)*0x0008)
#define NV05C_LIN_POINT0(a)                                        (0x00000400\
                                                                   +(a)*0x0008)
#define NV05C_LIN_POINT0_X                                         15:0
#define NV05C_LIN_POINT0_Y                                         31:16
#define NV05C_LIN_POINT1(a)                                        (0x00000404\
                                                                   +(a)*0x0008)
#define NV05C_LIN_POINT1_X                                         15:0
#define NV05C_LIN_POINT1_Y                                         31:16
#define NV05C_LIN32(a)                                             (0x00000480\
                                                                   +(a)*0x0010)
#define NV05C_LIN32_POINT0_X(a)                                    (0x00000480\
                                                                   +(a)*0x0010)
#define NV05C_LIN32_POINT0_Y(a)                                    (0x00000484\
                                                                   +(a)*0x0010)
#define NV05C_LIN32_POINT1_X(a)                                    (0x00000488\
                                                                   +(a)*0x0010)
#define NV05C_LIN32_POINT1_Y(a)                                    (0x0000048C\
                                                                   +(a)*0x0010)
#define NV05C_POLY_LIN(a)                                          (0x00000500\
                                                                   +(a)*0x0004)
#define NV05C_POLY_LIN_X                                           15:0
#define NV05C_POLY_LIN_Y                                           31:16
#define NV05C_POLY_LIN32(a)                                        (0x00000580\
                                                                   +(a)*0x0008)
#define NV05C_POLY_LIN32_X(a)                                      (0x00000580\
                                                                   +(a)*0x0008)
#define NV05C_POLY_LIN32_Y(a)                                      (0x00000584\
                                                                   +(a)*0x0008)
#define NV05C_COLOR_POLY_LIN(a)                                    (0x00000600\
                                                                   +(a)*0x0008)
#define NV05C_COLOR_POLY_LIN_COLOR(a)                              (0x00000600\
                                                                   +(a)*0x0008)
#define NV05C_COLOR_POLY_LIN_POINT(a)                              (0x00000604\
                                                                   +(a)*0x0008)
#define NV05C_COLOR_POLY_LIN_POINT_X                               15:0
#define NV05C_COLOR_POLY_LIN_POINT_Y                               31:16
/* obsolete stuff */
#define NV4_RENDER_SOLID_LIN                                       (0x0000005C)
#define Nv4RenderSolidLin                                    Nv04RenderSolidLin
#define nv4RenderSolidLin                                    Nv04RenderSolidLin
#define nv04RenderSolidLin                                   Nv04RenderSolidLin


/* class NV04_RENDER_SOLID_TRIANGLE */
#define  NV04_RENDER_SOLID_TRIANGLE                                (0x0000005D)
/* NvNotification[] elements */
#define NV05D_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV05D_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV05D_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV05D_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV05D_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV05D_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV05D_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV05D_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetOperation;            /* NV05D_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV05D_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Color;                   /* source color                     0304-0307*/
 NvV32 Reserved02[0x002];
 NvV32 TrianglePoint0;          /* y_x S16_S16 in pixels            0310-0313*/
 NvV32 TrianglePoint1;          /* y_x S16_S16 in pixels            0314-0317*/
 NvV32 TrianglePoint2;          /* y_x S16_S16 in pixels            0318-031b*/
 NvV32 Reserved03[0x001];
 NvS32 Triangle32Point0X;       /* in pixels, 0 at left             0320-0323*/
 NvS32 Triangle32Point0Y;       /* in pixels, 0 at top              0324-0327*/
 NvS32 Triangle32Point1X;       /* in pixels, 0 at left             0328-032b*/
 NvS32 Triangle32Point1Y;       /* in pixels, 0 at top              032c-032f*/
 NvS32 Triangle32Point2X;       /* in pixels, 0 at left             0330-0333*/
 NvS32 Triangle32Point2Y;       /* in pixels, 0 at top              0334-0337*/
 NvV32 Reserved04[0x032];
 NvV32 Trimesh[32];             /* y_x S16_S16 in pixels            0400-047f*/
 struct {                       /* start aliased methods in array   0480-    */
  NvS32 x;                      /* in pixels, 0 at left                0-   3*/
  NvS32 y;                      /* in pixels, 0 at top                 4-   7*/
 } Trimesh32[16];               /* end of aliased methods in array      -04ff*/
 struct {                       /* start aliased methods in array   0500-    */
  NvV32 color;                  /* source color                        0-   3*/
  NvV32 point0;                 /* y_x S16_S16 in pixels               4-   7*/
  NvV32 point1;                 /* y_x S16_S16 in pixels               8-   b*/
  NvV32 point2;                 /* y_x S16_S16 in pixels               c-   f*/
 } ColorTriangle[8];            /* end of aliased methods in array      -057f*/
 struct {                       /* start aliased methods in array   0580-    */
  NvV32 color;                  /* source color                        0-   3*/
  NvV32 point;                  /* y_x S16_S16 in pixels               4-   7*/
 } ColorTrimesh[16];            /* end of aliased methods in array      -05ff*/
 NvV32 Reserved05[0x680];
} Nv05dTypedef, Nv04RenderSolidTriangle;
#define NV05D_TYPEDEF                                   Nv04RenderSolidTriangle
/* dma method offsets, fields, and values */
#define NV05D_SET_OBJECT                                           (0x00000000)
#define NV05D_NO_OPERATION                                         (0x00000100)
#define NV05D_NOTIFY                                               (0x00000104)
#define NV05D_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV05D_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV05D_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV05D_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000184)
#define NV05D_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV05D_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV05D_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV05D_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV05D_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV05D_SET_OPERATION                                        (0x000002FC)
#define NV05D_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV05D_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV05D_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV05D_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV05D_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV05D_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV05D_SET_COLOR_FORMAT                                     (0x00000300)
#define NV05D_SET_COLOR_FORMAT_LE_X16R5G6B5                        (0x00000001)
#define NV05D_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV05D_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV05D_COLOR                                                (0x00000304)
#define NV05D_TRIANGLE                                             (0x00000310)
#define NV05D_TRIANGLE_POINT0                                      (0x00000310)
#define NV05D_TRIANGLE_POINT0_X                                    15:0
#define NV05D_TRIANGLE_POINT0_Y                                    31:16
#define NV05D_TRIANGLE_POINT1                                      (0x00000314)
#define NV05D_TRIANGLE_POINT1_X                                    15:0
#define NV05D_TRIANGLE_POINT1_Y                                    31:16
#define NV05D_TRIANGLE_POINT2                                      (0x00000318)
#define NV05D_TRIANGLE_POINT2_X                                    15:0
#define NV05D_TRIANGLE_POINT2_Y                                    31:16
#define NV05D_TRIANGLE32_POINT0_X                                  (0x00000320)
#define NV05D_TRIANGLE32_POINT0_Y                                  (0x00000324)
#define NV05D_TRIANGLE32_POINT1_X                                  (0x00000328)
#define NV05D_TRIANGLE32_POINT1_Y                                  (0x0000032C)
#define NV05D_TRIANGLE32_POINT2_X                                  (0x00000330)
#define NV05D_TRIANGLE32_POINT2_Y                                  (0x00000334)
#define NV05D_TRIMESH(a)                                           (0x00000400\
                                                                   +(a)*0x0004)
#define NV05D_TRIMESH_X                                            15:0
#define NV05D_TRIMESH_Y                                            31:16
#define NV05D_TRIMESH32(a)                                         (0x00000480\
                                                                   +(a)*0x0008)
#define NV05D_TRIMESH32_X(a)                                       (0x00000480\
                                                                   +(a)*0x0008)
#define NV05D_TRIMESH32_Y(a)                                       (0x00000484\
                                                                   +(a)*0x0008)
#define NV05D_COLOR_TRIANGLE(a)                                    (0x00000500\
                                                                   +(a)*0x0010)
#define NV05D_COLOR_TRIANGLE_COLOR(a)                              (0x00000500\
                                                                   +(a)*0x0010)
#define NV05D_COLOR_TRIANGLE_POINT0(a)                             (0x00000504\
                                                                   +(a)*0x0010)
#define NV05D_COLOR_TRIANGLE_POINT0_X                              15:0
#define NV05D_COLOR_TRIANGLE_POINT0_Y                              31:16
#define NV05D_COLOR_TRIANGLE_POINT1(a)                             (0x00000508\
                                                                   +(a)*0x0010)
#define NV05D_COLOR_TRIANGLE_POINT1_X                              15:0
#define NV05D_COLOR_TRIANGLE_POINT1_Y                              31:16
#define NV05D_COLOR_TRIANGLE_POINT2(a)                             (0x0000050C\
                                                                   +(a)*0x0010)
#define NV05D_COLOR_TRIANGLE_POINT2_X                              15:0
#define NV05D_COLOR_TRIANGLE_POINT2_Y                              31:16
#define NV05D_COLOR_TRIMESH(a)                                     (0x00000580\
                                                                   +(a)*0x0008)
#define NV05D_COLOR_TRIMESH_COLOR(a)                               (0x00000580\
                                                                   +(a)*0x0008)
#define NV05D_COLOR_TRIMESH_POINT(a)                               (0x00000584\
                                                                   +(a)*0x0008)
#define NV05D_COLOR_TRIMESH_POINT_X                                15:0
#define NV05D_COLOR_TRIMESH_POINT_Y                                31:16
/* obsolete stuff */
#define NV4_RENDER_SOLID_TRIANGLE                                  (0x0000005D)
#define Nv4RenderSolidTriangle                          Nv04RenderSolidTriangle
#define nv4RenderSolidTriangle                          Nv04RenderSolidTriangle
#define nv04RenderSolidTriangle                         Nv04RenderSolidTriangle


/* class NV04_RENDER_SOLID_RECTANGLE */
#define  NV04_RENDER_SOLID_RECTANGLE                               (0x0000005E)
/* NvNotification[] elements */
#define NV05E_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV05E_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV05E_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV05E_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV05E_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV05E_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV05E_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV05E_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetOperation;            /* NV05E_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV05E_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Color;                   /* source color                     0304-0307*/
 NvV32 Reserved02[0x03e];
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 point;                  /* y_x S16_S16                         0-   3*/
  NvV32 size;                   /* height_width U16_U16                4-   7*/
 } Rectangle[16];               /* end of aliased methods in array      -047f*/
 NvV32 Reserved03[0x6e0];
} Nv05eTypedef, Nv04RenderSolidRectangle;
#define NV05E_TYPEDEF                                  Nv04RenderSolidRectangle
/* dma method offsets, fields, and values */
#define NV05E_SET_OBJECT                                           (0x00000000)
#define NV05E_NO_OPERATION                                         (0x00000100)
#define NV05E_NOTIFY                                               (0x00000104)
#define NV05E_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV05E_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV05E_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV05E_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000184)
#define NV05E_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV05E_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV05E_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV05E_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV05E_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV05E_SET_OPERATION                                        (0x000002FC)
#define NV05E_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV05E_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV05E_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV05E_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV05E_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV05E_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV05E_SET_COLOR_FORMAT                                     (0x00000300)
#define NV05E_SET_COLOR_FORMAT_LE_X16R5G6B5                        (0x00000001)
#define NV05E_SET_COLOR_FORMAT_LE_X17R5G5B5                        (0x00000002)
#define NV05E_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000003)
#define NV05E_COLOR                                                (0x00000304)
#define NV05E_RECTANGLE(a)                                         (0x00000400\
                                                                   +(a)*0x0008)
#define NV05E_RECTANGLE_POINT(a)                                   (0x00000400\
                                                                   +(a)*0x0008)
#define NV05E_RECTANGLE_POINT_X                                    15:0
#define NV05E_RECTANGLE_POINT_Y                                    31:16
#define NV05E_RECTANGLE_SIZE(a)                                    (0x00000404\
                                                                   +(a)*0x0008)
#define NV05E_RECTANGLE_SIZE_WIDTH                                 15:0
#define NV05E_RECTANGLE_SIZE_HEIGHT                                31:16
/* obsolete stuff */
#define NV4_RENDER_SOLID_RECTANGLE                                 (0x0000005E)
#define Nv4RenderSolidRectangle                        Nv04RenderSolidRectangle
#define nv4RenderSolidRectangle                        Nv04RenderSolidRectangle
#define nv04RenderSolidRectangle                       Nv04RenderSolidRectangle


/* class NV04_IMAGE_BLIT */
#define  NV04_IMAGE_BLIT                                           (0x0000005F)
/* NvNotification[] elements */
#define NV05F_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV05F_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV05F_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV05F_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV05F_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV05F_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV05F_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV05F_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextSurfaces;      /* NV04_CONTEXT_SURFACES_2D         019c-019f*/
 NvV32 Reserved01[0x057];
 NvV32 SetOperation;            /* NV05F_SET_OPERATION_*            02fc-02ff*/
 NvV32 ControlPointIn;          /* y_x U16_U16, pixels              0300-0303*/
 NvV32 ControlPointOut;         /* y_x S16_S16, pixels              0304-0307*/
 NvV32 Size;                    /* height_width U16_U16 in pixels   0308-030b*/
 NvV32 Reserved02[0x73d];
} Nv05fTypedef, Nv04ImageBlit;
#define NV05F_TYPEDEF                                             Nv04ImageBlit
/* dma method offsets, fields, and values */
#define NV05F_SET_OBJECT                                           (0x00000000)
#define NV05F_NO_OPERATION                                         (0x00000100)
#define NV05F_NOTIFY                                               (0x00000104)
#define NV05F_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV05F_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV05F_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV05F_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV05F_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV05F_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV05F_SET_CONTEXT_ROP                                      (0x00000190)
#define NV05F_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV05F_SET_CONTEXT_BETA4                                    (0x00000198)
#define NV05F_SET_CONTEXT_SURFACES                                 (0x0000019C)
#define NV05F_SET_OPERATION                                        (0x000002FC)
#define NV05F_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV05F_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV05F_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV05F_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV05F_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV05F_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV05F_CONTROL_POINT_IN                                     (0x00000300)
#define NV05F_CONTROL_POINT_IN_X                                   15:0
#define NV05F_CONTROL_POINT_IN_Y                                   31:16
#define NV05F_CONTROL_POINT_OUT                                    (0x00000304)
#define NV05F_CONTROL_POINT_OUT_X                                  15:0
#define NV05F_CONTROL_POINT_OUT_Y                                  31:16
#define NV05F_SIZE                                                 (0x00000308)
#define NV05F_SIZE_WIDTH                                           15:0
#define NV05F_SIZE_HEIGHT                                          31:16
/* obsolete stuff */
#define NV4_IMAGE_BLIT                                             (0x0000005F)
#define Nv4ImageBlit                                              Nv04ImageBlit
#define nv4ImageBlit                                              Nv04ImageBlit
#define nv04ImageBlit                                             Nv04ImageBlit


/* class NV04_INDEXED_IMAGE_FROM_CPU */
#define  NV04_INDEXED_IMAGE_FROM_CPU                               (0x00000060)
/* NvNotification[] elements */
#define NV060_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV060_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV060_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV060_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV060_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV060_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV060_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV060_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaLut;        /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0188-018b*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      018c-018f*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0190-0193*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0194-0197*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                019c-019f*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D,SWIZZLE 01a0-01a3*/
 NvV32 Reserved01[0x08F];
 NvV32 SetColorConversion;      /* NV060_SET_COLOR_CONVERSION_*     03e0-03e3*/
 NvV32 SetOperation;            /* NV060_SET_OPERATION_*            03e4-03e7*/
 NvV32 SetColorFormat;          /* NV060_SET_COLOR_FORMAT_*         03e8-03eb*/
 NvV32 IndexFormat;             /* NV060_INDEX_FORMAT_*             03ec-03ef*/
 NvU32 LutOffset;               /* offset in bytes                  03f0-03f3*/
 NvV32 Point;                   /* y_x S16_S16 in pixels            03f4-03f7*/
 NvV32 SizeOut;                 /* height_width U16_U16, pixels     03f8-03fb*/
 NvV32 SizeIn;                  /* height_width U16_U16, pixels     03fc-03ff*/
 NvV32 Indices[1792];           /* source indices (packed texels)   0400-1fff*/
} Nv060Typedef, Nv04IndexedImageFromCpu;
#define NV060_TYPEDEF                                   Nv04IndexedImageFromCpu
/* dma method offsets, fields, and values */
#define NV060_SET_OBJECT                                           (0x00000000)
#define NV060_NO_OPERATION                                         (0x00000100)
#define NV060_NOTIFY                                               (0x00000104)
#define NV060_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV060_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV060_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV060_SET_CONTEXT_DMA_LUT                                  (0x00000184)
#define NV060_SET_CONTEXT_COLOR_KEY                                (0x00000188)
#define NV060_SET_CONTEXT_CLIP_RECTANGLE                           (0x0000018C)
#define NV060_SET_CONTEXT_PATTERN                                  (0x00000190)
#define NV060_SET_CONTEXT_ROP                                      (0x00000194)
#define NV060_SET_CONTEXT_BETA1                                    (0x00000198)
#define NV060_SET_CONTEXT_BETA4                                    (0x0000019C)
#define NV060_SET_CONTEXT_SURFACE                                  (0x000001A0)
#define NV060_SET_COLOR_CONVERSION                                 (0x000003E0)
#define NV060_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV060_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV060_SET_OPERATION                                        (0x000003E4)
#define NV060_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV060_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV060_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV060_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV060_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV060_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV060_SET_COLOR_FORMAT                                     (0x000003E8)
#define NV060_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV060_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV060_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV060_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV060_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV060_INDEX_FORMAT                                         (0x000003EC)
#define NV060_INDEX_FORMAT_LE_I8                                   (0x00000000)
#define NV060_INDEX_FORMAT_SVGA65_I4                               (0x00000001)
#define NV060_LUT_OFFSET                                           (0x000003F0)
#define NV060_POINT                                                (0x000003F4)
#define NV060_POINT_X                                              15:0
#define NV060_POINT_Y                                              31:16
#define NV060_SIZE_OUT                                             (0x000003F8)
#define NV060_SIZE_OUT_WIDTH                                       15:0
#define NV060_SIZE_OUT_HEIGHT                                      31:16
#define NV060_SIZE_IN                                              (0x000003FC)
#define NV060_SIZE_IN_WIDTH                                        15:0
#define NV060_SIZE_IN_HEIGHT                                       31:16
#define NV060_INDICES(a)                                           (0x00000400\
                                                                   +(a)*0x0004)
/* obsolete stuff */
#define NV4_INDEXED_IMAGE_FROM_CPU                                 (0x00000060)
#define Nv4IndexedImageFromCpu                          Nv04IndexedImageFromCpu
#define nv4IndexedImageFromCpu                          Nv04IndexedImageFromCpu
#define nv04IndexedImageFromCpu                         Nv04IndexedImageFromCpu


/* class NV04_IMAGE_FROM_CPU */
#define  NV04_IMAGE_FROM_CPU                                       (0x00000061)
/* NvNotification[] elements */
#define NV061_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV061_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV061_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV061_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV061_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV061_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV061_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV061_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         019c-019f*/
 NvV32 Reserved01[0x057];
 NvV32 SetOperation;            /* NV061_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV061_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Point;                   /* y_x S16_S16 in pixels            0304-0307*/
 NvV32 SizeOut;                 /* height_width U16_U16, pixels     0308-030b*/
 NvV32 SizeIn;                  /* height_width U16_U16, pixels     030c-030f*/
 NvV32 Reserved02[0x03c];
 NvV32 Color[1792];             /* source colors (packed texels)    0400-1fff*/
} Nv061Typedef, Nv04ImageFromCpu;
#define NV061_TYPEDEF                                          Nv04ImageFromCpu
/* dma method offsets, fields, and values */
#define NV061_SET_OBJECT                                           (0x00000000)
#define NV061_NO_OPERATION                                         (0x00000100)
#define NV061_NOTIFY                                               (0x00000104)
#define NV061_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV061_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV061_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV061_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV061_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV061_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV061_SET_CONTEXT_ROP                                      (0x00000190)
#define NV061_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV061_SET_CONTEXT_BETA4                                    (0x00000198)
#define NV061_SET_CONTEXT_SURFACE                                  (0x0000019C)
#define NV061_SET_OPERATION                                        (0x000002FC)
#define NV061_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV061_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV061_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV061_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV061_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV061_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV061_SET_COLOR_FORMAT                                     (0x00000300)
#define NV061_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV061_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV061_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV061_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV061_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV061_POINT                                                (0x00000304)
#define NV061_POINT_X                                              15:0
#define NV061_POINT_Y                                              31:16
#define NV061_SIZE_OUT                                             (0x00000308)
#define NV061_SIZE_OUT_WIDTH                                       15:0
#define NV061_SIZE_OUT_HEIGHT                                      31:16
#define NV061_SIZE_IN                                              (0x0000030C)
#define NV061_SIZE_IN_WIDTH                                        15:0
#define NV061_SIZE_IN_HEIGHT                                       31:16
#define NV061_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0004)
/* obsolete stuff */
#define NV4_IMAGE_FROM_CPU                                         (0x00000061)
#define Nv4ImageFromCpu                                        Nv04ImageFromCpu
#define nv4ImageFromCpu                                        Nv04ImageFromCpu
#define nv04ImageFromCpu                                       Nv04ImageFromCpu


/* class NV10_CONTEXT_SURFACES_2D */
#define  NV10_CONTEXT_SURFACES_2D                                  (0x00000062)
/* NvNotification[] elements */
#define NV062_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV062_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV062_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV062_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV062_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV062_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV062_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV062_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImageSource;/* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaImageDestin;/* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 Reserved01[0x05d];
 NvV32 SetColorFormat;          /* NV062_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetPitch;                /* destin_source U16_U16            0304-0307*/
 NvU32 SetOffsetSource;         /* byte offset of top-left pixel    0308-030b*/
 NvU32 SetOffsetDestin;         /* byte offset of top-left pixel    030c-030f*/
 NvV32 Reserved02[0x73c];
} Nv062Typedef, Nv10ContextSurfaces2d;
#define NV062_TYPEDEF                                     Nv10ContextSurfaces2d
/* dma method offsets, fields, and values */
#define NV062_SET_OBJECT                                           (0x00000000)
#define NV062_NO_OPERATION                                         (0x00000100)
#define NV062_NOTIFY                                               (0x00000104)
#define NV062_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV062_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV062_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV062_SET_CONTEXT_DMA_IMAGE_SOURCE                         (0x00000184)
#define NV062_SET_CONTEXT_DMA_IMAGE_DESTIN                         (0x00000188)
#define NV062_SET_COLOR_FORMAT                                     (0x00000300)
#define NV062_SET_COLOR_FORMAT_LE_Y8                               (0x00000001)
#define NV062_SET_COLOR_FORMAT_LE_X1R5G5B5_Z1R5G5B5                (0x00000002)
#define NV062_SET_COLOR_FORMAT_LE_X1R5G5B5_O1R5G5B5                (0x00000003)
#define NV062_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000004)
#define NV062_SET_COLOR_FORMAT_LE_Y16                              (0x00000005)
#define NV062_SET_COLOR_FORMAT_LE_X8R8G8B8_Z8R8G8B8                (0x00000006)
#define NV062_SET_COLOR_FORMAT_LE_X8R8G8B8_O8R8G8B8                (0x00000007)
#define NV062_SET_COLOR_FORMAT_LE_X1A7R8G8B8_Z1A7R8G8B8            (0x00000008)
#define NV062_SET_COLOR_FORMAT_LE_X1A7R8G8B8_O1A7R8G8B8            (0x00000009)
#define NV062_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x0000000A)
#define NV062_SET_COLOR_FORMAT_LE_Y32                              (0x0000000B)
#define NV062_SET_PITCH                                            (0x00000304)
#define NV062_SET_PITCH_SOURCE                                     15:0
#define NV062_SET_PITCH_DESTIN                                     31:16
#define NV062_SET_OFFSET_SOURCE                                    (0x00000308)
#define NV062_SET_OFFSET_DESTIN                                    (0x0000030C)


/* class NV05_SCALED_IMAGE_FROM_MEMORY */
#define  NV05_SCALED_IMAGE_FROM_MEMORY                             (0x00000063)
/* NvNotification[] elements */
#define NV063_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV063_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV063_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV063_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV063_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV063_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV063_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV063_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D,SWIZZLE 0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetColorConversion;      /* NV063_SET_COLOR_CONVERSION_*     02fc-02ff*/
 NvV32 SetColorFormat;          /* NV063_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetOperation;            /* NV063_SET_OPERATION_*            0304-0307*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0308-030b*/
 NvV32 ClipSize;                /* height_width U16_U16             030c-030f*/
 NvV32 ImageOutPoint;           /* y_x S16_S16                      0310-0313*/
 NvV32 ImageOutSize;            /* height_width U16_U16             0314-0317*/
 NvV32 DsDx;                    /* S12d20 ds/dx                     0318-031b*/
 NvV32 DtDy;                    /* S12d20 dt/dy                     031c-031f*/
 NvV32 Reserved02[0x038];
 NvV32 ImageInSize;             /* height_width U16_U16             0400-0403*/
 NvV32 ImageInFormat;           /* interpolator_origin_pitch        0404-0407*/
 NvU32 ImageInOffset;           /* bytes                            0408-040b*/
 NvV32 ImageInPoint;            /* v_u U12d4_U12d4                  040c-040f*/
 NvV32 Reserved03[0x6fc];
} Nv063Typedef, Nv05ScaledImageFromMemory;
#define NV063_TYPEDEF                                 Nv05ScaledImageFromMemory
/* dma method offsets, fields, and values */
#define NV063_SET_OBJECT                                           (0x00000000)
#define NV063_NO_OPERATION                                         (0x00000100)
#define NV063_NOTIFY                                               (0x00000104)
#define NV063_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV063_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV063_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV063_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV063_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV063_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV063_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV063_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV063_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV063_SET_COLOR_CONVERSION                                 (0x000002fc)
#define NV063_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV063_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV063_SET_COLOR_CONVERSION_SUBTRACT_TRUNCATE               (0x00000002)
#define NV063_SET_COLOR_FORMAT                                     (0x00000300)
#define NV063_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000001)
#define NV063_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000002)
#define NV063_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV063_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000004)
#define NV063_SET_COLOR_FORMAT_LE_CR8YB8CB8YA8                     (0x00000005)
#define NV063_SET_COLOR_FORMAT_LE_YB8CR8YA8CB8                     (0x00000006)
#define NV063_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000007)
#define NV063_SET_OPERATION                                        (0x00000304)
#define NV063_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV063_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV063_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV063_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV063_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV063_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV063_CLIP_POINT                                           (0x00000308)
#define NV063_CLIP_POINT_X                                         15:0
#define NV063_CLIP_POINT_Y                                         31:16
#define NV063_CLIP_SIZE                                            (0x0000030C)
#define NV063_CLIP_SIZE_WIDTH                                      15:0
#define NV063_CLIP_SIZE_HEIGHT                                     31:16
#define NV063_IMAGE_OUT_POINT                                      (0x00000310)
#define NV063_IMAGE_OUT_POINT_X                                    15:0
#define NV063_IMAGE_OUT_POINT_Y                                    31:16
#define NV063_IMAGE_OUT_SIZE                                       (0x00000314)
#define NV063_IMAGE_OUT_SIZE_WIDTH                                 15:0
#define NV063_IMAGE_OUT_SIZE_HEIGHT                                31:16
#define NV063_DS_DX                                                (0x00000318)
#define NV063_DT_DY                                                (0x0000031C)
#define NV063_IMAGE_IN_SIZE                                        (0x00000400)
#define NV063_IMAGE_IN_SIZE_WIDTH                                  15:0
#define NV063_IMAGE_IN_SIZE_HEIGHT                                 31:16
#define NV063_IMAGE_IN_FORMAT                                      (0x00000404)
#define NV063_IMAGE_IN_FORMAT_PITCH                                15:0
#define NV063_IMAGE_IN_FORMAT_ORIGIN                               23:16
#define NV063_IMAGE_IN_FORMAT_ORIGIN_CENTER                        (0x00000001)
#define NV063_IMAGE_IN_FORMAT_ORIGIN_CORNER                        (0x00000002)
#define NV063_IMAGE_IN_FORMAT_INTERPOLATOR                         31:24
#define NV063_IMAGE_IN_FORMAT_INTERPOLATOR_ZOH                     (0x00000000)
#define NV063_IMAGE_IN_FORMAT_INTERPOLATOR_FOH                     (0x00000001)
#define NV063_IMAGE_IN_OFFSET                                      (0x00000408)
#define NV063_IMAGE_IN                                             (0x0000040C)
#define NV063_IMAGE_IN_POINT_U                                     15:0
#define NV063_IMAGE_IN_POINT_V                                     31:16


/* class NV05_INDEXED_IMAGE_FROM_CPU */
#define  NV05_INDEXED_IMAGE_FROM_CPU                               (0x00000064)
/* NvNotification[] elements */
#define NV064_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV064_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV064_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV064_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV064_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV064_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV064_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV064_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaLut;        /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0188-018b*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      018c-018f*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0190-0193*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0194-0197*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                019c-019f*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D,SWIZZLE 01a0-01a3*/
 NvV32 Reserved01[0x08f];
 NvV32 SetColorConversion;      /* NV064_SET_COLOR_CONVERSION_*     03e0-03e3*/
 NvV32 SetOperation;            /* NV064_SET_OPERATION_*            03e4-03e7*/
 NvV32 SetColorFormat;          /* NV064_SET_COLOR_FORMAT_*         03e8-03eb*/
 NvV32 IndexFormat;             /* NV064_INDEX_FORMAT_*             03ec-03ef*/
 NvU32 LutOffset;               /* offset in bytes                  03f0-03f3*/
 NvV32 Point;                   /* y_x S16_S16 in pixels            03f4-03f7*/
 NvV32 SizeOut;                 /* height_width U16_U16, pixels     03f8-03fb*/
 NvV32 SizeIn;                  /* height_width U16_U16, pixels     03fc-03ff*/
 NvV32 Indices[1792];           /* source indices (packed texels)   0400-1fff*/
} Nv064Typedef, Nv05IndexedImageFromCpu;
#define NV064_TYPEDEF                                   Nv05IndexedImageFromCpu
/* dma method offsets, fields, and values */
#define NV064_SET_OBJECT                                           (0x00000000)
#define NV064_NO_OPERATION                                         (0x00000100)
#define NV064_NOTIFY                                               (0x00000104)
#define NV064_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV064_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV064_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV064_SET_CONTEXT_DMA_LUT                                  (0x00000184)
#define NV064_SET_CONTEXT_COLOR_KEY                                (0x00000188)
#define NV064_SET_CONTEXT_CLIP_RECTANGLE                           (0x0000018C)
#define NV064_SET_CONTEXT_PATTERN                                  (0x00000190)
#define NV064_SET_CONTEXT_ROP                                      (0x00000194)
#define NV064_SET_CONTEXT_BETA1                                    (0x00000198)
#define NV064_SET_CONTEXT_BETA4                                    (0x0000019C)
#define NV064_SET_CONTEXT_SURFACE                                  (0x000001A0)
#define NV064_SET_COLOR_CONVERSION                                 (0x000003E0)
#define NV064_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV064_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV064_SET_COLOR_CONVERSION_SUBTRACT_TRUNCATE               (0x00000002)
#define NV064_SET_OPERATION                                        (0x000003E4)
#define NV064_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV064_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV064_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV064_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV064_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV064_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV064_SET_COLOR_FORMAT                                     (0x000003E8)
#define NV064_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV064_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV064_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV064_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV064_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV064_INDEX_FORMAT                                         (0x000003EC)
#define NV064_INDEX_FORMAT_LE_I8                                   (0x00000000)
#define NV064_INDEX_FORMAT_SVGA65_I4                               (0x00000001)
#define NV064_LUT_OFFSET                                           (0x000003F0)
#define NV064_POINT                                                (0x000003F4)
#define NV064_POINT_X                                              15:0
#define NV064_POINT_Y                                              31:16
#define NV064_SIZE_OUT                                             (0x000003F8)
#define NV064_SIZE_OUT_WIDTH                                       15:0
#define NV064_SIZE_OUT_HEIGHT                                      31:16
#define NV064_SIZE_IN                                              (0x000003FC)
#define NV064_SIZE_IN_WIDTH                                        15:0
#define NV064_SIZE_IN_HEIGHT                                       31:16
#define NV064_INDICES(a)                                           (0x00000400\
                                                                   +(a)*0x0004)


/* class NV05_IMAGE_FROM_CPU */
#define  NV05_IMAGE_FROM_CPU                                       (0x00000065)
/* NvNotification[] elements */
#define NV065_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV065_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV065_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV065_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV065_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV065_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV065_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV065_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         019c-019f*/
 NvV32 Reserved01[0x056];
 NvV32 SetColorConversion;      /* NV065_SET_COLOR_CONVERSION_*     02f8-02fb*/
 NvV32 SetOperation;            /* NV065_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV065_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Point;                   /* y_x S16_S16 in pixels            0304-0307*/
 NvV32 SizeOut;                 /* height_width U16_U16, pixels     0308-030b*/
 NvV32 SizeIn;                  /* height_width U16_U16, pixels     030c-030f*/
 NvV32 Reserved02[0x03c];
 NvV32 Color[1792];             /* source colors (packed texels)    0400-1fff*/
} Nv065Typedef, Nv05ImageFromCpu;
#define NV065_TYPEDEF                                          Nv05ImageFromCpu
/* dma method offsets, fields, and values */
#define NV065_SET_OBJECT                                           (0x00000000)
#define NV065_NO_OPERATION                                         (0x00000100)
#define NV065_NOTIFY                                               (0x00000104)
#define NV065_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV065_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV065_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV065_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV065_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV065_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV065_SET_CONTEXT_ROP                                      (0x00000190)
#define NV065_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV065_SET_CONTEXT_BETA4                                    (0x00000198)
#define NV065_SET_CONTEXT_SURFACE                                  (0x0000019C)
#define NV065_SET_COLOR_CONVERSION                                 (0x000002F8)
#define NV065_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV065_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV065_SET_COLOR_CONVERSION_SUBTRACT_TRUNCATE               (0x00000002)
#define NV065_SET_OPERATION                                        (0x000002FC)
#define NV065_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV065_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV065_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV065_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV065_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV065_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV065_SET_COLOR_FORMAT                                     (0x00000300)
#define NV065_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV065_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV065_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV065_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV065_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV065_POINT                                                (0x00000304)
#define NV065_POINT_X                                              15:0
#define NV065_POINT_Y                                              31:16
#define NV065_SIZE_OUT                                             (0x00000308)
#define NV065_SIZE_OUT_WIDTH                                       15:0
#define NV065_SIZE_OUT_HEIGHT                                      31:16
#define NV065_SIZE_IN                                              (0x0000030C)
#define NV065_SIZE_IN_WIDTH                                        15:0
#define NV065_SIZE_IN_HEIGHT                                       31:16
#define NV065_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0004)


 /* class NV05_STRETCHED_IMAGE_FROM_CPU */
#define  NV05_STRETCHED_IMAGE_FROM_CPU                             (0x00000066)
/* NvNotification[] elements */
#define NV066_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV066_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV066_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV066_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV066_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV066_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV066_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct _Nv066Typedef{
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV066_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         0198-019b*/
 NvV32 Reserved01[0x057];
 NvV32 SetColorConversion;      /* NV066_SET_COLOR_CONVERSION_*     02f8-02fb*/
 NvV32 SetOperation;            /* NV066_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV066_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SizeIn;                  /* height_width U16_U16 in texels   0304-0307*/
 NvV32 DxDs;                    /* S12d20 dx/ds                     0308-030b*/
 NvV32 DyDt;                    /* S12d20 dy/dt                     030c-030f*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0310-0313*/
 NvV32 ClipSize;                /* height_width U16_U16             0314-0317*/
 NvV32 Point12d4;               /* y_x S12d4_S12d4 in pixels        0318-031b*/
 NvV32 Reserved02[0x039];
 NvV32 Color[1792];             /* source colors (packed texels)    0400-1fff*/
} Nv066Typedef, Nv05StretchedImageFromCpu;
#define NV066_TYPEDEF                                 Nv05StretchedImageFromCpu
/* dma method offsets, fields, and values */
#define NV066_SET_OBJECT                                           (0x00000000)
#define NV066_NO_OPERATION                                         (0x00000100)
#define NV066_NOTIFY                                               (0x00000104)
#define NV066_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV066_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV066_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV066_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV066_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV066_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV066_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV066_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV066_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV066_SET_COLOR_CONVERSION                                 (0x000002F8)
#define NV066_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV066_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV066_SET_COLOR_CONVERSION_SUBTRACT_TRUNCATE               (0x00000002)
#define NV066_SET_OPERATION                                        (0x000002FC)
#define NV066_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV066_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV066_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV066_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV066_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV066_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV066_SET_COLOR_FORMAT                                     (0x00000300)
#define NV066_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV066_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV066_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV066_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV066_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV066_SIZE_IN                                              (0x00000304)
#define NV066_SIZE_IN_WIDTH                                        15:0
#define NV066_SIZE_IN_HEIGHT                                       31:16
#define NV066_DX_DS                                                (0x00000308)
#define NV066_DY_DT                                                (0x0000030C)
#define NV066_CLIP_POINT                                           (0x00000310)
#define NV066_CLIP_POINT_X                                         15:0
#define NV066_CLIP_POINT_Y                                         31:16
#define NV066_CLIP_SIZE                                            (0x00000314)
#define NV066_CLIP_SIZE_WIDTH                                      15:0
#define NV066_CLIP_SIZE_HEIGHT                                     31:16
#define NV066_POINT_12D4                                           (0x00000318)
#define NV066_POINT_12D4_X                                         15:0
#define NV066_POINT_12D4_Y                                         31:16
#define NV066_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0004)


/* class NV10_VIDEO_LUT_CURSOR_DAC */
#define  NV10_VIDEO_LUT_CURSOR_DAC                                 (0x00000067)
/* NvNotification[] elements */
#define NV067_NOTIFIERS_NOTIFY                                     (0)
#define NV067_NOTIFIERS_SET_IMAGE(b)                               (1+(b))
#define NV067_NOTIFIERS_SET_LUT(b)                                 (3+(b))
#define NV067_NOTIFIERS_SET_CURSOR_IMAGE(b)                        (5+(b))
#define NV067_NOTIFIERS_SET_DAC(b)                                 (7+(b))
/* NvNotification[] fields and values */
#define NV067_NOTIFICATION_INFO16_NOT_STARTED                      (0x0000)
#define NV067_NOTIFICATION_INFO16_VALID_OFFSET                     (0x0001)
#define NV067_NOTIFICATION_INFO16_DONE                             (0x0002)
#define NV067_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV067_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV067_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV067_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV067_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV067_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV067_NOTIFY_*                   0104-0107*/
 NvV32 StopImage[2];            /* NV067_STOP_IMAGE_*               0108-010f*/
 NvV32 StopLut[2];              /* NV067_STOP_LUT_*                 0110-0117*/
 NvV32 StopCursorImage[2];      /* NV067_STOP_CURSOR_IMAGE_*        0118-011f*/
 NvV32 StopDac[2];              /* NV067_STOP_DAC_*                 0120-0127*/
 NvV32 Reserved00[0x016];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaLut[2];     /* NV01_CONTEXT_DMA                 018c-0193*/
 NvV32 SetContextDmaCursor[2];  /* NV01_CONTEXT_DMA                 0194-019b*/
 NvV32 Reserved01[0x057];
 NvV32 SetPanOffset;            /* byte offset for panning          0220-0223*/
 NvV32 GetOffset;               /* NV067_GET_OFFSET_*               02fc-02ff*/
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* see text                            4-   7*/
 } SetImage[2];                 /* end of methods in array              -030f*/
 struct {                       /* start of methods in array        0310-    */
  NvU32 offset;                 /* byte offset of first byte           0-   3*/
  NvV32 format;                 /* notify                              4-   7*/
 } SetLut[2];                   /* end of methods in array              -031f*/
 struct {                       /* start of methods in array        0320-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* notify_color_height_width           4-   7*/
 } SetCursorImage[2];           /* end of methods in array              -032f*/
 NvV32 SetCursorPoint;          /* y_x S16_S16                      0330-0333*/
 NvV32 Reserved03[0x003];
 struct {                       /* start of methods in array        0340-    */
  NvV32 imageSize;              /* height_width U16_U16 in pixels      0-   3*/
  NvV32 horizontalBlank;        /* width_start U16_U16 in pixels       4-   7*/
  NvV32 horizontalSync;         /* width_start U16_U16 in pixels       8-   b*/
  NvV32 verticalBlank;          /* width_start U16_U16 in pixels       c-   f*/
  NvV32 verticalSync;           /* width_start U16_U16 in pixels      10-  13*/
  NvV32 totalSize;              /* height_width U16_U16               14-  17*/
  NvV32 pixelClock;             /* in Hertz                           18-  1b*/
  NvV32 format;                 /* see text                           1c-  1f*/
 } SetDac[2];                   /* end of methods in array              -037f*/
 NvV32 Reserved04[0x720];
} Nv067Typedef, Nv10VideoLutCursorDac;
#define NV067_TYPEDEF                                     Nv10VideoLutCursorDac
/* dma method offsets, fields, and values */
#define NV067_SET_OBJECT                                           (0x00000000)
#define NV067_NO_OPERATION                                         (0x00000100)
#define NV067_NOTIFY                                               (0x00000104)
#define NV067_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV067_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV067_STOP_IMAGE(b)                                        (0x00000108\
                                                                   +(b)*0x0004)
#define NV067_STOP_IMAGE_AS_SOON_AS_POSSIBLE                       (0x00000000)
#define NV067_STOP_IMAGE_BETWEEN_BUFFERS                           (0x00000001)
#define NV067_STOP_LUT(b)                                          (0x00000110\
                                                                   +(b)*0x0004)
#define NV067_STOP_LUT_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV067_STOP_LUT_BETWEEN_BUFFERS                             (0x00000001)
#define NV067_STOP_CURSOR_IMAGE(b)                                 (0x00000118\
                                                                   +(b)*0x0004)
#define NV067_STOP_CURSOR_IMAGE_AS_SOON_AS_POSSIBLE                (0x00000000)
#define NV067_STOP_CURSOR_IMAGE_BETWEEN_BUFFERS                    (0x00000001)
#define NV067_STOP_DAC(b)                                          (0x00000120\
                                                                   +(b)*0x0004)
#define NV067_STOP_DAC_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV067_STOP_DAC_BETWEEN_BUFFERS                             (0x00000001)
#define NV067_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV067_SET_CONTEXT_DMA_IMAGE(b)                             (0x00000184\
                                                                   +(b)*0x0004)
#define NV067_SET_CONTEXT_DMA_LUT(b)                               (0x0000018C\
                                                                   +(b)*0x0004)
#define NV067_SET_CONTEXT_DMA_CURSOR(b)                            (0x00000194\
                                                                   +(b)*0x0004)
#define NV067_SET_PAN_OFFSET                                       (0x00000220)
#define NV067_GET_OFFSET                                           (0x000002FC)
#define NV067_GET_OFFSET_IMAGE_0                                   (0x00000000)
#define NV067_GET_OFFSET_IMAGE_1                                   (0x00000001)
#define NV067_SET_IMAGE(b)                                         (0x00000300\
                                                                   +(b)*0x0008)
#define NV067_SET_IMAGE_OFFSET(b)                                  (0x00000300\
                                                                   +(b)*0x0008)
#define NV067_SET_IMAGE_FORMAT(b)                                  (0x00000304\
                                                                   +(b)*0x0008)
#define NV067_SET_IMAGE_FORMAT_PITCH                               15:0
#define NV067_SET_IMAGE_FORMAT_WHEN                                23:20
#define NV067_SET_IMAGE_FORMAT_WHEN_NOT_WITHIN_BUFFER              (0x00000000)
#define NV067_SET_IMAGE_FORMAT_WHEN_IMMEDIATELY                    (0x00000001)
#define NV067_SET_IMAGE_FORMAT_FLAGS                               27:25
#define NV067_SET_IMAGE_FORMAT_FLAGS_COMPLETE_ON_OBJECT_CLEANUP    (0x00000001)
#define NV067_SET_IMAGE_FORMAT_NOTIFY                              31:31
#define NV067_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV067_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV067_SET_LUT(b)                                           (0x00000310\
                                                                   +(b)*0x0008)
#define NV067_SET_LUT_OFFSET(b)                                    (0x00000310\
                                                                   +(b)*0x0008)
#define NV067_SET_LUT_FORMAT(b)                                    (0x00000314\
                                                                   +(b)*0x0008)
#define NV067_SET_LUT_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV067_SET_LUT_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)
#define NV067_SET_CURSOR_IMAGE(b)                                  (0x00000320\
                                                                   +(b)*0x0008)
#define NV067_SET_CURSOR_IMAGE_OFFSET(b)                           (0x00000320\
                                                                   +(b)*0x0008)
#define NV067_SET_CURSOR_IMAGE_FORMAT(b)                           (0x00000324\
                                                                   +(b)*0x0008)
#define NV067_SET_CURSOR_IMAGE_FORMAT_WIDTH                        7:0
#define NV067_SET_CURSOR_IMAGE_FORMAT_HEIGHT                       15:8
#define NV067_SET_CURSOR_IMAGE_FORMAT_COLOR                        30:16
#define NV067_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_ROP1R5G5B5          (0x00000000)
#define NV067_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_A1R5G5B5            (0x00000001)
#define NV067_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_A8R8G8B8            (0x00000002)
#define NV067_SET_CURSOR_IMAGE_FORMAT_NOTIFY                       31:31
#define NV067_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_ONLY            (0x00000000)
#define NV067_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN     (0x00000001)
#define NV067_SET_CURSOR_POINT                                     (0x00000330)
#define NV067_SET_CURSOR_POINT_X                                   15:0
#define NV067_SET_CURSOR_POINT_Y                                   31:16
#define NV067_SET_DAC(b)                                           (0x00000340\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_IMAGE_SIZE(b)                                (0x00000340\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_IMAGE_SIZE_WIDTH                             15:0
#define NV067_SET_DAC_IMAGE_SIZE_HEIGHT                            31:16
#define NV067_SET_DAC_HORIZONTAL_BLANK(b)                          (0x00000344\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_HORIZONTAL_BLANK_START                       15:0
#define NV067_SET_DAC_HORIZONTAL_BLANK_WIDTH                       31:16
#define NV067_SET_DAC_HORIZONTAL_SYNC(b)                           (0x00000348\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_HORIZONTAL_SYNC_START                        15:0
#define NV067_SET_DAC_HORIZONTAL_SYNC_WIDTH                        31:16
#define NV067_SET_DAC_VERTICAL_BLANK(b)                            (0x0000034c\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_VERTICAL_BLANK_START                         15:0
#define NV067_SET_DAC_VERTICAL_BLANK_WIDTH                         31:16
#define NV067_SET_DAC_VERTICAL_SYNC(b)                             (0x00000350\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_VERTICAL_SYNC_START                          15:0
#define NV067_SET_DAC_VERTICAL_SYNC_WIDTH                          31:16
#define NV067_SET_DAC_TOTAL_SIZE(b)                                (0x00000354\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_TOTAL_SIZE_WIDTH                             15:0
#define NV067_SET_DAC_TOTAL_SIZE_HEIGHT                            31:16
#define NV067_SET_DAC_PIXEL_CLOCK(b)                               (0x00000358\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_FORMAT(b)                                    (0x0000035c\
                                                                   +(b)*0x0020)
#define NV067_SET_DAC_FORMAT_DOUBLE_SCAN                           0:0
#define NV067_SET_DAC_FORMAT_DOUBLE_SCAN_DISABLED                  (0x00000000)
#define NV067_SET_DAC_FORMAT_DOUBLE_SCAN_ENABLED                   (0x00000001)
#define NV067_SET_DAC_FORMAT_INTERLACE                             1:1
#define NV067_SET_DAC_FORMAT_INTERLACE_DISABLED                    (0x00000000)
#define NV067_SET_DAC_FORMAT_INTERLACE_ENABLED                     (0x00000001)
#define NV067_SET_DAC_FORMAT_HORIZONTAL_SYNC                       2:2
#define NV067_SET_DAC_FORMAT_HORIZONTAL_SYNC_POSITIVE              (0x00000000)
#define NV067_SET_DAC_FORMAT_HORIZONTAL_SYNC_NEGATIVE              (0x00000001)
#define NV067_SET_DAC_FORMAT_VERTICAL_SYNC                         3:3
#define NV067_SET_DAC_FORMAT_VERTICAL_SYNC_POSITIVE                (0x00000000)
#define NV067_SET_DAC_FORMAT_VERTICAL_SYNC_NEGATIVE                (0x00000001)
#define NV067_SET_DAC_FORMAT_COLOR                                 19:16
#define NV067_SET_DAC_FORMAT_COLOR_LUT_LE_Y8                       (0x00000000)
#define NV067_SET_DAC_FORMAT_COLOR_BYPASS_LE_R5G6B5                (0x00000001)
#define NV067_SET_DAC_FORMAT_COLOR_LE_BYPASS1R5G5B5                (0x00000002)
#define NV067_SET_DAC_FORMAT_COLOR_LE_BYPASS1X7R8G8B8              (0x00000003)
#define NV067_SET_DAC_FORMAT_DISPLAY_TYPE                          21:20
#define NV067_SET_DAC_FORMAT_DISPLAY_TYPE_CRT                      (0x00000000)
#define NV067_SET_DAC_FORMAT_DISPLAY_TYPE_TV                       (0x00000001)
#define NV067_SET_DAC_FORMAT_DISPLAY_TYPE_DFP                      (0x00000003)
#define NV067_SET_DAC_FORMAT_TV_STANDARD                           25:22
#define NV067_SET_DAC_FORMAT_TV_STANDARD_NTSC_M                    (0x00000000)
#define NV067_SET_DAC_FORMAT_TV_STANDARD_NTSC_J                    (0x00000001)
#define NV067_SET_DAC_FORMAT_TV_STANDARD_PAL_M                     (0x00000002)
#define NV067_SET_DAC_FORMAT_TV_STANDARD_PAL_A                     (0x00000003)
#define NV067_SET_DAC_FORMAT_TV_STANDARD_PAL_N                     (0x00000004)
#define NV067_SET_DAC_FORMAT_TV_STANDARD_PAL_NC                    (0x00000005)
#define NV067_SET_DAC_FORMAT_PRIMARY_DEVICE                        28:28
#define NV067_SET_DAC_FORMAT_PRIMARY_DEVICE_FALSE                  (0x00000000)
#define NV067_SET_DAC_FORMAT_PRIMARY_DEVICE_TRUE                   (0x00000001)
#define NV067_SET_DAC_FORMAT_NOTIFY                                31:31
#define NV067_SET_DAC_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV067_SET_DAC_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)

// Added by Chuck Moidel
/* class NV04_HEAP_OWNER */
#define NV04_HEAP_OWNER                                            (0x0000006F)
/* NvNotification[] fields and values */
#define NV06F_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv06fTypedef, Nv04HeapOwner;
#define NV06F_TYPEDEF                                              Nv04HeapOwner
#define Nv06FTypedef                                               Nv04HeapOwner

typedef NvV32 Nv070Typedef;

typedef NvV32 Nv071Typedef;


/* class NV04_CONTEXT_BETA */
#define  NV04_CONTEXT_BETA                                         (0x00000072)
/* NvNotification[] elements */
#define NV072_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV072_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV072_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV072_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV072_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV072_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV072_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV072_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved01[0x05f];
 NvV32 SetBetaFactor;           /* A8R8G8B8 beta values             0300-0303*/
 NvV32 Reserved02[0x73f];
} Nv072Typedef, Nv04ContextBeta;
#define NV072_TYPEDEF                                           Nv04ContextBeta
/* dma method offsets, fields, and values */
#define NV072_SET_OBJECT                                           (0x00000000)
#define NV072_NO_OPERATION                                         (0x00000100)
#define NV072_NOTIFY                                               (0x00000104)
#define NV072_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV072_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV072_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV072_SET_BETA_FACTOR                                      (0x00000300)
#define NV072_SET_BETA_FACTOR_BLUE                                 7:0
#define NV072_SET_BETA_FACTOR_GREEN                                15:8
#define NV072_SET_BETA_FACTOR_RED                                  23:16
#define NV072_SET_BETA_FACTOR_ALPHA                                31:24
/* obsolete stuff */
#define NV4_CONTEXT_BETA                                           (0x00000072)
#define Nv4ContextBeta                                          Nv04ContextBeta
#define nv4ContextBeta                                          Nv04ContextBeta
#define nv04ContextBeta                                         Nv04ContextBeta

typedef NvV32 Nv073Typedef;

typedef NvV32 Nv074Typedef;

typedef NvV32 Nv075Typedef;


/* class NV04_STRETCHED_IMAGE_FROM_CPU */
#define  NV04_STRETCHED_IMAGE_FROM_CPU                             (0x00000076)
/* NvNotification[] elements */
#define NV076_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV076_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV076_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV076_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV076_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV076_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV076_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV076_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetOperation;            /* NV076_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV076_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SizeIn;                  /* height_width U16_U16 in texels   0304-0307*/
 NvV32 DeltaDxDu;               /* S12d20 ratio dx/du               0308-030b*/
 NvV32 DeltaDyDv;               /* S12d20 ratio dy/dv               030c-030f*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0310-0313*/
 NvV32 ClipSize;                /* height_width U16_U16             0314-0317*/
 NvV32 Point12d4;               /* y_x S12d4_S12d4 in pixels        0318-031b*/
 NvV32 Reserved02[0x039];
 NvV32 Color[1792];             /* source colors (packed texels)    0400-1fff*/
} Nv076Typedef, Nv04StretchedImageFromCpu;
#define NV076_TYPEDEF                                 Nv04StretchedImageFromCpu
/* dma method offsets, fields, and values */
#define NV076_SET_OBJECT                                           (0x00000000)
#define NV076_NO_OPERATION                                         (0x00000100)
#define NV076_NOTIFY                                               (0x00000104)
#define NV076_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV076_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV076_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV076_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV076_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV076_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV076_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV076_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV076_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV076_SET_OPERATION                                        (0x000002FC)
#define NV076_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV076_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV076_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV076_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV076_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV076_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV076_SET_COLOR_FORMAT                                     (0x00000300)
#define NV076_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV076_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV076_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV076_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV076_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV076_SIZE_IN                                              (0x00000304)
#define NV076_SIZE_IN_WIDTH                                        15:0
#define NV076_SIZE_IN_HEIGHT                                       31:16
#define NV076_DELTA_DX_DU                                          (0x00000308)
#define NV076_DELTA_DY_DV                                          (0x0000030C)
#define NV076_CLIP_POINT                                           (0x00000310)
#define NV076_CLIP_POINT_X                                         15:0
#define NV076_CLIP_POINT_Y                                         31:16
#define NV076_CLIP_SIZE                                            (0x00000314)
#define NV076_CLIP_SIZE_WIDTH                                      15:0
#define NV076_CLIP_SIZE_HEIGHT                                     31:16
#define NV076_POINT_12D4                                           (0x00000318)
#define NV076_POINT_12D4_X                                         15:0
#define NV076_POINT_12D4_Y                                         31:16
#define NV076_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0004)
/* obsolete stuff */
#define NV4_STRETCHED_IMAGE_FROM_CPU                               (0x00000076)
#define Nv4StretchedImageFromCpu                      Nv04StretchedImageFromCpu
#define nv4StretchedImageFromCpu                      Nv04StretchedImageFromCpu
#define nv04StretchedImageFromCpu                     Nv04StretchedImageFromCpu


/* class NV04_SCALED_IMAGE_FROM_MEMORY */
#define  NV04_SCALED_IMAGE_FROM_MEMORY                             (0x00000077)
/* NvNotification[] elements */
#define NV077_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV077_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV077_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV077_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV077_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV077_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV077_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV077_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D,SWIZZLE 0198-019b*/
 NvV32 Reserved01[0x059];
 NvV32 SetColorFormat;          /* NV077_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetOperation;            /* NV077_SET_OPERATION_*            0304-0307*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0308-030b*/
 NvV32 ClipSize;                /* height_width U16_U16             030c-030f*/
 NvV32 ImageOutPoint;           /* y_x S16_S16                      0310-0313*/
 NvV32 ImageOutSize;            /* height_width U16_U16             0314-0317*/
 NvV32 DeltaDuDx;               /* S12d20 ratio du/dx               0318-031b*/
 NvV32 DeltaDvDy;               /* S12d20 ratio dv/dy               031c-031f*/
 NvV32 Reserved02[0x038];
 NvV32 ImageInSize;             /* height_width U16_U16             0400-0403*/
 NvU32 ImageInFormat;           /* interpolator_origin_pitch        0404-0407*/
 NvU32 ImageInOffset;           /* bytes                            0408-040b*/
 NvV32 ImageInPoint;            /* v_u U12d4_U12d4                  040c-040f*/
 NvV32 Reserved03[0x6fc];
} Nv077Typedef, Nv04ScaledImageFromMemory;
#define NV077_TYPEDEF                                 Nv04ScaledImageFromMemory
/* dma method offsets, fields, and values */
#define NV077_SET_OBJECT                                           (0x00000000)
#define NV077_NO_OPERATION                                         (0x00000100)
#define NV077_NOTIFY                                               (0x00000104)
#define NV077_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV077_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV077_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV077_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV077_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV077_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV077_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV077_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV077_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV077_SET_COLOR_FORMAT                                     (0x00000300)
#define NV077_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000001)
#define NV077_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000002)
#define NV077_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV077_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000004)
#define NV077_SET_COLOR_FORMAT_LE_V8YB8U8YA8                       (0x00000005)
#define NV077_SET_COLOR_FORMAT_LE_YB8V8YA8U8                       (0x00000006)
#define NV077_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000007)
#define NV077_SET_OPERATION                                        (0x00000304)
#define NV077_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV077_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV077_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV077_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV077_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV077_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV077_CLIP_POINT                                           (0x00000308)
#define NV077_CLIP_POINT_X                                         15:0
#define NV077_CLIP_POINT_Y                                         31:16
#define NV077_CLIP_SIZE                                            (0x0000030C)
#define NV077_CLIP_SIZE_WIDTH                                      15:0
#define NV077_CLIP_SIZE_HEIGHT                                     31:16
#define NV077_IMAGE_OUT_POINT                                      (0x00000310)
#define NV077_IMAGE_OUT_POINT_X                                    15:0
#define NV077_IMAGE_OUT_POINT_Y                                    31:16
#define NV077_IMAGE_OUT_SIZE                                       (0x00000314)
#define NV077_IMAGE_OUT_SIZE_WIDTH                                 15:0
#define NV077_IMAGE_OUT_SIZE_HEIGHT                                31:16
#define NV077_DELTA_DU_DX                                          (0x00000318)
#define NV077_DELTA_DV_DY                                          (0x0000031C)
#define NV077_IMAGE_IN_SIZE                                        (0x00000400)
#define NV077_IMAGE_IN_SIZE_WIDTH                                  15:0
#define NV077_IMAGE_IN_SIZE_HEIGHT                                 31:16
#define NV077_IMAGE_IN_FORMAT                                      (0x00000404)
#define NV077_IMAGE_IN_FORMAT_PITCH                                15:0
#define NV077_IMAGE_IN_FORMAT_ORIGIN                               23:16
#define NV077_IMAGE_IN_FORMAT_ORIGIN_CENTER                        (0x00000001)
#define NV077_IMAGE_IN_FORMAT_ORIGIN_CORNER                        (0x00000002)
#define NV077_IMAGE_IN_FORMAT_INTERPOLATOR                         31:24
#define NV077_IMAGE_IN_FORMAT_INTERPOLATOR_ZOH                     (0x00000000)
#define NV077_IMAGE_IN_FORMAT_INTERPOLATOR_FOH                     (0x00000001)
#define NV077_IMAGE_IN_OFFSET                                      (0x00000408)
#define NV077_IMAGE_IN                                             (0x0000040C)
#define NV077_IMAGE_IN_POINT_U                                     15:0
#define NV077_IMAGE_IN_POINT_V                                     31:16
/* obsolete stuff */
#define NV4_SCALED_IMAGE_FROM_MEMORY                               (0x00000077)
#define Nv4ScaledImageFromMemory                      Nv04ScaledImageFromMemory
#define nv4ScaledImageFromMemory                      Nv04ScaledImageFromMemory
#define nv04ScaledImageFromMemory                     Nv04ScaledImageFromMemory

typedef NvV32 Nv078Typedef;

typedef NvV32 Nv079Typedef;

/* class NV10_VIDEO_OVERLAY */
#define  NV10_VIDEO_OVERLAY                                        (0x0000007A)
/* NvNotification[] elements */
#define NV07A_NOTIFIERS_NOTIFY                                     (0)
#define NV07A_NOTIFIERS_SET_OVERLAY(b)                             (1+(b))
/* NvNotification[] fields and values */
#define NV07A_NOTIFICATION_INFO16_NOT_STARTED                      (0x0000)
#define NV07A_NOTIFICATION_INFO16_VALID_OFFSET                     (0x0001)
#define NV07A_NOTIFICATION_INFO16_DONE                             (0x0002)
#define NV07A_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV07A_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV07A_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV07A_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV07A_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV07A_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV07A_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x006];
 NvV32 StopOverlay[2];          /* NV07A_STOP_OVERLAY_*             0120-0127*/
 NvV32 Reserved01[0x016];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 Reserved02[0x006];
 NvV32 SetContextDmaOverlay[2]; /* NV01_CONTEXT_DMA                 019c-01a3*/
 NvV32 Reserved03[0x097];
 struct {                       /* start of methods in array        0400-    */
  NvV32 reserved05[0x015];      /* see text                           00-  53*/
  NvV32 luminance;              /* brightness_contrast S16_U8d8       54-  57*/
  NvV32 chrominance;            /* saturationSine_saturationCosine    58-  5b*/
  NvV32 colorKey;               /* see text                           5c-  5f*/
  NvU32 offset;                 /* byte offset of top-left texel      60-  63*/
  NvV32 sizeIn;                 /* height_width U16_U16               64-  67*/
  NvV32 pointIn;                /* t_s U12d4_U12d4                    68-  6b*/
  NvV32 duDx;                   /* U12d20 du/dx                       6c-  6f*/
  NvV32 dvDy;                   /* U12d20 dv/dy                       70-  73*/
  NvV32 pointOut;               /* y_x U16_U16                        74-  77*/
  NvV32 sizeOut;                /* height_width U16_U16               78-  7b*/
  NvV32 format;                 /* see text                           7c-  7f*/
 } SetOverlay[2];               /* end of methods in array              -04ff*/
 NvV32 SetOverlayPointOutA;     /* y_x U16_U16                      0500-0503*/
 NvV32 SetOverlayLuminanceA;    /* brightness_contrast S16_U8d8     0504-0507*/
 NvV32 SetOverlayChrominanceA;  /* saturationSine_saturationCosine  0508-050b*/
 NvV32 Reserved04[0x6bd];
} Nv07aTypedef, Nv10VideoOverlay;
#define NV07A_TYPEDEF                                          Nv10VideoOverlay
/* dma method offsets, fields, and values */
#define NV07A_SET_OBJECT                                           (0x00000000)
#define NV07A_NO_OPERATION                                         (0x00000100)
#define NV07A_NOTIFY                                               (0x00000104)
#define NV07A_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV07A_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV07A_STOP_OVERLAY(b)                                      (0x00000120\
                                                                   +(b)*0x0004)
#define NV07A_STOP_OVERLAY_AS_SOON_AS_POSSIBLE                     (0x00000000)
#define NV07A_STOP_OVERLAY_BETWEEN_BUFFERS                         (0x00000001)
#define NV07A_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV07A_SET_CONTEXT_DMA_OVERLAY(b)                           (0x0000019C\
                                                                   +(b)*0x0004)
#define NV07A_SET_OVERLAY(b)                                       (0x00000400\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_LUMINANCE(b)                             (0x00000454\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_LUMINANCE_CONTRAST                       15:0
#define NV07A_SET_OVERLAY_LUMINANCE_BRIGHTNESS                     31:16
#define NV07A_SET_OVERLAY_CHROMINANCE(b)                           (0x00000458\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_CHROMINANCE_SATURATION_COSINE            15:0
#define NV07A_SET_OVERLAY_CHROMINANCE_SATURATION_SINE              31:16
#define NV07A_SET_OVERLAY_COLORKEY(b)                              (0x0000045C\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_OFFSET(b)                                (0x00000460\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_SIZE_IN(b)                               (0x00000464\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_SIZE_IN_WIDTH                            15:0
#define NV07A_SET_OVERLAY_SIZE_IN_HEIGHT                           31:16
#define NV07A_SET_OVERLAY_POINT_IN(b)                              (0x00000468\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_POINT_IN_S                               15:0
#define NV07A_SET_OVERLAY_POINT_IN_T                               31:16
#define NV07A_SET_OVERLAY_DU_DX(b)                                 (0x0000046C\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_DV_DY(b)                                 (0x00000470\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_POINT_OUT(b)                             (0x00000474\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_POINT_OUT_X                              15:0
#define NV07A_SET_OVERLAY_POINT_OUT_Y                              31:16
#define NV07A_SET_OVERLAY_SIZE_OUT(b)                              (0x00000478\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_SIZE_OUT_WIDTH                           15:0
#define NV07A_SET_OVERLAY_SIZE_OUT_HEIGHT                          31:16
#define NV07A_SET_OVERLAY_FORMAT(b)                                (0x0000047C\
                                                                   +(b)*0x0080)
#define NV07A_SET_OVERLAY_FORMAT_PITCH                             15:0
#define NV07A_SET_OVERLAY_FORMAT_COLOR                             19:16
#define NV07A_SET_OVERLAY_FORMAT_COLOR_LE_YB8CR8YA8CB8             (0x00000000)
#define NV07A_SET_OVERLAY_FORMAT_COLOR_LE_CR8YB8CB8YA8             (0x00000001)
#define NV07A_SET_OVERLAY_FORMAT_COLOR_KEY_MISMATCH                23:20
#define NV07A_SET_OVERLAY_FORMAT_COLOR_KEY_MISMATCH_SHOW_OVERLAY   (0x00000000)
#define NV07A_SET_OVERLAY_FORMAT_COLOR_KEY_MISMATCH_SHOW_IMAGE     (0x00000001)
#define NV07A_SET_OVERLAY_FORMAT_MATRIX                            30:24
#define NV07A_SET_OVERLAY_FORMAT_MATRIX_ITURBT601                  (0x00000000)
#define NV07A_SET_OVERLAY_FORMAT_MATRIX_ITURBT709                  (0x00000001)
#define NV07A_SET_OVERLAY_FORMAT_NOTIFY                            31:31
#define NV07A_SET_OVERLAY_FORMAT_NOTIFY_WRITE_ONLY                 (0x00000000)
#define NV07A_SET_OVERLAY_FORMAT_NOTIFY_WRITE_THEN_AWAKEN          (0x00000001)
#define NV07A_SET_OVERLAY_POINT_OUT_A                              (0x00000500)
#define NV07A_SET_OVERLAY_POINT_OUT_A_X                            15:0
#define NV07A_SET_OVERLAY_POINT_OUT_A_Y                            31:16
#define NV07A_SET_OVERLAY_LUMINANCE_A                              (0x00000504)
#define NV07A_SET_OVERLAY_LUMINANCE_A_CONTRAST                     15:0
#define NV07A_SET_OVERLAY_LUMINANCE_A_BRIGHTNESS                   31:16
#define NV07A_SET_OVERLAY_CHROMINANCE_A                            (0x00000508)
#define NV07A_SET_OVERLAY_CHROMINANCE_A_SATURATION_COSINE          15:0
#define NV07A_SET_OVERLAY_CHROMINANCE_A_SATURATION_SINE            31:16

/* class NV10_TEXTURE_FROM_CPU */
#define  NV10_TEXTURE_FROM_CPU                                     (0x0000007B)
/* NvNotification[] elements */
#define NV07B_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV07B_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV07B_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV07B_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV07B_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV07B_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV07B_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV089_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         0184-0187*/
 NvV32 Reserved01[0x05e];
 NvV32 SetColorFormat;          /* NV07B_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Point;                   /* y_x S16_S16 in pixels            0304-0307*/
 NvV32 Size;                    /* height_width U16_U16, pixels     0308-030b*/
 NvV32 ClipHorizontal;          /* width_x U16_U16                  030c-030f*/
 NvV32 ClipVertical;            /* height_y U16_U16                 0310-0313*/
 NvV32 Reserved02[0x03b];
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 a;                      /* source colors (packed texels)       0-   3*/
  NvV32 b;                      /* source colors (packed texels)       4-   7*/
 } Color[896];                  /* end of aliased methods in array      -1fff*/
} Nv07bTypedef, Nv10TextureFromCpu;
#define NV07B_TYPEDEF                                        Nv10TextureFromCpu
/* dma method offsets, fields, and values */
#define NV07B_SET_OBJECT                                           (0x00000000)
#define NV07B_NO_OPERATION                                         (0x00000100)
#define NV07B_NOTIFY                                               (0x00000104)
#define NV07B_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV07B_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV07B_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV07B_SET_CONTEXT_SURFACE                                  (0x00000184)
#define NV07B_SET_COLOR_FORMAT                                     (0x00000300)
#define NV07B_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV07B_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV07B_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV07B_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV07B_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV07B_POINT                                                (0x00000304)
#define NV07B_POINT_X                                              15:0
#define NV07B_POINT_Y                                              31:16
#define NV07B_SIZE                                                 (0x00000308)
#define NV07B_SIZE_WIDTH                                           15:0
#define NV07B_SIZE_HEIGHT                                          31:16
#define NV07B_CLIP_HORIZONTAL                                      (0x0000030C)
#define NV07B_CLIP_HORIZONTAL_X                                    15:0
#define NV07B_CLIP_HORIZONTAL_WIDTH                                31:16
#define NV07B_CLIP_VERTICAL                                        (0x00000310)
#define NV07B_CLIP_VERTICAL_Y                                      15:0
#define NV07B_CLIP_VERTICAL_HEIGHT                                 31:16
#define NV07B_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0008)
#define NV07B_COLOR_A(a)                                           (0x00000400\
                                                                   +(a)*0x0008)
#define NV07B_COLOR_B(a)                                           (0x00000404\
                                                                   +(a)*0x0008)
#define NV07B_COLOR__SIZE_1                                        896

/* class NV15_VIDEO_LUT_CURSOR_DAC */
#define  NV15_VIDEO_LUT_CURSOR_DAC                                 (0x0000007C)
/* NvNotification[] elements */
#define NV07C_NOTIFIERS_NOTIFY                                     (0)
#define NV07C_NOTIFIERS_GET_OFFSET                                 (0)
#define NV07C_NOTIFIERS_SET_IMAGE(b)                               (1+(b))
#define NV07C_NOTIFIERS_SET_LUT(b)                                 (3+(b))
#define NV07C_NOTIFIERS_SET_CURSOR_IMAGE(b)                        (5+(b))
#define NV07C_NOTIFIERS_SET_DAC(b)                                 (7+(b))
#define NV07C_NOTIFIERS_SET_HOTPLUG                                9            //note to emp#742 - HOTPLUG notifier
/* NvNotification[] fields and values */
#define NV07C_NOTIFICATION_INFO16_NOT_STARTED                      (0x0000)
#define NV07C_NOTIFICATION_INFO16_VALID_OFFSET                     (0x0001)
#define NV07C_NOTIFICATION_INFO16_DONE                             (0x0002)
#define NV07C_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV07C_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV07C_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV07C_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV07C_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV07C_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV07C_NOTIFY_*                   0104-0107*/
 NvV32 StopImage[2];            /* NV07C_STOP_IMAGE_*               0108-010f*/
 NvV32 StopLut[2];              /* NV07C_STOP_LUT_*                 0110-0117*/
 NvV32 StopCursorImage[2];      /* NV07C_STOP_CURSOR_IMAGE_*        0118-011f*/
 NvV32 StopDac[2];              /* NV07C_STOP_DAC_*                 0120-0127*/
 NvV32 Reserved00[0x016];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaLut[2];     /* NV01_CONTEXT_DMA                 018c-0193*/
 NvV32 SetContextDmaCursor[2];  /* NV01_CONTEXT_DMA                 0194-019b*/
 NvV32 SetContextDmaSemaphore;  /* NV01_CONTEXT_DMA                 019c-019f*/
 NvV32 SetHotPlug;              /* control the hotplug interrupt    01a0-01a3*/
 NvV32 SetPanOffset;            /* byte offset for panning          0220-0223*/
 NvV32 Reserved01[0x052];
 NvU32 SetSemaphoreOffset;      /* set semaphore offset             02f0-02f3*/
 NvU32 SetSemaphoreRelease;     /* set semaphore release value      02f4-02f7*/
 NvV32 SetOffsetRange;          /* NV07C_SET_OFFSET_RANGE_*         02f8-02fb*/
 NvV32 GetOffset;               /* NV07C_GET_OFFSET_*               02fc-02ff*/
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* see text                            4-   7*/
 } SetImage[2];                 /* end of methods in array              -030f*/
 struct {                       /* start of methods in array        0310-    */
  NvU32 offset;                 /* byte offset of first byte           0-   3*/
  NvV32 format;                 /* notify                              4-   7*/
 } SetLut[2];                   /* end of methods in array              -031f*/
 struct {                       /* start of methods in array        0320-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* notify_color_height_width           4-   7*/
 } SetCursorImage[2];           /* end of methods in array              -032f*/
 NvV32 SetCursorPoint;          /* y_x S16_S16                      0330-0333*/
 NvV32 Reserved03[0x003];
 struct {                       /* start of methods in array        0340-    */
  NvV32 imageSize;              /* height_width U16_U16 in pixels      0-   3*/
  NvV32 horizontalBlank;        /* width_start U16_U16 in pixels       4-   7*/
  NvV32 horizontalSync;         /* width_start U16_U16 in pixels       8-   b*/
  NvV32 verticalBlank;          /* width_start U16_U16 in pixels       c-   f*/
  NvV32 verticalSync;           /* width_start U16_U16 in pixels      10-  13*/
  NvV32 totalSize;              /* height_width U16_U16               14-  17*/
  NvV32 pixelClock;             /* in Hertz                           18-  1b*/
  NvV32 format;                 /* see text                           1c-  1f*/
 } SetDac[2];                   /* end of methods in array              -037f*/
 NvV32 Reserved04[0x720];
} Nv07cTypedef, Nv12VideoLutCursorDac;
#define NV07C_TYPEDEF                                     Nv12VideoLutCursorDac
/* dma method offsets, fields, and values */
#define NV07C_SET_OBJECT                                           (0x00000000)
#define NV07C_NO_OPERATION                                         (0x00000100)
#define NV07C_NOTIFY                                               (0x00000104)
#define NV07C_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV07C_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV07C_STOP_IMAGE(b)                                        (0x00000108\
                                                                   +(b)*0x0004)
#define NV07C_STOP_IMAGE_AS_SOON_AS_POSSIBLE                       (0x00000000)
#define NV07C_STOP_IMAGE_BETWEEN_BUFFERS                           (0x00000001)
#define NV07C_STOP_LUT(b)                                          (0x00000110\
                                                                   +(b)*0x0004)
#define NV07C_STOP_LUT_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV07C_STOP_LUT_BETWEEN_BUFFERS                             (0x00000001)
#define NV07C_STOP_CURSOR_IMAGE(b)                                 (0x00000118\
                                                                   +(b)*0x0004)
#define NV07C_STOP_CURSOR_IMAGE_AS_SOON_AS_POSSIBLE                (0x00000000)
#define NV07C_STOP_CURSOR_IMAGE_BETWEEN_BUFFERS                    (0x00000001)
#define NV07C_STOP_DAC(b)                                          (0x00000120\
                                                                   +(b)*0x0004)
#define NV07C_STOP_DAC_AS_SOON_AS_POSSIBLE                         (0x00000000)
#define NV07C_STOP_DAC_BETWEEN_BUFFERS                             (0x00000001)
#define NV07C_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV07C_SET_CONTEXT_DMA_IMAGE(b)                             (0x00000184\
                                                                   +(b)*0x0004)
#define NV07C_SET_CONTEXT_DMA_LUT(b)                               (0x0000018C\
                                                                   +(b)*0x0004)
#define NV07C_SET_CONTEXT_DMA_CURSOR(b)                            (0x00000194\
                                                                   +(b)*0x0004)
#define NV07C_SET_CONTEXT_DMA_SEMAPHORE                            (0x0000019c)

#define NV07C_SET_HOTPLUG                                          (0x000001a0)
#define NV07C_SET_HOTPLUG_NOHOTSWAP                                (0x00000000)
#define NV07C_SET_HOTPLUG_PLUG                                     (0x00000010)
#define NV07C_SET_HOTPLUG_UNPLUG                                   (0x00000100)

#define NV07C_SET_PAN_OFFSET                                       (0x00000220)

#define NV07C_SET_SEMAPHORE_OFFSET                                 (0x000002f0)
#define NV07C_SET_SEMAPHORE_OFFSET_V                               31:0
#define NV07C_SET_SEMAPHORE_RELEASE                                (0x000002f4)
#define NV07C_SET_SEMAPHORE_RELEASE_V                              31:0

#define NV07C_SET_OFFSET_RANGE                                     (0x000002F8)
#define NV07C_SET_OFFSET_RANGE_START                               14:0
#define NV07C_SET_OFFSET_RANGE_STOP                                30:16
#define NV07C_SET_OFFSET_RANGE_POLARITY                            31:31
#define NV07C_SET_OFFSET_RANGE_POLARITY_IN_RANGE                   (0x00000000)
#define NV07C_SET_OFFSET_RANGE_POLARITY_OUT_RANGE                  (0x00000001)
#define NV07C_GET_OFFSET                                           (0x000002FC)
#define NV07C_GET_OFFSET_IMAGE_0                                   (0x00000000)
#define NV07C_GET_OFFSET_IMAGE_1                                   (0x00000001)
#define NV07C_SET_IMAGE(b)                                         (0x00000300\
                                                                   +(b)*0x0008)
#define NV07C_SET_IMAGE_OFFSET(b)                                  (0x00000300\
                                                                   +(b)*0x0008)
#define NV07C_SET_IMAGE_FORMAT(b)                                  (0x00000304\
                                                                   +(b)*0x0008)
#define NV07C_SET_IMAGE_FORMAT_PITCH                               15:0
#define NV07C_SET_IMAGE_FORMAT_WHEN                                23:20
#define NV07C_SET_IMAGE_FORMAT_WHEN_NOT_WITHIN_BUFFER              (0x00000000)
#define NV07C_SET_IMAGE_FORMAT_WHEN_IMMEDIATELY                    (0x00000001)
#define NV07C_SET_IMAGE_FORMAT_MULTIHEAD_SYNC                      24:24
#define NV07C_SET_IMAGE_FORMAT_MULTIHEAD_SYNC_DISABLED             (0x00000000)
#define NV07C_SET_IMAGE_FORMAT_MULTIHEAD_SYNC_ENABLED              (0x00000001)
#define NV07C_SET_IMAGE_FORMAT_FLAGS                               27:25
#define NV07C_SET_IMAGE_FORMAT_FLAGS_COMPLETE_ON_OBJECT_CLEANUP    (0x00000001)
#define NV07C_SET_IMAGE_FORMAT_NOTIFY                              31:31
#define NV07C_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                   (0x00000000)
#define NV07C_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN            (0x00000001)
#define NV07C_SET_LUT(b)                                           (0x00000310\
                                                                   +(b)*0x0008)
#define NV07C_SET_LUT_OFFSET(b)                                    (0x00000310\
                                                                   +(b)*0x0008)
#define NV07C_SET_LUT_FORMAT(b)                                    (0x00000314\
                                                                   +(b)*0x0008)
#define NV07C_SET_LUT_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV07C_SET_LUT_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)
#define NV07C_SET_CURSOR_IMAGE(b)                                  (0x00000320\
                                                                   +(b)*0x0008)
#define NV07C_SET_CURSOR_IMAGE_OFFSET(b)                           (0x00000320\
                                                                   +(b)*0x0008)
#define NV07C_SET_CURSOR_IMAGE_FORMAT(b)                           (0x00000324\
                                                                   +(b)*0x0008)
#define NV07C_SET_CURSOR_IMAGE_FORMAT_WIDTH                        7:0
#define NV07C_SET_CURSOR_IMAGE_FORMAT_HEIGHT                       15:8
#define NV07C_SET_CURSOR_IMAGE_FORMAT_COLOR                        30:16
#define NV07C_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_ROP1R5G5B5          (0x00000000)
#define NV07C_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_A1R5G5B5            (0x00000001)
#define NV07C_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_A8R8G8B8            (0x00000002)
#define NV07C_SET_CURSOR_IMAGE_FORMAT_COLOR_PM_LE_A8R8G8B8         (0x00000003)
#define NV07C_SET_CURSOR_IMAGE_FORMAT_NOTIFY                       31:31
#define NV07C_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_ONLY            (0x00000000)
#define NV07C_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN     (0x00000001)
#define NV07C_SET_CURSOR_POINT                                     (0x00000330)
#define NV07C_SET_CURSOR_POINT_X                                   15:0
#define NV07C_SET_CURSOR_POINT_Y                                   31:16
#define NV07C_SET_DAC(b)                                           (0x00000340\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_IMAGE_SIZE(b)                                (0x00000340\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_IMAGE_SIZE_WIDTH                             15:0
#define NV07C_SET_DAC_IMAGE_SIZE_HEIGHT                            31:16
#define NV07C_SET_DAC_HORIZONTAL_BLANK(b)                          (0x00000344\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_HORIZONTAL_BLANK_START                       15:0
#define NV07C_SET_DAC_HORIZONTAL_BLANK_WIDTH                       31:16
#define NV07C_SET_DAC_HORIZONTAL_SYNC(b)                           (0x00000348\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_HORIZONTAL_SYNC_START                        15:0
#define NV07C_SET_DAC_HORIZONTAL_SYNC_WIDTH                        31:16
#define NV07C_SET_DAC_VERTICAL_BLANK(b)                            (0x0000034c\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_VERTICAL_BLANK_START                         15:0
#define NV07C_SET_DAC_VERTICAL_BLANK_WIDTH                         31:16
#define NV07C_SET_DAC_VERTICAL_SYNC(b)                             (0x00000350\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_VERTICAL_SYNC_START                          15:0
#define NV07C_SET_DAC_VERTICAL_SYNC_WIDTH                          31:16
#define NV07C_SET_DAC_TOTAL_SIZE(b)                                (0x00000354\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_TOTAL_SIZE_WIDTH                             15:0
#define NV07C_SET_DAC_TOTAL_SIZE_HEIGHT                            31:16
#define NV07C_SET_DAC_PIXEL_CLOCK(b)                               (0x00000358\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_FORMAT(b)                                    (0x0000035c\
                                                                   +(b)*0x0020)
#define NV07C_SET_DAC_FORMAT_DOUBLE_SCAN                           0:0
#define NV07C_SET_DAC_FORMAT_DOUBLE_SCAN_DISABLED                  (0x00000000)
#define NV07C_SET_DAC_FORMAT_DOUBLE_SCAN_ENABLED                   (0x00000001)
#define NV07C_SET_DAC_FORMAT_INTERLACE                             1:1
#define NV07C_SET_DAC_FORMAT_INTERLACE_DISABLED                    (0x00000000)
#define NV07C_SET_DAC_FORMAT_INTERLACE_ENABLED                     (0x00000001)
#define NV07C_SET_DAC_FORMAT_HORIZONTAL_SYNC                       2:2
#define NV07C_SET_DAC_FORMAT_HORIZONTAL_SYNC_POSITIVE              (0x00000000)
#define NV07C_SET_DAC_FORMAT_HORIZONTAL_SYNC_NEGATIVE              (0x00000001)
#define NV07C_SET_DAC_FORMAT_VERTICAL_SYNC                         3:3
#define NV07C_SET_DAC_FORMAT_VERTICAL_SYNC_POSITIVE                (0x00000000)
#define NV07C_SET_DAC_FORMAT_VERTICAL_SYNC_NEGATIVE                (0x00000001)
#define NV07C_SET_DAC_FORMAT_COLOR                                 19:16
#define NV07C_SET_DAC_FORMAT_COLOR_LUT_LE_Y8                       (0x00000000)
#define NV07C_SET_DAC_FORMAT_COLOR_BYPASS_LE_R5G6B5                (0x00000001)
#define NV07C_SET_DAC_FORMAT_COLOR_LE_BYPASS1R5G5B5                (0x00000002)
#define NV07C_SET_DAC_FORMAT_COLOR_LE_BYPASS1X7R8G8B8              (0x00000003)
#define NV07C_SET_DAC_FORMAT_DISPLAY_TYPE                          21:20
#define NV07C_SET_DAC_FORMAT_DISPLAY_TYPE_CRT                      (0x00000000)
#define NV07C_SET_DAC_FORMAT_DISPLAY_TYPE_TV                       (0x00000001)
#define NV07C_SET_DAC_FORMAT_DISPLAY_TYPE_DFP                      (0x00000003)
#define NV07C_SET_DAC_FORMAT_TV_STANDARD                           25:22
#define NV07C_SET_DAC_FORMAT_TV_STANDARD_NTSC_M                    (0x00000000)
#define NV07C_SET_DAC_FORMAT_TV_STANDARD_NTSC_J                    (0x00000001)
#define NV07C_SET_DAC_FORMAT_TV_STANDARD_PAL_M                     (0x00000002)
#define NV07C_SET_DAC_FORMAT_TV_STANDARD_PAL_A                     (0x00000003)
#define NV07C_SET_DAC_FORMAT_TV_STANDARD_PAL_N                     (0x00000004)
#define NV07C_SET_DAC_FORMAT_TV_STANDARD_PAL_NC                    (0x00000005)
#define NV07C_SET_DAC_FORMAT_HEAD                                  27:26
#define NV07C_SET_DAC_FORMAT_HEAD_0                                (0x00000000)
#define NV07C_SET_DAC_FORMAT_HEAD_1                                (0x00000001)
#define NV07C_SET_DAC_FORMAT_PRIMARY_DEVICE                        28:28
#define NV07C_SET_DAC_FORMAT_PRIMARY_DEVICE_FALSE                  (0x00000000)
#define NV07C_SET_DAC_FORMAT_PRIMARY_DEVICE_TRUE                   (0x00000001)
#define NV07C_SET_DAC_FORMAT_NOTIFY                                31:31
#define NV07C_SET_DAC_FORMAT_NOTIFY_WRITE_ONLY                     (0x00000000)
#define NV07C_SET_DAC_FORMAT_NOTIFY_WRITE_THEN_AWAKEN              (0x00000001)


/* class NV20_VIDEO_LUT_CURSOR_DAC */
#define  NV20_VIDEO_LUT_CURSOR_DAC                                 (0x0000207C)
/* NvNotification[] elements */
#define NV207C_NOTIFIERS_NOTIFY                                    (0)
#define NV207C_NOTIFIERS_GET_OFFSET                                (0)
#define NV207C_NOTIFIERS_SET_IMAGE(b)                              (1+(b))
#define NV207C_NOTIFIERS_SET_LUT(b)                                (3+(b))
#define NV207C_NOTIFIERS_SET_CURSOR_IMAGE(b)                       (5+(b))
#define NV207C_NOTIFIERS_SET_DAC(b)                                (7+(b))
#define NV207C_NOTIFIERS_SET_HOTPLUG                                9            //note to emp#742 - HOTPLUG notifier
/* NvNotification[] fields and values */
#define NV207C_NOTIFICATION_INFO16_NOT_STARTED                     (0x0000)
#define NV207C_NOTIFICATION_INFO16_VALID_OFFSET                    (0x0001)
#define NV207C_NOTIFICATION_INFO16_DONE                            (0x0002)
#define NV207C_NOTIFICATION_STATUS_IN_PROGRESS                     (0x8000)
#define NV207C_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT          (0x4000)
#define NV207C_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT              (0x2000)
#define NV207C_NOTIFICATION_STATUS_ERROR_INVALID_STATE             (0x1000)
#define NV207C_NOTIFICATION_STATUS_ERROR_STATE_IN_USE              (0x0800)
#define NV207C_NOTIFICATION_STATUS_DONE_SUCCESS                    (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV207C_NOTIFY_*                  0104-0107*/
 NvV32 StopImage[2];            /* NV207C_STOP_IMAGE_*              0108-010f*/
 NvV32 StopLut[2];              /* NV207C_STOP_LUT_*                0110-0117*/
 NvV32 StopCursorImage[2];      /* NV207C_STOP_CURSOR_IMAGE_*       0118-011f*/
 NvV32 StopDac[2];              /* NV207C_STOP_DAC_*                0120-0127*/
 NvV32 Reserved00[0x016];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage[2];   /* NV01_CONTEXT_DMA                 0184-018b*/
 NvV32 SetContextDmaLut[2];     /* NV01_CONTEXT_DMA                 018c-0193*/
 NvV32 SetContextDmaCursor[2];  /* NV01_CONTEXT_DMA                 0194-019b*/
 NvV32 SetContextDmaSemaphore;  /* NV01_CONTEXT_DMA                 019c-019f*/
 NvV32 SetHotPlug;              /* control the hotplug interrupt    01a0-01a3*/
 NvV32 SetPanOffset;            /* byte offset for panning          0220-0223*/
 NvV32 Reserved01[0x052];
 NvU32 SetSemaphoreOffset;      /* set semaphore offset             02f0-02f3*/
 NvU32 SetSemaphoreRelease;     /* set semaphore release value      02f4-02f7*/
 NvV32 SetOffsetRange;          /* NV207C_SET_OFFSET_RANGE_*        02f8-02fb*/
 NvV32 GetOffset;               /* NV207C_GET_OFFSET_*              02fc-02ff*/
 struct {                       /* start of methods in array        0300-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* see text                            4-   7*/
 } SetImage[2];                 /* end of methods in array              -030f*/
 struct {                       /* start of methods in array        0310-    */
  NvU32 offset;                 /* byte offset of first byte           0-   3*/
  NvV32 format;                 /* notify                              4-   7*/
 } SetLut[2];                   /* end of methods in array              -031f*/
 struct {                       /* start of methods in array        0320-    */
  NvU32 offset;                 /* byte offset of top-left pixel       0-   3*/
  NvV32 format;                 /* notify_color_height_width           4-   7*/
 } SetCursorImage[2];           /* end of methods in array              -032f*/
 NvV32 SetCursorPoint;          /* y_x S16_S16                      0330-0333*/
 NvV32 Reserved03[0x003];
 struct {                       /* start of methods in array        0340-    */
  NvV32 imageSize;              /* height_width U16_U16 in pixels      0-   3*/
  NvV32 horizontalBlank;        /* width_start U16_U16 in pixels       4-   7*/
  NvV32 horizontalSync;         /* width_start U16_U16 in pixels       8-   b*/
  NvV32 verticalBlank;          /* width_start U16_U16 in pixels       c-   f*/
  NvV32 verticalSync;           /* width_start U16_U16 in pixels      10-  13*/
  NvV32 totalSize;              /* height_width U16_U16               14-  17*/
  NvV32 pixelClock;             /* in Hertz                           18-  1b*/
  NvV32 format;                 /* see text                           1c-  1f*/
 } SetDac[2];                   /* end of methods in array              -037f*/
 NvV32 Reserved04[0x720];
} Nv207cTypedef, Nv20VideoLutCursorDac;
#define NV207C_TYPEDEF                                    Nv20VideoLutCursorDac
/* dma method offsets, fields, and values */
#define NV207C_SET_OBJECT                                          (0x00000000)
#define NV207C_NO_OPERATION                                        (0x00000100)
#define NV207C_NOTIFY                                              (0x00000104)
#define NV207C_NOTIFY_WRITE_ONLY                                   (0x00000000)
#define NV207C_NOTIFY_WRITE_THEN_AWAKEN                            (0x00000001)
#define NV207C_STOP_IMAGE(b)                                       (0x00000108\
                                                                   +(b)*0x0004)
#define NV207C_STOP_IMAGE_AS_SOON_AS_POSSIBLE                      (0x00000000)
#define NV207C_STOP_IMAGE_BETWEEN_BUFFERS                          (0x00000001)
#define NV207C_STOP_LUT(b)                                         (0x00000110\
                                                                   +(b)*0x0004)
#define NV207C_STOP_LUT_AS_SOON_AS_POSSIBLE                        (0x00000000)
#define NV207C_STOP_LUT_BETWEEN_BUFFERS                            (0x00000001)
#define NV207C_STOP_CURSOR_IMAGE(b)                                (0x00000118\
                                                                   +(b)*0x0004)
#define NV207C_STOP_CURSOR_IMAGE_AS_SOON_AS_POSSIBLE               (0x00000000)
#define NV207C_STOP_CURSOR_IMAGE_BETWEEN_BUFFERS                   (0x00000001)
#define NV207C_STOP_DAC(b)                                         (0x00000120\
                                                                   +(b)*0x0004)
#define NV207C_STOP_DAC_AS_SOON_AS_POSSIBLE                        (0x00000000)
#define NV207C_STOP_DAC_BETWEEN_BUFFERS                            (0x00000001)
#define NV207C_SET_CONTEXT_DMA_NOTIFIES                            (0x00000180)
#define NV207C_SET_CONTEXT_DMA_IMAGE(b)                            (0x00000184\
                                                                   +(b)*0x0004)
#define NV207C_SET_CONTEXT_DMA_LUT(b)                              (0x0000018C\
                                                                   +(b)*0x0004)
#define NV207C_SET_CONTEXT_DMA_CURSOR(b)                           (0x00000194\
                                                                   +(b)*0x0004)
#define NV207C_SET_CONTEXT_DMA_SEMAPHORE                           (0x0000019c)

#define NV07C_SET_HOTPLUG                                          (0x000001a0)
#define NV07C_SET_HOTPLUG_NOHOTSWAP                                (0x00000000)
#define NV07C_SET_HOTPLUG_PLUG                                     (0x00000010)
#define NV07C_SET_HOTPLUG_UNPLUG                                   (0x00000100)

#define NV207C_SET_PAN_OFFSET                                      (0x00000220)
#define NV207C_SET_SEMAPHORE_OFFSET                                (0x000002f0)
#define NV207C_SET_SEMAPHORE_OFFSET_V                              31:0
#define NV207C_SET_SEMAPHORE_RELEASE                               (0x000002f4)
#define NV207C_SET_SEMAPHORE_RELEASE_V                             31:0
#define NV207C_SET_OFFSET_RANGE                                    (0x000002F8)
#define NV207C_SET_OFFSET_RANGE_START                              14:0
#define NV207C_SET_OFFSET_RANGE_STOP                               30:16
#define NV207C_SET_OFFSET_RANGE_POLARITY                           31:31
#define NV207C_SET_OFFSET_RANGE_POLARITY_IN_RANGE                  (0x00000000)
#define NV207C_SET_OFFSET_RANGE_POLARITY_OUT_RANGE                 (0x00000001)
#define NV207C_GET_OFFSET                                          (0x000002FC)
#define NV207C_GET_OFFSET_IMAGE_0                                  (0x00000000)
#define NV207C_GET_OFFSET_IMAGE_1                                  (0x00000001)
#define NV207C_SET_IMAGE(b)                                        (0x00000300\
                                                                   +(b)*0x0008)
#define NV207C_SET_IMAGE_OFFSET(b)                                 (0x00000300\
                                                                   +(b)*0x0008)
#define NV207C_SET_IMAGE_FORMAT(b)                                 (0x00000304\
                                                                   +(b)*0x0008)
#define NV207C_SET_IMAGE_FORMAT_PITCH                              15:0
#define NV207C_SET_IMAGE_FORMAT_WHEN                               23:20
#define NV207C_SET_IMAGE_FORMAT_WHEN_NOT_WITHIN_BUFFER             (0x00000000)
#define NV207C_SET_IMAGE_FORMAT_WHEN_IMMEDIATELY                   (0x00000001)

#define NV207C_SET_IMAGE_FORMAT_MULTIHEAD_SYNC                     24:24
#define NV207C_SET_IMAGE_FORMAT_MULTIHEAD_SYNC_DISABLED            (0x00000000)
#define NV207C_SET_IMAGE_FORMAT_MULTIHEAD_SYNC_ENABLED             (0x00000001)
#define NV207C_SET_IMAGE_FORMAT_FLAGS                              27:25
#define NV207C_SET_IMAGE_FORMAT_FLAGS_COMPLETE_ON_OBJECT_CLEANUP   (0x00000001)
#define NV207C_SET_IMAGE_FORMAT_NOTIFY                             31:31
#define NV207C_SET_IMAGE_FORMAT_NOTIFY_WRITE_ONLY                  (0x00000000)
#define NV207C_SET_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN           (0x00000001)
#define NV207C_SET_LUT(b)                                          (0x00000310\
                                                                   +(b)*0x0008)
#define NV207C_SET_LUT_OFFSET(b)                                   (0x00000310\
                                                                   +(b)*0x0008)
#define NV207C_SET_LUT_FORMAT(b)                                   (0x00000314\
                                                                   +(b)*0x0008)
#define NV207C_SET_LUT_FORMAT_NOTIFY_WRITE_ONLY                    (0x00000000)
#define NV207C_SET_LUT_FORMAT_NOTIFY_WRITE_THEN_AWAKEN             (0x00000001)
#define NV207C_SET_CURSOR_IMAGE(b)                                 (0x00000320\
                                                                   +(b)*0x0008)
#define NV207C_SET_CURSOR_IMAGE_OFFSET(b)                          (0x00000320\
                                                                   +(b)*0x0008)
#define NV207C_SET_CURSOR_IMAGE_FORMAT(b)                          (0x00000324\
                                                                   +(b)*0x0008)
#define NV207C_SET_CURSOR_IMAGE_FORMAT_WIDTH                       7:0
#define NV207C_SET_CURSOR_IMAGE_FORMAT_HEIGHT                      15:8
#define NV207C_SET_CURSOR_IMAGE_FORMAT_COLOR                       30:16
#define NV207C_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_ROP1R5G5B5         (0x00000000)
#define NV207C_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_A1R5G5B5           (0x00000001)
#define NV207C_SET_CURSOR_IMAGE_FORMAT_COLOR_LE_A8R8G8B8           (0x00000002)
#define NV207C_SET_CURSOR_IMAGE_FORMAT_COLOR_PM_LE_A8R8G8B8        (0x00000003)
#define NV207C_SET_CURSOR_IMAGE_FORMAT_COLOR_XOR_LE_A8R8G8B8       (0x00000004)
#define NV207C_SET_CURSOR_IMAGE_FORMAT_NOTIFY                      31:31
#define NV207C_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_ONLY           (0x00000000)
#define NV207C_SET_CURSOR_IMAGE_FORMAT_NOTIFY_WRITE_THEN_AWAKEN    (0x00000001)
#define NV207C_SET_CURSOR_POINT                                    (0x00000330)
#define NV207C_SET_CURSOR_POINT_X                                  15:0
#define NV207C_SET_CURSOR_POINT_Y                                  31:16
#define NV207C_SET_DAC(b)                                          (0x00000340\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_IMAGE_SIZE(b)                               (0x00000340\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_IMAGE_SIZE_WIDTH                            15:0
#define NV207C_SET_DAC_IMAGE_SIZE_HEIGHT                           31:16
#define NV207C_SET_DAC_HORIZONTAL_BLANK(b)                         (0x00000344\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_HORIZONTAL_BLANK_START                      15:0
#define NV207C_SET_DAC_HORIZONTAL_BLANK_WIDTH                      31:16
#define NV207C_SET_DAC_HORIZONTAL_SYNC(b)                          (0x00000348\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_HORIZONTAL_SYNC_START                       15:0
#define NV207C_SET_DAC_HORIZONTAL_SYNC_WIDTH                       31:16
#define NV207C_SET_DAC_VERTICAL_BLANK(b)                           (0x0000034c\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_VERTICAL_BLANK_START                        15:0
#define NV207C_SET_DAC_VERTICAL_BLANK_WIDTH                        31:16
#define NV207C_SET_DAC_VERTICAL_SYNC(b)                            (0x00000350\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_VERTICAL_SYNC_START                         15:0
#define NV207C_SET_DAC_VERTICAL_SYNC_WIDTH                         31:16
#define NV207C_SET_DAC_TOTAL_SIZE(b)                               (0x00000354\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_TOTAL_SIZE_WIDTH                            15:0
#define NV207C_SET_DAC_TOTAL_SIZE_HEIGHT                           31:16
#define NV207C_SET_DAC_PIXEL_CLOCK(b)                              (0x00000358\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_FORMAT(b)                                   (0x0000035c\
                                                                   +(b)*0x0020)
#define NV207C_SET_DAC_FORMAT_DOUBLE_SCAN                          0:0
#define NV207C_SET_DAC_FORMAT_DOUBLE_SCAN_DISABLED                 (0x00000000)
#define NV207C_SET_DAC_FORMAT_DOUBLE_SCAN_ENABLED                  (0x00000001)
#define NV207C_SET_DAC_FORMAT_INTERLACE                            1:1
#define NV207C_SET_DAC_FORMAT_INTERLACE_DISABLED                   (0x00000000)
#define NV207C_SET_DAC_FORMAT_INTERLACE_ENABLED                    (0x00000001)
#define NV207C_SET_DAC_FORMAT_HORIZONTAL_SYNC                       2:2
#define NV207C_SET_DAC_FORMAT_HORIZONTAL_SYNC_POSITIVE             (0x00000000)
#define NV207C_SET_DAC_FORMAT_HORIZONTAL_SYNC_NEGATIVE             (0x00000001)
#define NV207C_SET_DAC_FORMAT_VERTICAL_SYNC                         3:3
#define NV207C_SET_DAC_FORMAT_VERTICAL_SYNC_POSITIVE               (0x00000000)
#define NV207C_SET_DAC_FORMAT_VERTICAL_SYNC_NEGATIVE               (0x00000001)
#define NV207C_SET_DAC_FORMAT_COLOR                                 19:16
#define NV207C_SET_DAC_FORMAT_COLOR_LUT_LE_Y8                      (0x00000000)
#define NV207C_SET_DAC_FORMAT_COLOR_BYPASS_LE_R5G6B5               (0x00000001)
#define NV207C_SET_DAC_FORMAT_COLOR_LE_BYPASS1R5G5B5               (0x00000002)
#define NV207C_SET_DAC_FORMAT_COLOR_LE_BYPASS1X7R8G8B8             (0x00000003)
#define NV207C_SET_DAC_FORMAT_DISPLAY_TYPE                          21:20
#define NV207C_SET_DAC_FORMAT_DISPLAY_TYPE_CRT                     (0x00000000)
#define NV207C_SET_DAC_FORMAT_DISPLAY_TYPE_TV                      (0x00000001)
#define NV207C_SET_DAC_FORMAT_DISPLAY_TYPE_DFP                     (0x00000003)
#define NV207C_SET_DAC_FORMAT_TV_STANDARD                           25:22
#define NV207C_SET_DAC_FORMAT_TV_STANDARD_NTSC_M                   (0x00000000)
#define NV207C_SET_DAC_FORMAT_TV_STANDARD_NTSC_J                   (0x00000001)
#define NV207C_SET_DAC_FORMAT_TV_STANDARD_PAL_M                    (0x00000002)
#define NV207C_SET_DAC_FORMAT_TV_STANDARD_PAL_A                    (0x00000003)
#define NV207C_SET_DAC_FORMAT_TV_STANDARD_PAL_N                    (0x00000004)
#define NV207C_SET_DAC_FORMAT_TV_STANDARD_PAL_NC                   (0x00000005)
#define NV207C_SET_DAC_FORMAT_HEAD                                 27:26
#define NV207C_SET_DAC_FORMAT_HEAD_0                               (0x00000000)
#define NV207C_SET_DAC_FORMAT_HEAD_1                               (0x00000001)
#define NV207C_SET_DAC_FORMAT_PRIMARY_DEVICE                       28:28
#define NV207C_SET_DAC_FORMAT_PRIMARY_DEVICE_FALSE                 (0x00000000)
#define NV207C_SET_DAC_FORMAT_PRIMARY_DEVICE_TRUE                  (0x00000001)
#define NV207C_SET_DAC_FORMAT_NOTIFY                               31:31
#define NV207C_SET_DAC_FORMAT_NOTIFY_WRITE_ONLY                    (0x00000000)
#define NV207C_SET_DAC_FORMAT_NOTIFY_WRITE_THEN_AWAKEN             (0x00000001)


typedef NvV32 Nv07dTypedef;

typedef NvV32 Nv07eTypedef;

typedef NvV32 Nv07fTypedef;


/* class NV01_DEVICE_0 */
#define  NV01_DEVICE_0                                             (0x00000080)
/* NvNotification[] fields and values */
#define NV080_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv080Typedef, Nv01Device0;
#define  NV080_TYPEDEF                                             Nv01Device0


/* class NV01_DEVICE_1 */
#define  NV01_DEVICE_1                                             (0x00000081)
/* NvNotification[] fields and values */
#define NV081_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv081Typedef, Nv01Device1;
#define  NV081_TYPEDEF                                             Nv01Device1


/* class NV01_DEVICE_2 */
#define  NV01_DEVICE_2                                             (0x00000082)
/* NvNotification[] fields and values */
#define NV082_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv082Typedef, Nv01Device2;
#define  NV082_TYPEDEF                                             Nv01Device2


/* class NV01_DEVICE_3 */
#define  NV01_DEVICE_3                                             (0x00000083)
/* NvNotification[] fields and values */
#define NV083_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv083Typedef, Nv01Device3;
#define  NV083_TYPEDEF                                             Nv01Device3


/* class NV01_DEVICE_4 */
#define  NV01_DEVICE_4                                             (0x00000084)
/* NvNotification[] fields and values */
#define NV084_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv084Typedef, Nv01Device4;
#define  NV084_TYPEDEF                                             Nv01Device4


/* class NV01_DEVICE_5 */
#define  NV01_DEVICE_5                                             (0x00000085)
/* NvNotification[] fields and values */
#define NV085_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv085Typedef, Nv01Device5;
#define  NV085_TYPEDEF                                             Nv01Device5


/* class NV01_DEVICE_6 */
#define  NV01_DEVICE_6                                             (0x00000086)
/* NvNotification[] fields and values */
#define NV086_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv086Typedef, Nv01Device6;
#define  NV086_TYPEDEF                                             Nv01Device6


/* class NV01_DEVICE_7 */
#define  NV01_DEVICE_7                                             (0x00000087)
/* NvNotification[] fields and values */
#define NV087_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv087Typedef, Nv01Device7;
#define  NV087_TYPEDEF                                             Nv01Device7


/* class NV10_DVD_SUBPICTURE */
#define  NV10_DVD_SUBPICTURE                                       (0x00000088)
/* NvNotification[] elements */
#define NV088_NOTIFIERS_SET_NOTIFY                                 (0)
/* NvNotification[] fields and values */
#define NV088_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV088_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV088_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV088_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV088_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV088_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV088_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaOverlay;    /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaImageIn;    /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 SetContextDmaImageOut;   /* NV01_CONTEXT_DMA                 018c-018f*/
 NvV32 Reserved01[0x05c];
 NvV32 ImageOutPoint;           /* y_x S16_S16                      0300-0303*/
 NvV32 ImageOutSize;            /* height_width U16_U16             0304-0307*/
 NvU32 ImageOutFormat;          /* color_pitch V16_U16              0308-030b*/
 NvU32 ImageOutOffset;          /* byte offset of top-left pixel    030c-030f*/
 NvV32 ImageInDsDx;             /* S12d20 ds/dx                     0310-0313*/
 NvV32 ImageInDtDy;             /* S12d20 dt/dy                     0314-0317*/
 NvV32 ImageInSize;             /* height_width U16_U16 in texels   0318-031b*/
 NvV32 ImageInFormat;           /* color_pitch V16_U16              031c-031f*/
 NvU32 ImageInOffset;           /* byte offset of top-left texel    0320-0323*/
 NvV32 ImageInPoint;            /* t_s U12d4_U12d4 in texels        0324-0317*/
 NvV32 OverlayDsDx;             /* S12d20 ds/dx                     0328-032b*/
 NvV32 OverlayDtDy;             /* S12d20 dt/dy                     032c-032f*/
 NvV32 OverlaySize;             /* height_width U16_U16 in texels   0330-0333*/
 NvV32 OverlayFormat;           /* color_pitch V16_U16              0334-0337*/
 NvU32 OverlayOffset;           /* byte offset of top-left texel    0338-033b*/
 NvV32 OverlayPoint;            /* t_s U12d4_U12d4 in texels        033c-033f*/
 NvV32 Reserved02[0x730];
} Nv088Typedef, Nv10DvdSubpicture;
#define NV088_TYPEDEF                                         Nv10DvdSubpicture
/* dma method offsets, fields, and values */
#define NV088_SET_OBJECT                                           (0x00000000)
#define NV088_NO_OPERATION                                         (0x00000100)
#define NV088_NOTIFY                                               (0x00000104)
#define NV088_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV088_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV088_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV088_SET_CONTEXT_DMA_OVERLAY                              (0x00000184)
#define NV088_SET_CONTEXT_DMA_IMAGE_IN                             (0x00000188)
#define NV088_SET_CONTEXT_DMA_IMAGE_OUT                            (0x0000018C)
#define NV088_IMAGE_OUT_POINT                                      (0x00000300)
#define NV088_IMAGE_OUT_POINT_X                                    15:0
#define NV088_IMAGE_OUT_POINT_Y                                    31:16
#define NV088_IMAGE_OUT_SIZE                                       (0x00000304)
#define NV088_IMAGE_OUT_SIZE_WIDTH                                 15:0
#define NV088_IMAGE_OUT_SIZE_HEIGHT                                31:16
#define NV088_IMAGE_OUT_FORMAT                                     (0x00000308)
#define NV088_IMAGE_OUT_FORMAT_PITCH                               15:0
#define NV088_IMAGE_OUT_FORMAT_COLOR                               31:16
#define NV088_IMAGE_OUT_FORMAT_COLOR_LE_CR8YB8CB8YA8               (0x00000001)
#define NV088_IMAGE_OUT_FORMAT_COLOR_LE_YB8CR8YA8CB8               (0x00000002)
#define NV088_IMAGE_OUT_OFFSET                                     (0x0000030C)
#define NV088_IMAGE_IN_DS_DX                                       (0x00000310)
#define NV088_IMAGE_IN_DT_DY                                       (0x00000314)
#define NV088_IMAGE_IN_SIZE                                        (0x00000318)
#define NV088_IMAGE_IN_SIZE_WIDTH                                  15:0
#define NV088_IMAGE_IN_SIZE_HEIGHT                                 31:16
#define NV088_IMAGE_IN_FORMAT                                      (0x0000031C)
#define NV088_IMAGE_IN_FORMAT_PITCH                                15:0
#define NV088_IMAGE_IN_FORMAT_COLOR                                31:16
#define NV088_IMAGE_IN_FORMAT_COLOR_LE_CR8YB8CB8YA8                (0x00000001)
#define NV088_IMAGE_IN_FORMAT_COLOR_LE_YB8CR8YA8CB8                (0x00000002)
#define NV088_IMAGE_IN_OFFSET                                      (0x00000320)
#define NV088_IMAGE_IN_POINT                                       (0x00000324)
#define NV088_IMAGE_IN_POINT_S                                     15:0
#define NV088_IMAGE_IN_POINT_T                                     31:16
#define NV088_OVERLAY_DS_DX                                        (0x00000328)
#define NV088_OVERLAY_DT_DY                                        (0x0000032C)
#define NV088_OVERLAY_SIZE                                         (0x00000330)
#define NV088_OVERLAY_SIZE_WIDTH                                   15:0
#define NV088_OVERLAY_SIZE_HEIGHT                                  31:16
#define NV088_OVERLAY_FORMAT                                       (0x00000334)
#define NV088_OVERLAY_FORMAT_PITCH                                 15:0
#define NV088_OVERLAY_FORMAT_COLOR                                 31:16
#define NV088_OVERLAY_FORMAT_COLOR_LE_A8CR8CB8Y8                   (0x00000001)
#define NV088_OVERLAY_FORMAT_COLOR_LE_A4CR6YB6A4CB6YA6             (0x00000002)
#define NV088_OVERLAY_FORMAT_COLOR_LE_TRANSPARENT                  (0x00000003)
#define NV088_OVERLAY_OFFSET                                       (0x00000338)
#define NV088_OVERLAY_POINT                                        (0x0000033C)
#define NV088_OVERLAY_POINT_S                                      15:0
#define NV088_OVERLAY_POINT_T                                      31:16


/* class NV10_SCALED_IMAGE_FROM_MEMORY */
#define  NV10_SCALED_IMAGE_FROM_MEMORY                             (0x00000089)
/* NvNotification[] elements */
#define NV089_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV089_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV089_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV089_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV089_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV089_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV089_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV089_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D,SWIZZLE 0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetColorConversion;      /* NV089_SET_COLOR_CONVERSION_*     02fc-02ff*/
 NvV32 SetColorFormat;          /* NV089_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 SetOperation;            /* NV089_SET_OPERATION_*            0304-0307*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0308-030b*/
 NvV32 ClipSize;                /* height_width U16_U16             030c-030f*/
 NvV32 ImageOutPoint;           /* y_x S16_S16                      0310-0313*/
 NvV32 ImageOutSize;            /* height_width U16_U16             0314-0317*/
 NvV32 DsDx;                    /* S12d20 ds/dx                     0318-031b*/
 NvV32 DtDy;                    /* S12d20 dt/dy                     031c-031f*/
 NvV32 Reserved02[0x038];
 NvV32 ImageInSize;             /* height_width U16_U16             0400-0403*/
 NvV32 ImageInFormat;           /* interpolator_origin_pitch        0404-0407*/
 NvU32 ImageInOffset;           /* bytes                            0408-040b*/
 NvV32 ImageInPoint;            /* v_u U12d4_U12d4                  040c-040f*/
 NvV32 Reserved03[0x6fc];
} Nv089Typedef, Nv10ScaledImageFromMemory;
#define NV089_TYPEDEF                                 Nv10ScaledImageFromMemory
/* dma method offsets, fields, and values */
#define NV089_SET_OBJECT                                           (0x00000000)
#define NV089_NO_OPERATION                                         (0x00000100)
#define NV089_NOTIFY                                               (0x00000104)
#define NV089_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV089_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV089_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV089_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV089_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV089_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV089_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV089_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV089_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV089_SET_COLOR_CONVERSION                                 (0x000002fc)
#define NV089_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV089_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV089_SET_COLOR_CONVERSION_SUBTRACT_TRUNCATE               (0x00000002)
#define NV089_SET_COLOR_FORMAT                                     (0x00000300)
#define NV089_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000001)
#define NV089_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000002)
#define NV089_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV089_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000004)
#define NV089_SET_COLOR_FORMAT_LE_CR8YB8CB8YA8                     (0x00000005)
#define NV089_SET_COLOR_FORMAT_LE_YB8CR8YA8CB8                     (0x00000006)
#define NV089_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000007)
#define NV089_SET_COLOR_FORMAT_LE_Y8                               (0x00000008)
#define NV089_SET_COLOR_FORMAT_LE_AY8                              (0x00000009)
#define NV089_SET_OPERATION                                        (0x00000304)
#define NV089_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV089_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV089_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV089_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV089_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV089_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV089_CLIP_POINT                                           (0x00000308)
#define NV089_CLIP_POINT_X                                         15:0
#define NV089_CLIP_POINT_Y                                         31:16
#define NV089_CLIP_SIZE                                            (0x0000030C)
#define NV089_CLIP_SIZE_WIDTH                                      15:0
#define NV089_CLIP_SIZE_HEIGHT                                     31:16
#define NV089_IMAGE_OUT_POINT                                      (0x00000310)
#define NV089_IMAGE_OUT_POINT_X                                    15:0
#define NV089_IMAGE_OUT_POINT_Y                                    31:16
#define NV089_IMAGE_OUT_SIZE                                       (0x00000314)
#define NV089_IMAGE_OUT_SIZE_WIDTH                                 15:0
#define NV089_IMAGE_OUT_SIZE_HEIGHT                                31:16
#define NV089_DS_DX                                                (0x00000318)
#define NV089_DT_DY                                                (0x0000031C)
#define NV089_IMAGE_IN_SIZE                                        (0x00000400)
#define NV089_IMAGE_IN_SIZE_WIDTH                                  15:0
#define NV089_IMAGE_IN_SIZE_HEIGHT                                 31:16
#define NV089_IMAGE_IN_FORMAT                                      (0x00000404)
#define NV089_IMAGE_IN_FORMAT_PITCH                                15:0
#define NV089_IMAGE_IN_FORMAT_ORIGIN                               23:16
#define NV089_IMAGE_IN_FORMAT_ORIGIN_CENTER                        (0x00000001)
#define NV089_IMAGE_IN_FORMAT_ORIGIN_CORNER                        (0x00000002)
#define NV089_IMAGE_IN_FORMAT_INTERPOLATOR                         31:24
#define NV089_IMAGE_IN_FORMAT_INTERPOLATOR_ZOH                     (0x00000000)
#define NV089_IMAGE_IN_FORMAT_INTERPOLATOR_FOH                     (0x00000001)
#define NV089_IMAGE_IN_OFFSET                                      (0x00000408)
#define NV089_IMAGE_IN                                             (0x0000040C)
#define NV089_IMAGE_IN_POINT_U                                     15:0
#define NV089_IMAGE_IN_POINT_V                                     31:16


/* class NV11_SCALED_IMAGE_FROM_MEMORY */
#define  NV11_SCALED_IMAGE_FROM_MEMORY                             (0x00001189)
/* NvNotification[] elements */
#define NV1189_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV1189_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV1189_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV1189_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV1189_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV1189_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV1189_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV1189_NOTIFY_*                  0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             0188-018b*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 018c-018f*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0190-0193*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D,SWIZZLE 0198-019b*/
 NvV32 Reserved01[0x058];
 NvV32 SetColorConversion;      /* NV1189_SET_COLOR_CONVERSION_*    02fc-02ff*/
 NvV32 SetColorFormat;          /* NV1189_SET_COLOR_FORMAT_*        0300-0303*/
 NvV32 SetOperation;            /* NV1189_SET_OPERATION_*           0304-0307*/
 NvV32 ClipPoint;               /* y_x S16_S16                      0308-030b*/
 NvV32 ClipSize;                /* height_width U16_U16             030c-030f*/
 NvV32 ImageOutPoint;           /* y_x S16_S16                      0310-0313*/
 NvV32 ImageOutSize;            /* height_width U16_U16             0314-0317*/
 NvV32 DsDx;                    /* S12d20 ds/dx                     0318-031b*/
 NvV32 DtDy;                    /* S12d20 dt/dy                     031c-031f*/
 NvV32 Reserved02[0x038];
 NvV32 ImageInSize;             /* height_width U16_U16             0400-0403*/
 NvV32 ImageInFormat;           /* interpolator_origin_pitch        0404-0407*/
 NvU32 ImageInOffset;           /* bytes                            0408-040b*/
 NvV32 ImageInPoint;            /* v_u U12d4_U12d4                  040c-040f*/
 NvV32 Reserved03[0x6fc];
} Nv1189Typedef, Nv11ScaledImageFromMemory;
#define NV1189_TYPEDEF                                 Nv11ScaledImageFromMemory
/* dma method offsets, fields, and values */
#define NV1189_SET_OBJECT                                           (0x00000000)
#define NV1189_NO_OPERATION                                         (0x00000100)
#define NV1189_NOTIFY                                               (0x00000104)
#define NV1189_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV1189_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV1189_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV1189_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV1189_SET_CONTEXT_PATTERN                                  (0x00000188)
#define NV1189_SET_CONTEXT_ROP                                      (0x0000018C)
#define NV1189_SET_CONTEXT_BETA1                                    (0x00000190)
#define NV1189_SET_CONTEXT_BETA4                                    (0x00000194)
#define NV1189_SET_CONTEXT_SURFACE                                  (0x00000198)
#define NV1189_SET_COLOR_CONVERSION                                 (0x000002fc)
#define NV1189_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV1189_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV1189_SET_COLOR_CONVERSION_SUBTRACT_TRUNCATE               (0x00000002)
#define NV1189_SET_COLOR_FORMAT                                     (0x00000300)
#define NV1189_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000001)
#define NV1189_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000002)
#define NV1189_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000003)
#define NV1189_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000004)
#define NV1189_SET_COLOR_FORMAT_LE_CR8YB8CB8YA8                     (0x00000005)
#define NV1189_SET_COLOR_FORMAT_LE_YB8CR8YA8CB8                     (0x00000006)
#define NV1189_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000007)
#define NV1189_SET_COLOR_FORMAT_LE_Y8                               (0x00000008)
#define NV1189_SET_COLOR_FORMAT_LE_AY8                              (0x00000009)
#define NV1189_SET_OPERATION                                        (0x00000304)
#define NV1189_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV1189_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV1189_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV1189_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV1189_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV1189_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV1189_CLIP_POINT                                           (0x00000308)
#define NV1189_CLIP_POINT_X                                         15:0
#define NV1189_CLIP_POINT_Y                                         31:16
#define NV1189_CLIP_SIZE                                            (0x0000030C)
#define NV1189_CLIP_SIZE_WIDTH                                      15:0
#define NV1189_CLIP_SIZE_HEIGHT                                     31:16
#define NV1189_IMAGE_OUT_POINT                                      (0x00000310)
#define NV1189_IMAGE_OUT_POINT_X                                    15:0
#define NV1189_IMAGE_OUT_POINT_Y                                    31:16
#define NV1189_IMAGE_OUT_SIZE                                       (0x00000314)
#define NV1189_IMAGE_OUT_SIZE_WIDTH                                 15:0
#define NV1189_IMAGE_OUT_SIZE_HEIGHT                                31:16
#define NV1189_DS_DX                                                (0x00000318)
#define NV1189_DT_DY                                                (0x0000031C)
#define NV1189_IMAGE_IN_SIZE                                        (0x00000400)
#define NV1189_IMAGE_IN_SIZE_WIDTH                                  15:0
#define NV1189_IMAGE_IN_SIZE_HEIGHT                                 31:16
#define NV1189_IMAGE_IN_FORMAT                                      (0x00000404)
#define NV1189_IMAGE_IN_FORMAT_PITCH                                15:0
#define NV1189_IMAGE_IN_FORMAT_ORIGIN                               23:16
#define NV1189_IMAGE_IN_FORMAT_ORIGIN_CENTER                        (0x00000001)
#define NV1189_IMAGE_IN_FORMAT_ORIGIN_CORNER                        (0x00000002)
#define NV1189_IMAGE_IN_FORMAT_INTERPOLATOR                         31:24
#define NV1189_IMAGE_IN_FORMAT_INTERPOLATOR_ZOH                     (0x00000000)
#define NV1189_IMAGE_IN_FORMAT_INTERPOLATOR_FOH                     (0x00000001)
#define NV1189_IMAGE_IN_OFFSET                                      (0x00000408)
#define NV1189_IMAGE_IN                                             (0x0000040C)
#define NV1189_IMAGE_IN_POINT_U                                     15:0
#define NV1189_IMAGE_IN_POINT_V                                     31:16


/* class NV10_IMAGE_FROM_CPU */
#define  NV10_IMAGE_FROM_CPU                                       (0x0000008A)
#define NV08A_NOTIFIERS_NOTIFY                                     (0)
#define NV08A_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV08A_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV08A_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV08A_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV08A_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV08A_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV08A_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextSurface;       /* NV04_CONTEXT_SURFACES_2D         019c-019f*/
 NvV32 Reserved01[0x056];
 NvV32 SetColorConversion;      /* NV08A_SET_COLOR_CONVERSION_*     02f8-02fb*/
 NvV32 SetOperation;            /* NV08A_SET_OPERATION_*            02fc-02ff*/
 NvV32 SetColorFormat;          /* NV08A_SET_COLOR_FORMAT_*         0300-0303*/
 NvV32 Point;                   /* y_x S16_S16 in pixels            0304-0307*/
 NvV32 SizeOut;                 /* height_width U16_U16, pixels     0308-030b*/
 NvV32 SizeIn;                  /* height_width U16_U16, pixels     030c-030f*/
 NvV32 Reserved02[0x03c];
 struct {                       /* start aliased methods in array   0400-    */
  NvV32 a;                      /* source colors (packed texels)       0-   3*/
  NvV32 b;                      /* source colors (packed texels)       4-   7*/
 } Color[896];                  /* end of aliased methods in array      -1fff*/
} Nv08ATypedef, NV10ImageFromCpu;
#define NV08A_TYPEDEF                                          NV10ImageFromCpu
/* dma method offsets, fields, and values */
#define NV08A_SET_OBJECT                                           (0x00000000)
#define NV08A_NO_OPERATION                                         (0x00000100)
#define NV08A_NOTIFY                                               (0x00000104)
#define NV08A_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV08A_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV08A_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV08A_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV08A_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV08A_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV08A_SET_CONTEXT_ROP                                      (0x00000190)
#define NV08A_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV08A_SET_CONTEXT_BETA4                                    (0x00000198)
#define NV08A_SET_CONTEXT_SURFACE                                  (0x0000019C)
#define NV08A_SET_COLOR_CONVERSION                                 (0x000002F8)
#define NV08A_SET_COLOR_CONVERSION_DITHER                          (0x00000000)
#define NV08A_SET_COLOR_CONVERSION_TRUNCATE                        (0x00000001)
#define NV08A_SET_COLOR_CONVERSION_SUBTRACT_TRUNCATE               (0x00000002)
#define NV08A_SET_OPERATION                                        (0x000002FC)
#define NV08A_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV08A_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV08A_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV08A_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV08A_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV08A_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV08A_SET_COLOR_FORMAT                                     (0x00000300)
#define NV08A_SET_COLOR_FORMAT_LE_R5G6B5                           (0x00000001)
#define NV08A_SET_COLOR_FORMAT_LE_A1R5G5B5                         (0x00000002)
#define NV08A_SET_COLOR_FORMAT_LE_X1R5G5B5                         (0x00000003)
#define NV08A_SET_COLOR_FORMAT_LE_A8R8G8B8                         (0x00000004)
#define NV08A_SET_COLOR_FORMAT_LE_X8R8G8B8                         (0x00000005)
#define NV08A_POINT                                                (0x00000304)
#define NV08A_POINT_X                                              15:0
#define NV08A_POINT_Y                                              31:16
#define NV08A_SIZE_OUT                                             (0x00000308)
#define NV08A_SIZE_OUT_WIDTH                                       15:0
#define NV08A_SIZE_OUT_HEIGHT                                      31:16
#define NV08A_SIZE_IN                                              (0x0000030C)
#define NV08A_SIZE_IN_WIDTH                                        15:0
#define NV08A_SIZE_IN_HEIGHT                                       31:16
#define NV08A_COLOR(a)                                             (0x00000400\
                                                                   +(a)*0x0004)


/* class NV10_CONTEXT_SURFACES_3D */
#define  NV10_CONTEXT_SURFACES_3D                                  (0x00000093)
/* NvNotification[] elements */
#define NV093_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV093_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV093_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV093_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV093_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV093_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV093_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV093_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaColor;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaZeta;       /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 Reserved01[0x05b];
 NvV32 SetClipHorizontal;       /* width_x U16_U16                  02f8-02fb*/
 NvV32 SetClipVertical;         /* height_y U16_U16                 02fc-02ff*/
 NvV32 SetFormat;               /* height_width_type_color all V8   0300-0303*/
 NvV32 SetClipSize;             /* height_width U16_U16             0304-0307*/
 NvV32 SetPitch;                /* zeta_color U16_U16               0308-030b*/
 NvU32 SetOffsetColor;          /* byte offset of top-left pixel    030c-030f*/
 NvU32 SetOffsetZeta;           /* byte offset of top-left pixel    0310-0313*/
 NvV32 Reserved02[0x73b];
} Nv093Typedef, Nv10ContextSurfaces3d;
#define NV093_TYPEDEF                                     Nv10ContextSurfaces3d
/* dma method offsets, fields, and values */
#define NV093_SET_OBJECT                                           (0x00000000)
#define NV093_NO_OPERATION                                         (0x00000100)
#define NV093_NOTIFY                                               (0x00000104)
#define NV093_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV093_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV093_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV093_SET_CONTEXT_DMA_COLOR                                (0x00000184)
#define NV093_SET_CONTEXT_DMA_ZETA                                 (0x00000188)
#define NV093_SET_CLIP_HORIZONTAL                                  (0x000002F8)
#define NV093_SET_CLIP_HORIZONTAL_X                                15:0
#define NV093_SET_CLIP_HORIZONTAL_WIDTH                            31:16
#define NV093_SET_CLIP_VERTICAL                                    (0x000002FC)
#define NV093_SET_CLIP_VERTICAL_Y                                  15:0
#define NV093_SET_CLIP_VERTICAL_HEIGHT                             31:16
#define NV093_SET_FORMAT                                           (0x00000300)
#define NV093_SET_FORMAT_COLOR                                     7:0
#define NV093_SET_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5                (0x00000001)
#define NV093_SET_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5                (0x00000002)
#define NV093_SET_FORMAT_COLOR_LE_R5G6B5                           (0x00000003)
#define NV093_SET_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8                (0x00000004)
#define NV093_SET_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8                (0x00000005)
#define NV093_SET_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8            (0x00000006)
#define NV093_SET_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8            (0x00000007)
#define NV093_SET_FORMAT_COLOR_LE_A8R8G8B8                         (0x00000008)
#define NV093_SET_FORMAT_TYPE                                      15:8
#define NV093_SET_FORMAT_TYPE_PITCH                                (0x00000001)
#define NV093_SET_FORMAT_TYPE_SWIZZLE                              (0x00000002)
#define NV093_SET_FORMAT_WIDTH                                     23:16
#define NV093_SET_FORMAT_HEIGHT                                    31:24
#define NV093_SET_CLIP_SIZE                                        (0x00000304)
#define NV093_SET_CLIP_SIZE_WIDTH                                  15:0
#define NV093_SET_CLIP_SIZE_HEIGHT                                 31:16
#define NV093_SET_PITCH                                            (0x00000308)
#define NV093_SET_PITCH_COLOR                                      15:0
#define NV093_SET_PITCH_ZETA                                       31:16
#define NV093_SET_OFFSET_COLOR                                     (0x0000030C)
#define NV093_SET_OFFSET_ZETA                                      (0x00000310)



/* class NV10_DX5_TEXTURED_TRIANGLE */
#define  NV10_DX5_TEXTURED_TRIANGLE                                (0x00000094)
/* NvNotification[] elements */
#define NV094_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV094_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV094_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV094_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV094_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV094_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV094_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV094_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaA;          /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaB;          /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 SetContextSurfaces;      /* NV04_CONTEXT_SURFACES_3D         018c-018f*/
 NvV32 Reserved01[0x05c];
 NvV32 ColorKeyValue;           /* see text                         0300-0303*/
 NvU32 Offset;                  /* texture offset in bytes          0304-0307*/
 NvV32 Format;                  /* see text                         0308-030b*/
 NvV32 Filter;                  /* see text                         030c-030f*/
 NvV32 Blend;                   /* see text                         0310-0313*/
 NvV32 Control;                 /* see text                         0314-0317*/
 NvV32 FogColor;                /* X8R8G8B8 fog color               0318-031b*/
 NvV32 Reserved02[0x039];
 struct {                       /* start of methods in array        0400-    */
  NvF32 sx;                     /* screen x coordinate                00-  03*/
  NvF32 sy;                     /* screen y coordinate                04-  07*/
  NvF32 sz;                     /* screen z coordinate                08-  0b*/
  NvF32 rhw;                    /* reciprocal homogeneous W (1/W)     0c-  0f*/
  NvV32 color;                  /* A8R8G8B8                           10-  13*/
  NvV32 specular;               /* F8R8G8B8                           14-  17*/
  NvF32 tu;                     /* texture u coordinate               18-  1b*/
  NvF32 tv;                     /* texture v coordinate               1c-  1f*/
 } Tlvertex[16];                /* end of methods in array              -05ff*/
 NvV32 DrawPrimitive[64];       /* see text                         0600-06ff*/
 NvV32 Reserved03[0x640];
} Nv094Typedef, Nv10Dx5TexturedTriangle;
#define NV094_TYPEDEF                                   Nv10Dx5TexturedTriangle
/* dma method offsets, fields, and values */
#define NV094_SET_OBJECT                                           (0x00000000)
#define NV094_NO_OPERATION                                         (0x00000100)
#define NV094_NOTIFY                                               (0x00000104)
#define NV094_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV094_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV094_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV094_SET_CONTEXT_DMA_A                                    (0x00000184)
#define NV094_SET_CONTEXT_DMA_B                                    (0x00000188)
#define NV094_SET_CONTEXT_SURFACES                                 (0x0000018C)
#define NV094_COLOR_KEY_VALUE                                      (0x00000300)
#define NV094_OFFSET                                               (0x00000304)
#define NV094_FORMAT                                               (0x00000308)
#define NV094_FORMAT_CONTEXT_DMA                                   1:0
#define NV094_FORMAT_CONTEXT_DMA_A                                 (0x00000001)
#define NV094_FORMAT_CONTEXT_DMA_B                                 (0x00000002)
#define NV094_FORMAT_COLOR_KEY_MATCH                               3:2
#define NV094_FORMAT_COLOR_KEY_MATCH_SRCCOPY                       (0x00000000)
#define NV094_FORMAT_COLOR_KEY_MATCH_ZERO_ALPHA                    (0x00000001)
#define NV094_FORMAT_ORIGIN_ZOH                                    5:4
#define NV094_FORMAT_ORIGIN_ZOH_CENTER                             (0x00000001)
#define NV094_FORMAT_ORIGIN_ZOH_CORNER                             (0x00000002)
#define NV094_FORMAT_ORIGIN_FOH                                    7:6
#define NV094_FORMAT_ORIGIN_FOH_CENTER                             (0x00000001)
#define NV094_FORMAT_ORIGIN_FOH_CORNER                             (0x00000002)
#define NV094_FORMAT_COLOR                                         11:8
#define NV094_FORMAT_COLOR_LE_Y8                                   (0x00000001)
#define NV094_FORMAT_COLOR_LE_A1R5G5B5                             (0x00000002)
#define NV094_FORMAT_COLOR_LE_X1R5G5B5                             (0x00000003)
#define NV094_FORMAT_COLOR_LE_A4R4G4B4                             (0x00000004)
#define NV094_FORMAT_COLOR_LE_R5G6B5                               (0x00000005)
#define NV094_FORMAT_COLOR_LE_A8R8G8B8                             (0x00000006)
#define NV094_FORMAT_COLOR_LE_X8R8G8B8                             (0x00000007)
#define NV094_FORMAT_MIPMAP_LEVELS                                 15:12
#define NV094_FORMAT_BASE_SIZE_U                                   19:16
#define NV094_FORMAT_BASE_SIZE_U_1                                 (0x00000000)
#define NV094_FORMAT_BASE_SIZE_U_2                                 (0x00000001)
#define NV094_FORMAT_BASE_SIZE_U_4                                 (0x00000002)
#define NV094_FORMAT_BASE_SIZE_U_8                                 (0x00000003)
#define NV094_FORMAT_BASE_SIZE_U_16                                (0x00000004)
#define NV094_FORMAT_BASE_SIZE_U_32                                (0x00000005)
#define NV094_FORMAT_BASE_SIZE_U_64                                (0x00000006)
#define NV094_FORMAT_BASE_SIZE_U_128                               (0x00000007)
#define NV094_FORMAT_BASE_SIZE_U_256                               (0x00000008)
#define NV094_FORMAT_BASE_SIZE_U_512                               (0x00000009)
#define NV094_FORMAT_BASE_SIZE_U_1024                              (0x0000000A)
#define NV094_FORMAT_BASE_SIZE_U_2048                              (0x0000000B)
#define NV094_FORMAT_BASE_SIZE_V                                   23:20
#define NV094_FORMAT_BASE_SIZE_V_1                                 (0x00000000)
#define NV094_FORMAT_BASE_SIZE_V_2                                 (0x00000001)
#define NV094_FORMAT_BASE_SIZE_V_4                                 (0x00000002)
#define NV094_FORMAT_BASE_SIZE_V_8                                 (0x00000003)
#define NV094_FORMAT_BASE_SIZE_V_16                                (0x00000004)
#define NV094_FORMAT_BASE_SIZE_V_32                                (0x00000005)
#define NV094_FORMAT_BASE_SIZE_V_64                                (0x00000006)
#define NV094_FORMAT_BASE_SIZE_V_128                               (0x00000007)
#define NV094_FORMAT_BASE_SIZE_V_256                               (0x00000008)
#define NV094_FORMAT_BASE_SIZE_V_512                               (0x00000009)
#define NV094_FORMAT_BASE_SIZE_V_1024                              (0x0000000A)
#define NV094_FORMAT_BASE_SIZE_V_2048                              (0x0000000B)
#define NV094_FORMAT_TEXTUREADDRESSU                               26:24
#define NV094_FORMAT_TEXTUREADDRESSU_WRAP                          (0x00000001)
#define NV094_FORMAT_TEXTUREADDRESSU_MIRROR                        (0x00000002)
#define NV094_FORMAT_TEXTUREADDRESSU_CLAMP                         (0x00000003)
#define NV094_FORMAT_TEXTUREADDRESSU_BORDER                        (0x00000004)
#define NV094_FORMAT_WRAPU                                         27:27
#define NV094_FORMAT_WRAPU_FALSE                                   (0x00000000)
#define NV094_FORMAT_WRAPU_TRUE                                    (0x00000001)
#define NV094_FORMAT_TEXTUREADDRESSV                               30:28
#define NV094_FORMAT_TEXTUREADDRESSV_WRAP                          (0x00000001)
#define NV094_FORMAT_TEXTUREADDRESSV_MIRROR                        (0x00000002)
#define NV094_FORMAT_TEXTUREADDRESSV_CLAMP                         (0x00000003)
#define NV094_FORMAT_TEXTUREADDRESSV_BORDER                        (0x00000004)
#define NV094_FORMAT_WRAPV                                         31:31
#define NV094_FORMAT_WRAPV_FALSE                                   (0x00000000)
#define NV094_FORMAT_WRAPV_TRUE                                    (0x00000001)
#define NV094_FILTER                                               (0x0000030C)
#define NV094_FILTER_IGNORE0                                       4:0
#define NV094_FILTER_ZERO0                                         7:5
#define NV094_FILTER_IGNORE1                                       12:8
#define NV094_FILTER_ZERO1                                         14:13
#define NV094_FILTER_IGNORE2                                       15:15
#define NV094_FILTER_MIPMAPLODBIAS                                 23:16
#define NV094_FILTER_TEXTUREMIN                                    26:24
#define NV094_FILTER_TEXTUREMIN_NEAREST                            (0x00000001)
#define NV094_FILTER_TEXTUREMIN_LINEAR                             (0x00000002)
#define NV094_FILTER_TEXTUREMIN_MIPNEAREST                         (0x00000003)
#define NV094_FILTER_TEXTUREMIN_MIPLINEAR                          (0x00000004)
#define NV094_FILTER_TEXTUREMIN_LINEARMIPNEAREST                   (0x00000005)
#define NV094_FILTER_TEXTUREMIN_LINEARMIPLINEAR                    (0x00000006)
#define NV094_FILTER_IGNORE3                                       27:27
#define NV094_FILTER_TEXTUREMAG                                    30:28
#define NV094_FILTER_TEXTUREMAG_NEAREST                            (0x00000001)
#define NV094_FILTER_TEXTUREMAG_LINEAR                             (0x00000002)
#define NV094_FILTER_IGNORE4                                       31:31
#define NV094_BLEND                                                (0x00000310)
#define NV094_BLEND_TEXTUREMAPBLEND                                3:0
#define NV094_BLEND_TEXTUREMAPBLEND_DECAL                          (0x00000001)
#define NV094_BLEND_TEXTUREMAPBLEND_MODULATE                       (0x00000002)
#define NV094_BLEND_TEXTUREMAPBLEND_DECALALPHA                     (0x00000003)
#define NV094_BLEND_TEXTUREMAPBLEND_MODULATEALPHA                  (0x00000004)
#define NV094_BLEND_TEXTUREMAPBLEND_DECALMASK                      (0x00000005)
#define NV094_BLEND_TEXTUREMAPBLEND_MODULATEMASK                   (0x00000006)
#define NV094_BLEND_TEXTUREMAPBLEND_COPY                           (0x00000007)
#define NV094_BLEND_TEXTUREMAPBLEND_ADD                            (0x00000008)
#define NV094_BLEND_MASK_BIT                                       5:4
#define NV094_BLEND_MASK_BIT_LSB                                   (0x00000001)
#define NV094_BLEND_MASK_BIT_MSB                                   (0x00000002)
#define NV094_BLEND_SHADEMODE                                      7:6
#define NV094_BLEND_SHADEMODE_FLAT                                 (0x00000001)
#define NV094_BLEND_SHADEMODE_GOURAUD                              (0x00000002)
#define NV094_BLEND_SHADEMODE_PHONG                                (0x00000003)
#define NV094_BLEND_TEXTUREPERSPECTIVE                             11:8
#define NV094_BLEND_TEXTUREPERSPECTIVE_FALSE                       (0x00000000)
#define NV094_BLEND_TEXTUREPERSPECTIVE_TRUE                        (0x00000001)
#define NV094_BLEND_SPECULARENABLE                                 15:12
#define NV094_BLEND_SPECULARENABLE_FALSE                           (0x00000000)
#define NV094_BLEND_SPECULARENABLE_TRUE                            (0x00000001)
#define NV094_BLEND_FOGENABLE                                      19:16
#define NV094_BLEND_FOGENABLE_FALSE                                (0x00000000)
#define NV094_BLEND_FOGENABLE_TRUE                                 (0x00000001)
#define NV094_BLEND_ALPHABLENDENABLE                               23:20
#define NV094_BLEND_ALPHABLENDENABLE_FALSE                         (0x00000000)
#define NV094_BLEND_ALPHABLENDENABLE_TRUE                          (0x00000001)
#define NV094_BLEND_SRCBLEND                                       27:24
#define NV094_BLEND_SRCBLEND_ZERO                                  (0x00000001)
#define NV094_BLEND_SRCBLEND_ONE                                   (0x00000002)
#define NV094_BLEND_SRCBLEND_SRCCOLOR                              (0x00000003)
#define NV094_BLEND_SRCBLEND_INVSRCCOLOR                           (0x00000004)
#define NV094_BLEND_SRCBLEND_SRCALPHA                              (0x00000005)
#define NV094_BLEND_SRCBLEND_INVSRCALPHA                           (0x00000006)
#define NV094_BLEND_SRCBLEND_DESTALPHA                             (0x00000007)
#define NV094_BLEND_SRCBLEND_INVDESTALPHA                          (0x00000008)
#define NV094_BLEND_SRCBLEND_DESTCOLOR                             (0x00000009)
#define NV094_BLEND_SRCBLEND_INVDESTCOLOR                          (0x0000000A)
#define NV094_BLEND_SRCBLEND_SRCALPHASAT                           (0x0000000B)
#define NV094_BLEND_DESTBLEND                                      31:28
#define NV094_BLEND_DESTBLEND_ZERO                                 (0x00000001)
#define NV094_BLEND_DESTBLEND_ONE                                  (0x00000002)
#define NV094_BLEND_DESTBLEND_SRCCOLOR                             (0x00000003)
#define NV094_BLEND_DESTBLEND_INVSRCCOLOR                          (0x00000004)
#define NV094_BLEND_DESTBLEND_SRCALPHA                             (0x00000005)
#define NV094_BLEND_DESTBLEND_INVSRCALPHA                          (0x00000006)
#define NV094_BLEND_DESTBLEND_DESTALPHA                            (0x00000007)
#define NV094_BLEND_DESTBLEND_INVDESTALPHA                         (0x00000008)
#define NV094_BLEND_DESTBLEND_DESTCOLOR                            (0x00000009)
#define NV094_BLEND_DESTBLEND_INVDESTCOLOR                         (0x0000000A)
#define NV094_BLEND_DESTBLEND_SRCALPHASAT                          (0x0000000B)
#define NV094_CONTROL                                              (0x00000314)
#define NV094_CONTROL_ALPHAREF                                     7:0
#define NV094_CONTROL_ALPHAFUNC                                    11:8
#define NV094_CONTROL_ALPHAFUNC_NEVER                              (0x00000001)
#define NV094_CONTROL_ALPHAFUNC_LESS                               (0x00000002)
#define NV094_CONTROL_ALPHAFUNC_EQUAL                              (0x00000003)
#define NV094_CONTROL_ALPHAFUNC_LESSEQUAL                          (0x00000004)
#define NV094_CONTROL_ALPHAFUNC_GREATER                            (0x00000005)
#define NV094_CONTROL_ALPHAFUNC_NOTEQUAL                           (0x00000006)
#define NV094_CONTROL_ALPHAFUNC_GREATEREQUAL                       (0x00000007)
#define NV094_CONTROL_ALPHAFUNC_ALWAYS                             (0x00000008)
#define NV094_CONTROL_ALPHATESTENABLE                              12:12
#define NV094_CONTROL_ALPHATESTENABLE_FALSE                        (0x00000000)
#define NV094_CONTROL_ALPHATESTENABLE_TRUE                         (0x00000001)
#define NV094_CONTROL_ORIGIN                                       13:13
#define NV094_CONTROL_ORIGIN_CENTER                                (0x00000000)
#define NV094_CONTROL_ORIGIN_CORNER                                (0x00000001)
#define NV094_CONTROL_ZENABLE                                      15:14
#define NV094_CONTROL_ZENABLE_FALSE                                (0x00000000)
#define NV094_CONTROL_ZENABLE_TRUE                                 (0x00000001)
#define NV094_CONTROL_ZFUNC                                        19:16
#define NV094_CONTROL_ZFUNC_NEVER                                  (0x00000001)
#define NV094_CONTROL_ZFUNC_LESS                                   (0x00000002)
#define NV094_CONTROL_ZFUNC_EQUAL                                  (0x00000003)
#define NV094_CONTROL_ZFUNC_LESSEQUAL                              (0x00000004)
#define NV094_CONTROL_ZFUNC_GREATER                                (0x00000005)
#define NV094_CONTROL_ZFUNC_NOTEQUAL                               (0x00000006)
#define NV094_CONTROL_ZFUNC_GREATEREQUAL                           (0x00000007)
#define NV094_CONTROL_ZFUNC_ALWAYS                                 (0x00000008)
#define NV094_CONTROL_CULLMODE                                     21:20
#define NV094_CONTROL_CULLMODE_NONE                                (0x00000001)
#define NV094_CONTROL_CULLMODE_CW                                  (0x00000002)
#define NV094_CONTROL_CULLMODE_CCW                                 (0x00000003)
#define NV094_CONTROL_DITHERENABLE                                 22:22
#define NV094_CONTROL_DITHERENABLE_FALSE                           (0x00000000)
#define NV094_CONTROL_DITHERENABLE_TRUE                            (0x00000001)
#define NV094_CONTROL_Z_PERSPECTIVE_ENABLE                         23:23
#define NV094_CONTROL_Z_PERSPECTIVE_ENABLE_FALSE                   (0x00000000)
#define NV094_CONTROL_Z_PERSPECTIVE_ENABLE_TRUE                    (0x00000001)
#define NV094_CONTROL_ZWRITEENABLE                                 29:24
#define NV094_CONTROL_ZWRITEENABLE_FALSE                           (0x00000000)
#define NV094_CONTROL_ZWRITEENABLE_TRUE                            (0x00000001)
#define NV094_CONTROL_Z_FORMAT                                     31:30
#define NV094_CONTROL_Z_FORMAT_FIXED                               (0x00000001)
#define NV094_CONTROL_Z_FORMAT_FLOAT                               (0x00000002)
#define NV094_FOG_COLOR                                            (0x00000318)
#define NV094_TLVERTEX(i)                                          (0x00000400\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_SX(i)                                       (0x00000400\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_SY(i)                                       (0x00000404\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_SZ(i)                                       (0x00000408\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_RHW(i)                                      (0x0000040C\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_COLOR(i)                                    (0x00000410\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_COLOR_BLUE                                  7:0
#define NV094_TLVERTEX_COLOR_GREEN                                 15:8
#define NV094_TLVERTEX_COLOR_RED                                   23:16
#define NV094_TLVERTEX_COLOR_ALPHA                                 31:24
#define NV094_TLVERTEX_SPECULAR(i)                                 (0x00000414\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_SPECULAR_BLUE                               7:0
#define NV094_TLVERTEX_SPECULAR_GREEN                              15:8
#define NV094_TLVERTEX_SPECULAR_RED                                23:16
#define NV094_TLVERTEX_SPECULAR_FOG                                31:24
#define NV094_TLVERTEX_TU(i)                                       (0x00000418\
                                                                   +(i)*0x0020)
#define NV094_TLVERTEX_TV(i)                                       (0x0000041C\
                                                                   +(i)*0x0020)
#define NV094_DRAW_PRIMITIVE(a)                                    (0x00000600\
                                                                   +(a)*0x0004)
#define NV094_DRAW_PRIMITIVE_I0                                    3:0
#define NV094_DRAW_PRIMITIVE_I1                                    7:4
#define NV094_DRAW_PRIMITIVE_I2                                    11:8
#define NV094_DRAW_PRIMITIVE_I3                                    15:12
#define NV094_DRAW_PRIMITIVE_I4                                    19:16
#define NV094_DRAW_PRIMITIVE_I5                                    31:20



/* class NV10_DX6_MULTI_TEXTURE_TRIANGLE */
#define  NV10_DX6_MULTI_TEXTURE_TRIANGLE                           (0x00000095)
/* NvNotification[] elements */
#define NV095_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV095_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV095_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV095_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV095_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV095_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV095_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV095_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaA;          /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 SetContextDmaB;          /* NV01_CONTEXT_DMA                 0188-018b*/
 NvV32 SetContextSurfaces;      /* NV04_CONTEXT_SURFACES_3D         018c-018f*/
 NvV32 Reserved01[0x05e];
 NvU32 Offset[2];               /* offset in bytes                  0308-030f*/
 NvV32 Format[2];               /* see text                         0310-0317*/
 NvV32 Filter[2];               /* see text                         0318-031f*/
 NvV32 Combine0Alpha;           /* see text                         0320-0323*/
 NvV32 Combine0Color;           /* see text                         0324-0327*/
 NvV32 Reserved02;
 NvV32 Combine1Alpha;           /* see text                         032c-032f*/
 NvV32 Combine1Color;           /* see text                         0330-0333*/
 NvV32 CombineFactor;           /* A8R8G8B8                         0334-0337*/
 NvV32 Blend;                   /* see text                         0338-033b*/
 NvV32 Control0;                /* see text                         033c-033f*/
 NvV32 Control1;                /* see text                         0340-0343*/
 NvV32 Control2;                /* see text                         0344-0347*/
 NvV32 FogColor;                /* X8R8G8B8 fog color               0348-034b*/
 NvV32 Reserved03[0x02D];
 struct {                       /* start of methods in array        0400-    */
  NvF32 sx;                     /* screen x coordinate                00-  03*/
  NvF32 sy;                     /* screen y coordinate                04-  07*/
  NvF32 sz;                     /* screen z coordinate                08-  0b*/
  NvF32 rhw;                    /* reciprocal homogeneous W (1/W)     0c-  0f*/
  NvV32 color;                  /* A8R8G8B8                           10-  13*/
  NvV32 specular;               /* F8R8G8B8                           14-  17*/
  NvF32 tu0;                    /* texture 0 u coordinate             18-  1b*/
  NvF32 tv0;                    /* texture 0 v coordinate             1c-  1f*/
  NvF32 tu1;                    /* texture 1 u coordinate             20-  23*/
  NvF32 tv1;                    /* texture 1 v coordinate             24-  27*/
 } Tlmtvertex[8];               /* end of methods in array              -053f*/
 NvV32 DrawPrimitive[48];       /* see text                         0540-05ff*/
 NvV32 Reserved04[0x680];
} Nv095Typedef, Nv10Dx6MultiTextureTriangle;
#define NV095_TYPEDEF                               Nv10Dx6MultiTextureTriangle
/* dma method offsets, fields, and values */
#define NV095_SET_OBJECT                                           (0x00000000)
#define NV095_NO_OPERATION                                         (0x00000100)
#define NV095_NOTIFY                                               (0x00000104)
#define NV095_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV095_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV095_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV095_SET_CONTEXT_DMA_A                                    (0x00000184)
#define NV095_SET_CONTEXT_DMA_B                                    (0x00000188)
#define NV095_SET_CONTEXT_SURFACES                                 (0x0000018C)
#define NV095_OFFSET(b)                                            (0x00000308\
                                                                   +(b)*0x0004)
#define NV095_FORMAT(b)                                            (0x00000310\
                                                                   +(b)*0x0004)
#define NV095_FORMAT_CONTEXT_DMA                                   3:0
#define NV095_FORMAT_CONTEXT_DMA_A                                 (0x00000001)
#define NV095_FORMAT_CONTEXT_DMA_B                                 (0x00000002)
#define NV095_FORMAT_ORIGIN_ZOH                                    5:4
#define NV095_FORMAT_ORIGIN_ZOH_CENTER                             (0x00000001)
#define NV095_FORMAT_ORIGIN_ZOH_CORNER                             (0x00000002)
#define NV095_FORMAT_ORIGIN_FOH                                    7:6
#define NV095_FORMAT_ORIGIN_FOH_CENTER                             (0x00000001)
#define NV095_FORMAT_ORIGIN_FOH_CORNER                             (0x00000002)
#define NV095_FORMAT_COLOR                                         11:8
#define NV095_FORMAT_COLOR_LE_AY8                                  (0x00000001)
#define NV095_FORMAT_COLOR_LE_A1R5G5B5                             (0x00000002)
#define NV095_FORMAT_COLOR_LE_X1R5G5B5                             (0x00000003)
#define NV095_FORMAT_COLOR_LE_A4R4G4B4                             (0x00000004)
#define NV095_FORMAT_COLOR_LE_R5G6B5                               (0x00000005)
#define NV095_FORMAT_COLOR_LE_A8R8G8B8                             (0x00000006)
#define NV095_FORMAT_COLOR_LE_X8R8G8B8                             (0x00000007)
#define NV095_FORMAT_MIPMAP_LEVELS                                 15:12
#define NV095_FORMAT_BASE_SIZE_U                                   19:16
#define NV095_FORMAT_BASE_SIZE_U_1                                 (0x00000000)
#define NV095_FORMAT_BASE_SIZE_U_2                                 (0x00000001)
#define NV095_FORMAT_BASE_SIZE_U_4                                 (0x00000002)
#define NV095_FORMAT_BASE_SIZE_U_8                                 (0x00000003)
#define NV095_FORMAT_BASE_SIZE_U_16                                (0x00000004)
#define NV095_FORMAT_BASE_SIZE_U_32                                (0x00000005)
#define NV095_FORMAT_BASE_SIZE_U_64                                (0x00000006)
#define NV095_FORMAT_BASE_SIZE_U_128                               (0x00000007)
#define NV095_FORMAT_BASE_SIZE_U_256                               (0x00000008)
#define NV095_FORMAT_BASE_SIZE_U_512                               (0x00000009)
#define NV095_FORMAT_BASE_SIZE_U_1024                              (0x0000000A)
#define NV095_FORMAT_BASE_SIZE_U_2048                              (0x0000000B)
#define NV095_FORMAT_BASE_SIZE_V                                   23:20
#define NV095_FORMAT_BASE_SIZE_V_1                                 (0x00000000)
#define NV095_FORMAT_BASE_SIZE_V_2                                 (0x00000001)
#define NV095_FORMAT_BASE_SIZE_V_4                                 (0x00000002)
#define NV095_FORMAT_BASE_SIZE_V_8                                 (0x00000003)
#define NV095_FORMAT_BASE_SIZE_V_16                                (0x00000004)
#define NV095_FORMAT_BASE_SIZE_V_32                                (0x00000005)
#define NV095_FORMAT_BASE_SIZE_V_64                                (0x00000006)
#define NV095_FORMAT_BASE_SIZE_V_128                               (0x00000007)
#define NV095_FORMAT_BASE_SIZE_V_256                               (0x00000008)
#define NV095_FORMAT_BASE_SIZE_V_512                               (0x00000009)
#define NV095_FORMAT_BASE_SIZE_V_1024                              (0x0000000A)
#define NV095_FORMAT_BASE_SIZE_V_2048                              (0x0000000B)
#define NV095_FORMAT_TEXTUREADDRESSU                               26:24
#define NV095_FORMAT_TEXTUREADDRESSU_WRAP                          (0x00000001)
#define NV095_FORMAT_TEXTUREADDRESSU_MIRROR                        (0x00000002)
#define NV095_FORMAT_TEXTUREADDRESSU_CLAMP                         (0x00000003)
#define NV095_FORMAT_TEXTUREADDRESSU_BORDER                        (0x00000004)
#define NV095_FORMAT_WRAPU                                         27:27
#define NV095_FORMAT_WRAPU_FALSE                                   (0x00000000)
#define NV095_FORMAT_WRAPU_TRUE                                    (0x00000001)
#define NV095_FORMAT_TEXTUREADDRESSV                               30:28
#define NV095_FORMAT_TEXTUREADDRESSV_WRAP                          (0x00000001)
#define NV095_FORMAT_TEXTUREADDRESSV_MIRROR                        (0x00000002)
#define NV095_FORMAT_TEXTUREADDRESSV_CLAMP                         (0x00000003)
#define NV095_FORMAT_TEXTUREADDRESSV_BORDER                        (0x00000004)
#define NV095_FORMAT_WRAPV                                         31:31
#define NV095_FORMAT_WRAPV_FALSE                                   (0x00000000)
#define NV095_FORMAT_WRAPV_TRUE                                    (0x00000001)
#define NV095_FILTER(b)                                            (0x00000318\
                                                                   +(b)*0x0004)
#define NV095_FILTER_IGNORE0                                       4:0
#define NV095_FILTER_ZERO0                                         7:5
#define NV095_FILTER_IGNORE1                                       12:8
#define NV095_FILTER_ZERO1                                         14:13
#define NV095_FILTER_IGNORE2                                       15:15
#define NV095_FILTER_MIPMAPLODBIAS                                 23:16
#define NV095_FILTER_TEXTUREMIN                                    26:24
#define NV095_FILTER_TEXTUREMIN_NEAREST                            (0x00000001)
#define NV095_FILTER_TEXTUREMIN_LINEAR                             (0x00000002)
#define NV095_FILTER_TEXTUREMIN_MIPNEAREST                         (0x00000003)
#define NV095_FILTER_TEXTUREMIN_MIPLINEAR                          (0x00000004)
#define NV095_FILTER_TEXTUREMIN_LINEARMIPNEAREST                   (0x00000005)
#define NV095_FILTER_TEXTUREMIN_LINEARMIPLINEAR                    (0x00000006)
#define NV095_FILTER_IGNORE3                                       27:27
#define NV095_FILTER_TEXTUREMAG                                    30:28
#define NV095_FILTER_TEXTUREMAG_NEAREST                            (0x00000001)
#define NV095_FILTER_TEXTUREMAG_LINEAR                             (0x00000002)
#define NV095_FILTER_IGNORE4                                       31:31
#define NV095_COMBINE_0_ALPHA                                      (0x00000320)
#define NV095_COMBINE_0_ALPHA_INVERSE_0                            0:0
#define NV095_COMBINE_0_ALPHA_INVERSE_0_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_ALPHA_INVERSE_0_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_ALPHA_ALPHA_0                              1:1
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0                           7:2
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0_ZERO                      (0x00000001)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0_INPUT                     (0x00000004)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_ALPHA_INVERSE_1                            8:8
#define NV095_COMBINE_0_ALPHA_INVERSE_1_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_ALPHA_INVERSE_1_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_ALPHA_ALPHA_1                              9:9
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1                           15:10
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1_ZERO                      (0x00000001)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1_INPUT                     (0x00000004)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_ALPHA_INVERSE_2                            16:16
#define NV095_COMBINE_0_ALPHA_INVERSE_2_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_ALPHA_INVERSE_2_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_ALPHA_ALPHA_2                              17:17
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2                           23:18
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2_ZERO                      (0x00000001)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2_INPUT                     (0x00000004)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_ALPHA_INVERSE_3                            24:24
#define NV095_COMBINE_0_ALPHA_INVERSE_3_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_ALPHA_INVERSE_3_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_ALPHA_ALPHA_3                              25:25
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3                           28:26
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3_ZERO                      (0x00000001)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3_INPUT                     (0x00000004)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_ALPHA_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_ALPHA_OPERATION                            31:29
#define NV095_COMBINE_0_ALPHA_OPERATION_ADD                        (0x00000001)
#define NV095_COMBINE_0_ALPHA_OPERATION_ADD2                       (0x00000002)
#define NV095_COMBINE_0_ALPHA_OPERATION_ADD4                       (0x00000003)
#define NV095_COMBINE_0_ALPHA_OPERATION_ADDSIGNED                  (0x00000004)
#define NV095_COMBINE_0_ALPHA_OPERATION_MUX                        (0x00000005)
#define NV095_COMBINE_0_ALPHA_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV095_COMBINE_0_ALPHA_OPERATION_ADDSIGNED2                 (0x00000007)
#define NV095_COMBINE_0_COLOR                                      (0x00000324)
#define NV095_COMBINE_0_COLOR_INVERSE_0                            0:0
#define NV095_COMBINE_0_COLOR_INVERSE_0_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_COLOR_INVERSE_0_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_COLOR_ALPHA_0                              1:1
#define NV095_COMBINE_0_COLOR_ALPHA_0_COLOR                        (0x00000000)
#define NV095_COMBINE_0_COLOR_ALPHA_0_ALPHA                        (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_0                           7:2
#define NV095_COMBINE_0_COLOR_ARGUMENT_0_ZERO                      (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_COLOR_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_COLOR_ARGUMENT_0_INPUT                     (0x00000004)
#define NV095_COMBINE_0_COLOR_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_COLOR_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_COLOR_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_COLOR_INVERSE_1                            8:8
#define NV095_COMBINE_0_COLOR_INVERSE_1_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_COLOR_INVERSE_1_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_COLOR_ALPHA_1                              9:9
#define NV095_COMBINE_0_COLOR_ALPHA_1_COLOR                        (0x00000000)
#define NV095_COMBINE_0_COLOR_ALPHA_1_ALPHA                        (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_1                           15:10
#define NV095_COMBINE_0_COLOR_ARGUMENT_1_ZERO                      (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_COLOR_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_COLOR_ARGUMENT_1_INPUT                     (0x00000004)
#define NV095_COMBINE_0_COLOR_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_COLOR_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_COLOR_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_COLOR_INVERSE_2                            16:16
#define NV095_COMBINE_0_COLOR_INVERSE_2_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_COLOR_INVERSE_2_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_COLOR_ALPHA_2                              17:17
#define NV095_COMBINE_0_COLOR_ALPHA_2_COLOR                        (0x00000000)
#define NV095_COMBINE_0_COLOR_ALPHA_2_ALPHA                        (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_2                           23:18
#define NV095_COMBINE_0_COLOR_ARGUMENT_2_ZERO                      (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_COLOR_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_COLOR_ARGUMENT_2_INPUT                     (0x00000004)
#define NV095_COMBINE_0_COLOR_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_COLOR_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_COLOR_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_COLOR_INVERSE_3                            24:24
#define NV095_COMBINE_0_COLOR_INVERSE_3_NORMAL                     (0x00000000)
#define NV095_COMBINE_0_COLOR_INVERSE_3_INVERSE                    (0x00000001)
#define NV095_COMBINE_0_COLOR_ALPHA_3                              25:25
#define NV095_COMBINE_0_COLOR_ALPHA_3_COLOR                        (0x00000000)
#define NV095_COMBINE_0_COLOR_ALPHA_3_ALPHA                        (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_3                           28:26
#define NV095_COMBINE_0_COLOR_ARGUMENT_3_ZERO                      (0x00000001)
#define NV095_COMBINE_0_COLOR_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV095_COMBINE_0_COLOR_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_0_COLOR_ARGUMENT_3_INPUT                     (0x00000004)
#define NV095_COMBINE_0_COLOR_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_0_COLOR_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_0_COLOR_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_0_COLOR_OPERATION                            31:29
#define NV095_COMBINE_0_COLOR_OPERATION_ADD                        (0x00000001)
#define NV095_COMBINE_0_COLOR_OPERATION_ADD2                       (0x00000002)
#define NV095_COMBINE_0_COLOR_OPERATION_ADD4                       (0x00000003)
#define NV095_COMBINE_0_COLOR_OPERATION_ADDSIGNED                  (0x00000004)
#define NV095_COMBINE_0_COLOR_OPERATION_MUX                        (0x00000005)
#define NV095_COMBINE_0_COLOR_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV095_COMBINE_0_COLOR_OPERATION_ADDSIGNED2                 (0x00000007)
#define NV095_COMBINE_1_ALPHA                                      (0x0000032C)
#define NV095_COMBINE_1_ALPHA_INVERSE_0                            0:0
#define NV095_COMBINE_1_ALPHA_INVERSE_0_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_ALPHA_INVERSE_0_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_ALPHA_ALPHA_0                              1:1
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0                           7:2
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0_ZERO                      (0x00000001)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0_INPUT                     (0x00000004)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_ALPHA_INVERSE_1                            8:8
#define NV095_COMBINE_1_ALPHA_INVERSE_1_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_ALPHA_INVERSE_1_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_ALPHA_ALPHA_1                              9:9
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1                           15:10
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1_ZERO                      (0x00000001)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1_INPUT                     (0x00000004)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_ALPHA_INVERSE_2                            16:16
#define NV095_COMBINE_1_ALPHA_INVERSE_2_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_ALPHA_INVERSE_2_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_ALPHA_ALPHA_2                              17:17
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2                           23:18
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2_ZERO                      (0x00000001)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2_INPUT                     (0x00000004)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_ALPHA_INVERSE_3                            24:24
#define NV095_COMBINE_1_ALPHA_INVERSE_3_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_ALPHA_INVERSE_3_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_ALPHA_ALPHA_3                              25:25
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3                           28:26
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3_ZERO                      (0x00000001)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3_INPUT                     (0x00000004)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_ALPHA_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_ALPHA_OPERATION                            31:29
#define NV095_COMBINE_1_ALPHA_OPERATION_ADD                        (0x00000001)
#define NV095_COMBINE_1_ALPHA_OPERATION_ADD2                       (0x00000002)
#define NV095_COMBINE_1_ALPHA_OPERATION_ADD4                       (0x00000003)
#define NV095_COMBINE_1_ALPHA_OPERATION_ADDSIGNED                  (0x00000004)
#define NV095_COMBINE_1_ALPHA_OPERATION_MUX                        (0x00000005)
#define NV095_COMBINE_1_ALPHA_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV095_COMBINE_1_ALPHA_OPERATION_ADDSIGNED2                 (0x00000007)
#define NV095_COMBINE_1_COLOR                                      (0x00000330)
#define NV095_COMBINE_1_COLOR_INVERSE_0                            0:0
#define NV095_COMBINE_1_COLOR_INVERSE_0_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_COLOR_INVERSE_0_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_COLOR_ALPHA_0                              1:1
#define NV095_COMBINE_1_COLOR_ALPHA_0_COLOR                        (0x00000000)
#define NV095_COMBINE_1_COLOR_ALPHA_0_ALPHA                        (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_0                           7:2
#define NV095_COMBINE_1_COLOR_ARGUMENT_0_ZERO                      (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_0_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_COLOR_ARGUMENT_0_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_COLOR_ARGUMENT_0_INPUT                     (0x00000004)
#define NV095_COMBINE_1_COLOR_ARGUMENT_0_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_COLOR_ARGUMENT_0_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_COLOR_ARGUMENT_0_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_COLOR_INVERSE_1                            8:8
#define NV095_COMBINE_1_COLOR_INVERSE_1_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_COLOR_INVERSE_1_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_COLOR_ALPHA_1                              9:9
#define NV095_COMBINE_1_COLOR_ALPHA_1_COLOR                        (0x00000000)
#define NV095_COMBINE_1_COLOR_ALPHA_1_ALPHA                        (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_1                           15:10
#define NV095_COMBINE_1_COLOR_ARGUMENT_1_ZERO                      (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_1_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_COLOR_ARGUMENT_1_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_COLOR_ARGUMENT_1_INPUT                     (0x00000004)
#define NV095_COMBINE_1_COLOR_ARGUMENT_1_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_COLOR_ARGUMENT_1_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_COLOR_ARGUMENT_1_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_COLOR_INVERSE_2                            16:16
#define NV095_COMBINE_1_COLOR_INVERSE_2_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_COLOR_INVERSE_2_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_COLOR_ALPHA_2                              17:17
#define NV095_COMBINE_1_COLOR_ALPHA_2_COLOR                        (0x00000000)
#define NV095_COMBINE_1_COLOR_ALPHA_2_ALPHA                        (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_2                           23:18
#define NV095_COMBINE_1_COLOR_ARGUMENT_2_ZERO                      (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_2_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_COLOR_ARGUMENT_2_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_COLOR_ARGUMENT_2_INPUT                     (0x00000004)
#define NV095_COMBINE_1_COLOR_ARGUMENT_2_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_COLOR_ARGUMENT_2_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_COLOR_ARGUMENT_2_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_COLOR_INVERSE_3                            24:24
#define NV095_COMBINE_1_COLOR_INVERSE_3_NORMAL                     (0x00000000)
#define NV095_COMBINE_1_COLOR_INVERSE_3_INVERSE                    (0x00000001)
#define NV095_COMBINE_1_COLOR_ALPHA_3                              25:25
#define NV095_COMBINE_1_COLOR_ALPHA_3_COLOR                        (0x00000000)
#define NV095_COMBINE_1_COLOR_ALPHA_3_ALPHA                        (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_3                           28:26
#define NV095_COMBINE_1_COLOR_ARGUMENT_3_ZERO                      (0x00000001)
#define NV095_COMBINE_1_COLOR_ARGUMENT_3_FACTOR                    (0x00000002)
#define NV095_COMBINE_1_COLOR_ARGUMENT_3_DIFFUSE                   (0x00000003)
#define NV095_COMBINE_1_COLOR_ARGUMENT_3_INPUT                     (0x00000004)
#define NV095_COMBINE_1_COLOR_ARGUMENT_3_TEXTURE0                  (0x00000005)
#define NV095_COMBINE_1_COLOR_ARGUMENT_3_TEXTURE1                  (0x00000006)
#define NV095_COMBINE_1_COLOR_ARGUMENT_3_TEXTURELOD                (0x00000007)
#define NV095_COMBINE_1_COLOR_OPERATION                            31:29
#define NV095_COMBINE_1_COLOR_OPERATION_ADD                        (0x00000001)
#define NV095_COMBINE_1_COLOR_OPERATION_ADD2                       (0x00000002)
#define NV095_COMBINE_1_COLOR_OPERATION_ADD4                       (0x00000003)
#define NV095_COMBINE_1_COLOR_OPERATION_ADDSIGNED                  (0x00000004)
#define NV095_COMBINE_1_COLOR_OPERATION_MUX                        (0x00000005)
#define NV095_COMBINE_1_COLOR_OPERATION_ADDCOMPLEMENT              (0x00000006)
#define NV095_COMBINE_1_COLOR_OPERATION_ADDSIGNED2                 (0x00000007)
/* The following NV095_COMBINE_*** defines can be used without regard to the combiner number */
#define NV095_COMBINE_ALPHA_INVERSE_0                              0:0
#define NV095_COMBINE_ALPHA_INVERSE_0_NORMAL                       (0x00000000)
#define NV095_COMBINE_ALPHA_INVERSE_0_INVERSE                      (0x00000001)
#define NV095_COMBINE_ALPHA_ALPHA_0                                1:1
#define NV095_COMBINE_ALPHA_ARGUMENT_0                             7:2
#define NV095_COMBINE_ALPHA_ARGUMENT_0_ZERO                        (0x00000001)
#define NV095_COMBINE_ALPHA_ARGUMENT_0_FACTOR                      (0x00000002)
#define NV095_COMBINE_ALPHA_ARGUMENT_0_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_ALPHA_ARGUMENT_0_INPUT                       (0x00000004)
#define NV095_COMBINE_ALPHA_ARGUMENT_0_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_ALPHA_ARGUMENT_0_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_ALPHA_ARGUMENT_0_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_ALPHA_INVERSE_1                              8:8
#define NV095_COMBINE_ALPHA_INVERSE_1_NORMAL                       (0x00000000)
#define NV095_COMBINE_ALPHA_INVERSE_1_INVERSE                      (0x00000001)
#define NV095_COMBINE_ALPHA_ALPHA_1                                9:9
#define NV095_COMBINE_ALPHA_ARGUMENT_1                             15:10
#define NV095_COMBINE_ALPHA_ARGUMENT_1_ZERO                        (0x00000001)
#define NV095_COMBINE_ALPHA_ARGUMENT_1_FACTOR                      (0x00000002)
#define NV095_COMBINE_ALPHA_ARGUMENT_1_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_ALPHA_ARGUMENT_1_INPUT                       (0x00000004)
#define NV095_COMBINE_ALPHA_ARGUMENT_1_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_ALPHA_ARGUMENT_1_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_ALPHA_ARGUMENT_1_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_ALPHA_INVERSE_2                              16:16
#define NV095_COMBINE_ALPHA_INVERSE_2_NORMAL                       (0x00000000)
#define NV095_COMBINE_ALPHA_INVERSE_2_INVERSE                      (0x00000001)
#define NV095_COMBINE_ALPHA_ALPHA_2                                17:17
#define NV095_COMBINE_ALPHA_ARGUMENT_2                             23:18
#define NV095_COMBINE_ALPHA_ARGUMENT_2_ZERO                        (0x00000001)
#define NV095_COMBINE_ALPHA_ARGUMENT_2_FACTOR                      (0x00000002)
#define NV095_COMBINE_ALPHA_ARGUMENT_2_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_ALPHA_ARGUMENT_2_INPUT                       (0x00000004)
#define NV095_COMBINE_ALPHA_ARGUMENT_2_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_ALPHA_ARGUMENT_2_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_ALPHA_ARGUMENT_2_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_ALPHA_INVERSE_3                              24:24
#define NV095_COMBINE_ALPHA_INVERSE_3_NORMAL                       (0x00000000)
#define NV095_COMBINE_ALPHA_INVERSE_3_INVERSE                      (0x00000001)
#define NV095_COMBINE_ALPHA_ALPHA_3                                25:25
#define NV095_COMBINE_ALPHA_ARGUMENT_3                             28:26
#define NV095_COMBINE_ALPHA_ARGUMENT_3_ZERO                        (0x00000001)
#define NV095_COMBINE_ALPHA_ARGUMENT_3_FACTOR                      (0x00000002)
#define NV095_COMBINE_ALPHA_ARGUMENT_3_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_ALPHA_ARGUMENT_3_INPUT                       (0x00000004)
#define NV095_COMBINE_ALPHA_ARGUMENT_3_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_ALPHA_ARGUMENT_3_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_ALPHA_ARGUMENT_3_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_ALPHA_OPERATION                              31:29
#define NV095_COMBINE_ALPHA_OPERATION_ADD                          (0x00000001)
#define NV095_COMBINE_ALPHA_OPERATION_ADD2                         (0x00000002)
#define NV095_COMBINE_ALPHA_OPERATION_ADD4                         (0x00000003)
#define NV095_COMBINE_ALPHA_OPERATION_ADDSIGNED                    (0x00000004)
#define NV095_COMBINE_ALPHA_OPERATION_MUX                          (0x00000005)
#define NV095_COMBINE_ALPHA_OPERATION_ADDCOMPLEMENT                (0x00000006)
#define NV095_COMBINE_ALPHA_OPERATION_ADDSIGNED2                   (0x00000007)
#define NV095_COMBINE_COLOR_INVERSE_0                              0:0
#define NV095_COMBINE_COLOR_INVERSE_0_NORMAL                       (0x00000000)
#define NV095_COMBINE_COLOR_INVERSE_0_INVERSE                      (0x00000001)
#define NV095_COMBINE_COLOR_ALPHA_0                                1:1
#define NV095_COMBINE_COLOR_ALPHA_0_COLOR                          (0x00000000)
#define NV095_COMBINE_COLOR_ALPHA_0_ALPHA                          (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_0                             7:2
#define NV095_COMBINE_COLOR_ARGUMENT_0_ZERO                        (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_0_FACTOR                      (0x00000002)
#define NV095_COMBINE_COLOR_ARGUMENT_0_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_COLOR_ARGUMENT_0_INPUT                       (0x00000004)
#define NV095_COMBINE_COLOR_ARGUMENT_0_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_COLOR_ARGUMENT_0_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_COLOR_ARGUMENT_0_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_COLOR_INVERSE_1                              8:8
#define NV095_COMBINE_COLOR_INVERSE_1_NORMAL                       (0x00000000)
#define NV095_COMBINE_COLOR_INVERSE_1_INVERSE                      (0x00000001)
#define NV095_COMBINE_COLOR_ALPHA_1                                9:9
#define NV095_COMBINE_COLOR_ALPHA_1_COLOR                          (0x00000000)
#define NV095_COMBINE_COLOR_ALPHA_1_ALPHA                          (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_1                             15:10
#define NV095_COMBINE_COLOR_ARGUMENT_1_ZERO                        (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_1_FACTOR                      (0x00000002)
#define NV095_COMBINE_COLOR_ARGUMENT_1_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_COLOR_ARGUMENT_1_INPUT                       (0x00000004)
#define NV095_COMBINE_COLOR_ARGUMENT_1_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_COLOR_ARGUMENT_1_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_COLOR_ARGUMENT_1_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_COLOR_INVERSE_2                              16:16
#define NV095_COMBINE_COLOR_INVERSE_2_NORMAL                       (0x00000000)
#define NV095_COMBINE_COLOR_INVERSE_2_INVERSE                      (0x00000001)
#define NV095_COMBINE_COLOR_ALPHA_2                                17:17
#define NV095_COMBINE_COLOR_ALPHA_2_COLOR                          (0x00000000)
#define NV095_COMBINE_COLOR_ALPHA_2_ALPHA                          (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_2                             23:18
#define NV095_COMBINE_COLOR_ARGUMENT_2_ZERO                        (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_2_FACTOR                      (0x00000002)
#define NV095_COMBINE_COLOR_ARGUMENT_2_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_COLOR_ARGUMENT_2_INPUT                       (0x00000004)
#define NV095_COMBINE_COLOR_ARGUMENT_2_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_COLOR_ARGUMENT_2_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_COLOR_ARGUMENT_2_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_COLOR_INVERSE_3                              24:24
#define NV095_COMBINE_COLOR_INVERSE_3_NORMAL                       (0x00000000)
#define NV095_COMBINE_COLOR_INVERSE_3_INVERSE                      (0x00000001)
#define NV095_COMBINE_COLOR_ALPHA_3                                25:25
#define NV095_COMBINE_COLOR_ALPHA_3_COLOR                          (0x00000000)
#define NV095_COMBINE_COLOR_ALPHA_3_ALPHA                          (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_3                             28:26
#define NV095_COMBINE_COLOR_ARGUMENT_3_ZERO                        (0x00000001)
#define NV095_COMBINE_COLOR_ARGUMENT_3_FACTOR                      (0x00000002)
#define NV095_COMBINE_COLOR_ARGUMENT_3_DIFFUSE                     (0x00000003)
#define NV095_COMBINE_COLOR_ARGUMENT_3_INPUT                       (0x00000004)
#define NV095_COMBINE_COLOR_ARGUMENT_3_TEXTURE0                    (0x00000005)
#define NV095_COMBINE_COLOR_ARGUMENT_3_TEXTURE1                    (0x00000006)
#define NV095_COMBINE_COLOR_ARGUMENT_3_TEXTURELOD                  (0x00000007)
#define NV095_COMBINE_COLOR_OPERATION                              31:29
#define NV095_COMBINE_COLOR_OPERATION_ADD                          (0x00000001)
#define NV095_COMBINE_COLOR_OPERATION_ADD2                         (0x00000002)
#define NV095_COMBINE_COLOR_OPERATION_ADD4                         (0x00000003)
#define NV095_COMBINE_COLOR_OPERATION_ADDSIGNED                    (0x00000004)
#define NV095_COMBINE_COLOR_OPERATION_MUX                          (0x00000005)
#define NV095_COMBINE_COLOR_OPERATION_ADDCOMPLEMENT                (0x00000006)
#define NV095_COMBINE_COLOR_OPERATION_ADDSIGNED2                   (0x00000007)
#define NV095_COMBINE_FACTOR                                       (0x00000334)
#define NV095_COMBINE_FACTOR_BLUE                                  7:0
#define NV095_COMBINE_FACTOR_GREEN                                 15:8
#define NV095_COMBINE_FACTOR_RED                                   23:16
#define NV095_COMBINE_FACTOR_ALPHA                                 31:24
#define NV095_BLEND                                                (0x00000338)
#define NV095_BLEND_MASK_BIT                                       5:0
#define NV095_BLEND_MASK_BIT_LSB                                   (0x00000010)
#define NV095_BLEND_MASK_BIT_MSB                                   (0x00000020)
#define NV095_BLEND_SHADEMODE                                      7:6
#define NV095_BLEND_SHADEMODE_FLAT                                 (0x00000001)
#define NV095_BLEND_SHADEMODE_GOURAUD                              (0x00000002)
#define NV095_BLEND_SHADEMODE_PHONG                                (0x00000003)
#define NV095_BLEND_TEXTUREPERSPECTIVE                             11:8
#define NV095_BLEND_TEXTUREPERSPECTIVE_FALSE                       (0x00000000)
#define NV095_BLEND_TEXTUREPERSPECTIVE_TRUE                        (0x00000001)
#define NV095_BLEND_SPECULARENABLE                                 15:12
#define NV095_BLEND_SPECULARENABLE_FALSE                           (0x00000000)
#define NV095_BLEND_SPECULARENABLE_TRUE                            (0x00000001)
#define NV095_BLEND_FOGENABLE                                      19:16
#define NV095_BLEND_FOGENABLE_FALSE                                (0x00000000)
#define NV095_BLEND_FOGENABLE_TRUE                                 (0x00000001)
#define NV095_BLEND_ALPHABLENDENABLE                               23:20
#define NV095_BLEND_ALPHABLENDENABLE_FALSE                         (0x00000000)
#define NV095_BLEND_ALPHABLENDENABLE_TRUE                          (0x00000001)
#define NV095_BLEND_SRCBLEND                                       27:24
#define NV095_BLEND_SRCBLEND_ZERO                                  (0x00000001)
#define NV095_BLEND_SRCBLEND_ONE                                   (0x00000002)
#define NV095_BLEND_SRCBLEND_SRCCOLOR                              (0x00000003)
#define NV095_BLEND_SRCBLEND_INVSRCCOLOR                           (0x00000004)
#define NV095_BLEND_SRCBLEND_SRCALPHA                              (0x00000005)
#define NV095_BLEND_SRCBLEND_INVSRCALPHA                           (0x00000006)
#define NV095_BLEND_SRCBLEND_DESTALPHA                             (0x00000007)
#define NV095_BLEND_SRCBLEND_INVDESTALPHA                          (0x00000008)
#define NV095_BLEND_SRCBLEND_DESTCOLOR                             (0x00000009)
#define NV095_BLEND_SRCBLEND_INVDESTCOLOR                          (0x0000000A)
#define NV095_BLEND_SRCBLEND_SRCALPHASAT                           (0x0000000B)
#define NV095_BLEND_DESTBLEND                                      31:28
#define NV095_BLEND_DESTBLEND_ZERO                                 (0x00000001)
#define NV095_BLEND_DESTBLEND_ONE                                  (0x00000002)
#define NV095_BLEND_DESTBLEND_SRCCOLOR                             (0x00000003)
#define NV095_BLEND_DESTBLEND_INVSRCCOLOR                          (0x00000004)
#define NV095_BLEND_DESTBLEND_SRCALPHA                             (0x00000005)
#define NV095_BLEND_DESTBLEND_INVSRCALPHA                          (0x00000006)
#define NV095_BLEND_DESTBLEND_DESTALPHA                            (0x00000007)
#define NV095_BLEND_DESTBLEND_INVDESTALPHA                         (0x00000008)
#define NV095_BLEND_DESTBLEND_DESTCOLOR                            (0x00000009)
#define NV095_BLEND_DESTBLEND_INVDESTCOLOR                         (0x0000000A)
#define NV095_BLEND_DESTBLEND_SRCALPHASAT                          (0x0000000B)
#define NV095_CONTROL0                                             (0x0000033C)
#define NV095_CONTROL0_ALPHAREF                                    7:0
#define NV095_CONTROL0_ALPHAFUNC                                   11:8
#define NV095_CONTROL0_ALPHAFUNC_NEVER                             (0x00000001)
#define NV095_CONTROL0_ALPHAFUNC_LESS                              (0x00000002)
#define NV095_CONTROL0_ALPHAFUNC_EQUAL                             (0x00000003)
#define NV095_CONTROL0_ALPHAFUNC_LESSEQUAL                         (0x00000004)
#define NV095_CONTROL0_ALPHAFUNC_GREATER                           (0x00000005)
#define NV095_CONTROL0_ALPHAFUNC_NOTEQUAL                          (0x00000006)
#define NV095_CONTROL0_ALPHAFUNC_GREATEREQUAL                      (0x00000007)
#define NV095_CONTROL0_ALPHAFUNC_ALWAYS                            (0x00000008)
#define NV095_CONTROL0_ALPHATESTENABLE                             12:12
#define NV095_CONTROL0_ALPHATESTENABLE_FALSE                       (0x00000000)
#define NV095_CONTROL0_ALPHATESTENABLE_TRUE                        (0x00000001)
#define NV095_CONTROL0_ORIGIN                                      13:13
#define NV095_CONTROL0_ORIGIN_CENTER                               (0x00000000)
#define NV095_CONTROL0_ORIGIN_CORNER                               (0x00000001)
#define NV095_CONTROL0_ZENABLE                                     15:14
#define NV095_CONTROL0_ZENABLE_FALSE                               (0x00000000)
#define NV095_CONTROL0_ZENABLE_TRUE                                (0x00000001)
#define NV095_CONTROL0_ZFUNC                                       19:16
#define NV095_CONTROL0_ZFUNC_NEVER                                 (0x00000001)
#define NV095_CONTROL0_ZFUNC_LESS                                  (0x00000002)
#define NV095_CONTROL0_ZFUNC_EQUAL                                 (0x00000003)
#define NV095_CONTROL0_ZFUNC_LESSEQUAL                             (0x00000004)
#define NV095_CONTROL0_ZFUNC_GREATER                               (0x00000005)
#define NV095_CONTROL0_ZFUNC_NOTEQUAL                              (0x00000006)
#define NV095_CONTROL0_ZFUNC_GREATEREQUAL                          (0x00000007)
#define NV095_CONTROL0_ZFUNC_ALWAYS                                (0x00000008)
#define NV095_CONTROL0_CULLMODE                                    21:20
#define NV095_CONTROL0_CULLMODE_NONE                               (0x00000001)
#define NV095_CONTROL0_CULLMODE_CW                                 (0x00000002)
#define NV095_CONTROL0_CULLMODE_CCW                                (0x00000003)
#define NV095_CONTROL0_DITHERENABLE                                22:22
#define NV095_CONTROL0_DITHERENABLE_FALSE                          (0x00000000)
#define NV095_CONTROL0_DITHERENABLE_TRUE                           (0x00000001)
#define NV095_CONTROL0_Z_PERSPECTIVE_ENABLE                        23:23
#define NV095_CONTROL0_Z_PERSPECTIVE_ENABLE_FALSE                  (0x00000000)
#define NV095_CONTROL0_Z_PERSPECTIVE_ENABLE_TRUE                   (0x00000001)
#define NV095_CONTROL0_ZWRITEENABLE                                24:24
#define NV095_CONTROL0_ZWRITEENABLE_FALSE                          (0x00000000)
#define NV095_CONTROL0_ZWRITEENABLE_TRUE                           (0x00000001)
#define NV095_CONTROL0_STENCIL_WRITE_ENABLE                        25:25
#define NV095_CONTROL0_STENCIL_WRITE_ENABLE_FALSE                  (0x00000000)
#define NV095_CONTROL0_STENCIL_WRITE_ENABLE_TRUE                   (0x00000001)
#define NV095_CONTROL0_ALPHA_WRITE_ENABLE                          26:26
#define NV095_CONTROL0_ALPHA_WRITE_ENABLE_FALSE                    (0x00000000)
#define NV095_CONTROL0_ALPHA_WRITE_ENABLE_TRUE                     (0x00000001)
#define NV095_CONTROL0_RED_WRITE_ENABLE                            27:27
#define NV095_CONTROL0_RED_WRITE_ENABLE_FALSE                      (0x00000000)
#define NV095_CONTROL0_RED_WRITE_ENABLE_TRUE                       (0x00000001)
#define NV095_CONTROL0_GREEN_WRITE_ENABLE                          28:28
#define NV095_CONTROL0_GREEN_WRITE_ENABLE_FALSE                    (0x00000000)
#define NV095_CONTROL0_GREEN_WRITE_ENABLE_TRUE                     (0x00000001)
#define NV095_CONTROL0_BLUE_WRITE_ENABLE                           29:29
#define NV095_CONTROL0_BLUE_WRITE_ENABLE_FALSE                     (0x00000000)
#define NV095_CONTROL0_BLUE_WRITE_ENABLE_TRUE                      (0x00000001)
#define NV095_CONTROL0_Z_FORMAT                                    31:30
#define NV095_CONTROL0_Z_FORMAT_FIXED                              (0x00000001)
#define NV095_CONTROL0_Z_FORMAT_FLOAT                              (0x00000002)
#define NV095_CONTROL1                                             (0x00000340)
#define NV095_CONTROL1_STENCIL_TEST_ENABLE                         3:0
#define NV095_CONTROL1_STENCIL_TEST_ENABLE_FALSE                   (0x00000000)
#define NV095_CONTROL1_STENCIL_TEST_ENABLE_TRUE                    (0x00000001)
#define NV095_CONTROL1_STENCIL_FUNC                                7:4
#define NV095_CONTROL1_STENCIL_FUNC_NEVER                          (0x00000001)
#define NV095_CONTROL1_STENCIL_FUNC_LESS                           (0x00000002)
#define NV095_CONTROL1_STENCIL_FUNC_EQUAL                          (0x00000003)
#define NV095_CONTROL1_STENCIL_FUNC_LESSEQUAL                      (0x00000004)
#define NV095_CONTROL1_STENCIL_FUNC_GREATER                        (0x00000005)
#define NV095_CONTROL1_STENCIL_FUNC_NOTEQUAL                       (0x00000006)
#define NV095_CONTROL1_STENCIL_FUNC_GREATEREQUAL                   (0x00000007)
#define NV095_CONTROL1_STENCIL_FUNC_ALWAYS                         (0x00000008)
#define NV095_CONTROL1_STENCIL_REF                                 15:8
#define NV095_CONTROL1_STENCIL_MASK_READ                           23:16
#define NV095_CONTROL1_STENCIL_MASK_WRITE                          31:24
#define NV095_CONTROL2                                             (0x00000344)
#define NV095_CONTROL2_STENCIL_OP_FAIL                             3:0
#define NV095_CONTROL2_STENCIL_OP_FAIL_KEEP                        (0x00000001)
#define NV095_CONTROL2_STENCIL_OP_FAIL_ZERO                        (0x00000002)
#define NV095_CONTROL2_STENCIL_OP_FAIL_REPLACE                     (0x00000003)
#define NV095_CONTROL2_STENCIL_OP_FAIL_INCRSAT                     (0x00000004)
#define NV095_CONTROL2_STENCIL_OP_FAIL_DECRSAT                     (0x00000005)
#define NV095_CONTROL2_STENCIL_OP_FAIL_INVERT                      (0x00000006)
#define NV095_CONTROL2_STENCIL_OP_FAIL_INCR                        (0x00000007)
#define NV095_CONTROL2_STENCIL_OP_FAIL_DECR                        (0x00000008)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL                            7:4
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_KEEP                       (0x00000001)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_ZERO                       (0x00000002)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_REPLACE                    (0x00000003)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_INCRSAT                    (0x00000004)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_DECRSAT                    (0x00000005)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_INVERT                     (0x00000006)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_INCR                       (0x00000007)
#define NV095_CONTROL2_STENCIL_OP_ZFAIL_DECR                       (0x00000008)
#define NV095_CONTROL2_STENCIL_OP_ZPASS                            31:8
#define NV095_CONTROL2_STENCIL_OP_ZPASS_KEEP                       (0x00000001)
#define NV095_CONTROL2_STENCIL_OP_ZPASS_ZERO                       (0x00000002)
#define NV095_CONTROL2_STENCIL_OP_ZPASS_REPLACE                    (0x00000003)
#define NV095_CONTROL2_STENCIL_OP_ZPASS_INCRSAT                    (0x00000004)
#define NV095_CONTROL2_STENCIL_OP_ZPASS_DECRSAT                    (0x00000005)
#define NV095_CONTROL2_STENCIL_OP_ZPASS_INVERT                     (0x00000006)
#define NV095_CONTROL2_STENCIL_OP_ZPASS_INCR                       (0x00000007)
#define NV095_CONTROL2_STENCIL_OP_ZPASS_DECR                       (0x00000008)
#define NV095_FOG_COLOR                                            (0x00000348)
#define NV095_TLMTVERTEX(i)                                        (0x00000400\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_SX(i)                                     (0x00000400\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_SY(i)                                     (0x00000404\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_SZ(i)                                     (0x00000408\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_RHW(i)                                    (0x0000040C\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_COLOR(i)                                  (0x00000410\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_COLOR_BLUE                                7:0
#define NV095_TLMTVERTEX_COLOR_GREEN                               15:8
#define NV095_TLMTVERTEX_COLOR_RED                                 23:16
#define NV095_TLMTVERTEX_COLOR_ALPHA                               31:24
#define NV095_TLMTVERTEX_SPECULAR(i)                               (0x00000414\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_SPECULAR_BLUE                             7:0
#define NV095_TLMTVERTEX_SPECULAR_GREEN                            15:8
#define NV095_TLMTVERTEX_SPECULAR_RED                              23:16
#define NV095_TLMTVERTEX_SPECULAR_FOG                              31:24
#define NV095_TLMTVERTEX_TU0(i)                                    (0x00000418\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_TV0(i)                                    (0x0000041C\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_TU1(i)                                    (0x00000420\
                                                                   +(i)*0x0028)
#define NV095_TLMTVERTEX_TV1(i)                                    (0x00000424\
                                                                   +(i)*0x0028)
#define NV095_DRAW_PRIMITIVE(a)                                    (0x00000540\
                                                                   +(a)*0x0004)
#define NV095_DRAW_PRIMITIVE_I0                                    3:0
#define NV095_DRAW_PRIMITIVE_I1                                    7:4
#define NV095_DRAW_PRIMITIVE_I2                                    11:8
#define NV095_DRAW_PRIMITIVE_I3                                    15:12
#define NV095_DRAW_PRIMITIVE_I4                                    19:16
#define NV095_DRAW_PRIMITIVE_I5                                    31:20

// This typedef really should be the same as Nv12CelsiusPrimitive, but this
// causes the NV03/NV04_CHANNEL_PIO union to become too large for the 16bit
// compiler. Since we don't expect to use a PIO channel with Celsius, we'll
// just use the old DWORD size typedef.


typedef NvV32 Nv096Typedef;


/* class NV15_CELSIUS_PRIMITIVE */
#define  NV15_CELSIUS_PRIMITIVE                                    (0x00000096)
/* NvNotification[] elements */
#define NV096_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV096_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV096_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV096_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV096_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV096_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV096_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
typedef volatile struct {
    // system method
    NvV32 ctx_Switch;
    NvV32 Reserved00[0xfc/4];
    NvV32 NoOperation;
    NvV32 Notify;
    NvV32 SetWarningEnable;
    NvV32 GetState;
    NvV32 WaitForIdle;
    NvV32 Reserved01[0xc/4];
    NvV32 SyncSetRead;
    NvV32 SyncSetWrite;
    NvV32 SyncSetModulo;
    NvV32 SyncIncrementWrite;
    NvV32 SyncStall;
    NvV32 Reserved17[0xc/4];
    NvV32 PmTrigger;
    NvV32 Reserved02[0x3c/4];
    NvV32 SetContextDmaNotifies;
    NvV32 SetContextDmaA;
    NvV32 SetContextDmaB;
    NvV32 SetContextDmaVertex;
    NvV32 SetContextDmaState;
    NvV32 SetContextDmaColor;
    NvV32 SetContextDmaZeta;
    NvV32 Reserved03[0x64/4];
    NvV32 SetSurfaceClipHorizontal;
    NvV32 SetSurfaceClipVertical;
    NvV32 SetSurfaceFormat;
    NvV32 SetSurfacePitch;
    NvU32 SetSurfaceColorOffset;
    NvU32 SetSurfaceZetaOffset;
    NvU32 SetTextureOffset[2];
    NvV32 SetTextureFormat[2];
    NvV32 SetTextureControl0[2];
    NvV32 SetTextureControl1[2];
    NvV32 SetTextureControl2[2];
    NvV32 SetTextureImageRect[2];
    NvV32 SetTextureFilter[2];
    NvV32 SetTexturePalette[2];
    NvV32 Reserved04[0x8/4];
    NvV32 SetCombinerAlphaICW[2];
    NvV32 SetCombinerColorICW[2];
    NvV32 SetCombineFactor[2];
    NvV32 SetCombinerAlphaOCW[2];
    NvV32 SetCombiner0ColorOCW;
    NvV32 SetCombiner1ColorOCW;
    NvV32 SetCombinerSpecularFogCW0;
    NvV32 SetCombinerSpecularFogCW1;
    NvV32 SetControl0;
    NvV32 SetLightControl;
    NvV32 SetColorMaterial;
    NvV32 SetFogMode;
    NvV32 SetFogGenMode;
    NvV32 SetFogEnable;
    NvV32 SetFogColor;
    NvV32 SetColorKeyColor[2];
    NvV32 SetWindowClipType;
    NvV32 Reserved05[0x8/4];
    NvV32 SetWindowClipHorizontal[8];
    NvV32 SetWindowClipVertical[8];
    NvV32 SetAlphaTestEnable;
    NvV32 SetBlendEnable;
    NvV32 SetCullFaceEnable;
    NvV32 SetDepthTestEnable;
    NvV32 SetDitherEnable;
    NvV32 SetLightingEnable;
    NvV32 SetPointParamsEnable;
    NvV32 SetPointSmoothEnable;
    NvV32 SetLineSmoothEnable;
    NvV32 SetPolySmoothEnable;
    NvV32 SetSkinEnable;
    NvV32 SetStencilTestEnable;
    NvV32 SetPolyOffsetPointEnable;
    NvV32 SetPolyOffsetLineEnable;
    NvV32 SetPolyOffsetFillEnable;
    NvV32 SetAlphaFunc;
    NvV32 SetAlphaRef;
    NvV32 SetBlendFuncSfactor;
    NvV32 SetBlendFuncDfactor;
    NvV32 SetBlendColor;
    NvV32 SetBlendEquation;
    NvV32 SetDepthFunc;
    NvV32 SetColorMask;
    NvV32 SetDepthMask;
    NvV32 SetStencilMask;
    NvV32 SetStencilFunc;
    NvV32 SetStencilFuncRef;
    NvV32 SetStencilFuncMask;
    NvV32 SetStencilOpFail;
    NvV32 SetStencilOpZfail;
    NvV32 SetStencilOpZpass;
    NvV32 SetShadeMode;
    NvV32 SetLineWidth;
    NvF32 SetPolygonOffsetScaleFactor;
    NvF32 SetPolygonOffsetBias;
    NvV32 SetFrontPolygonMode;
    NvV32 SetBackPolygonMode;
    NvF32 SetClipMin;
    NvF32 SetClipMax;
    NvV32 SetCullFace;
    NvV32 SetFrontFace;
    NvV32 SetNormalizationEnable;
    NvV32 SetMaterialEmission[3];
    NvV32 SetMaterialAlpha;
    NvV32 SetSpecularEnable;
    NvV32 SetLightEnableMask;
    struct {
        NvV32 S;
        NvV32 T;
        NvV32 R;
        NvV32 Q;
    } SetTexgen[2];
    NvV32 SetTextureMatrix0Enable;
    NvV32 SetTextureMatrix1Enable;
    NvV32 SetTLMode;
    NvV32 SetPointSize;
    NvV32 SetSwathWidth;
    NvV32 SetFlatShadeOp;
    NvV32 Reserved06[0x8/4];
    NvF32 SetModelViewMatrix0[16];
    NvF32 SetModelViewMatrix1[16];
    NvF32 SetInverseModelViewMatrix0[16];
    NvF32 SetInverseModelViewMatrix1[16];
    NvF32 SetCompositeMatrix[16];
    NvF32 SetTextureMatrix0[16];
    NvF32 SetTextureMatrix1[16];
    NvV32 Reserved07[0x40/4];
    NvF32 SetTexgenSPlane0[4];
    NvF32 SetTexgenTPlane0[4];
    NvF32 SetTexgenRPlane0[4];
    NvF32 SetTexgenQPlane0[4];
    NvF32 SetTexgenSPlane1[4];
    NvF32 SetTexgenTPlane1[4];
    NvF32 SetTexgenRPlane1[4];
    NvF32 SetTexgenQPlane1[4];
    NvF32 SetFogParams[3];
    NvF32 SetFogPlane[4];
    NvV32 Reserved08[0x4/4];
    NvF32 SetSpecularParams[6];
    NvV32 Reserved09[0xc/4];
    NvF32 SetSceneAmbientColor[3];
    NvV32 Reserved0a[0x18/4];
    NvF32 SetViewportOffset[4];
    NvF32 SetPointParams[8];
    NvF32 SetEyePosition[4];
    NvV32 Flush;
    NvF32 SetEyeDirectionSW[3];
    NvV32 Reserved0b[0xc8/4];
    struct {
        NvF32 AmbientColor[3];
        NvF32 DiffuseColor[3];
        NvF32 SpecularColor[3];
        NvF32 LocalRange;
        NvF32 InfiniteHalfVector[3];
        NvF32 InfiniteDirection[3];
        NvF32 SpotFalloff[3];
        NvF32 SpotDirection[4];
        NvF32 LocalPosition[3];
        NvF32 LocalAttenuation[3];
        NvV32 Reserved0c[0xc/4];
    } SetLight[8];
    NvF32 SetVertex3f[3];
    NvV32 Reserved0d[0xc/4];
    NvF32 SetVertex4f[4];
    NvS16 SetVertex4s[4];
    NvF32 SetNormal3f[3];
    NvV32 Reserved0e[0x4/4];
    NvS16 SetNormal3s[3];
    NvV16 Reserved0f[0xa/2];
    NvF32 SetDiffuseColor4f[4];
    NvF32 SetDiffuseColor3f[3];
    NvV32 SetDiffuseColor4ub;
    NvF32 SetSpecularColor4f[4];
    NvF32 SetSpecularColor3f[3];
    NvV32 SetSpecularColor4ub;
    NvF32 SetTexcoord0_2f[2];
    NvS16 SetTexcoord0_2s[2];
    NvV32 Reserved10[0x4/4];
    NvF32 SetTexcoord0_4f[4];
    NvS16 SetTexcoord0_4s[4];
    NvF32 SetTexcoord1_2f[2];
    NvS16 SetTexcoord1_2s[2];
    NvV32 Reserved11[0x4/4];
    NvF32 SetTexcoord1_4f[4];
    NvS16 SetTexcoord1_4s[4];
    NvF32 SetFog1f;
    NvF32 SetWeight1f;
    NvV32 Reserved12[0x4/4];
    NvV32 SetEdgeFlag;
    NvV32 InvalidateVertexCacheFile;
    NvV32 InvalidateVertexFile;
    NvV32 TlNop;
    NvV32 TlSync;
    NvU32 SetVertexArrayOffset;
    NvV32 SetVertexArrayFormat;
    NvU32 SetDiffuseArrayOffset;
    NvV32 SetDiffuseArrayFormat;
    NvU32 SetSpecularArrayOffset;
    NvV32 SetSpecularArrayFormat;
    NvU32 SetTexCoord0ArrayOffset;
    NvV32 SetTexCoord0ArrayFormat;
    NvU32 SetTexCoord1ArrayOffset;
    NvV32 SetTexCoord1ArrayFormat;
    NvU32 SetNormalArrayOffset;
    NvV32 SetNormalArrayFormat;
    NvU32 SetWeightArrayOffset;
    NvV32 SetWeightArrayFormat;
    NvU32 SetFogArrayOffset;
    NvV32 SetFogArrayFormat;
    NvV32 Reserved13[0xbc/4];
    NvV32 SetBeginEnd;
    NvV16 ArrayElement16[256];
    NvV32 Reserved14[0xfc/4];
    NvV32 SetBeginEnd2;
    NvV32 ArrayElement32[64];
    NvV32 Reserved15[0x1fc/4];
    NvV32 SetBeginEnd3;
    NvV32 DrawArrays[128];
    NvV32 DebugInit[10];
    NvV32 SetMaterialEmissionSW[3];
    NvV32 Reserved16[1];
    NvF32 SetViewportOffsetSW[4];
    NvF32 SetPassthruViewportOffsetSW[4];
    NvV32 Reserved18[0x1a4/4];
    NvV32 SetBeginEnd4;
    NvV32 InlineArray[512];
} Nv12CelsiusPrimitive;


#define NV096_TYPEDEF                                      Nv12CelsiusPrimitive
#define NV096_SET_OBJECT                                           (0x00000000)


#define NV096_DEBUG_INIT(i)                                        (0x00001600+(i)*4)


#define NV096_FLUSH                                                        0x00000728


#define NV096_NO_OPERATION                                                 0x00000100


#define NV096_NOTIFY                                                       0x00000104
#define NV096_NOTIFY_TYPE                                                        23:0
#define NV096_NOTIFY_TYPE_WRITE_ONLY                                       0x00000000
#define NV096_NOTIFY_TYPE_WRITE_THEN_AWAKEN                                0x00000001


#define NV096_SET_WARNING_ENABLE                                           0x00000108
#define NV096_SET_WARNING_ENABLE_V                                               23:0
#define NV096_SET_WARNING_ENABLE_V_FALSE                                   0x00000000
#define NV096_SET_WARNING_ENABLE_V_TRUE                                    0x00000001


#define NV096_GET_STATE                                                    0x0000010c
#define NV096_GET_STATE_GETSTATE                                                 31:0
#define NV096_GET_STATE_GETSTATE_ALL_STATE                                 0x00000001
#define NV096_GET_STATE_PUTSTATE_ALL_STATE                                 0x00000002
#define NV096_GET_STATE_GETSTATE_TRANSFORMLIGHTING_STATE                   0x00000003
#define NV096_GET_STATE_GETSTATE_RENDERING_STATE                           0x00000004
#define NV096_GET_STATE_GETSTATE_GEOMETRY_STATE                            0x00000005
#define NV096_GET_STATE_GETSTATE_SNAPSHOT_PRIM_ASSM                        0x00000006
#define NV096_GET_STATE_GETSTATE_RELOAD_PRIM_ASSM                          0x00000007

#define NV096_WAIT_FOR_IDLE                                                0x00000110

#define NV096_SYNC_SET_READ                                                0x00000120
#define NV096_SYNC_SET_WRITE                                               0x00000124
#define NV096_SYNC_SET_MODULO                                              0x00000128
#define NV096_SYNC_INCREMENT_WRITE                                         0x0000012c
#define NV096_SYNC_STALL                                                   0x00000130

#define NV096_PM_TRIGGER                                                   0x00000140


#define NV096_SET_CONTEXT_DMA_NOTIFIES                                     0x00000180


#define NV096_SET_CONTEXT_DMA_A                                            0x00000184


#define NV096_SET_CONTEXT_DMA_B                                            0x00000188


#define NV096_SET_CONTEXT_DMA_VERTEX                                       0x0000018c


#define NV096_SET_CONTEXT_DMA_STATE                                        0x00000190


#define NV096_SET_CONTEXT_DMA_COLOR                                        0x00000194


#define NV096_SET_CONTEXT_DMA_ZETA                                         0x00000198


#define NV096_SET_SURFACE_CLIP_HORIZONTAL                                  0x00000200
#define NV096_SET_SURFACE_CLIP_HORIZONTAL_X                                      15:0
#define NV096_SET_SURFACE_CLIP_HORIZONTAL_WIDTH                                 31:16


#define NV096_SET_SURFACE_CLIP_VERTICAL                                    0x00000204
#define NV096_SET_SURFACE_CLIP_VERTICAL_Y                                        15:0
#define NV096_SET_SURFACE_CLIP_VERTICAL_HEIGHT                                  31:16


#define NV096_SET_SURFACE_FORMAT                                           0x00000208
#define NV096_SET_SURFACE_FORMAT_COLOR                                            7:0
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5                0x00000001
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5                0x00000002
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_R5G6B5                           0x00000003
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8                0x00000004
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8                0x00000005
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8            0x00000006
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8            0x00000007
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_A8R8G8B8                         0x00000008
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_B8                               0x00000009
#define NV096_SET_SURFACE_FORMAT_COLOR_LE_G8B8                             0x0000000A
#define NV096_SET_SURFACE_FORMAT_TYPE                                            15:8
#define NV096_SET_SURFACE_FORMAT_TYPE_PITCH                                0x00000001
#define NV096_SET_SURFACE_FORMAT_TYPE_SWIZZLE                              0x00000002
#define NV096_SET_SURFACE_FORMAT_WIDTH                                          23:16
#define NV096_SET_SURFACE_FORMAT_WIDTH_1                                   0x00000000
#define NV096_SET_SURFACE_FORMAT_WIDTH_2                                   0x00000001
#define NV096_SET_SURFACE_FORMAT_WIDTH_4                                   0x00000002
#define NV096_SET_SURFACE_FORMAT_WIDTH_8                                   0x00000003
#define NV096_SET_SURFACE_FORMAT_WIDTH_16                                  0x00000004
#define NV096_SET_SURFACE_FORMAT_WIDTH_32                                  0x00000005
#define NV096_SET_SURFACE_FORMAT_WIDTH_64                                  0x00000006
#define NV096_SET_SURFACE_FORMAT_WIDTH_128                                 0x00000007
#define NV096_SET_SURFACE_FORMAT_WIDTH_256                                 0x00000008
#define NV096_SET_SURFACE_FORMAT_WIDTH_512                                 0x00000009
#define NV096_SET_SURFACE_FORMAT_WIDTH_1024                                0x0000000A
#define NV096_SET_SURFACE_FORMAT_WIDTH_2048                                0x0000000B
#define NV096_SET_SURFACE_FORMAT_HEIGHT                                         31:24
#define NV096_SET_SURFACE_FORMAT_HEIGHT_1                                  0x00000000
#define NV096_SET_SURFACE_FORMAT_HEIGHT_2                                  0x00000001
#define NV096_SET_SURFACE_FORMAT_HEIGHT_4                                  0x00000002
#define NV096_SET_SURFACE_FORMAT_HEIGHT_8                                  0x00000003
#define NV096_SET_SURFACE_FORMAT_HEIGHT_16                                 0x00000004
#define NV096_SET_SURFACE_FORMAT_HEIGHT_32                                 0x00000005
#define NV096_SET_SURFACE_FORMAT_HEIGHT_64                                 0x00000006
#define NV096_SET_SURFACE_FORMAT_HEIGHT_128                                0x00000007
#define NV096_SET_SURFACE_FORMAT_HEIGHT_256                                0x00000008
#define NV096_SET_SURFACE_FORMAT_HEIGHT_512                                0x00000009
#define NV096_SET_SURFACE_FORMAT_HEIGHT_1024                               0x0000000A
#define NV096_SET_SURFACE_FORMAT_HEIGHT_2048                               0x0000000B


#define NV096_SET_SURFACE_PITCH                                            0x0000020c
#define NV096_SET_SURFACE_PITCH_COLOR                                            15:0
#define NV096_SET_SURFACE_PITCH_ZETA                                            31:16


#define NV096_SET_SURFACE_COLOR_OFFSET                                     0x00000210
#define NV096_SET_SURFACE_COLOR_OFFSET_V                                         31:0


#define NV096_SET_SURFACE_ZETA_OFFSET                                      0x00000214
#define NV096_SET_SURFACE_ZETA_OFFSET_V                                          31:0


#define NV096_SET_TEXTURE_OFFSET(i)                                (0x00000218+(i)*4)
#define NV096_SET_TEXTURE_OFFSET_V                                               31:0


#define NV096_SET_TEXTURE_FORMAT(i)                                (0x00000220+(i)*4)
#define NV096_SET_TEXTURE_FORMAT_CONTEXT_DMA                                      1:0
#define NV096_SET_TEXTURE_FORMAT_CONTEXT_DMA_A                             0x00000001
#define NV096_SET_TEXTURE_FORMAT_CONTEXT_DMA_B                             0x00000002
#define NV096_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE                                   2:2
#define NV096_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_FALSE                      0x00000000
#define NV096_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_TRUE                       0x00000001
#define NV096_SET_TEXTURE_FORMAT_ORIGIN_ZOH                                       4:3
#define NV096_SET_TEXTURE_FORMAT_ORIGIN_ZOH_CENTER                         0x00000001
#define NV096_SET_TEXTURE_FORMAT_ORIGIN_ZOH_CORNER                         0x00000002
#define NV096_SET_TEXTURE_FORMAT_ORIGIN_FOH                                       6:5
#define NV096_SET_TEXTURE_FORMAT_ORIGIN_FOH_CENTER                         0x00000001
#define NV096_SET_TEXTURE_FORMAT_ORIGIN_FOH_CORNER                         0x00000002
#define NV096_SET_TEXTURE_FORMAT_COLOR                                           11:7
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_Y8                               0x00000000
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_AY8                              0x00000001
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_A1R5G5B5                         0x00000002
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_X1R5G5B5                         0x00000003
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_A4R4G4B4                         0x00000004
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_R5G6B5                           0x00000005
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_A8R8G8B8                         0x00000006
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_X8R8G8B8                         0x00000007
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_I8_A1R5G5B5                      0x00000008
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_I8_R5G6B5                        0x00000009
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_I8_A4R4G4B4                      0x0000000A
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_I8_A8R8G8B8                      0x0000000B
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_DXT1_A1R5G5B5                    0x0000000C
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_DXT23_A8R8G8B8                   0x0000000E
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_DXT45_A8R8G8B8                   0x0000000F
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_A1R5G5B5                   0x00000010
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_R5G6B5                     0x00000011
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_A8R8G8B8                   0x00000012
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_Y8                         0x00000013
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_SY8                        0x00000014
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_X7SY9                      0x00000015
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_R8B8                       0x00000016
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_G8B8                       0x00000017
#define NV096_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_SG8SB8                     0x00000018
#define NV096_SET_TEXTURE_FORMAT_MIPMAP_LEVELS                                  15:12
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U                                    19:16
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_1                             0x00000000
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_2                             0x00000001
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_4                             0x00000002
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_8                             0x00000003
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_16                            0x00000004
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_32                            0x00000005
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_64                            0x00000006
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_128                           0x00000007
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_256                           0x00000008
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_512                           0x00000009
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_1024                          0x0000000A
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_U_2048                          0x0000000B
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V                                    23:20
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_1                             0x00000000
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_2                             0x00000001
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_4                             0x00000002
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_8                             0x00000003
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_16                            0x00000004
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_32                            0x00000005
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_64                            0x00000006
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_128                           0x00000007
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_256                           0x00000008
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_512                           0x00000009
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_1024                          0x0000000A
#define NV096_SET_TEXTURE_FORMAT_BASE_SIZE_V_2048                          0x0000000B
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSU                                26:24
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_WRAP                      0x00000001
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_MIRROR                    0x00000002
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_CLAMP                     0x00000003
#define NV096_SET_TEXTURE_FORMAT_WRAPU                                          27:27
#define NV096_SET_TEXTURE_FORMAT_WRAPU_FALSE                               0x00000000
#define NV096_SET_TEXTURE_FORMAT_WRAPU_TRUE                                0x00000001
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSV                                30:28
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_WRAP                      0x00000001
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_MIRROR                    0x00000002
#define NV096_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_CLAMP                     0x00000003
#define NV096_SET_TEXTURE_FORMAT_WRAPV                                          31:31
#define NV096_SET_TEXTURE_FORMAT_WRAPV_FALSE                               0x00000000
#define NV096_SET_TEXTURE_FORMAT_WRAPV_TRUE                                0x00000001


#define NV096_SET_TEXTURE_CONTROL0(i)                              (0x00000228+(i)*4)
#define NV096_SET_TEXTURE_CONTROL0_ENABLE                                       30:30
#define NV096_SET_TEXTURE_CONTROL0_ENABLE_FALSE                            0x00000000
#define NV096_SET_TEXTURE_CONTROL0_ENABLE_TRUE                             0x00000001
#define NV096_SET_TEXTURE_CONTROL0_MIN_LOD_CLAMP                                29:18
#define NV096_SET_TEXTURE_CONTROL0_MAX_LOD_CLAMP                                 17:6
#define NV096_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO                                  5:4
#define NV096_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_0                         0x00000000
#define NV096_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_1                         0x00000001
#define NV096_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE                             3:3
#define NV096_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_FALSE                0x00000000
#define NV096_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_TRUE                 0x00000001
#define NV096_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE                              2:2
#define NV096_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_FALSE                 0x00000000
#define NV096_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_TRUE                  0x00000001
#define NV096_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION                            1:0
#define NV096_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_FALSE               0x00000000
#define NV096_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_ALPHA               0x00000001
#define NV096_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_RGBA                0x00000002
#define NV096_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_KILL                0x00000003


#define NV096_SET_TEXTURE_CONTROL1(i)                              (0x00000230+(i)*4)
#define NV096_SET_TEXTURE_CONTROL1_IMAGE_PITCH                                  31:16
#define NV096_SET_TEXTURE_CONTROL1_ZERO                                          15:0


#define NV096_SET_TEXTURE_CONTROL2(i)                              (0x00000238+(i)*4)
#define NV096_SET_TEXTURE_CONTROL2_PERTURB_DU                                    11:0
#define NV096_SET_TEXTURE_CONTROL2_PERTURB_DV                                   23:12
#define NV096_SET_TEXTURE_CONTROL2_IMAGE_LODF                                   31:24


#define NV096_SET_TEXTURE_IMAGE_RECT(i)                            (0x00000240+(i)*4)
#define NV096_SET_TEXTURE_IMAGE_RECT_WIDTH                                      31:16
#define NV096_SET_TEXTURE_IMAGE_RECT_HEIGHT                                      15:0


#define NV096_SET_TEXTURE_FILTER(i)                                (0x00000248+(i)*4)
#define NV096_SET_TEXTURE_FILTER_MIPMAPLODBIAS                                   23:0
#define NV096_SET_TEXTURE_FILTER_TEXTUREMIN                                     27:24
#define NV096_SET_TEXTURE_FILTER_TEXTUREMIN_NEAREST                        0x00000001
#define NV096_SET_TEXTURE_FILTER_TEXTUREMIN_LINEAR                         0x00000002
#define NV096_SET_TEXTURE_FILTER_TEXTUREMIN_MIPNEAREST                     0x00000003
#define NV096_SET_TEXTURE_FILTER_TEXTUREMIN_MIPLINEAR                      0x00000004
#define NV096_SET_TEXTURE_FILTER_TEXTUREMIN_LINEARMIPNEAREST               0x00000005
#define NV096_SET_TEXTURE_FILTER_TEXTUREMIN_LINEARMIPLINEAR                0x00000006
#define NV096_SET_TEXTURE_FILTER_TEXTUREMAG                                     31:28
#define NV096_SET_TEXTURE_FILTER_TEXTUREMAG_NEAREST                        0x00000001
#define NV096_SET_TEXTURE_FILTER_TEXTUREMAG_LINEAR                         0x00000002


#define NV096_SET_TEXTURE_PALETTE(i)                               (0x00000250+(i)*4)
#define NV096_SET_TEXTURE_PALETTE_CONTEXT_DMA                                     5:0
#define NV096_SET_TEXTURE_PALETTE_CONTEXT_DMA_A                            0x00000000
#define NV096_SET_TEXTURE_PALETTE_CONTEXT_DMA_B                            0x00000001
#define NV096_SET_TEXTURE_PALETTE_PALETTE_OFFSET                                 31:6


#define NV096_SET_COMBINER_ALPHA_ICW(i)                            (0x00000260+(i)*4)
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP                                      31:29
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_ALPHA_ICW_A_ALPHA                                    28:28
#define NV096_SET_COMBINER_ALPHA_ICW_A_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_A_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE                                   27:24
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_D                        0x0000000D
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP                                      23:21
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_ALPHA_ICW_B_ALPHA                                    20:20
#define NV096_SET_COMBINER_ALPHA_ICW_B_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_B_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE                                   19:16
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_D                        0x0000000D
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP                                      15:13
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_ALPHA_ICW_C_ALPHA                                    12:12
#define NV096_SET_COMBINER_ALPHA_ICW_C_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_C_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE                                    11:8
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_D                        0x0000000D
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP                                        7:5
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_ALPHA_ICW_D_ALPHA                                      4:4
#define NV096_SET_COMBINER_ALPHA_ICW_D_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_D_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE                                     3:0
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_D                        0x0000000D


#define NV096_SET_COMBINER_COLOR_ICW(i)                            (0x00000268+(i)*4)
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP                                      31:29
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_COLOR_ICW_A_ALPHA                                    28:28
#define NV096_SET_COMBINER_COLOR_ICW_A_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_A_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE                                   27:24
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_D                        0x0000000D
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP                                      23:21
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_COLOR_ICW_B_ALPHA                                    20:20
#define NV096_SET_COMBINER_COLOR_ICW_B_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_B_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE                                   19:16
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_D                        0x0000000D
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP                                      15:13
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_COLOR_ICW_C_ALPHA                                    12:12
#define NV096_SET_COMBINER_COLOR_ICW_C_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_C_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE                                    11:8
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_D                        0x0000000D
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP                                        7:5
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_IDENTITY               0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_INVERT                 0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NORMAL                   0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NEGATE                   0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NORMAL                 0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NEGATE                 0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_IDENTITY                 0x00000006
#define NV096_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_NEGATE                   0x00000007
#define NV096_SET_COMBINER_COLOR_ICW_D_ALPHA                                      4:4
#define NV096_SET_COMBINER_COLOR_ICW_D_ALPHA_FALSE                         0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_D_ALPHA_TRUE                          0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE                                     3:0
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_0                        0x00000000
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_1                        0x00000001
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_2                        0x00000002
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_3                        0x00000003
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_4                        0x00000004
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_5                        0x00000005
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_8                        0x00000008
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_9                        0x00000009
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_C                        0x0000000C
#define NV096_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_D                        0x0000000D


#define NV096_SET_COMBINE_FACTOR(i)                                (0x00000270+(i)*4)
#define NV096_SET_COMBINE_FACTOR_BLUE                                             7:0
#define NV096_SET_COMBINE_FACTOR_GREEN                                           15:8
#define NV096_SET_COMBINE_FACTOR_RED                                            23:16
#define NV096_SET_COMBINE_FACTOR_ALPHA                                          31:24


#define NV096_SET_COMBINER_ALPHA_OCW(i)                            (0x00000278+(i)*4)
#define NV096_SET_COMBINER_ALPHA_OCW_OPERATION                                  31:15
#define NV096_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT                     0x00000000
#define NV096_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT_BIAS                0x00000001
#define NV096_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1                0x00000002
#define NV096_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1_BIAS           0x00000003
#define NV096_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY2                0x00000004
#define NV096_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTRIGHTBY1               0x00000006
#define NV096_SET_COMBINER_ALPHA_OCW_MUX_ENABLE                                 14:14
#define NV096_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_FALSE                      0x00000000
#define NV096_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_TRUE                       0x00000001
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST                                     11:8
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_0                         0x00000000
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_4                         0x00000004
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_5                         0x00000005
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_8                         0x00000008
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_9                         0x00000009
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_C                         0x0000000C
#define NV096_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_D                         0x0000000D
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST                                       7:4
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST_REG_0                          0x00000000
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST_REG_4                          0x00000004
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST_REG_5                          0x00000005
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST_REG_8                          0x00000008
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST_REG_9                          0x00000009
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST_REG_C                          0x0000000C
#define NV096_SET_COMBINER_ALPHA_OCW_AB_DST_REG_D                          0x0000000D
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST                                       3:0
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST_REG_0                          0x00000000
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST_REG_4                          0x00000004
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST_REG_5                          0x00000005
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST_REG_8                          0x00000008
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST_REG_9                          0x00000009
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST_REG_C                          0x0000000C
#define NV096_SET_COMBINER_ALPHA_OCW_CD_DST_REG_D                          0x0000000D


#define NV096_SET_COMBINER0_COLOR_OCW                                      0x00000280
#define NV096_SET_COMBINER0_COLOR_OCW_ZERO                                      31:27
#define NV096_SET_COMBINER0_COLOR_OCW_OPERATION                                 26:15
#define NV096_SET_COMBINER0_COLOR_OCW_OPERATION_NOSHIFT                    0x00000000
#define NV096_SET_COMBINER0_COLOR_OCW_OPERATION_NOSHIFT_BIAS               0x00000001
#define NV096_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY1               0x00000002
#define NV096_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY1_BIAS          0x00000003
#define NV096_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY2               0x00000004
#define NV096_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTRIGHTBY1              0x00000006
#define NV096_SET_COMBINER0_COLOR_OCW_MUX_ENABLE                                14:14
#define NV096_SET_COMBINER0_COLOR_OCW_MUX_ENABLE_FALSE                     0x00000000
#define NV096_SET_COMBINER0_COLOR_OCW_MUX_ENABLE_TRUE                      0x00000001
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE                             13:13
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE_FALSE                  0x00000000
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE_TRUE                   0x00000001
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE                             12:12
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE_FALSE                  0x00000000
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE_TRUE                   0x00000001
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST                                    11:8
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_0                        0x00000000
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_4                        0x00000004
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_5                        0x00000005
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_8                        0x00000008
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_9                        0x00000009
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_C                        0x0000000C
#define NV096_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_D                        0x0000000D
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST                                      7:4
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST_REG_0                         0x00000000
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST_REG_4                         0x00000004
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST_REG_5                         0x00000005
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST_REG_8                         0x00000008
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST_REG_9                         0x00000009
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST_REG_C                         0x0000000C
#define NV096_SET_COMBINER0_COLOR_OCW_AB_DST_REG_D                         0x0000000D
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST                                      3:0
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST_REG_0                         0x00000000
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST_REG_4                         0x00000004
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST_REG_5                         0x00000005
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST_REG_8                         0x00000008
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST_REG_9                         0x00000009
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST_REG_C                         0x0000000C
#define NV096_SET_COMBINER0_COLOR_OCW_CD_DST_REG_D                         0x0000000D


#define NV096_SET_COMBINER1_COLOR_OCW                                      0x00000284
#define NV096_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT                           31:28
#define NV096_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT_ONE                  0x00000001
#define NV096_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT_TWO                  0x00000002
#define NV096_SET_COMBINER1_COLOR_OCW_MUX_SELECT                                27:27
#define NV096_SET_COMBINER1_COLOR_OCW_MUX_SELECT_LSB                       0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_MUX_SELECT_MSB                       0x00000001
#define NV096_SET_COMBINER1_COLOR_OCW_OPERATION                                 26:15
#define NV096_SET_COMBINER1_COLOR_OCW_OPERATION_NOSHIFT                    0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_OPERATION_NOSHIFT_BIAS               0x00000001
#define NV096_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY1               0x00000002
#define NV096_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY1_BIAS          0x00000003
#define NV096_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY2               0x00000004
#define NV096_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTRIGHTBY1              0x00000006
#define NV096_SET_COMBINER1_COLOR_OCW_MUX_ENABLE                                14:14
#define NV096_SET_COMBINER1_COLOR_OCW_MUX_ENABLE_FALSE                     0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_MUX_ENABLE_TRUE                      0x00000001
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE                             13:13
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE_FALSE                  0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE_TRUE                   0x00000001
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE                             12:12
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE_FALSE                  0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE_TRUE                   0x00000001
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST                                    11:8
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_0                        0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_4                        0x00000004
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_5                        0x00000005
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_8                        0x00000008
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_9                        0x00000009
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_C                        0x0000000C
#define NV096_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_D                        0x0000000D
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST                                      7:4
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST_REG_0                         0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST_REG_4                         0x00000004
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST_REG_5                         0x00000005
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST_REG_8                         0x00000008
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST_REG_9                         0x00000009
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST_REG_C                         0x0000000C
#define NV096_SET_COMBINER1_COLOR_OCW_AB_DST_REG_D                         0x0000000D
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST                                      3:0
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST_REG_0                         0x00000000
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST_REG_4                         0x00000004
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST_REG_5                         0x00000005
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST_REG_8                         0x00000008
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST_REG_9                         0x00000009
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST_REG_C                         0x0000000C
#define NV096_SET_COMBINER1_COLOR_OCW_CD_DST_REG_D                         0x0000000D


#define NV096_SET_COMBINER_SPECULAR_FOG_CW0                                0x00000288
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE                           31:29
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_FALSE                0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_TRUE                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA                             28:28
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_FALSE                  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_TRUE                   0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE                            27:24
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_0                 0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_1                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_2                 0x00000002
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_3                 0x00000003
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_4                 0x00000004
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_5                 0x00000005
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_8                 0x00000008
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_9                 0x00000009
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_C                 0x0000000C
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_D                 0x0000000D
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_SPECLIT           0x0000000E
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_EF_PROD           0x0000000F
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE                           23:21
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_FALSE                0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_TRUE                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA                             20:20
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_FALSE                  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_TRUE                   0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE                            19:16
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_0                 0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_1                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_2                 0x00000002
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_3                 0x00000003
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_4                 0x00000004
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_5                 0x00000005
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_8                 0x00000008
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_9                 0x00000009
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_C                 0x0000000C
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_D                 0x0000000D
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_SPECLIT           0x0000000E
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_EF_PROD           0x0000000F
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE                           15:13
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_FALSE                0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_TRUE                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA                             12:12
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_FALSE                  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_TRUE                   0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE                             11:8
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_0                 0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_1                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_2                 0x00000002
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_3                 0x00000003
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_4                 0x00000004
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_5                 0x00000005
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_8                 0x00000008
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_9                 0x00000009
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_C                 0x0000000C
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_D                 0x0000000D
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_SPECLIT           0x0000000E
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_EF_PROD           0x0000000F
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE                             7:5
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_FALSE                0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_TRUE                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA                               4:4
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_FALSE                  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_TRUE                   0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE                              3:0
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_0                 0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_1                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_2                 0x00000002
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_3                 0x00000003
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_4                 0x00000004
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_5                 0x00000005
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_8                 0x00000008
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_9                 0x00000009
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_C                 0x0000000C
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_D                 0x0000000D
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_SPECLIT           0x0000000E
#define NV096_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_EF_PROD           0x0000000F


#define NV096_SET_COMBINER_SPECULAR_FOG_CW1                                0x0000028c
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE                           31:29
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_FALSE                0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_TRUE                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA                             28:28
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_FALSE                  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_TRUE                   0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE                            27:24
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_0                 0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_1                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_2                 0x00000002
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_3                 0x00000003
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_4                 0x00000004
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_5                 0x00000005
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_8                 0x00000008
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_9                 0x00000009
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_C                 0x0000000C
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_D                 0x0000000D
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE                           23:21
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_FALSE                0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_TRUE                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA                             20:20
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_FALSE                  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_TRUE                   0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE                            19:16
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_0                 0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_1                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_2                 0x00000002
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_3                 0x00000003
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_4                 0x00000004
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_5                 0x00000005
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_8                 0x00000008
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_9                 0x00000009
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_C                 0x0000000C
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_D                 0x0000000D
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE                           15:13
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_FALSE                0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_TRUE                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA                             12:12
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_FALSE                  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_TRUE                   0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE                             11:8
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_0                 0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_1                 0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_2                 0x00000002
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_3                 0x00000003
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_4                 0x00000004
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_5                 0x00000005
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_8                 0x00000008
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_9                 0x00000009
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_C                 0x0000000C
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_D                 0x0000000D
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP                        7:7
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_FALSE           0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_TRUE            0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5                6:6
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_FALSE   0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_TRUE    0x00000001
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12               5:0
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_FALSE  0x00000000
#define NV096_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_TRUE   0x00000020


#define NV096_SET_CONTROL0                                                 0x00000290
#define NV096_SET_CONTROL0_PREMULTIPLIEDALPHA                                   31:24
#define NV096_SET_CONTROL0_PREMULTIPLIEDALPHA_FALSE                        0x00000000
#define NV096_SET_CONTROL0_PREMULTIPLIEDALPHA_TRUE                         0x00000001
#define NV096_SET_CONTROL0_TEXTUREPERSPECTIVE                                   23:20
#define NV096_SET_CONTROL0_TEXTUREPERSPECTIVE_FALSE                        0x00000000
#define NV096_SET_CONTROL0_TEXTUREPERSPECTIVE_TRUE                         0x00000001
#define NV096_SET_CONTROL0_Z_PERSPECTIVE_ENABLE                                 19:16
#define NV096_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_FALSE                      0x00000000
#define NV096_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_TRUE                       0x00000001
#define NV096_SET_CONTROL0_Z_FORMAT                                             15:12
#define NV096_SET_CONTROL0_Z_FORMAT_FIXED                                  0x00000000
#define NV096_SET_CONTROL0_Z_FORMAT_FLOAT                                  0x00000001
#define NV096_SET_CONTROL0_WBUFFER_SELECT                                        11:8
#define NV096_SET_CONTROL0_WBUFFER_SELECT_0                                0x00000000
#define NV096_SET_CONTROL0_WBUFFER_SELECT_1                                0x00000001
#define NV096_SET_CONTROL0_STENCIL_WRITE_ENABLE                                   7:0
#define NV096_SET_CONTROL0_STENCIL_WRITE_ENABLE_FALSE                      0x00000000
#define NV096_SET_CONTROL0_STENCIL_WRITE_ENABLE_TRUE                       0x00000001


#define NV096_SET_LIGHT_CONTROL                                            0x00000294
#define NV096_SET_LIGHT_CONTROL_LOCALEYE                                        31:16
#define NV096_SET_LIGHT_CONTROL_LOCALEYE_FALSE                             0x00000000
#define NV096_SET_LIGHT_CONTROL_LOCALEYE_TRUE                              0x00000001
#define NV096_SET_LIGHT_CONTROL_ATTENUATION_MODE                                 15:2
#define NV096_SET_LIGHT_CONTROL_ATTENUATION_MODE_INVERT                    0x00000000
#define NV096_SET_LIGHT_CONTROL_ATTENUATION_MODE_NOT_INVERT                0x00000001
#define NV096_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN                              1:1
#define NV096_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_FALSE                 0x00000000
#define NV096_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_TRUE                  0x00000001
#define NV096_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN                                0:0
#define NV096_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN_FALSE                   0x00000000
#define NV096_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN_TRUE                    0x00000001


#define NV096_SET_COLOR_MATERIAL                                           0x00000298
#define NV096_SET_COLOR_MATERIAL_V                                               31:0
#define NV096_SET_COLOR_MATERIAL_V_DISABLED                                0x00000000
#define NV096_SET_COLOR_MATERIAL_V_EMISSION                                0x00000001
#define NV096_SET_COLOR_MATERIAL_V_AMBIENT                                 0x00000002
#define NV096_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT                        0x00000003
#define NV096_SET_COLOR_MATERIAL_V_DIFFUSE                                 0x00000004
#define NV096_SET_COLOR_MATERIAL_V_EMISSION_DIFFUSE                        0x00000005
#define NV096_SET_COLOR_MATERIAL_V_AMBIENT_DIFFUSE                         0x00000006
#define NV096_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_DIFFUSE                0x00000007
#define NV096_SET_COLOR_MATERIAL_V_SPECULAR                                0x00000008
#define NV096_SET_COLOR_MATERIAL_V_EMISSION_SPECULAR                       0x00000009
#define NV096_SET_COLOR_MATERIAL_V_AMBIENT_SPECULAR                        0x0000000A
#define NV096_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_SPECULAR               0x0000000B
#define NV096_SET_COLOR_MATERIAL_V_DIFFUSE_SPECULAR                        0x0000000C
#define NV096_SET_COLOR_MATERIAL_V_EMISSION_DIFFUSE_SPECULAR               0x0000000D
#define NV096_SET_COLOR_MATERIAL_V_AMBIENT_DIFFUSE_SPECULAR                0x0000000E
#define NV096_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_DIFFUSE_SPECULAR       0x0000000F


#define NV096_SET_FOG_MODE                                                 0x0000029c
#define NV096_SET_FOG_MODE_FOG_MODE                                              31:0
#define NV096_SET_FOG_MODE_FOG_MODE_LINEAR                                 0x00002601
#define NV096_SET_FOG_MODE_FOG_MODE_EXP                                    0x00000800
#define NV096_SET_FOG_MODE_FOG_MODE_EXP2                                   0x00000801
#define NV096_SET_FOG_MODE_FOG_MODE_EXP_ABS                                0x00000802
#define NV096_SET_FOG_MODE_FOG_MODE_EXP2_ABS                               0x00000803


#define NV096_SET_FOG_GEN_MODE                                             0x000002a0
#define NV096_SET_FOG_GEN_MODE_FOG_GEN_MODE                                      31:0
#define NV096_SET_FOG_GEN_MODE_FOG_GEN_MODE_USE_INPUT                      0x00000000
#define NV096_SET_FOG_GEN_MODE_FOG_GEN_MODE_RADIAL                         0x00000001
#define NV096_SET_FOG_GEN_MODE_FOG_GEN_MODE_PLANAR                         0x00000002
#define NV096_SET_FOG_GEN_MODE_FOG_GEN_MODE_ABS_PLANAR                     0x00000003


#define NV096_SET_FOG_ENABLE                                               0x000002a4
#define NV096_SET_FOG_ENABLE_V                                                   31:0
#define NV096_SET_FOG_ENABLE_V_FALSE                                       0x00000000
#define NV096_SET_FOG_ENABLE_V_TRUE                                        0x00000001


#define NV096_SET_FOG_COLOR                                               0x000002a8
#define NV096_SET_FOG_COLOR_FOG_COLOR_RED                                        7:0
#define NV096_SET_FOG_COLOR_FOG_COLOR_GREEN                                     15:8
#define NV096_SET_FOG_COLOR_FOG_COLOR_BLUE                                     23:16
#define NV096_SET_FOG_COLOR_FOG_COLOR_ALPHA                                    31:24


#define NV096_SET_COLOR_KEY_COLOR(i)                               (0x000002ac+(i)*4)
#define NV096_SET_COLOR_KEY_COLOR_V                                              31:0


#define NV096_SET_WINDOW_CLIP_TYPE                                         0x000002b4
#define NV096_SET_WINDOW_CLIP_TYPE_V                                             31:0
#define NV096_SET_WINDOW_CLIP_TYPE_V_INCLUSIVE                             0x00000000
#define NV096_SET_WINDOW_CLIP_TYPE_V_EXCLUSIVE                             0x00000001


#define NV096_SET_WINDOW_CLIP_HORIZONTAL(i)                        (0x000002c0+(i)*4)
#define NV096_SET_WINDOW_CLIP_HORIZONTAL_XMIN                                    15:0
#define NV096_SET_WINDOW_CLIP_HORIZONTAL_XMAX                                   31:16


#define NV096_SET_WINDOW_CLIP_VERTICAL(i)                          (0x000002e0+(i)*4)
#define NV096_SET_WINDOW_CLIP_VERTICAL_YMIN                                      15:0
#define NV096_SET_WINDOW_CLIP_VERTICAL_YMAX                                     31:16


#define NV096_SET_ALPHA_TEST_ENABLE                                        0x00000300
#define NV096_SET_ALPHA_TEST_ENABLE_V                                            31:0
#define NV096_SET_ALPHA_TEST_ENABLE_V_FALSE                                0x00000000
#define NV096_SET_ALPHA_TEST_ENABLE_V_TRUE                                 0x00000001


#define NV096_SET_BLEND_ENABLE                                             0x00000304
#define NV096_SET_BLEND_ENABLE_V                                                 31:0
#define NV096_SET_BLEND_ENABLE_V_FALSE                                     0x00000000
#define NV096_SET_BLEND_ENABLE_V_TRUE                                      0x00000001


#define NV096_SET_CULL_FACE_ENABLE                                         0x00000308
#define NV096_SET_CULL_FACE_ENABLE_V                                             31:0
#define NV096_SET_CULL_FACE_ENABLE_V_FALSE                                 0x00000000
#define NV096_SET_CULL_FACE_ENABLE_V_TRUE                                  0x00000001


#define NV096_SET_DEPTH_TEST_ENABLE                                        0x0000030c
#define NV096_SET_DEPTH_TEST_ENABLE_V                                            31:0
#define NV096_SET_DEPTH_TEST_ENABLE_V_FALSE                                0x00000000
#define NV096_SET_DEPTH_TEST_ENABLE_V_TRUE                                 0x00000001


#define NV096_SET_DITHER_ENABLE                                            0x00000310
#define NV096_SET_DITHER_ENABLE_V                                                31:0
#define NV096_SET_DITHER_ENABLE_V_FALSE                                    0x00000000
#define NV096_SET_DITHER_ENABLE_V_TRUE                                     0x00000001


#define NV096_SET_LIGHTING_ENABLE                                          0x00000314
#define NV096_SET_LIGHTING_ENABLE_V                                              31:0
#define NV096_SET_LIGHTING_ENABLE_V_FALSE                                  0x00000000
#define NV096_SET_LIGHTING_ENABLE_V_TRUE                                   0x00000001


#define NV096_SET_POINT_PARAMS_ENABLE                                      0x00000318
#define NV096_SET_POINT_PARAMS_ENABLE_V                                          31:0
#define NV096_SET_POINT_PARAMS_ENABLE_V_FALSE                              0x00000000
#define NV096_SET_POINT_PARAMS_ENABLE_V_TRUE                               0x00000001


#define NV096_SET_POINT_SMOOTH_ENABLE                                      0x0000031c
#define NV096_SET_POINT_SMOOTH_ENABLE_V                                          31:0
#define NV096_SET_POINT_SMOOTH_ENABLE_V_FALSE                              0x00000000
#define NV096_SET_POINT_SMOOTH_ENABLE_V_TRUE                               0x00000001


#define NV096_SET_LINE_SMOOTH_ENABLE                                       0x00000320
#define NV096_SET_LINE_SMOOTH_ENABLE_V                                           31:0
#define NV096_SET_LINE_SMOOTH_ENABLE_V_FALSE                               0x00000000
#define NV096_SET_LINE_SMOOTH_ENABLE_V_TRUE                                0x00000001


#define NV096_SET_POLY_SMOOTH_ENABLE                                       0x00000324
#define NV096_SET_POLY_SMOOTH_ENABLE_V                                           31:0
#define NV096_SET_POLY_SMOOTH_ENABLE_V_FALSE                               0x00000000
#define NV096_SET_POLY_SMOOTH_ENABLE_V_TRUE                                0x00000001


#define NV096_SET_SKIN_ENABLE                                              0x00000328
#define NV096_SET_SKIN_ENABLE_V                                                  31:0
#define NV096_SET_SKIN_ENABLE_V_FALSE                                      0x00000000
#define NV096_SET_SKIN_ENABLE_V_TRUE                                       0x00000001


#define NV096_SET_STENCIL_TEST_ENABLE                                      0x0000032c
#define NV096_SET_STENCIL_TEST_ENABLE_V                                          31:0
#define NV096_SET_STENCIL_TEST_ENABLE_V_FALSE                              0x00000000
#define NV096_SET_STENCIL_TEST_ENABLE_V_TRUE                               0x00000001


#define NV096_SET_POLY_OFFSET_POINT_ENABLE                                 0x00000330
#define NV096_SET_POLY_OFFSET_POINT_ENABLE_V                                     31:0
#define NV096_SET_POLY_OFFSET_POINT_ENABLE_V_FALSE                         0x00000000
#define NV096_SET_POLY_OFFSET_POINT_ENABLE_V_TRUE                          0x00000001


#define NV096_SET_POLY_OFFSET_LINE_ENABLE                                  0x00000334
#define NV096_SET_POLY_OFFSET_LINE_ENABLE_V                                      31:0
#define NV096_SET_POLY_OFFSET_LINE_ENABLE_V_FALSE                          0x00000000
#define NV096_SET_POLY_OFFSET_LINE_ENABLE_V_TRUE                           0x00000001


#define NV096_SET_POLY_OFFSET_FILL_ENABLE                                  0x00000338
#define NV096_SET_POLY_OFFSET_FILL_ENABLE_V                                      31:0
#define NV096_SET_POLY_OFFSET_FILL_ENABLE_V_FALSE                          0x00000000
#define NV096_SET_POLY_OFFSET_FILL_ENABLE_V_TRUE                           0x00000001


#define NV096_SET_ALPHA_FUNC                                               0x0000033c
#define NV096_SET_ALPHA_FUNC_V                                                   31:0
#define NV096_SET_ALPHA_FUNC_V_NEVER                                       0x00000200
#define NV096_SET_ALPHA_FUNC_V_LESS                                        0x00000201
#define NV096_SET_ALPHA_FUNC_V_EQUAL                                       0x00000202
#define NV096_SET_ALPHA_FUNC_V_LEQUAL                                      0x00000203
#define NV096_SET_ALPHA_FUNC_V_GREATER                                     0x00000204
#define NV096_SET_ALPHA_FUNC_V_NOTEQUAL                                    0x00000205
#define NV096_SET_ALPHA_FUNC_V_GEQUAL                                      0x00000206
#define NV096_SET_ALPHA_FUNC_V_ALWAYS                                      0x00000207


#define NV096_SET_ALPHA_REF                                                0x00000340


#define NV096_SET_BLEND_FUNC_SFACTOR                                       0x00000344
#define NV096_SET_BLEND_FUNC_SFACTOR_V                                           31:0
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ZERO                                0x00000000
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ONE                                 0x00000001
#define NV096_SET_BLEND_FUNC_SFACTOR_V_SRC_COLOR                           0x00000300
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_COLOR                 0x00000301
#define NV096_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA                           0x00000302
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_ALPHA                 0x00000303
#define NV096_SET_BLEND_FUNC_SFACTOR_V_DST_ALPHA                           0x00000304
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_ALPHA                 0x00000305
#define NV096_SET_BLEND_FUNC_SFACTOR_V_DST_COLOR                           0x00000306
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_COLOR                 0x00000307
#define NV096_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA_SATURATE                  0x00000308
#define NV096_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_COLOR                      0x00008001
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_COLOR            0x00008002
#define NV096_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_ALPHA                      0x00008003
#define NV096_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_ALPHA            0x00008004


#define NV096_SET_BLEND_FUNC_DFACTOR                                       0x00000348
#define NV096_SET_BLEND_FUNC_DFACTOR_V                                           31:0
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ZERO                                0x00000000
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ONE                                 0x00000001
#define NV096_SET_BLEND_FUNC_DFACTOR_V_SRC_COLOR                           0x00000300
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_COLOR                 0x00000301
#define NV096_SET_BLEND_FUNC_DFACTOR_V_SRC_ALPHA                           0x00000302
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_ALPHA                 0x00000303
#define NV096_SET_BLEND_FUNC_DFACTOR_V_DST_ALPHA                           0x00000304
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_ALPHA                 0x00000305
#define NV096_SET_BLEND_FUNC_DFACTOR_V_DST_COLOR                           0x00000306
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_COLOR                 0x00000307
#define NV096_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_COLOR                      0x00008001
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_COLOR            0x00008002
#define NV096_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_ALPHA                      0x00008003
#define NV096_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_ALPHA            0x00008004


#define NV096_SET_BLEND_COLOR                                              0x0000034c
#define NV096_SET_BLEND_COLOR_V                                                  31:0


#define NV096_SET_BLEND_EQUATION                                           0x00000350
#define NV096_SET_BLEND_EQUATION_V                                               31:0
#define NV096_SET_BLEND_EQUATION_V_FUNC_SUBTRACT                           0x0000800A
#define NV096_SET_BLEND_EQUATION_V_FUNC_REVERSE_SUBTRACT                   0x0000800B
#define NV096_SET_BLEND_EQUATION_V_FUNC_ADD                                0x00008006
#define NV096_SET_BLEND_EQUATION_V_MIN                                     0x00008007
#define NV096_SET_BLEND_EQUATION_V_MAX                                     0x00008008


#define NV096_SET_DEPTH_FUNC                                               0x00000354
#define NV096_SET_DEPTH_FUNC_V                                                   31:0
#define NV096_SET_DEPTH_FUNC_V_NEVER                                       0x00000200
#define NV096_SET_DEPTH_FUNC_V_LESS                                        0x00000201
#define NV096_SET_DEPTH_FUNC_V_EQUAL                                       0x00000202
#define NV096_SET_DEPTH_FUNC_V_LEQUAL                                      0x00000203
#define NV096_SET_DEPTH_FUNC_V_GREATER                                     0x00000204
#define NV096_SET_DEPTH_FUNC_V_NOTEQUAL                                    0x00000205
#define NV096_SET_DEPTH_FUNC_V_GEQUAL                                      0x00000206
#define NV096_SET_DEPTH_FUNC_V_ALWAYS                                      0x00000207


#define NV096_SET_COLOR_MASK                                               0x00000358
#define NV096_SET_COLOR_MASK_ALPHA_WRITE_ENABLE                                 31:24
#define NV096_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_FALSE                      0x00000000
#define NV096_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_TRUE                       0x00000001
#define NV096_SET_COLOR_MASK_RED_WRITE_ENABLE                                   23:16
#define NV096_SET_COLOR_MASK_RED_WRITE_ENABLE_FALSE                        0x00000000
#define NV096_SET_COLOR_MASK_RED_WRITE_ENABLE_TRUE                         0x00000001
#define NV096_SET_COLOR_MASK_GREEN_WRITE_ENABLE                                  15:8
#define NV096_SET_COLOR_MASK_GREEN_WRITE_ENABLE_FALSE                      0x00000000
#define NV096_SET_COLOR_MASK_GREEN_WRITE_ENABLE_TRUE                       0x00000001
#define NV096_SET_COLOR_MASK_BLUE_WRITE_ENABLE                                    7:0
#define NV096_SET_COLOR_MASK_BLUE_WRITE_ENABLE_FALSE                       0x00000000
#define NV096_SET_COLOR_MASK_BLUE_WRITE_ENABLE_TRUE                        0x00000001


#define NV096_SET_DEPTH_MASK                                               0x0000035c
#define NV096_SET_DEPTH_MASK_V                                                   31:0
#define NV096_SET_DEPTH_MASK_V_FALSE                                       0x00000000
#define NV096_SET_DEPTH_MASK_V_TRUE                                        0x00000001


#define NV096_SET_STENCIL_MASK                                             0x00000360
#define NV096_SET_STENCIL_MASK_V                                                 31:0


#define NV096_SET_STENCIL_FUNC                                             0x00000364
#define NV096_SET_STENCIL_FUNC_V                                                 31:0
#define NV096_SET_STENCIL_FUNC_V_NEVER                                     0x00000200
#define NV096_SET_STENCIL_FUNC_V_LESS                                      0x00000201
#define NV096_SET_STENCIL_FUNC_V_EQUAL                                     0x00000202
#define NV096_SET_STENCIL_FUNC_V_LEQUAL                                    0x00000203
#define NV096_SET_STENCIL_FUNC_V_GREATER                                   0x00000204
#define NV096_SET_STENCIL_FUNC_V_NOTEQUAL                                  0x00000205
#define NV096_SET_STENCIL_FUNC_V_GEQUAL                                    0x00000206
#define NV096_SET_STENCIL_FUNC_V_ALWAYS                                    0x00000207


#define NV096_SET_STENCIL_FUNC_REF                                         0x00000368
#define NV096_SET_STENCIL_FUNC_REF_V                                             31:0


#define NV096_SET_STENCIL_FUNC_MASK                                        0x0000036c
#define NV096_SET_STENCIL_FUNC_MASK_V                                            31:0


#define NV096_SET_STENCIL_OP_FAIL                                          0x00000370
#define NV096_SET_STENCIL_OP_FAIL_V                                              31:0
#define NV096_SET_STENCIL_OP_FAIL_V_KEEP                                   0x00001E00
#define NV096_SET_STENCIL_OP_FAIL_V_ZERO                                   0x00000000
#define NV096_SET_STENCIL_OP_FAIL_V_REPLACE                                0x00001E01
#define NV096_SET_STENCIL_OP_FAIL_V_INCRSAT                                0x00001E02
#define NV096_SET_STENCIL_OP_FAIL_V_DECRSAT                                0x00001E03
#define NV096_SET_STENCIL_OP_FAIL_V_INVERT                                 0x0000150A
#define NV096_SET_STENCIL_OP_FAIL_V_INCR                                   0x00008507
#define NV096_SET_STENCIL_OP_FAIL_V_DECR                                   0x00008508


#define NV096_SET_STENCIL_OP_ZFAIL                                         0x00000374
#define NV096_SET_STENCIL_OP_ZFAIL_V                                             31:0
#define NV096_SET_STENCIL_OP_ZFAIL_V_KEEP                                  0x00001E00
#define NV096_SET_STENCIL_OP_ZFAIL_V_ZERO                                  0x00000000
#define NV096_SET_STENCIL_OP_ZFAIL_V_REPLACE                               0x00001E01
#define NV096_SET_STENCIL_OP_ZFAIL_V_INCRSAT                               0x00001E02
#define NV096_SET_STENCIL_OP_ZFAIL_V_DECRSAT                               0x00001E03
#define NV096_SET_STENCIL_OP_ZFAIL_V_INVERT                                0x0000150A
#define NV096_SET_STENCIL_OP_ZFAIL_V_INCR                                  0x00008507
#define NV096_SET_STENCIL_OP_ZFAIL_V_DECR                                  0x00008508


#define NV096_SET_STENCIL_OP_ZPASS                                         0x00000378
#define NV096_SET_STENCIL_OP_ZPASS_V                                             31:0
#define NV096_SET_STENCIL_OP_ZPASS_V_KEEP                                  0x00001E00
#define NV096_SET_STENCIL_OP_ZPASS_V_ZERO                                  0x00000000
#define NV096_SET_STENCIL_OP_ZPASS_V_REPLACE                               0x00001E01
#define NV096_SET_STENCIL_OP_ZPASS_V_INCRSAT                               0x00001E02
#define NV096_SET_STENCIL_OP_ZPASS_V_DECRSAT                               0x00001E03
#define NV096_SET_STENCIL_OP_ZPASS_V_INVERT                                0x0000150A
#define NV096_SET_STENCIL_OP_ZPASS_V_INCR                                  0x00008507
#define NV096_SET_STENCIL_OP_ZPASS_V_DECR                                  0x00008508


#define NV096_SET_SHADE_MODE                                               0x0000037c
#define NV096_SET_SHADE_MODE_V                                                   31:0
#define NV096_SET_SHADE_MODE_V_FLAT                                        0x00001D00
#define NV096_SET_SHADE_MODE_V_SMOOTH                                      0x00001D01


#define NV096_SET_LINE_WIDTH                                               0x00000380
#define NV096_SET_LINE_WIDTH_V                                                   31:0


#define NV096_SET_POLYGON_OFFSET_SCALE_FACTOR                              0x00000384
#define NV096_SET_POLYGON_OFFSET_SCALE_FACTOR_V                                  31:0


#define NV096_SET_POLYGON_OFFSET_BIAS                                      0x00000388
#define NV096_SET_POLYGON_OFFSET_BIAS_V                                          31:0


#define NV096_SET_FRONT_POLYGON_MODE                                       0x0000038c
#define NV096_SET_FRONT_POLYGON_MODE_V                                           31:0
#define NV096_SET_FRONT_POLYGON_MODE_V_POINT                               0x00001B00
#define NV096_SET_FRONT_POLYGON_MODE_V_LINE                                0x00001B01
#define NV096_SET_FRONT_POLYGON_MODE_V_FILL                                0x00001B02


#define NV096_SET_BACK_POLYGON_MODE                                        0x00000390
#define NV096_SET_BACK_POLYGON_MODE_V                                            31:0
#define NV096_SET_BACK_POLYGON_MODE_V_POINT                                0x00001B00
#define NV096_SET_BACK_POLYGON_MODE_V_LINE                                 0x00001B01
#define NV096_SET_BACK_POLYGON_MODE_V_FILL                                 0x00001B02


#define NV096_SET_CLIP_MIN                                                 0x00000394
#define NV096_SET_CLIP_MIN_V                                                     31:0


#define NV096_SET_CLIP_MAX                                                 0x00000398
#define NV096_SET_CLIP_MAX_V                                                     31:0


#define NV096_SET_CULL_FACE                                                0x0000039c
#define NV096_SET_CULL_FACE_V                                                    31:0
#define NV096_SET_CULL_FACE_V_FRONT                                        0x00000404
#define NV096_SET_CULL_FACE_V_BACK                                         0x00000405
#define NV096_SET_CULL_FACE_V_FRONT_AND_BACK                               0x00000408


#define NV096_SET_FRONT_FACE                                               0x000003a0
#define NV096_SET_FRONT_FACE_V                                                   31:0
#define NV096_SET_FRONT_FACE_V_CW                                          0x00000900
#define NV096_SET_FRONT_FACE_V_CCW                                         0x00000901


#define NV096_SET_NORMALIZATION_ENABLE                                     0x000003a4
#define NV096_SET_NORMALIZATION_ENABLE_V                                         31:0
#define NV096_SET_NORMALIZATION_ENABLE_V_FALSE                             0x00000000
#define NV096_SET_NORMALIZATION_ENABLE_V_TRUE                              0x00000001


#define NV096_SET_MATERIAL_EMISSION(i)                             (0x000003a8+(i)*4)


#define NV096_SET_MATERIAL_ALPHA                                           0x000003b4


#define NV096_SET_SPECULAR_ENABLE                                          0x000003b8
#define NV096_SET_SPECULAR_ENABLE_V                                              31:0
#define NV096_SET_SPECULAR_ENABLE_V_FALSE                                  0x00000000
#define NV096_SET_SPECULAR_ENABLE_V_TRUE                                   0x00000001


#define NV096_SET_LIGHT_ENABLE_MASK                                        0x000003bc
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT0                                        1:0
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT0_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT0_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT0_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT0_SPOT                            0x00000003
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT1                                        3:2
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT1_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT1_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT1_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT1_SPOT                            0x00000003
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT2                                        5:4
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT2_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT2_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT2_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT2_SPOT                            0x00000003
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT3                                        7:6
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT3_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT3_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT3_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT3_SPOT                            0x00000003
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT4                                        9:8
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT4_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT4_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT4_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT4_SPOT                            0x00000003
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT5                                      11:10
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT5_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT5_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT5_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT5_SPOT                            0x00000003
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT6                                      13:12
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT6_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT6_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT6_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT6_SPOT                            0x00000003
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT7                                      15:14
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT7_OFF                             0x00000000
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT7_INFINITE                        0x00000001
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT7_LOCAL                           0x00000002
#define NV096_SET_LIGHT_ENABLE_MASK_LIGHT7_SPOT                            0x00000003


#define NV096_SET_TEXGEN_S(i)                                     (0x000003c0+(i)*16)
#define NV096_SET_TEXGEN_S_V                                                     31:0
#define NV096_SET_TEXGEN_S_V_DISABLE                                       0x00000000
#define NV096_SET_TEXGEN_S_V_NORMAL_MAP                                    0x00008511
#define NV096_SET_TEXGEN_S_V_REFLECTION_MAP                                0x00008512
#define NV096_SET_TEXGEN_S_V_EYE_LINEAR                                    0x00002400
#define NV096_SET_TEXGEN_S_V_OBJECT_LINEAR                                 0x00002401
#define NV096_SET_TEXGEN_S_V_SPHERE_MAP                                    0x00002402
#define NV096_SET_TEXGEN_S_V_EMBOSS                                        0x0000855F


#define NV096_SET_TEXGEN_T(i)                                     (0x000003c4+(i)*16)
#define NV096_SET_TEXGEN_T_V                                                     31:0
#define NV096_SET_TEXGEN_T_V_DISABLE                                       0x00000000
#define NV096_SET_TEXGEN_T_V_NORMAL_MAP                                    0x00008511
#define NV096_SET_TEXGEN_T_V_REFLECTION_MAP                                0x00008512
#define NV096_SET_TEXGEN_T_V_EYE_LINEAR                                    0x00002400
#define NV096_SET_TEXGEN_T_V_OBJECT_LINEAR                                 0x00002401
#define NV096_SET_TEXGEN_T_V_SPHERE_MAP                                    0x00002402
#define NV096_SET_TEXGEN_T_V_EMBOSS                                        0x0000855F


#define NV096_SET_TEXGEN_R(i)                                     (0x000003c8+(i)*16)
#define NV096_SET_TEXGEN_R_V                                                     31:0
#define NV096_SET_TEXGEN_R_V_DISABLE                                       0x00000000
#define NV096_SET_TEXGEN_R_V_NORMAL_MAP                                    0x00008511
#define NV096_SET_TEXGEN_R_V_REFLECTION_MAP                                0x00008512
#define NV096_SET_TEXGEN_R_V_EYE_LINEAR                                    0x00002400
#define NV096_SET_TEXGEN_R_V_OBJECT_LINEAR                                 0x00002401
#define NV096_SET_TEXGEN_R_V_EMBOSS                                        0x0000855F


#define NV096_SET_TEXGEN_Q(i)                                     (0x000003cc+(i)*16)
#define NV096_SET_TEXGEN_Q_V                                                     31:0
#define NV096_SET_TEXGEN_Q_V_DISABLE                                       0x00000000
#define NV096_SET_TEXGEN_Q_V_EYE_LINEAR                                    0x00002400
#define NV096_SET_TEXGEN_Q_V_OBJECT_LINEAR                                 0x00002401


#define NV096_SET_TEXTURE_MATRIX0_ENABLE                                   0x000003e0
#define NV096_SET_TEXTURE_MATRIX0_ENABLE_V                                       31:0
#define NV096_SET_TEXTURE_MATRIX0_ENABLE_V_FALSE                           0x00000000
#define NV096_SET_TEXTURE_MATRIX0_ENABLE_V_TRUE                            0x00000001


#define NV096_SET_TEXTURE_MATRIX1_ENABLE                                   0x000003e4
#define NV096_SET_TEXTURE_MATRIX1_ENABLE_V                                       31:0
#define NV096_SET_TEXTURE_MATRIX1_ENABLE_V_FALSE                           0x00000000
#define NV096_SET_TEXTURE_MATRIX1_ENABLE_V_TRUE                            0x00000001


#define NV096_SET_TLMODE                                                   0x000003e8
#define NV096_SET_TLMODE_PASSTHROUGH                                              0:0
#define NV096_SET_TLMODE_PASSTHROUGH_TRUE                                  0x00000001
#define NV096_SET_TLMODE_PASSTHROUGH_FALSE                                 0x00000000
#define NV096_SET_TLMODE_W_DIVIDE_0                                               1:1
#define NV096_SET_TLMODE_W_DIVIDE_0_DISABLE                                0x00000000
#define NV096_SET_TLMODE_W_DIVIDE_0_ENABLE                                 0x00000001
#define NV096_SET_TLMODE_W_DIVIDE_1                                               2:2
#define NV096_SET_TLMODE_W_DIVIDE_1_DISABLE                                0x00000000
#define NV096_SET_TLMODE_W_DIVIDE_1_ENABLE                                 0x00000001


#define NV096_SET_POINT_SIZE                                               0x000003ec
#define NV096_SET_POINT_SIZE_V                                                   31:0


#define NV096_SET_SWATH_WIDTH                                              0x000003f0
#define NV096_SET_SWATH_WIDTH_V                                                  31:0
#define NV096_SET_SWATH_WIDTH_V_8                                          0x00000000
#define NV096_SET_SWATH_WIDTH_V_16                                         0x00000001
#define NV096_SET_SWATH_WIDTH_V_32                                         0x00000002
#define NV096_SET_SWATH_WIDTH_V_64                                         0x00000003


#define NV096_SET_FLAT_SHADE_OP                                            0x000003f4
#define NV096_SET_FLAT_SHADE_OP_V                                                31:0
#define NV096_SET_FLAT_SHADE_OP_V_LAST_VTX                                 0x00000000
#define NV096_SET_FLAT_SHADE_OP_V_FIRST_VTX                                0x00000001


#define NV096_SET_MODEL_VIEW_MATRIX0(i)                            (0x00000400+(i)*4)


#define NV096_SET_MODEL_VIEW_MATRIX1(i)                            (0x00000440+(i)*4)


#define NV096_SET_INVERSE_MODEL_VIEW_MATRIX0(i)                    (0x00000480+(i)*4)


#define NV096_SET_INVERSE_MODEL_VIEW_MATRIX1(i)                    (0x000004c0+(i)*4)


#define NV096_SET_COMPOSITE_MATRIX(i)                              (0x00000500+(i)*4)


#define NV096_SET_TEXTURE_MATRIX0(i)                               (0x00000540+(i)*4)


#define NV096_SET_TEXTURE_MATRIX1(i)                               (0x00000580+(i)*4)


#define NV096_SET_TEXGEN_SPLANE0(i)                                (0x00000600+(i)*4)


#define NV096_SET_TEXGEN_TPLANE0(i)                                (0x00000610+(i)*4)


#define NV096_SET_TEXGEN_RPLANE0(i)                                (0x00000620+(i)*4)


#define NV096_SET_TEXGEN_QPLANE0(i)                                (0x00000630+(i)*4)


#define NV096_SET_TEXGEN_SPLANE1(i)                                (0x00000640+(i)*4)


#define NV096_SET_TEXGEN_TPLANE1(i)                                (0x00000650+(i)*4)


#define NV096_SET_TEXGEN_RPLANE1(i)                                (0x00000660+(i)*4)


#define NV096_SET_TEXGEN_QPLANE1(i)                                (0x00000670+(i)*4)


#define NV096_SET_FOG_PARAMS(i)                                    (0x00000680+(i)*4)


#define NV096_SET_FOG_PLANE(i)                                     (0x0000068c+(i)*4)


#define NV096_SET_SPECULAR_PARAMS(i)                               (0x000006a0+(i)*4)


#define NV096_SET_SCENE_AMBIENT_COLOR(i)                           (0x000006c4+(i)*4)


#define NV096_SET_VIEWPORT_OFFSET(i)                               (0x000006e8+(i)*4)


#define NV096_SET_POINT_PARAMS(i)                                  (0x000006f8+(i)*4)


#define NV096_SET_EYE_POSITION(i)                                  (0x00000718+(i)*4)

#define NV096_SET_EYE_DIRECTION_SW(i)                              (0x0000072c+(i)*4)


#define NV096_SET_LIGHT_AMBIENT_COLOR(i,j)                 (0x00000800+(i)*128+(j)*4)


#define NV096_SET_LIGHT_DIFFUSE_COLOR(i,j)                 (0x0000080c+(i)*128+(j)*4)


#define NV096_SET_LIGHT_SPECULAR_COLOR(i,j)                (0x00000818+(i)*128+(j)*4)


#define NV096_SET_LIGHT_LOCAL_RANGE(i)                           (0x00000824+(i)*128)


#define NV096_SET_LIGHT_INFINITE_HALF_VECTOR(i,j)          (0x00000828+(i)*128+(j)*4)


#define NV096_SET_LIGHT_INFINITE_DIRECTION(i,j)            (0x00000834+(i)*128+(j)*4)


#define NV096_SET_LIGHT_SPOT_FALLOFF(i,j)                  (0x00000840+(i)*128+(j)*4)


#define NV096_SET_LIGHT_SPOT_DIRECTION(i,j)                (0x0000084c+(i)*128+(j)*4)


#define NV096_SET_LIGHT_LOCAL_POSITION(i,j)                (0x0000085c+(i)*128+(j)*4)


#define NV096_SET_LIGHT_LOCAL_ATTENUATION(i,j)             (0x00000868+(i)*128+(j)*4)


#define NV096_SET_VERTEX3F(i)                                      (0x00000c00+(i)*4)


#define NV096_SET_VERTEX4F(i)                                      (0x00000c18+(i)*4)


#define NV096_SET_VERTEX4S(i)                                      (0x00000c28+(i)*4)


#define NV096_SET_NORMAL3F(i)                                      (0x00000c30+(i)*4)


#define NV096_SET_NORMAL3S(i)                                      (0x00000c40+(i)*2)


#define NV096_SET_DIFFUSE_COLOR4F(i)                               (0x00000c50+(i)*4)


#define NV096_SET_DIFFUSE_COLOR3F(i)                               (0x00000c60+(i)*4)


#define NV096_SET_DIFFUSE_COLOR4UB                                         0x00000c6c


#define NV096_SET_SPECULAR_COLOR4F(i)                              (0x00000c70+(i)*4)


#define NV096_SET_SPECULAR_COLOR3F(i)                              (0x00000c80+(i)*4)


#define NV096_SET_SPECULAR_COLOR4UB                                        0x00000c8c


#define NV096_SET_TEXCOORD0_2F(i)                                  (0x00000c90+(i)*4)


#define NV096_SET_TEXCOORD0_2S(i)                                  (0x00000c98+(i)*2)


#define NV096_SET_TEXCOORD0_4F(i)                                  (0x00000ca0+(i)*4)


#define NV096_SET_TEXCOORD0_4S(i)                                  (0x00000cb0+(i)*2)


#define NV096_SET_TEXCOORD1_2F(i)                                  (0x00000cb8+(i)*4)


#define NV096_SET_TEXCOORD1_2S(i)                                  (0x00000cc0+(i)*2)


#define NV096_SET_TEXCOORD1_4F(i)                                  (0x00000cc8+(i)*4)


#define NV096_SET_TEXCOORD1_4S(i)                                  (0x00000cd8+(i)*2)


#define NV096_SET_FOG1F                                                    0x00000ce0


#define NV096_SET_WEIGHT1F                                                 0x00000ce4


#define NV096_SET_EDGE_FLAG                                                0x00000cec


#define NV096_INVALIDATE_VERTEX_CACHE_FILE                                 0x00000cf0


#define NV096_INVALIDATE_VERTEX_FILE                                       0x00000cf4


#define NV096_TL_NOP                                                       0x00000cf8


#define NV096_TL_SYNC                                                      0x00000cfc


#define NV096_SET_VERTEX_ARRAY_OFFSET                                      0x00000d00
#define NV096_SET_VERTEX_ARRAY_OFFSET_OFFSET                                     27:0


#define NV096_SET_VERTEX_ARRAY_FORMAT                                      0x00000d04
#define NV096_SET_VERTEX_ARRAY_FORMAT_W                                         31:24
#define NV096_SET_VERTEX_ARRAY_FORMAT_W_NONE                               0x00000000
#define NV096_SET_VERTEX_ARRAY_FORMAT_W_PRESENT                            0x00000001
#define NV096_SET_VERTEX_ARRAY_FORMAT_STRIDE                                     23:8
#define NV096_SET_VERTEX_ARRAY_FORMAT_SIZE                                        7:4
#define NV096_SET_VERTEX_ARRAY_FORMAT_SIZE_2                               0x00000002
#define NV096_SET_VERTEX_ARRAY_FORMAT_SIZE_3                               0x00000003
#define NV096_SET_VERTEX_ARRAY_FORMAT_SIZE_4                               0x00000004
#define NV096_SET_VERTEX_ARRAY_FORMAT_TYPE                                        3:0
#define NV096_SET_VERTEX_ARRAY_FORMAT_TYPE_SHORT                           0x00000001
#define NV096_SET_VERTEX_ARRAY_FORMAT_TYPE_FLOAT                           0x00000002


#define NV096_SET_DIFFUSE_ARRAY_OFFSET                                     0x00000d08
#define NV096_SET_DIFFUSE_ARRAY_OFFSET_OFFSET                                    27:0


#define NV096_SET_DIFFUSE_ARRAY_FORMAT                                     0x00000d0c
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_STRIDE                                    31:8
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_SIZE                                       7:4
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_SIZE_0                              0x00000000
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_SIZE_3                              0x00000003
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_SIZE_4                              0x00000004
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_TYPE                                       3:0
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_BGRA             0x00000000
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_TYPE_FLOAT                          0x00000002
#define NV096_SET_DIFFUSE_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_RGBA             0x00000004


#define NV096_SET_SPECULAR_ARRAY_OFFSET                                    0x00000d10
#define NV096_SET_SPECULAR_ARRAY_OFFSET_OFFSET                                   27:0


#define NV096_SET_SPECULAR_ARRAY_FORMAT                                    0x00000d14
#define NV096_SET_SPECULAR_ARRAY_FORMAT_STRIDE                                   31:8
#define NV096_SET_SPECULAR_ARRAY_FORMAT_SIZE                                      7:4
#define NV096_SET_SPECULAR_ARRAY_FORMAT_SIZE_0                             0x00000000
#define NV096_SET_SPECULAR_ARRAY_FORMAT_SIZE_3                             0x00000003
#define NV096_SET_SPECULAR_ARRAY_FORMAT_SIZE_4                             0x00000004
#define NV096_SET_SPECULAR_ARRAY_FORMAT_TYPE                                      3:0
#define NV096_SET_SPECULAR_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_BGRA            0x00000000
#define NV096_SET_SPECULAR_ARRAY_FORMAT_TYPE_FLOAT                         0x00000002
#define NV096_SET_SPECULAR_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_RGBA            0x00000004


#define NV096_SET_TEX_COORD0_ARRAY_OFFSET                                  0x00000d18
#define NV096_SET_TEX_COORD0_ARRAY_OFFSET_OFFSET                                 27:0


#define NV096_SET_TEX_COORD0_ARRAY_FORMAT                                  0x00000d1c
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_STRIDE                                 31:8
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_SIZE                                    7:4
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_0                           0x00000000
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_1                           0x00000001
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_2                           0x00000002
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_3                           0x00000003
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_4                           0x00000004
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_TYPE                                    3:0
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_TYPE_SHORT                       0x00000001
#define NV096_SET_TEX_COORD0_ARRAY_FORMAT_TYPE_FLOAT                       0x00000002


#define NV096_SET_TEX_COORD1_ARRAY_OFFSET                                  0x00000d20
#define NV096_SET_TEX_COORD1_ARRAY_OFFSET_OFFSET                                 27:0


#define NV096_SET_TEX_COORD1_ARRAY_FORMAT                                  0x00000d24
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_STRIDE                                 31:8
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_SIZE                                    7:4
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_0                           0x00000000
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_1                           0x00000001
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_2                           0x00000002
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_3                           0x00000003
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_4                           0x00000004
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_TYPE                                    3:0
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_TYPE_SHORT                       0x00000001
#define NV096_SET_TEX_COORD1_ARRAY_FORMAT_TYPE_FLOAT                       0x00000002


#define NV096_SET_NORMAL_ARRAY_OFFSET                                      0x00000d28
#define NV096_SET_NORMAL_ARRAY_OFFSET_OFFSET                                     27:0


#define NV096_SET_NORMAL_ARRAY_FORMAT                                      0x00000d2c
#define NV096_SET_NORMAL_ARRAY_FORMAT_STRIDE                                     31:8
#define NV096_SET_NORMAL_ARRAY_FORMAT_SIZE                                        7:4
#define NV096_SET_NORMAL_ARRAY_FORMAT_SIZE_0                               0x00000000
#define NV096_SET_NORMAL_ARRAY_FORMAT_SIZE_3                               0x00000003
#define NV096_SET_NORMAL_ARRAY_FORMAT_TYPE                                        3:0
#define NV096_SET_NORMAL_ARRAY_FORMAT_TYPE_SHORT                           0x00000001
#define NV096_SET_NORMAL_ARRAY_FORMAT_TYPE_FLOAT                           0x00000002


#define NV096_SET_WEIGHT_ARRAY_OFFSET                                      0x00000d30
#define NV096_SET_WEIGHT_ARRAY_OFFSET_OFFSET                                     27:0


#define NV096_SET_WEIGHT_ARRAY_FORMAT                                      0x00000d34
#define NV096_SET_WEIGHT_ARRAY_FORMAT_STRIDE                                     31:8
#define NV096_SET_WEIGHT_ARRAY_FORMAT_SIZE                                        7:4
#define NV096_SET_WEIGHT_ARRAY_FORMAT_SIZE_0                               0x00000000
#define NV096_SET_WEIGHT_ARRAY_FORMAT_SIZE_1                               0x00000001
#define NV096_SET_WEIGHT_ARRAY_FORMAT_TYPE                                        3:0
#define NV096_SET_WEIGHT_ARRAY_FORMAT_TYPE_SHORT                           0x00000001
#define NV096_SET_WEIGHT_ARRAY_FORMAT_TYPE_FLOAT                           0x00000002


#define NV096_SET_FOG_ARRAY_OFFSET                                         0x00000d38
#define NV096_SET_FOG_ARRAY_OFFSET_OFFSET                                        27:0


#define NV096_SET_FOG_ARRAY_FORMAT                                         0x00000d3c
#define NV096_SET_FOG_ARRAY_FORMAT_STRIDE                                        31:8
#define NV096_SET_FOG_ARRAY_FORMAT_SIZE                                           7:4
#define NV096_SET_FOG_ARRAY_FORMAT_SIZE_0                                  0x00000000
#define NV096_SET_FOG_ARRAY_FORMAT_SIZE_1                                  0x00000001
#define NV096_SET_FOG_ARRAY_FORMAT_TYPE                                           3:0
#define NV096_SET_FOG_ARRAY_FORMAT_TYPE_SHORT                              0x00000001
#define NV096_SET_FOG_ARRAY_FORMAT_TYPE_FLOAT                              0x00000002

#define NV096_SET_LOGIC_OP_ENABLE                                          0x00000d40
#define NV096_SET_LOGIC_OP_ENABLE_V                                              31:0
#define NV096_SET_LOGIC_OP_ENABLE_V_FALSE                                  0x00000000
#define NV096_SET_LOGIC_OP_ENABLE_V_TRUE                                   0x00000001

#define NV096_SET_LOGIC_OP                                                 0x00000d44
#define NV096_SET_LOGIC_OP_V                                                     31:0
#define NV096_SET_LOGIC_OP_V_CLEAR                                         0x00001500
#define NV096_SET_LOGIC_OP_V_AND                                           0x00001501
#define NV096_SET_LOGIC_OP_V_AND_REVERSE                                   0x00001502
#define NV096_SET_LOGIC_OP_V_COPY                                          0x00001503
#define NV096_SET_LOGIC_OP_V_AND_INVERTED                                  0x00001504
#define NV096_SET_LOGIC_OP_V_NOOP                                          0x00001505
#define NV096_SET_LOGIC_OP_V_XOR                                           0x00001506
#define NV096_SET_LOGIC_OP_V_OR                                            0x00001507
#define NV096_SET_LOGIC_OP_V_NOR                                           0x00001508
#define NV096_SET_LOGIC_OP_V_EQUIV                                         0x00001509
#define NV096_SET_LOGIC_OP_V_INVERT                                        0x0000150a
#define NV096_SET_LOGIC_OP_V_OR_REVERSE                                    0x0000150b
#define NV096_SET_LOGIC_OP_V_COPY_INVERTED                                 0x0000150c
#define NV096_SET_LOGIC_OP_V_OR_INVERTED                                   0x0000150d
#define NV096_SET_LOGIC_OP_V_NAND                                          0x0000150e
#define NV096_SET_LOGIC_OP_V_SET                                           0x0000150f

#define NV096_SET_BEGIN_END                                                0x00000dfc
#define NV096_SET_BEGIN_END_OP                                                   31:0
#define NV096_SET_BEGIN_END_OP_END                                         0x00000000
#define NV096_SET_BEGIN_END_OP_POINTS                                      0x00000001
#define NV096_SET_BEGIN_END_OP_LINES                                       0x00000002
#define NV096_SET_BEGIN_END_OP_LINE_LOOP                                   0x00000003
#define NV096_SET_BEGIN_END_OP_LINE_STRIP                                  0x00000004
#define NV096_SET_BEGIN_END_OP_TRIANGLES                                   0x00000005
#define NV096_SET_BEGIN_END_OP_TRIANGLE_STRIP                              0x00000006
#define NV096_SET_BEGIN_END_OP_TRIANGLE_FAN                                0x00000007
#define NV096_SET_BEGIN_END_OP_QUADS                                       0x00000008
#define NV096_SET_BEGIN_END_OP_QUAD_STRIP                                  0x00000009
#define NV096_SET_BEGIN_END_OP_POLYGON                                     0x0000000A


#define NV096_ARRAY_ELEMENT16(i)                                   (0x00000e00+(i)*2)


#define NV096_SET_BEGIN_END2                                               0x000010fc
#define NV096_SET_BEGIN_END2_OP                                                  31:0
#define NV096_SET_BEGIN_END2_OP_END                                        0x00000000
#define NV096_SET_BEGIN_END2_OP_POINTS                                     0x00000001
#define NV096_SET_BEGIN_END2_OP_LINES                                      0x00000002
#define NV096_SET_BEGIN_END2_OP_LINE_LOOP                                  0x00000003
#define NV096_SET_BEGIN_END2_OP_LINE_STRIP                                 0x00000004
#define NV096_SET_BEGIN_END2_OP_TRIANGLES                                  0x00000005
#define NV096_SET_BEGIN_END2_OP_TRIANGLE_STRIP                             0x00000006
#define NV096_SET_BEGIN_END2_OP_TRIANGLE_FAN                               0x00000007
#define NV096_SET_BEGIN_END2_OP_QUADS                                      0x00000008
#define NV096_SET_BEGIN_END2_OP_QUAD_STRIP                                 0x00000009
#define NV096_SET_BEGIN_END2_OP_POLYGON                                    0x0000000A


#define NV096_ARRAY_ELEMENT32(i)                                   (0x00001100+(i)*4)


#define NV096_SET_BEGIN_END3                                               0x000013fc
#define NV096_SET_BEGIN_END3_OP                                                  31:0
#define NV096_SET_BEGIN_END3_OP_END                                        0x00000000
#define NV096_SET_BEGIN_END3_OP_POINTS                                     0x00000001
#define NV096_SET_BEGIN_END3_OP_LINES                                      0x00000002
#define NV096_SET_BEGIN_END3_OP_LINE_LOOP                                  0x00000003
#define NV096_SET_BEGIN_END3_OP_LINE_STRIP                                 0x00000004
#define NV096_SET_BEGIN_END3_OP_TRIANGLES                                  0x00000005
#define NV096_SET_BEGIN_END3_OP_TRIANGLE_STRIP                             0x00000006
#define NV096_SET_BEGIN_END3_OP_TRIANGLE_FAN                               0x00000007
#define NV096_SET_BEGIN_END3_OP_QUADS                                      0x00000008
#define NV096_SET_BEGIN_END3_OP_QUAD_STRIP                                 0x00000009
#define NV096_SET_BEGIN_END3_OP_POLYGON                                    0x0000000A


#define NV096_DRAW_ARRAYS(i)                                       (0x00001400+(i)*4)
#define NV096_DRAW_ARRAYS_COUNT                                                 31:24
#define NV096_DRAW_ARRAYS_START_INDEX                                            23:0


/* These methods are accepted between a begin/end. */
#define NV096_SET_MATERIAL_EMISSION_SW(i)                          (0x00001628+(i)*4)
#define NV096_SET_VIEWPORT_OFFSET_SW(i)                            (0x00001638+(i)*4)
/* The PASSTHRU_VIEWPORT_OFFSET aliases to row 1 of the MODEL_VIEW_MATRIX1 */
#define NV096_SET_PASSTHRU_VIEWPORT_OFFSET_SW(i)                   (0x00001648+(i)*4)


#define NV096_SET_BEGIN_END4                                               0x000017fc
#define NV096_SET_BEGIN_END4_OP                                                  31:0
#define NV096_SET_BEGIN_END4_OP_END                                        0x00000000
#define NV096_SET_BEGIN_END4_OP_POINTS                                     0x00000001
#define NV096_SET_BEGIN_END4_OP_LINES                                      0x00000002
#define NV096_SET_BEGIN_END4_OP_LINE_LOOP                                  0x00000003
#define NV096_SET_BEGIN_END4_OP_LINE_STRIP                                 0x00000004
#define NV096_SET_BEGIN_END4_OP_TRIANGLES                                  0x00000005
#define NV096_SET_BEGIN_END4_OP_TRIANGLE_STRIP                             0x00000006
#define NV096_SET_BEGIN_END4_OP_TRIANGLE_FAN                               0x00000007
#define NV096_SET_BEGIN_END4_OP_QUADS                                      0x00000008
#define NV096_SET_BEGIN_END4_OP_QUAD_STRIP                                 0x00000009
#define NV096_SET_BEGIN_END4_OP_POLYGON                                    0x0000000A


#define NV096_INLINE_ARRAY(i)                                      (0x00001800+(i)*4)



typedef NvV32 Nv1196Typedef;


/* class NV11_CELSIUS_PRIMITIVE */
#define  NV11_CELSIUS_PRIMITIVE                                    (0x00001196)
/* NvNotification[] elements */
#define NV1196_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV1196_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV1196_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV1196_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV1196_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV1196_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV1196_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
typedef volatile struct {
    // system method
    NvV32 ctx_Switch;
    NvV32 Reserved0004[0xfc/4];
    NvV32 NoOperation;
    NvV32 Notify;
    NvV32 SetWarningEnable;
    NvV32 GetState;
    NvV32 WaitForIdle;
    NvV32 Reserved0114[0xc/4];
    NvV32 SetFlipRead;
    NvV32 SetFlipWrite;
    NvV32 SetFlipModulo;
    NvV32 FlipIncrementWrite;
    NvV32 FlipStall;
    NvV32 Reserved0134[0xc/4];
    NvV32 PmTrigger;
    NvV32 Reserved0144[0x3c/4];
    NvU32 SetContextDmaNotifies;
    NvU32 SetContextDmaA;
    NvU32 SetContextDmaB;
    NvU32 SetContextDmaVertex;
    NvU32 SetContextDmaState;
    NvU32 SetContextDmaColor;
    NvU32 SetContextDmaZeta;
    NvV32 Reserved019c[0x64/4];
    NvV32 SetSurfaceClipHorizontal;
    NvV32 SetSurfaceClipVertical;
    NvV32 SetSurfaceFormat;
    NvV32 SetSurfacePitch;
    NvU32 SetSurfaceColorOffset;
    NvU32 SetSurfaceZetaOffset;
    NvU32 SetTextureOffset[2];
    NvV32 SetTextureFormat[2];
    NvV32 SetTextureControl0[2];
    NvV32 SetTextureControl1[2];
    NvV32 SetTextureControl2[2];
    NvV32 SetTextureImageRect[2];
    NvV32 SetTextureFilter[2];
    NvV32 SetTexturePalette[2];
    NvV32 Reserved0258[0x8/4];
    NvV32 SetCombinerAlphaICW[2];
    NvV32 SetCombinerColorICW[2];
    NvV32 SetCombineFactor[2];
    NvV32 SetCombinerAlphaOCW[2];
    NvV32 SetCombiner0ColorOCW;
    NvV32 SetCombiner1ColorOCW;
    NvV32 SetCombinerSpecularFogCW0;
    NvV32 SetCombinerSpecularFogCW1;
    NvV32 SetControl0;
    NvV32 SetLightControl;
    NvV32 SetColorMaterial;
    NvV32 SetFogMode;
    NvV32 SetFogGenMode;
    NvV32 SetFogEnable;
    NvV32 SetFogColor;
    NvU32 SetColorKeyColor[2];
    NvV32 SetWindowClipType;
    NvV32 Reserved02b8[0x8/4];
    NvV32 SetWindowClipHorizontal[8];
    NvV32 SetWindowClipVertical[8];
    NvV32 SetAlphaTestEnable;
    NvV32 SetBlendEnable;
    NvV32 SetCullFaceEnable;
    NvV32 SetDepthTestEnable;
    NvV32 SetDitherEnable;
    NvV32 SetLightingEnable;
    NvV32 SetPointParamsEnable;
    NvV32 SetPointSmoothEnable;
    NvV32 SetLineSmoothEnable;
    NvV32 SetPolySmoothEnable;
    NvV32 SetSkinEnable;
    NvV32 SetStencilTestEnable;
    NvV32 SetPolyOffsetPointEnable;
    NvV32 SetPolyOffsetLineEnable;
    NvV32 SetPolyOffsetFillEnable;
    NvV32 SetAlphaFunc;
    NvU32 SetAlphaRef;
    NvV32 SetBlendFuncSfactor;
    NvV32 SetBlendFuncDfactor;
    NvU32 SetBlendColor;
    NvV32 SetBlendEquation;
    NvV32 SetDepthFunc;
    NvV32 SetColorMask;
    NvV32 SetDepthMask;
    NvU32 SetStencilMask;
    NvV32 SetStencilFunc;
    NvU32 SetStencilFuncRef;
    NvU32 SetStencilFuncMask;
    NvV32 SetStencilOpFail;
    NvV32 SetStencilOpZfail;
    NvV32 SetStencilOpZpass;
    NvV32 SetShadeMode;
    NvU32 SetLineWidth;
    NvF32 SetPolygonOffsetScaleFactor;
    NvF32 SetPolygonOffsetBias;
    NvV32 SetFrontPolygonMode;
    NvV32 SetBackPolygonMode;
    NvF32 SetClipMin;
    NvF32 SetClipMax;
    NvV32 SetCullFace;
    NvV32 SetFrontFace;
    NvV32 SetNormalizationEnable;
    NvF32 SetMaterialEmission[3];
    NvF32 SetMaterialAlpha;
    NvV32 SetSpecularEnable;
    NvV32 SetLightEnableMask;
    struct {
    NvV32 S;
    NvV32 T;
    NvV32 R;
    NvV32 Q;
    } SetTexgen[2];
    NvV32 SetTextureMatrix0Enable;
    NvV32 SetTextureMatrix1Enable;
    NvV32 SetTLMode;
    NvU32 SetPointSize;
    NvV32 SetSwathWidth;
    NvV32 SetFlatShadeOp;
    NvV32 Reserved03f8[0x8/4];
    NvF32 SetModelViewMatrix0[16];
    NvF32 SetModelViewMatrix1[16];
    NvF32 SetInverseModelViewMatrix0[16];
    NvF32 SetInverseModelViewMatrix1[16];
    NvF32 SetCompositeMatrix[16];
    NvF32 SetTextureMatrix0[16];
    NvF32 SetTextureMatrix1[16];
    NvV32 Reserved05c0[0x40/4];
    NvF32 SetTexgenSPlane0[4];
    NvF32 SetTexgenTPlane0[4];
    NvF32 SetTexgenRPlane0[4];
    NvF32 SetTexgenQPlane0[4];
    NvF32 SetTexgenSPlane1[4];
    NvF32 SetTexgenTPlane1[4];
    NvF32 SetTexgenRPlane1[4];
    NvF32 SetTexgenQPlane1[4];
    NvF32 SetFogParams[3];
    NvF32 SetFogPlane[4];
    NvV32 Reserved069c[0x4/4];
    NvF32 SetSpecularParams[6];
    NvV32 Reserved06b8[0xc/4];
    NvF32 SetSceneAmbientColor[3];
    NvV32 Reserved06d0[0x18/4];
    NvF32 SetViewportOffset[4];
    NvF32 SetPointParams[8];
    NvF32 SetEyePosition[4];
    NvV32 Flush;
    NvF32 SetEyeDirectionSW[3];
    NvV32 Reserved0738[0xc8/4];
    struct {
    NvF32 AmbientColor[3];
    NvF32 DiffuseColor[3];
    NvF32 SpecularColor[3];
    NvF32 LocalRange;
    NvF32 InfiniteHalfVector[3];
    NvF32 InfiniteDirection[3];
    NvF32 SpotFalloff[3];
    NvF32 SpotDirection[4];
    NvF32 LocalPosition[3];
    NvF32 LocalAttenuation[3];
    NvV32 Reserved0874[0xc/4];
    } SetLight[8];
    NvF32 SetVertex3f[3];
    NvV32 Reserved0c0c[0xc/4];
    NvF32 SetVertex4f[4];
    NvS32 SetVertex4s[2];
    NvF32 SetNormal3f[3];
    NvV32 Reserved0c3c[0x4/4];
    NvS32 SetNormal3s[2];
    NvV32 Reserved0c48[0x8/4];
    NvF32 SetDiffuseColor4f[4];
    NvF32 SetDiffuseColor3f[3];
    NvU32 SetDiffuseColor4ub;
    NvF32 SetSpecularColor4f[4];
    NvF32 SetSpecularColor3f[3];
    NvU32 SetSpecularColor4ub;
    NvF32 SetTexcoord0_2f[2];
    NvS32 SetTexcoord0_2s;
    NvV32 Reserved0c9c[0x4/4];
    NvF32 SetTexcoord0_4f[4];
    NvS32 SetTexcoord0_4s[2];
    NvF32 SetTexcoord1_2f[2];
    NvS32 SetTexcoord1_2s;
    NvV32 Reserved0cc4[0x4/4];
    NvF32 SetTexcoord1_4f[4];
    NvS32 SetTexcoord1_4s[2];
    NvF32 SetFog1f;
    NvF32 SetWeight1f;
    NvV32 Reserved0ce8[0x4/4];
    NvU32 SetEdgeFlag;
    NvV32 InvalidateVertexCacheFile;
    NvV32 InvalidateVertexFile;
    NvV32 TlNop;
    NvV32 TlSync;
    NvU32 SetVertexArrayOffset;
    NvV32 SetVertexArrayFormat;
    NvU32 SetDiffuseArrayOffset;
    NvV32 SetDiffuseArrayFormat;
    NvU32 SetSpecularArrayOffset;
    NvV32 SetSpecularArrayFormat;
    NvU32 SetTexCoord0ArrayOffset;
    NvV32 SetTexCoord0ArrayFormat;
    NvU32 SetTexCoord1ArrayOffset;
    NvV32 SetTexCoord1ArrayFormat;
    NvU32 SetNormalArrayOffset;
    NvV32 SetNormalArrayFormat;
    NvU32 SetWeightArrayOffset;
    NvV32 SetWeightArrayFormat;
    NvU32 SetFogArrayOffset;
    NvV32 SetFogArrayFormat;
    NvV32 SetLogicOpEnable;
    NvV32 SetLogicOp;
    NvV32 Reserved0d48[0xb4/4];
    NvV32 SetBeginEnd;
    NvV32 ArrayElement16[128];
    NvV32 Reserved1000[0xfc/4];
    NvV32 SetBeginEnd2;
    NvU32 ArrayElement32[64];
    NvV32 Reserved1200[0x1fc/4];
    NvV32 SetBeginEnd3;
    NvV32 DrawArrays[128];
    NvV32 DebugInit[10];
    NvV32 SetMaterialEmissionSW[3];
    NvV32 Reserved1634[1];
    NvF32 SetViewportOffsetSW[4];
    NvF32 SetPassthruViewportOffsetSW[4];
    NvV32 Reserved1648[0x1a4/4];
    NvV32 SetBeginEnd4;
    NvU32 InlineArray[512];
} Nv11CelsiusPrimitive;

#define NV1196_TYPEDEF                                      Nv11CelsiusPrimitive
#define NV1196_SET_OBJECT                                          (0x00000000)

#define NV1196_NO_OPERATION                                                0x00000100
#define NV1196_NO_OPERATION_V                                                    31:0

#define NV1196_FLUSH                                                       0x00000728
#define NV1196_FLUSH_V                                                           31:0

#define NV1196_NOTIFY                                                      0x00000104
#define NV1196_NOTIFY_TYPE                                                       31:0
#define NV1196_NOTIFY_TYPE_WRITE_ONLY                                      0x00000000
#define NV1196_NOTIFY_TYPE_WRITE_THEN_AWAKEN                               0x00000001

#define NV1196_SET_WARNING_ENABLE                                          0x00000108
#define NV1196_SET_WARNING_ENABLE_V                                              31:0
#define NV1196_SET_WARNING_ENABLE_V_STOP                                   0x00000000
#define NV1196_SET_WARNING_ENABLE_V_WRITE_ONLY                             0x00000001
#define NV1196_SET_WARNING_ENABLE_V_WRITE_THEN_AWAKEN                      0x00000002

#define NV1196_GET_STATE                                                   0x0000010c
#define NV1196_GET_STATE_GETSTATE                                                31:0
#define NV1196_GET_STATE_GETSTATE_ALL_STATE                                0x00000001
#define NV1196_GET_STATE_GETSTATE_TRANSFORMLIGHTING_STATE                  0x00000002
#define NV1196_GET_STATE_GETSTATE_RENDERING_STATE                          0x00000003
#define NV1196_GET_STATE_GETSTATE_GEOMETRY_STATE                           0x00000004

#define NV1196_WAIT_FOR_IDLE                                               0x00000110
#define NV1196_WAIT_FOR_IDLE_V                                                   31:0

#define NV1196_PM_TRIGGER                                                  0x00000140
#define NV1196_PM_TRIGGER_V                                                      31:0
#define NV1196_PM_TRIGGER_V_NOP                                            0x00000000
#define NV1196_PM_TRIGGER_V_TRIGGER                                        0x00000001

#define NV1196_SET_FLIP_READ                                               0x00000120
#define NV1196_SET_FLIP_WRITE                                              0x00000124
#define NV1196_SET_FLIP_MODULO                                             0x00000128
#define NV1196_FLIP_INCREMENT_WRITE                                        0x0000012c
#define NV1196_FLIP_STALL                                                  0x00000130

#define NV1196_SET_CONTEXT_DMA_NOTIFIES                                    0x00000180
#define NV1196_SET_CONTEXT_DMA_NOTIFIES_V                                        31:0

#define NV1196_SET_CONTEXT_DMA_A                                           0x00000184
#define NV1196_SET_CONTEXT_DMA_A_V                                               31:0

#define NV1196_SET_CONTEXT_DMA_B                                           0x00000188
#define NV1196_SET_CONTEXT_DMA_B_V                                               31:0

#define NV1196_SET_CONTEXT_DMA_VERTEX                                      0x0000018c
#define NV1196_SET_CONTEXT_DMA_VERTEX_V                                          31:0

#define NV1196_SET_CONTEXT_DMA_STATE                                       0x00000190
#define NV1196_SET_CONTEXT_DMA_STATE_V                                           31:0

#define NV1196_SET_CONTEXT_DMA_COLOR                                       0x00000194
#define NV1196_SET_CONTEXT_DMA_COLOR_V                                           31:0

#define NV1196_SET_CONTEXT_DMA_ZETA                                        0x00000198
#define NV1196_SET_CONTEXT_DMA_ZETA_V                                            31:0

#define NV1196_SET_SURFACE_CLIP_HORIZONTAL                                 0x00000200
#define NV1196_SET_SURFACE_CLIP_HORIZONTAL_X                                     15:0
#define NV1196_SET_SURFACE_CLIP_HORIZONTAL_WIDTH                                31:16

#define NV1196_SET_SURFACE_CLIP_VERTICAL                                   0x00000204
#define NV1196_SET_SURFACE_CLIP_VERTICAL_Y                                       15:0
#define NV1196_SET_SURFACE_CLIP_VERTICAL_HEIGHT                                 31:16

#define NV1196_SET_SURFACE_FORMAT                                          0x00000208
#define NV1196_SET_SURFACE_FORMAT_COLOR                                           7:0
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5               0x00000001
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5               0x00000002
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_R5G6B5                          0x00000003
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8               0x00000004
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8               0x00000005
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8           0x00000006
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8           0x00000007
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_A8R8G8B8                        0x00000008
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_B8                              0x00000009
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_G8B8                            0x0000000A
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_X1R5G5B5_Z1R5G5B5           0x00000011
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_X1R5G5B5_O1R5G5B5           0x00000012
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_R5G6B5                      0x00000013
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_X8R8G8B8_Z8R8G8B8           0x00000014
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_X8R8G8B8_O8R8G8B8           0x00000015
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_X1A7R8G8B8_Z1A7R8G8B8       0x00000016
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_X1A7R8G8B8_O1A7R8G8B8       0x00000017
#define NV1196_SET_SURFACE_FORMAT_COLOR_LE_Z16_A8R8G8B8                    0x00000018
#define NV1196_SET_SURFACE_FORMAT_TYPE                                           15:8
#define NV1196_SET_SURFACE_FORMAT_TYPE_PITCH                               0x00000001
#define NV1196_SET_SURFACE_FORMAT_TYPE_SWIZZLE                             0x00000002
#define NV1196_SET_SURFACE_FORMAT_WIDTH                                         23:16
#define NV1196_SET_SURFACE_FORMAT_WIDTH_1                                  0x00000000
#define NV1196_SET_SURFACE_FORMAT_WIDTH_2                                  0x00000001
#define NV1196_SET_SURFACE_FORMAT_WIDTH_4                                  0x00000002
#define NV1196_SET_SURFACE_FORMAT_WIDTH_8                                  0x00000003
#define NV1196_SET_SURFACE_FORMAT_WIDTH_16                                 0x00000004
#define NV1196_SET_SURFACE_FORMAT_WIDTH_32                                 0x00000005
#define NV1196_SET_SURFACE_FORMAT_WIDTH_64                                 0x00000006
#define NV1196_SET_SURFACE_FORMAT_WIDTH_128                                0x00000007
#define NV1196_SET_SURFACE_FORMAT_WIDTH_256                                0x00000008
#define NV1196_SET_SURFACE_FORMAT_WIDTH_512                                0x00000009
#define NV1196_SET_SURFACE_FORMAT_WIDTH_1024                               0x0000000A
#define NV1196_SET_SURFACE_FORMAT_WIDTH_2048                               0x0000000B
#define NV1196_SET_SURFACE_FORMAT_HEIGHT                                        31:24
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_1                                 0x00000000
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_2                                 0x00000001
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_4                                 0x00000002
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_8                                 0x00000003
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_16                                0x00000004
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_32                                0x00000005
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_64                                0x00000006
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_128                               0x00000007
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_256                               0x00000008
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_512                               0x00000009
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_1024                              0x0000000A
#define NV1196_SET_SURFACE_FORMAT_HEIGHT_2048                              0x0000000B

#define NV1196_SET_SURFACE_PITCH                                           0x0000020c
#define NV1196_SET_SURFACE_PITCH_COLOR                                           15:0
#define NV1196_SET_SURFACE_PITCH_ZETA                                           31:16

#define NV1196_SET_SURFACE_COLOR_OFFSET                                    0x00000210
#define NV1196_SET_SURFACE_COLOR_OFFSET_V                                        31:0

#define NV1196_SET_SURFACE_ZETA_OFFSET                                     0x00000214
#define NV1196_SET_SURFACE_ZETA_OFFSET_V                                         31:0

#define NV1196_SET_TEXTURE_OFFSET(i)                               (0x00000218+(i)*4)
#define NV1196_SET_TEXTURE_OFFSET_V                                              31:0

#define NV1196_SET_TEXTURE_FORMAT(i)                               (0x00000220+(i)*4)
#define NV1196_SET_TEXTURE_FORMAT_CONTEXT_DMA                                     1:0
#define NV1196_SET_TEXTURE_FORMAT_CONTEXT_DMA_A                            0x00000001
#define NV1196_SET_TEXTURE_FORMAT_CONTEXT_DMA_B                            0x00000002
#define NV1196_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE                                  2:2
#define NV1196_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_FALSE                     0x00000000
#define NV1196_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_TRUE                      0x00000001
#define NV1196_SET_TEXTURE_FORMAT_ORIGIN_ZOH                                      4:3
#define NV1196_SET_TEXTURE_FORMAT_ORIGIN_ZOH_CENTER                        0x00000001
#define NV1196_SET_TEXTURE_FORMAT_ORIGIN_ZOH_CORNER                        0x00000002
#define NV1196_SET_TEXTURE_FORMAT_ORIGIN_FOH                                      6:5
#define NV1196_SET_TEXTURE_FORMAT_ORIGIN_FOH_CENTER                        0x00000001
#define NV1196_SET_TEXTURE_FORMAT_ORIGIN_FOH_CORNER                        0x00000002
#define NV1196_SET_TEXTURE_FORMAT_COLOR                                          11:7
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_Y8                              0x00000000
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_AY8                             0x00000001
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_A1R5G5B5                        0x00000002
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_X1R5G5B5                        0x00000003
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_A4R4G4B4                        0x00000004
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_R5G6B5                          0x00000005
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_A8R8G8B8                        0x00000006
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_X8R8G8B8                        0x00000007
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_I8_A1R5G5B5                     0x00000008
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_I8_R5G6B5                       0x00000009
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_I8_A4R4G4B4                     0x0000000A
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_I8_A8R8G8B8                     0x0000000B
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_DXT1_A1R5G5B5                   0x0000000C
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_DXT23_A8R8G8B8                  0x0000000E
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_DXT45_A8R8G8B8                  0x0000000F
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_A1R5G5B5                  0x00000010
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_R5G6B5                    0x00000011
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_A8R8G8B8                  0x00000012
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_Y8                        0x00000013
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_SY8                       0x00000014
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_X7SY9                     0x00000015
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_R8B8                      0x00000016
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_G8B8                      0x00000017
#define NV1196_SET_TEXTURE_FORMAT_COLOR_LE_IMAGE_SG8SB8                    0x00000018
#define NV1196_SET_TEXTURE_FORMAT_MIPMAP_LEVELS                                 15:12
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U                                   19:16
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_1                            0x00000000
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_2                            0x00000001
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_4                            0x00000002
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_8                            0x00000003
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_16                           0x00000004
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_32                           0x00000005
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_64                           0x00000006
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_128                          0x00000007
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_256                          0x00000008
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_512                          0x00000009
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_1024                         0x0000000A
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_U_2048                         0x0000000B
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V                                   23:20
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_1                            0x00000000
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_2                            0x00000001
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_4                            0x00000002
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_8                            0x00000003
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_16                           0x00000004
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_32                           0x00000005
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_64                           0x00000006
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_128                          0x00000007
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_256                          0x00000008
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_512                          0x00000009
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_1024                         0x0000000A
#define NV1196_SET_TEXTURE_FORMAT_BASE_SIZE_V_2048                         0x0000000B
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSU                               26:24
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_WRAP                     0x00000001
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_MIRROR                   0x00000002
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSU_CLAMP                    0x00000003
#define NV1196_SET_TEXTURE_FORMAT_WRAPU                                         27:27
#define NV1196_SET_TEXTURE_FORMAT_WRAPU_FALSE                              0x00000000
#define NV1196_SET_TEXTURE_FORMAT_WRAPU_TRUE                               0x00000001
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSV                               30:28
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_WRAP                     0x00000001
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_MIRROR                   0x00000002
#define NV1196_SET_TEXTURE_FORMAT_TEXTUREADDRESSV_CLAMP                    0x00000003
#define NV1196_SET_TEXTURE_FORMAT_WRAPV                                         31:31
#define NV1196_SET_TEXTURE_FORMAT_WRAPV_FALSE                              0x00000000
#define NV1196_SET_TEXTURE_FORMAT_WRAPV_TRUE                               0x00000001

#define NV1196_SET_TEXTURE_CONTROL0(i)                             (0x00000228+(i)*4)
#define NV1196_SET_TEXTURE_CONTROL0_ENABLE                                      31:30
#define NV1196_SET_TEXTURE_CONTROL0_ENABLE_FALSE                           0x00000000
#define NV1196_SET_TEXTURE_CONTROL0_ENABLE_TRUE                            0x00000001
#define NV1196_SET_TEXTURE_CONTROL0_MIN_LOD_CLAMP                               29:18
#define NV1196_SET_TEXTURE_CONTROL0_MAX_LOD_CLAMP                                17:6
#define NV1196_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO                                 5:4
#define NV1196_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_0                        0x00000000
#define NV1196_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_1                        0x00000001
#define NV1196_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE                            3:3
#define NV1196_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_FALSE               0x00000000
#define NV1196_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_TRUE                0x00000001
#define NV1196_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE                             2:2
#define NV1196_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_FALSE                0x00000000
#define NV1196_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_TRUE                 0x00000001
#define NV1196_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION                           1:0
#define NV1196_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_FALSE              0x00000000
#define NV1196_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_ALPHA              0x00000001
#define NV1196_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_RGBA               0x00000002
#define NV1196_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_KILL               0x00000003

#define NV1196_SET_TEXTURE_CONTROL1(i)                             (0x00000230+(i)*4)
#define NV1196_SET_TEXTURE_CONTROL1_IMAGE_PITCH                                 31:16

#define NV1196_SET_TEXTURE_CONTROL2(i)                             (0x00000238+(i)*4)
#define NV1196_SET_TEXTURE_CONTROL2_PERTURB_DU                                   11:0
#define NV1196_SET_TEXTURE_CONTROL2_PERTURB_DV                                  23:12
#define NV1196_SET_TEXTURE_CONTROL2_IMAGE_LODF                                  31:24

#define NV1196_SET_TEXTURE_IMAGE_RECT(i)                           (0x00000240+(i)*4)
#define NV1196_SET_TEXTURE_IMAGE_RECT_WIDTH                                     31:16
#define NV1196_SET_TEXTURE_IMAGE_RECT_HEIGHT                                     15:0

#define NV1196_SET_TEXTURE_FILTER(i)                               (0x00000248+(i)*4)
#define NV1196_SET_TEXTURE_FILTER_MIPMAPLODBIAS                                  12:0
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMIN                                    27:24
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMIN_NEAREST                       0x00000001
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMIN_LINEAR                        0x00000002
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMIN_MIPNEAREST                    0x00000003
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMIN_MIPLINEAR                     0x00000004
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMIN_LINEARMIPNEAREST              0x00000005
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMIN_LINEARMIPLINEAR               0x00000006
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMAG                                    31:28
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMAG_NEAREST                       0x00000001
#define NV1196_SET_TEXTURE_FILTER_TEXTUREMAG_LINEAR                        0x00000002

#define NV1196_SET_TEXTURE_PALETTE(i)                              (0x00000250+(i)*4)
#define NV1196_SET_TEXTURE_PALETTE_CONTEXT_DMA                                    5:0
#define NV1196_SET_TEXTURE_PALETTE_CONTEXT_DMA_A                           0x00000000
#define NV1196_SET_TEXTURE_PALETTE_CONTEXT_DMA_B                           0x00000001
#define NV1196_SET_TEXTURE_PALETTE_PALETTE_OFFSET                                31:6

#define NV1196_SET_COMBINER_ALPHA_ICW(i)                           (0x00000260+(i)*4)
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP                                     31:29
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_ALPHA_ICW_A_ALPHA                                   28:28
#define NV1196_SET_COMBINER_ALPHA_ICW_A_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_A_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE                                  27:24
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_D                       0x0000000D
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP                                     23:21
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_ALPHA_ICW_B_ALPHA                                   20:20
#define NV1196_SET_COMBINER_ALPHA_ICW_B_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_B_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE                                  19:16
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_D                       0x0000000D
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP                                     15:13
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_ALPHA_ICW_C_ALPHA                                   12:12
#define NV1196_SET_COMBINER_ALPHA_ICW_C_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_C_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE                                   11:8
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_D                       0x0000000D
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP                                       7:5
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_ALPHA_ICW_D_ALPHA                                     4:4
#define NV1196_SET_COMBINER_ALPHA_ICW_D_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_D_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE                                    3:0
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_D                       0x0000000D

#define NV1196_SET_COMBINER_COLOR_ICW(i)                           (0x00000268+(i)*4)
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP                                     31:29
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_COLOR_ICW_A_ALPHA                                   28:28
#define NV1196_SET_COMBINER_COLOR_ICW_A_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_A_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE                                  27:24
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_D                       0x0000000D
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP                                     23:21
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_COLOR_ICW_B_ALPHA                                   20:20
#define NV1196_SET_COMBINER_COLOR_ICW_B_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_B_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE                                  19:16
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_D                       0x0000000D
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP                                     15:13
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_COLOR_ICW_C_ALPHA                                   12:12
#define NV1196_SET_COMBINER_COLOR_ICW_C_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_C_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE                                   11:8
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_D                       0x0000000D
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP                                       7:5
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_IDENTITY              0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_INVERT                0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NORMAL                  0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NEGATE                  0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NORMAL                0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NEGATE                0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_IDENTITY                0x00000006
#define NV1196_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_NEGATE                  0x00000007
#define NV1196_SET_COMBINER_COLOR_ICW_D_ALPHA                                     4:4
#define NV1196_SET_COMBINER_COLOR_ICW_D_ALPHA_FALSE                        0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_D_ALPHA_TRUE                         0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE                                    3:0
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_0                       0x00000000
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_1                       0x00000001
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_2                       0x00000002
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_3                       0x00000003
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_4                       0x00000004
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_5                       0x00000005
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_8                       0x00000008
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_9                       0x00000009
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_C                       0x0000000C
#define NV1196_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_D                       0x0000000D

#define NV1196_SET_COMBINE_FACTOR(i)                               (0x00000270+(i)*4)
#define NV1196_SET_COMBINE_FACTOR_BLUE                                            7:0
#define NV1196_SET_COMBINE_FACTOR_GREEN                                          15:8
#define NV1196_SET_COMBINE_FACTOR_RED                                           23:16
#define NV1196_SET_COMBINE_FACTOR_ALPHA                                         31:24

#define NV1196_SET_COMBINER_ALPHA_OCW(i)                           (0x00000278+(i)*4)
#define NV1196_SET_COMBINER_ALPHA_OCW_OPERATION                                 31:15
#define NV1196_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT                    0x00000000
#define NV1196_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT_BIAS               0x00000001
#define NV1196_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1               0x00000002
#define NV1196_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1_BIAS          0x00000003
#define NV1196_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY2               0x00000004
#define NV1196_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTRIGHTBY1              0x00000006
#define NV1196_SET_COMBINER_ALPHA_OCW_MUX_ENABLE                                14:14
#define NV1196_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_FALSE                     0x00000000
#define NV1196_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_TRUE                      0x00000001
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST                                    11:8
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_0                        0x00000000
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_4                        0x00000004
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_5                        0x00000005
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_8                        0x00000008
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_9                        0x00000009
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_C                        0x0000000C
#define NV1196_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_D                        0x0000000D
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST                                      7:4
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST_REG_0                         0x00000000
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST_REG_4                         0x00000004
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST_REG_5                         0x00000005
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST_REG_8                         0x00000008
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST_REG_9                         0x00000009
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST_REG_C                         0x0000000C
#define NV1196_SET_COMBINER_ALPHA_OCW_AB_DST_REG_D                         0x0000000D
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST                                      3:0
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST_REG_0                         0x00000000
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST_REG_4                         0x00000004
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST_REG_5                         0x00000005
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST_REG_8                         0x00000008
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST_REG_9                         0x00000009
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST_REG_C                         0x0000000C
#define NV1196_SET_COMBINER_ALPHA_OCW_CD_DST_REG_D                         0x0000000D

#define NV1196_SET_COMBINER0_COLOR_OCW                                     0x00000280
#define NV1196_SET_COMBINER0_COLOR_OCW_OPERATION                                31:15
#define NV1196_SET_COMBINER0_COLOR_OCW_OPERATION_NOSHIFT                   0x00000000
#define NV1196_SET_COMBINER0_COLOR_OCW_OPERATION_NOSHIFT_BIAS              0x00000001
#define NV1196_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY1              0x00000002
#define NV1196_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY1_BIAS         0x00000003
#define NV1196_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTLEFTBY2              0x00000004
#define NV1196_SET_COMBINER0_COLOR_OCW_OPERATION_SHIFTRIGHTBY1             0x00000006
#define NV1196_SET_COMBINER0_COLOR_OCW_MUX_ENABLE                               14:14
#define NV1196_SET_COMBINER0_COLOR_OCW_MUX_ENABLE_FALSE                    0x00000000
#define NV1196_SET_COMBINER0_COLOR_OCW_MUX_ENABLE_TRUE                     0x00000001
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE                            13:13
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE_FALSE                 0x00000000
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DOT_ENABLE_TRUE                  0x00000001
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE                            12:12
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE_FALSE                 0x00000000
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DOT_ENABLE_TRUE                  0x00000001
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST                                   11:8
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_0                       0x00000000
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_4                       0x00000004
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_5                       0x00000005
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_8                       0x00000008
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_9                       0x00000009
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_C                       0x0000000C
#define NV1196_SET_COMBINER0_COLOR_OCW_SUM_DST_REG_D                       0x0000000D
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST                                     7:4
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST_REG_0                        0x00000000
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST_REG_4                        0x00000004
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST_REG_5                        0x00000005
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST_REG_8                        0x00000008
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST_REG_9                        0x00000009
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST_REG_C                        0x0000000C
#define NV1196_SET_COMBINER0_COLOR_OCW_AB_DST_REG_D                        0x0000000D
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST                                     3:0
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST_REG_0                        0x00000000
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST_REG_4                        0x00000004
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST_REG_5                        0x00000005
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST_REG_8                        0x00000008
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST_REG_9                        0x00000009
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST_REG_C                        0x0000000C
#define NV1196_SET_COMBINER0_COLOR_OCW_CD_DST_REG_D                        0x0000000D

#define NV1196_SET_COMBINER1_COLOR_OCW                                     0x00000284
#define NV1196_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT                          31:28
#define NV1196_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT_ONE                 0x00000001
#define NV1196_SET_COMBINER1_COLOR_OCW_ITERATION_COUNT_TWO                 0x00000002
#define NV1196_SET_COMBINER1_COLOR_OCW_MUX_SELECT                               27:27
#define NV1196_SET_COMBINER1_COLOR_OCW_MUX_SELECT_LSB                      0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_MUX_SELECT_MSB                      0x00000001
#define NV1196_SET_COMBINER1_COLOR_OCW_OPERATION                                26:15
#define NV1196_SET_COMBINER1_COLOR_OCW_OPERATION_NOSHIFT                   0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_OPERATION_NOSHIFT_BIAS              0x00000001
#define NV1196_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY1              0x00000002
#define NV1196_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY1_BIAS         0x00000003
#define NV1196_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTLEFTBY2              0x00000004
#define NV1196_SET_COMBINER1_COLOR_OCW_OPERATION_SHIFTRIGHTBY1             0x00000006
#define NV1196_SET_COMBINER1_COLOR_OCW_MUX_ENABLE                               14:14
#define NV1196_SET_COMBINER1_COLOR_OCW_MUX_ENABLE_FALSE                    0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_MUX_ENABLE_TRUE                     0x00000001
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE                            13:13
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE_FALSE                 0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DOT_ENABLE_TRUE                  0x00000001
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE                            12:12
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE_FALSE                 0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DOT_ENABLE_TRUE                  0x00000001
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST                                   11:8
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_0                       0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_4                       0x00000004
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_5                       0x00000005
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_8                       0x00000008
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_9                       0x00000009
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_C                       0x0000000C
#define NV1196_SET_COMBINER1_COLOR_OCW_SUM_DST_REG_D                       0x0000000D
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST                                     7:4
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST_REG_0                        0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST_REG_4                        0x00000004
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST_REG_5                        0x00000005
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST_REG_8                        0x00000008
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST_REG_9                        0x00000009
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST_REG_C                        0x0000000C
#define NV1196_SET_COMBINER1_COLOR_OCW_AB_DST_REG_D                        0x0000000D
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST                                     3:0
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST_REG_0                        0x00000000
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST_REG_4                        0x00000004
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST_REG_5                        0x00000005
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST_REG_8                        0x00000008
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST_REG_9                        0x00000009
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST_REG_C                        0x0000000C
#define NV1196_SET_COMBINER1_COLOR_OCW_CD_DST_REG_D                        0x0000000D

#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0                               0x00000288
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE                          31:29
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_FALSE               0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_TRUE                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA                            28:28
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_FALSE                 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_TRUE                  0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE                           27:24
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_0                0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_1                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_2                0x00000002
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_3                0x00000003
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_4                0x00000004
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_5                0x00000005
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_8                0x00000008
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_9                0x00000009
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_C                0x0000000C
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_D                0x0000000D
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_SPECLIT          0x0000000E
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_EF_PROD          0x0000000F
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE                          23:21
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_FALSE               0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_TRUE                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA                            20:20
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_FALSE                 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_TRUE                  0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE                           19:16
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_0                0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_1                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_2                0x00000002
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_3                0x00000003
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_4                0x00000004
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_5                0x00000005
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_8                0x00000008
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_9                0x00000009
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_C                0x0000000C
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_D                0x0000000D
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_SPECLIT          0x0000000E
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_EF_PROD          0x0000000F
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE                          15:13
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_FALSE               0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_TRUE                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA                            12:12
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_FALSE                 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_TRUE                  0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE                            11:8
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_0                0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_1                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_2                0x00000002
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_3                0x00000003
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_4                0x00000004
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_5                0x00000005
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_8                0x00000008
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_9                0x00000009
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_C                0x0000000C
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_D                0x0000000D
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_SPECLIT          0x0000000E
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_EF_PROD          0x0000000F
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE                            7:5
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_FALSE               0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_TRUE                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA                              4:4
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_FALSE                 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_TRUE                  0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE                             3:0
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_0                0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_1                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_2                0x00000002
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_3                0x00000003
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_4                0x00000004
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_5                0x00000005
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_8                0x00000008
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_9                0x00000009
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_C                0x0000000C
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_D                0x0000000D
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_SPECLIT          0x0000000E
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_EF_PROD          0x0000000F

#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1                               0x0000028c
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE                          31:29
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_FALSE               0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_TRUE                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA                            28:28
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_FALSE                 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_TRUE                  0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE                           27:24
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_0                0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_1                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_2                0x00000002
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_3                0x00000003
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_4                0x00000004
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_5                0x00000005
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_8                0x00000008
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_9                0x00000009
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_C                0x0000000C
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_D                0x0000000D
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE                          23:21
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_FALSE               0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_TRUE                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA                            20:20
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_FALSE                 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_TRUE                  0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE                           19:16
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_0                0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_1                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_2                0x00000002
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_3                0x00000003
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_4                0x00000004
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_5                0x00000005
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_8                0x00000008
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_9                0x00000009
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_C                0x0000000C
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_D                0x0000000D
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE                          15:13
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_FALSE               0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_TRUE                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA                            12:12
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_FALSE                 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_TRUE                  0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE                            11:8
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_0                0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_1                0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_2                0x00000002
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_3                0x00000003
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_4                0x00000004
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_5                0x00000005
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_8                0x00000008
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_9                0x00000009
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_C                0x0000000C
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_D                0x0000000D
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP                       7:7
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_FALSE          0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_TRUE           0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5               6:6
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_FALSE  0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_TRUE   0x00000001
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12              5:0
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_FALSE 0x00000000
#define NV1196_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_TRUE  0x00000020

#define NV1196_SET_CONTROL0                                                0x00000290
#define NV1196_SET_CONTROL0_PREMULTIPLIEDALPHA                                  31:24
#define NV1196_SET_CONTROL0_PREMULTIPLIEDALPHA_FALSE                       0x00000000
#define NV1196_SET_CONTROL0_PREMULTIPLIEDALPHA_TRUE                        0x00000001
#define NV1196_SET_CONTROL0_TEXTUREPERSPECTIVE                                  23:20
#define NV1196_SET_CONTROL0_TEXTUREPERSPECTIVE_FALSE                       0x00000000
#define NV1196_SET_CONTROL0_TEXTUREPERSPECTIVE_TRUE                        0x00000001
#define NV1196_SET_CONTROL0_Z_PERSPECTIVE_ENABLE                                19:16
#define NV1196_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_FALSE                     0x00000000
#define NV1196_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_TRUE                      0x00000001
#define NV1196_SET_CONTROL0_Z_FORMAT                                            15:12
#define NV1196_SET_CONTROL0_Z_FORMAT_FIXED                                 0x00000000
#define NV1196_SET_CONTROL0_Z_FORMAT_FLOAT                                 0x00000001
#define NV1196_SET_CONTROL0_WBUFFER_SELECT                                       11:8
#define NV1196_SET_CONTROL0_WBUFFER_SELECT_0                               0x00000000
#define NV1196_SET_CONTROL0_WBUFFER_SELECT_1                               0x00000001
#define NV1196_SET_CONTROL0_STENCIL_WRITE_ENABLE                                  7:0
#define NV1196_SET_CONTROL0_STENCIL_WRITE_ENABLE_FALSE                     0x00000000
#define NV1196_SET_CONTROL0_STENCIL_WRITE_ENABLE_TRUE                      0x00000001

#define NV1196_SET_LIGHT_CONTROL                                           0x00000294
#define NV1196_SET_LIGHT_CONTROL_LOCALEYE                                       31:16
#define NV1196_SET_LIGHT_CONTROL_LOCALEYE_FALSE                            0x00000000
#define NV1196_SET_LIGHT_CONTROL_LOCALEYE_TRUE                             0x00000001
#define NV1196_SET_LIGHT_CONTROL_ATTENUATION_MODE                                15:2
#define NV1196_SET_LIGHT_CONTROL_ATTENUATION_MODE_INVERT                   0x00000000
#define NV1196_SET_LIGHT_CONTROL_ATTENUATION_MODE_NOT_INVERT               0x00000001
#define NV1196_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN                             1:1
#define NV1196_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_FALSE                0x00000000
#define NV1196_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_TRUE                 0x00000001
#define NV1196_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN                               0:0
#define NV1196_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN_FALSE                  0x00000000
#define NV1196_SET_LIGHT_CONTROL_SECONDARY_COLOR_EN_TRUE                   0x00000001

#define NV1196_SET_COLOR_MATERIAL                                          0x00000298
#define NV1196_SET_COLOR_MATERIAL_V                                              31:0
#define NV1196_SET_COLOR_MATERIAL_V_DISABLED                               0x00000000
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION                               0x00000001
#define NV1196_SET_COLOR_MATERIAL_V_AMBIENT                                0x00000002
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT                       0x00000003
#define NV1196_SET_COLOR_MATERIAL_V_DIFFUSE                                0x00000004
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION_DIFFUSE                       0x00000005
#define NV1196_SET_COLOR_MATERIAL_V_AMBIENT_DIFFUSE                        0x00000006
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_DIFFUSE               0x00000007
#define NV1196_SET_COLOR_MATERIAL_V_SPECULAR                               0x00000008
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION_SPECULAR                      0x00000009
#define NV1196_SET_COLOR_MATERIAL_V_AMBIENT_SPECULAR                       0x0000000A
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_SPECULAR              0x0000000B
#define NV1196_SET_COLOR_MATERIAL_V_DIFFUSE_SPECULAR                       0x0000000C
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION_DIFFUSE_SPECULAR              0x0000000D
#define NV1196_SET_COLOR_MATERIAL_V_AMBIENT_DIFFUSE_SPECULAR               0x0000000E
#define NV1196_SET_COLOR_MATERIAL_V_EMISSION_AMBIENT_DIFFUSE_SPECULAR      0x0000000F

#define NV1196_SET_FOG_MODE                                                0x0000029c
#define NV1196_SET_FOG_MODE_FOG_MODE                                             31:0
#define NV1196_SET_FOG_MODE_FOG_MODE_LINEAR                                0x00002601
#define NV1196_SET_FOG_MODE_FOG_MODE_EXP                                   0x00000800
#define NV1196_SET_FOG_MODE_FOG_MODE_EXP2                                  0x00000801
#define NV1196_SET_FOG_MODE_FOG_MODE_EXP_ABS                               0x00000802
#define NV1196_SET_FOG_MODE_FOG_MODE_EXP2_ABS                              0x00000803

#define NV1196_SET_FOG_GEN_MODE                                            0x000002a0
#define NV1196_SET_FOG_GEN_MODE_FOG_GEN_MODE                                     31:0
#define NV1196_SET_FOG_GEN_MODE_FOG_GEN_MODE_USE_INPUT                     0x00000000
#define NV1196_SET_FOG_GEN_MODE_FOG_GEN_MODE_RADIAL                        0x00000001
#define NV1196_SET_FOG_GEN_MODE_FOG_GEN_MODE_PLANAR                        0x00000002
#define NV1196_SET_FOG_GEN_MODE_FOG_GEN_MODE_ABS_PLANAR                    0x00000003

#define NV1196_SET_FOG_ENABLE                                              0x000002a4
#define NV1196_SET_FOG_ENABLE_V                                                  31:0
#define NV1196_SET_FOG_ENABLE_V_FALSE                                      0x00000000
#define NV1196_SET_FOG_ENABLE_V_TRUE                                       0x00000001

#define NV1196_SET_FOG_COLOR                                               0x000002a8
#define NV1196_SET_FOG_COLOR_RED                                                  7:0
#define NV1196_SET_FOG_COLOR_GREEN                                               15:8
#define NV1196_SET_FOG_COLOR_BLUE                                               23:16
#define NV1196_SET_FOG_COLOR_ALPHA                                              31:24

#define NV1196_SET_COLOR_KEY_COLOR(i)                              (0x000002ac+(i)*4)
#define NV1196_SET_COLOR_KEY_COLOR_V                                             31:0

#define NV1196_SET_WINDOW_CLIP_TYPE                                        0x000002b4
#define NV1196_SET_WINDOW_CLIP_TYPE_V                                            31:0
#define NV1196_SET_WINDOW_CLIP_TYPE_V_INCLUSIVE                            0x00000000
#define NV1196_SET_WINDOW_CLIP_TYPE_V_EXCLUSIVE                            0x00000001

#define NV1196_SET_WINDOW_CLIP_HORIZONTAL(i)                       (0x000002c0+(i)*4)
#define NV1196_SET_WINDOW_CLIP_HORIZONTAL_XMIN                                   11:0
#define NV1196_SET_WINDOW_CLIP_HORIZONTAL_XMAX                                  27:16

#define NV1196_SET_WINDOW_CLIP_VERTICAL(i)                         (0x000002e0+(i)*4)
#define NV1196_SET_WINDOW_CLIP_VERTICAL_YMIN                                     11:0
#define NV1196_SET_WINDOW_CLIP_VERTICAL_YMAX                                    27:16

#define NV1196_SET_ALPHA_TEST_ENABLE                                       0x00000300
#define NV1196_SET_ALPHA_TEST_ENABLE_V                                           31:0
#define NV1196_SET_ALPHA_TEST_ENABLE_V_FALSE                               0x00000000
#define NV1196_SET_ALPHA_TEST_ENABLE_V_TRUE                                0x00000001

#define NV1196_SET_BLEND_ENABLE                                            0x00000304
#define NV1196_SET_BLEND_ENABLE_V                                                31:0
#define NV1196_SET_BLEND_ENABLE_V_FALSE                                    0x00000000
#define NV1196_SET_BLEND_ENABLE_V_TRUE                                     0x00000001

#define NV1196_SET_CULL_FACE_ENABLE                                        0x00000308
#define NV1196_SET_CULL_FACE_ENABLE_V                                            31:0
#define NV1196_SET_CULL_FACE_ENABLE_V_FALSE                                0x00000000
#define NV1196_SET_CULL_FACE_ENABLE_V_TRUE                                 0x00000001

#define NV1196_SET_DEPTH_TEST_ENABLE                                       0x0000030c
#define NV1196_SET_DEPTH_TEST_ENABLE_V                                           31:0
#define NV1196_SET_DEPTH_TEST_ENABLE_V_FALSE                               0x00000000
#define NV1196_SET_DEPTH_TEST_ENABLE_V_TRUE                                0x00000001

#define NV1196_SET_DITHER_ENABLE                                           0x00000310
#define NV1196_SET_DITHER_ENABLE_V                                               31:0
#define NV1196_SET_DITHER_ENABLE_V_FALSE                                   0x00000000
#define NV1196_SET_DITHER_ENABLE_V_TRUE                                    0x00000001

#define NV1196_SET_LIGHTING_ENABLE                                         0x00000314
#define NV1196_SET_LIGHTING_ENABLE_V                                             31:0
#define NV1196_SET_LIGHTING_ENABLE_V_FALSE                                 0x00000000
#define NV1196_SET_LIGHTING_ENABLE_V_TRUE                                  0x00000001

#define NV1196_SET_POINT_PARAMS_ENABLE                                     0x00000318
#define NV1196_SET_POINT_PARAMS_ENABLE_V                                         31:0
#define NV1196_SET_POINT_PARAMS_ENABLE_V_FALSE                             0x00000000
#define NV1196_SET_POINT_PARAMS_ENABLE_V_TRUE                              0x00000001

#define NV1196_SET_POINT_SMOOTH_ENABLE                                     0x0000031c
#define NV1196_SET_POINT_SMOOTH_ENABLE_V                                         31:0
#define NV1196_SET_POINT_SMOOTH_ENABLE_V_FALSE                             0x00000000
#define NV1196_SET_POINT_SMOOTH_ENABLE_V_TRUE                              0x00000001

#define NV1196_SET_LINE_SMOOTH_ENABLE                                      0x00000320
#define NV1196_SET_LINE_SMOOTH_ENABLE_V                                          31:0
#define NV1196_SET_LINE_SMOOTH_ENABLE_V_FALSE                              0x00000000
#define NV1196_SET_LINE_SMOOTH_ENABLE_V_TRUE                               0x00000001

#define NV1196_SET_POLY_SMOOTH_ENABLE                                      0x00000324
#define NV1196_SET_POLY_SMOOTH_ENABLE_V                                          31:0
#define NV1196_SET_POLY_SMOOTH_ENABLE_V_FALSE                              0x00000000
#define NV1196_SET_POLY_SMOOTH_ENABLE_V_TRUE                               0x00000001

#define NV1196_SET_SKIN_ENABLE                                             0x00000328
#define NV1196_SET_SKIN_ENABLE_V                                                 31:0
#define NV1196_SET_SKIN_ENABLE_V_FALSE                                     0x00000000
#define NV1196_SET_SKIN_ENABLE_V_TRUE                                      0x00000001

#define NV1196_SET_STENCIL_TEST_ENABLE                                     0x0000032c
#define NV1196_SET_STENCIL_TEST_ENABLE_V                                         31:0
#define NV1196_SET_STENCIL_TEST_ENABLE_V_FALSE                             0x00000000
#define NV1196_SET_STENCIL_TEST_ENABLE_V_TRUE                              0x00000001

#define NV1196_SET_POLY_OFFSET_POINT_ENABLE                                0x00000330
#define NV1196_SET_POLY_OFFSET_POINT_ENABLE_V                                    31:0
#define NV1196_SET_POLY_OFFSET_POINT_ENABLE_V_FALSE                        0x00000000
#define NV1196_SET_POLY_OFFSET_POINT_ENABLE_V_TRUE                         0x00000001

#define NV1196_SET_POLY_OFFSET_LINE_ENABLE                                 0x00000334
#define NV1196_SET_POLY_OFFSET_LINE_ENABLE_V                                     31:0
#define NV1196_SET_POLY_OFFSET_LINE_ENABLE_V_FALSE                         0x00000000
#define NV1196_SET_POLY_OFFSET_LINE_ENABLE_V_TRUE                          0x00000001

#define NV1196_SET_POLY_OFFSET_FILL_ENABLE                                 0x00000338
#define NV1196_SET_POLY_OFFSET_FILL_ENABLE_V                                     31:0
#define NV1196_SET_POLY_OFFSET_FILL_ENABLE_V_FALSE                         0x00000000
#define NV1196_SET_POLY_OFFSET_FILL_ENABLE_V_TRUE                          0x00000001

#define NV1196_SET_ALPHA_FUNC                                              0x0000033c
#define NV1196_SET_ALPHA_FUNC_V                                                  31:0
#define NV1196_SET_ALPHA_FUNC_V_NEVER                                      0x00000200
#define NV1196_SET_ALPHA_FUNC_V_LESS                                       0x00000201
#define NV1196_SET_ALPHA_FUNC_V_EQUAL                                      0x00000202
#define NV1196_SET_ALPHA_FUNC_V_LEQUAL                                     0x00000203
#define NV1196_SET_ALPHA_FUNC_V_GREATER                                    0x00000204
#define NV1196_SET_ALPHA_FUNC_V_NOTEQUAL                                   0x00000205
#define NV1196_SET_ALPHA_FUNC_V_GEQUAL                                     0x00000206
#define NV1196_SET_ALPHA_FUNC_V_ALWAYS                                     0x00000207

#define NV1196_SET_ALPHA_REF                                               0x00000340
#define NV1196_SET_ALPHA_REF_V                                                   31:0

#define NV1196_SET_BLEND_FUNC_SFACTOR                                      0x00000344
#define NV1196_SET_BLEND_FUNC_SFACTOR_V                                          31:0
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ZERO                               0x00000000
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ONE                                0x00000001
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_SRC_COLOR                          0x00000300
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_COLOR                0x00000301
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA                          0x00000302
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_ALPHA                0x00000303
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_DST_ALPHA                          0x00000304
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_ALPHA                0x00000305
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_DST_COLOR                          0x00000306
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_COLOR                0x00000307
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA_SATURATE                 0x00000308
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_COLOR                     0x00008001
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_COLOR           0x00008002
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_ALPHA                     0x00008003
#define NV1196_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_ALPHA           0x00008004

#define NV1196_SET_BLEND_FUNC_DFACTOR                                      0x00000348
#define NV1196_SET_BLEND_FUNC_DFACTOR_V                                          31:0
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ZERO                               0x00000000
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ONE                                0x00000001
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_SRC_COLOR                          0x00000300
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_COLOR                0x00000301
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_SRC_ALPHA                          0x00000302
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_ALPHA                0x00000303
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_DST_ALPHA                          0x00000304
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_ALPHA                0x00000305
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_DST_COLOR                          0x00000306
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_COLOR                0x00000307
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_SRC_ALPHA_SATURATE                 0x00000308
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_COLOR                     0x00008001
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_COLOR           0x00008002
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_ALPHA                     0x00008003
#define NV1196_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_ALPHA           0x00008004

#define NV1196_SET_BLEND_COLOR                                             0x0000034c
#define NV1196_SET_BLEND_COLOR_V                                                 31:0

#define NV1196_SET_BLEND_EQUATION                                          0x00000350
#define NV1196_SET_BLEND_EQUATION_V                                              31:0
#define NV1196_SET_BLEND_EQUATION_V_FUNC_SUBTRACT                          0x0000800A
#define NV1196_SET_BLEND_EQUATION_V_FUNC_REVERSE_SUBTRACT                  0x0000800B
#define NV1196_SET_BLEND_EQUATION_V_FUNC_ADD                               0x00008006
#define NV1196_SET_BLEND_EQUATION_V_MIN                                    0x00008007
#define NV1196_SET_BLEND_EQUATION_V_MAX                                    0x00008008

#define NV1196_SET_DEPTH_FUNC                                              0x00000354
#define NV1196_SET_DEPTH_FUNC_V                                                  31:0
#define NV1196_SET_DEPTH_FUNC_V_NEVER                                      0x00000200
#define NV1196_SET_DEPTH_FUNC_V_LESS                                       0x00000201
#define NV1196_SET_DEPTH_FUNC_V_EQUAL                                      0x00000202
#define NV1196_SET_DEPTH_FUNC_V_LEQUAL                                     0x00000203
#define NV1196_SET_DEPTH_FUNC_V_GREATER                                    0x00000204
#define NV1196_SET_DEPTH_FUNC_V_NOTEQUAL                                   0x00000205
#define NV1196_SET_DEPTH_FUNC_V_GEQUAL                                     0x00000206
#define NV1196_SET_DEPTH_FUNC_V_ALWAYS                                     0x00000207

#define NV1196_SET_COLOR_MASK                                              0x00000358
#define NV1196_SET_COLOR_MASK_ALPHA_WRITE_ENABLE                                31:24
#define NV1196_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_FALSE                     0x00000000
#define NV1196_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_TRUE                      0x00000001
#define NV1196_SET_COLOR_MASK_RED_WRITE_ENABLE                                  23:16
#define NV1196_SET_COLOR_MASK_RED_WRITE_ENABLE_FALSE                       0x00000000
#define NV1196_SET_COLOR_MASK_RED_WRITE_ENABLE_TRUE                        0x00000001
#define NV1196_SET_COLOR_MASK_GREEN_WRITE_ENABLE                                 15:8
#define NV1196_SET_COLOR_MASK_GREEN_WRITE_ENABLE_FALSE                     0x00000000
#define NV1196_SET_COLOR_MASK_GREEN_WRITE_ENABLE_TRUE                      0x00000001
#define NV1196_SET_COLOR_MASK_BLUE_WRITE_ENABLE                                   7:0
#define NV1196_SET_COLOR_MASK_BLUE_WRITE_ENABLE_FALSE                      0x00000000
#define NV1196_SET_COLOR_MASK_BLUE_WRITE_ENABLE_TRUE                       0x00000001

#define NV1196_SET_DEPTH_MASK                                              0x0000035c
#define NV1196_SET_DEPTH_MASK_V                                                  31:0
#define NV1196_SET_DEPTH_MASK_V_FALSE                                      0x00000000
#define NV1196_SET_DEPTH_MASK_V_TRUE                                       0x00000001

#define NV1196_SET_STENCIL_MASK                                            0x00000360
#define NV1196_SET_STENCIL_MASK_V                                                31:0

#define NV1196_SET_STENCIL_FUNC                                            0x00000364
#define NV1196_SET_STENCIL_FUNC_V                                                31:0
#define NV1196_SET_STENCIL_FUNC_V_NEVER                                    0x00000200
#define NV1196_SET_STENCIL_FUNC_V_LESS                                     0x00000201
#define NV1196_SET_STENCIL_FUNC_V_EQUAL                                    0x00000202
#define NV1196_SET_STENCIL_FUNC_V_LEQUAL                                   0x00000203
#define NV1196_SET_STENCIL_FUNC_V_GREATER                                  0x00000204
#define NV1196_SET_STENCIL_FUNC_V_NOTEQUAL                                 0x00000205
#define NV1196_SET_STENCIL_FUNC_V_GEQUAL                                   0x00000206
#define NV1196_SET_STENCIL_FUNC_V_ALWAYS                                   0x00000207

#define NV1196_SET_STENCIL_FUNC_REF                                        0x00000368
#define NV1196_SET_STENCIL_FUNC_REF_V                                            31:0

#define NV1196_SET_STENCIL_FUNC_MASK                                       0x0000036c
#define NV1196_SET_STENCIL_FUNC_MASK_V                                           31:0

#define NV1196_SET_STENCIL_OP_FAIL                                         0x00000370
#define NV1196_SET_STENCIL_OP_FAIL_V                                             31:0
#define NV1196_SET_STENCIL_OP_FAIL_V_KEEP                                  0x00001E00
#define NV1196_SET_STENCIL_OP_FAIL_V_ZERO                                  0x00000000
#define NV1196_SET_STENCIL_OP_FAIL_V_REPLACE                               0x00001E01
#define NV1196_SET_STENCIL_OP_FAIL_V_INCRSAT                               0x00001E02
#define NV1196_SET_STENCIL_OP_FAIL_V_DECRSAT                               0x00001E03
#define NV1196_SET_STENCIL_OP_FAIL_V_INVERT                                0x0000150A
#define NV1196_SET_STENCIL_OP_FAIL_V_INCR                                  0x00008507
#define NV1196_SET_STENCIL_OP_FAIL_V_DECR                                  0x00008508

#define NV1196_SET_STENCIL_OP_ZFAIL                                        0x00000374
#define NV1196_SET_STENCIL_OP_ZFAIL_V                                            31:0
#define NV1196_SET_STENCIL_OP_ZFAIL_V_KEEP                                 0x00001E00
#define NV1196_SET_STENCIL_OP_ZFAIL_V_ZERO                                 0x00000000
#define NV1196_SET_STENCIL_OP_ZFAIL_V_REPLACE                              0x00001E01
#define NV1196_SET_STENCIL_OP_ZFAIL_V_INCRSAT                              0x00001E02
#define NV1196_SET_STENCIL_OP_ZFAIL_V_DECRSAT                              0x00001E03
#define NV1196_SET_STENCIL_OP_ZFAIL_V_INVERT                               0x0000150A
#define NV1196_SET_STENCIL_OP_ZFAIL_V_INCR                                 0x00008507
#define NV1196_SET_STENCIL_OP_ZFAIL_V_DECR                                 0x00008508

#define NV1196_SET_STENCIL_OP_ZPASS                                        0x00000378
#define NV1196_SET_STENCIL_OP_ZPASS_V                                            31:0
#define NV1196_SET_STENCIL_OP_ZPASS_V_KEEP                                 0x00001E00
#define NV1196_SET_STENCIL_OP_ZPASS_V_ZERO                                 0x00000000
#define NV1196_SET_STENCIL_OP_ZPASS_V_REPLACE                              0x00001E01
#define NV1196_SET_STENCIL_OP_ZPASS_V_INCRSAT                              0x00001E02
#define NV1196_SET_STENCIL_OP_ZPASS_V_DECRSAT                              0x00001E03
#define NV1196_SET_STENCIL_OP_ZPASS_V_INVERT                               0x0000150A
#define NV1196_SET_STENCIL_OP_ZPASS_V_INCR                                 0x00008507
#define NV1196_SET_STENCIL_OP_ZPASS_V_DECR                                 0x00008508

#define NV1196_SET_SHADE_MODE                                              0x0000037c
#define NV1196_SET_SHADE_MODE_V                                                  31:0
#define NV1196_SET_SHADE_MODE_V_FLAT                                       0x00001D00
#define NV1196_SET_SHADE_MODE_V_SMOOTH                                     0x00001D01

#define NV1196_SET_LINE_WIDTH                                              0x00000380
#define NV1196_SET_LINE_WIDTH_V                                                  31:0

#define NV1196_SET_POLYGON_OFFSET_SCALE_FACTOR                             0x00000384
#define NV1196_SET_POLYGON_OFFSET_SCALE_FACTOR_V                                 31:0

#define NV1196_SET_POLYGON_OFFSET_BIAS                                     0x00000388
#define NV1196_SET_POLYGON_OFFSET_BIAS_V                                         31:0

#define NV1196_SET_FRONT_POLYGON_MODE                                      0x0000038c
#define NV1196_SET_FRONT_POLYGON_MODE_V                                          31:0
#define NV1196_SET_FRONT_POLYGON_MODE_V_POINT                              0x00001B00
#define NV1196_SET_FRONT_POLYGON_MODE_V_LINE                               0x00001B01
#define NV1196_SET_FRONT_POLYGON_MODE_V_FILL                               0x00001B02

#define NV1196_SET_BACK_POLYGON_MODE                                       0x00000390
#define NV1196_SET_BACK_POLYGON_MODE_V                                           31:0
#define NV1196_SET_BACK_POLYGON_MODE_V_POINT                               0x00001B00
#define NV1196_SET_BACK_POLYGON_MODE_V_LINE                                0x00001B01
#define NV1196_SET_BACK_POLYGON_MODE_V_FILL                                0x00001B02

#define NV1196_SET_CLIP_MIN                                                0x00000394
#define NV1196_SET_CLIP_MIN_V                                                    31:0

#define NV1196_SET_CLIP_MAX                                                0x00000398
#define NV1196_SET_CLIP_MAX_V                                                    31:0

#define NV1196_SET_CULL_FACE                                               0x0000039c
#define NV1196_SET_CULL_FACE_V                                                   31:0
#define NV1196_SET_CULL_FACE_V_FRONT                                       0x00000404
#define NV1196_SET_CULL_FACE_V_BACK                                        0x00000405
#define NV1196_SET_CULL_FACE_V_FRONT_AND_BACK                              0x00000408

#define NV1196_SET_FRONT_FACE                                              0x000003a0
#define NV1196_SET_FRONT_FACE_V                                                  31:0
#define NV1196_SET_FRONT_FACE_V_CW                                         0x00000900
#define NV1196_SET_FRONT_FACE_V_CCW                                        0x00000901

#define NV1196_SET_NORMALIZATION_ENABLE                                    0x000003a4
#define NV1196_SET_NORMALIZATION_ENABLE_V                                        31:0
#define NV1196_SET_NORMALIZATION_ENABLE_V_FALSE                            0x00000000
#define NV1196_SET_NORMALIZATION_ENABLE_V_TRUE                             0x00000001

#define NV1196_SET_MATERIAL_EMISSION(i)                            (0x000003a8+(i)*4)
#define NV1196_SET_MATERIAL_EMISSION_V                                           31:0

#define NV1196_SET_MATERIAL_ALPHA                                          0x000003b4
#define NV1196_SET_MATERIAL_ALPHA_V                                              31:0

#define NV1196_SET_SPECULAR_ENABLE                                         0x000003b8
#define NV1196_SET_SPECULAR_ENABLE_V                                             31:0
#define NV1196_SET_SPECULAR_ENABLE_V_FALSE                                 0x00000000
#define NV1196_SET_SPECULAR_ENABLE_V_TRUE                                  0x00000001

#define NV1196_SET_LIGHT_ENABLE_MASK                                       0x000003bc
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT0                                       1:0
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT0_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT0_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT0_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT0_SPOT                           0x00000003
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT1                                       3:2
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT1_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT1_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT1_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT1_SPOT                           0x00000003
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT2                                       5:4
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT2_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT2_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT2_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT2_SPOT                           0x00000003
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT3                                       7:6
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT3_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT3_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT3_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT3_SPOT                           0x00000003
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT4                                       9:8
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT4_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT4_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT4_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT4_SPOT                           0x00000003
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT5                                     11:10
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT5_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT5_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT5_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT5_SPOT                           0x00000003
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT6                                     13:12
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT6_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT6_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT6_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT6_SPOT                           0x00000003
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT7                                     15:14
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT7_OFF                            0x00000000
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT7_INFINITE                       0x00000001
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT7_LOCAL                          0x00000002
#define NV1196_SET_LIGHT_ENABLE_MASK_LIGHT7_SPOT                           0x00000003

#define NV1196_SET_TEXGEN_S(i)                                    (0x000003c0+(i)*16)
#define NV1196_SET_TEXGEN_S_V                                                    31:0
#define NV1196_SET_TEXGEN_S_V_DISABLE                                      0x00000000
#define NV1196_SET_TEXGEN_S_V_NORMAL_MAP                                   0x00008511
#define NV1196_SET_TEXGEN_S_V_REFLECTION_MAP                               0x00008512
#define NV1196_SET_TEXGEN_S_V_EYE_LINEAR                                   0x00002400
#define NV1196_SET_TEXGEN_S_V_OBJECT_LINEAR                                0x00002401
#define NV1196_SET_TEXGEN_S_V_SPHERE_MAP                                   0x00002402
#define NV1196_SET_TEXGEN_S_V_EMBOSS                                       0x0000855F

#define NV1196_SET_TEXGEN_T(i)                                    (0x000003c4+(i)*16)
#define NV1196_SET_TEXGEN_T_V                                                    31:0
#define NV1196_SET_TEXGEN_T_V_DISABLE                                      0x00000000
#define NV1196_SET_TEXGEN_T_V_NORMAL_MAP                                   0x00008511
#define NV1196_SET_TEXGEN_T_V_REFLECTION_MAP                               0x00008512
#define NV1196_SET_TEXGEN_T_V_EYE_LINEAR                                   0x00002400
#define NV1196_SET_TEXGEN_T_V_OBJECT_LINEAR                                0x00002401
#define NV1196_SET_TEXGEN_T_V_SPHERE_MAP                                   0x00002402
#define NV1196_SET_TEXGEN_T_V_EMBOSS                                       0x0000855F

#define NV1196_SET_TEXGEN_R(i)                                    (0x000003c8+(i)*16)
#define NV1196_SET_TEXGEN_R_V                                                    31:0
#define NV1196_SET_TEXGEN_R_V_DISABLE                                      0x00000000
#define NV1196_SET_TEXGEN_R_V_NORMAL_MAP                                   0x00008511
#define NV1196_SET_TEXGEN_R_V_REFLECTION_MAP                               0x00008512
#define NV1196_SET_TEXGEN_R_V_EYE_LINEAR                                   0x00002400
#define NV1196_SET_TEXGEN_R_V_OBJECT_LINEAR                                0x00002401
#define NV1196_SET_TEXGEN_R_V_EMBOSS                                       0x0000855F

#define NV1196_SET_TEXGEN_Q(i)                                    (0x000003cc+(i)*16)
#define NV1196_SET_TEXGEN_Q_V                                                    31:0
#define NV1196_SET_TEXGEN_Q_V_DISABLE                                      0x00000000
#define NV1196_SET_TEXGEN_Q_V_EYE_LINEAR                                   0x00002400
#define NV1196_SET_TEXGEN_Q_V_OBJECT_LINEAR                                0x00002401

#define NV1196_SET_TEXTURE_MATRIX0_ENABLE                                  0x000003e0
#define NV1196_SET_TEXTURE_MATRIX0_ENABLE_V                                      31:0
#define NV1196_SET_TEXTURE_MATRIX0_ENABLE_V_FALSE                          0x00000000
#define NV1196_SET_TEXTURE_MATRIX0_ENABLE_V_TRUE                           0x00000001

#define NV1196_SET_TEXTURE_MATRIX1_ENABLE                                  0x000003e4
#define NV1196_SET_TEXTURE_MATRIX1_ENABLE_V                                      31:0
#define NV1196_SET_TEXTURE_MATRIX1_ENABLE_V_FALSE                          0x00000000
#define NV1196_SET_TEXTURE_MATRIX1_ENABLE_V_TRUE                           0x00000001

#define NV1196_SET_TLMODE                                                  0x000003e8
#define NV1196_SET_TLMODE_PASSTHROUGH                                             0:0
#define NV1196_SET_TLMODE_PASSTHROUGH_TRUE                                 0x00000001
#define NV1196_SET_TLMODE_PASSTHROUGH_FALSE                                0x00000000
#define NV1196_SET_TLMODE_W_DIVIDE_0                                              1:1
#define NV1196_SET_TLMODE_W_DIVIDE_0_DISABLE                               0x00000000
#define NV1196_SET_TLMODE_W_DIVIDE_0_ENABLE                                0x00000001
#define NV1196_SET_TLMODE_W_DIVIDE_1                                              2:2
#define NV1196_SET_TLMODE_W_DIVIDE_1_DISABLE                               0x00000000
#define NV1196_SET_TLMODE_W_DIVIDE_1_ENABLE                                0x00000001

#define NV1196_SET_POINT_SIZE                                              0x000003ec
#define NV1196_SET_POINT_SIZE_V                                                  31:0

#define NV1196_SET_SWATH_WIDTH                                             0x000003f0
#define NV1196_SET_SWATH_WIDTH_V                                                 31:0
#define NV1196_SET_SWATH_WIDTH_V_8                                         0x00000000
#define NV1196_SET_SWATH_WIDTH_V_16                                        0x00000001
#define NV1196_SET_SWATH_WIDTH_V_32                                        0x00000002
#define NV1196_SET_SWATH_WIDTH_V_64                                        0x00000003

#define NV1196_SET_FLAT_SHADE_OP                                           0x000003f4
#define NV1196_SET_FLAT_SHADE_OP_V                                               31:0
#define NV1196_SET_FLAT_SHADE_OP_V_LAST_VTX                                0x00000000
#define NV1196_SET_FLAT_SHADE_OP_V_FIRST_VTX                               0x00000001

#define NV1196_SET_MODEL_VIEW_MATRIX0(i)                           (0x00000400+(i)*4)
#define NV1196_SET_MODEL_VIEW_MATRIX0_V                                          31:0

#define NV1196_SET_MODEL_VIEW_MATRIX1(i)                           (0x00000440+(i)*4)
#define NV1196_SET_MODEL_VIEW_MATRIX1_V                                          31:0

#define NV1196_SET_INVERSE_MODEL_VIEW_MATRIX0(i)                   (0x00000480+(i)*4)
#define NV1196_SET_INVERSE_MODEL_VIEW_MATRIX0_V                                  31:0

#define NV1196_SET_INVERSE_MODEL_VIEW_MATRIX1(i)                   (0x000004c0+(i)*4)
#define NV1196_SET_INVERSE_MODEL_VIEW_MATRIX1_V                                  31:0

#define NV1196_SET_COMPOSITE_MATRIX(i)                             (0x00000500+(i)*4)
#define NV1196_SET_COMPOSITE_MATRIX_V                                            31:0

#define NV1196_SET_TEXTURE_MATRIX0(i)                              (0x00000540+(i)*4)
#define NV1196_SET_TEXTURE_MATRIX0_V                                             31:0

#define NV1196_SET_TEXTURE_MATRIX1(i)                              (0x00000580+(i)*4)
#define NV1196_SET_TEXTURE_MATRIX1_V                                             31:0

#define NV1196_SET_TEXGEN_SPLANE0(i)                               (0x00000600+(i)*4)
#define NV1196_SET_TEXGEN_SPLANE0_V                                              31:0

#define NV1196_SET_TEXGEN_TPLANE0(i)                               (0x00000610+(i)*4)
#define NV1196_SET_TEXGEN_TPLANE0_V                                              31:0

#define NV1196_SET_TEXGEN_RPLANE0(i)                               (0x00000620+(i)*4)
#define NV1196_SET_TEXGEN_RPLANE0_V                                              31:0

#define NV1196_SET_TEXGEN_QPLANE0(i)                               (0x00000630+(i)*4)
#define NV1196_SET_TEXGEN_QPLANE0_V                                              31:0

#define NV1196_SET_TEXGEN_SPLANE1(i)                               (0x00000640+(i)*4)
#define NV1196_SET_TEXGEN_SPLANE1_V                                              31:0

#define NV1196_SET_TEXGEN_TPLANE1(i)                               (0x00000650+(i)*4)
#define NV1196_SET_TEXGEN_TPLANE1_V                                              31:0

#define NV1196_SET_TEXGEN_RPLANE1(i)                               (0x00000660+(i)*4)
#define NV1196_SET_TEXGEN_RPLANE1_V                                              31:0

#define NV1196_SET_TEXGEN_QPLANE1(i)                               (0x00000670+(i)*4)
#define NV1196_SET_TEXGEN_QPLANE1_V                                              31:0

#define NV1196_SET_FOG_PARAMS(i)                                   (0x00000680+(i)*4)
#define NV1196_SET_FOG_PARAMS_V                                                  31:0

#define NV1196_SET_FOG_PLANE(i)                                    (0x0000068c+(i)*4)
#define NV1196_SET_FOG_PLANE_V                                                   31:0

#define NV1196_SET_SPECULAR_PARAMS(i)                              (0x000006a0+(i)*4)
#define NV1196_SET_SPECULAR_PARAMS_V                                             31:0

#define NV1196_SET_SCENE_AMBIENT_COLOR(i)                          (0x000006c4+(i)*4)
#define NV1196_SET_SCENE_AMBIENT_COLOR_V                                         31:0

#define NV1196_SET_VIEWPORT_OFFSET(i)                              (0x000006e8+(i)*4)
#define NV1196_SET_VIEWPORT_OFFSET_V                                             31:0

#define NV1196_SET_POINT_PARAMS(i)                                 (0x000006f8+(i)*4)
#define NV1196_SET_POINT_PARAMS_V                                                31:0

#define NV1196_SET_EYE_POSITION(i)                                 (0x00000718+(i)*4)
#define NV1196_SET_EYE_POSITION_V                                                31:0

#define NV1196_SET_EYE_DIRECTION_SW(i)                             (0x0000072c+(i)*4)

#define NV1196_SET_LIGHT_AMBIENT_COLOR(i,j)                (0x00000800+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_AMBIENT_COLOR_V                                         31:0

#define NV1196_SET_LIGHT_DIFFUSE_COLOR(i,j)                (0x0000080c+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_DIFFUSE_COLOR_V                                         31:0

#define NV1196_SET_LIGHT_SPECULAR_COLOR(i,j)               (0x00000818+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_SPECULAR_COLOR_V                                        31:0

#define NV1196_SET_LIGHT_LOCAL_RANGE(i)                          (0x00000824+(i)*128)
#define NV1196_SET_LIGHT_LOCAL_RANGE_V                                           31:0

#define NV1196_SET_LIGHT_INFINITE_HALF_VECTOR(i,j)         (0x00000828+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_INFINITE_HALF_VECTOR_V                                  31:0

#define NV1196_SET_LIGHT_INFINITE_DIRECTION(i,j)           (0x00000834+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_INFINITE_DIRECTION_V                                    31:0

#define NV1196_SET_LIGHT_SPOT_FALLOFF(i,j)                 (0x00000840+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_SPOT_FALLOFF_V                                          31:0

#define NV1196_SET_LIGHT_SPOT_DIRECTION(i,j)               (0x0000084c+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_SPOT_DIRECTION_V                                        31:0

#define NV1196_SET_LIGHT_LOCAL_POSITION(i,j)               (0x0000085c+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_LOCAL_POSITION_V                                        31:0

#define NV1196_SET_LIGHT_LOCAL_ATTENUATION(i,j)            (0x00000868+(i)*128+(j)*4)
#define NV1196_SET_LIGHT_LOCAL_ATTENUATION_V                                     31:0

#define NV1196_SET_VERTEX3F(i)                                     (0x00000c00+(i)*4)
#define NV1196_SET_VERTEX3F_V                                                    31:0

#define NV1196_SET_VERTEX4F(i)                                     (0x00000c18+(i)*4)
#define NV1196_SET_VERTEX4F_V                                                    31:0

#define NV1196_SET_VERTEX4S(i)                                     (0x00000c28+(i)*4)
#define NV1196_SET_VERTEX4S_V                                                    31:0

#define NV1196_SET_NORMAL3F(i)                                     (0x00000c30+(i)*4)
#define NV1196_SET_NORMAL3F_V                                                    31:0

#define NV1196_SET_NORMAL3S(i)                                     (0x00000c40+(i)*4)
#define NV1196_SET_NORMAL3S_V                                                    31:0

#define NV1196_SET_DIFFUSE_COLOR4F(i)                              (0x00000c50+(i)*4)
#define NV1196_SET_DIFFUSE_COLOR4F_V                                             31:0

#define NV1196_SET_DIFFUSE_COLOR3F(i)                              (0x00000c60+(i)*4)
#define NV1196_SET_DIFFUSE_COLOR3F_V                                             31:0

#define NV1196_SET_DIFFUSE_COLOR4UB                                        0x00000c6c
#define NV1196_SET_DIFFUSE_COLOR4UB_V                                            31:0

#define NV1196_SET_SPECULAR_COLOR4F(i)                             (0x00000c70+(i)*4)
#define NV1196_SET_SPECULAR_COLOR4F_V                                            31:0

#define NV1196_SET_SPECULAR_COLOR3F(i)                             (0x00000c80+(i)*4)
#define NV1196_SET_SPECULAR_COLOR3F_V                                            31:0

#define NV1196_SET_SPECULAR_COLOR4UB                                       0x00000c8c
#define NV1196_SET_SPECULAR_COLOR4UB_V                                           31:0

#define NV1196_SET_TEXCOORD0_2F(i)                                 (0x00000c90+(i)*4)
#define NV1196_SET_TEXCOORD0_2F_V                                                31:0

#define NV1196_SET_TEXCOORD0_2S                                            0x00000c98
#define NV1196_SET_TEXCOORD0_2S_V                                                31:0

#define NV1196_SET_TEXCOORD0_4F(i)                                 (0x00000ca0+(i)*4)
#define NV1196_SET_TEXCOORD0_4F_V                                                31:0

#define NV1196_SET_TEXCOORD0_4S(i)                                 (0x00000cb0+(i)*4)
#define NV1196_SET_TEXCOORD0_4S_V                                                31:0

#define NV1196_SET_TEXCOORD1_2F(i)                                 (0x00000cb8+(i)*4)
#define NV1196_SET_TEXCOORD1_2F_V                                                31:0

#define NV1196_SET_TEXCOORD1_2S                                            0x00000cc0
#define NV1196_SET_TEXCOORD1_2S_V                                                31:0

#define NV1196_SET_TEXCOORD1_4F(i)                                 (0x00000cc8+(i)*4)
#define NV1196_SET_TEXCOORD1_4F_V                                                31:0

#define NV1196_SET_TEXCOORD1_4S(i)                                 (0x00000cd8+(i)*4)
#define NV1196_SET_TEXCOORD1_4S_V                                                31:0

#define NV1196_SET_FOG1F                                                   0x00000ce0
#define NV1196_SET_FOG1F_V                                                       31:0

#define NV1196_SET_WEIGHT1F                                                0x00000ce4
#define NV1196_SET_WEIGHT1F_V                                                    31:0

#define NV1196_SET_EDGE_FLAG                                               0x00000cec
#define NV1196_SET_EDGE_FLAG_V                                                   31:0

#define NV1196_INVALIDATE_VERTEX_CACHE_FILE                                0x00000cf0
#define NV1196_INVALIDATE_VERTEX_CACHE_FILE_V                                    31:0

#define NV1196_INVALIDATE_VERTEX_FILE                                      0x00000cf4
#define NV1196_INVALIDATE_VERTEX_FILE_V                                          31:0

#define NV1196_TL_NOP                                                      0x00000cf8
#define NV1196_TL_NOP_V                                                          31:0

#define NV1196_TL_SYNC                                                     0x00000cfc
#define NV1196_TL_SYNC_V                                                         31:0

#define NV1196_SET_VERTEX_ARRAY_OFFSET                                     0x00000d00
#define NV1196_SET_VERTEX_ARRAY_OFFSET_OFFSET                                    31:0

#define NV1196_SET_DIFFUSE_ARRAY_OFFSET                                    0x00000d08
#define NV1196_SET_DIFFUSE_ARRAY_OFFSET_OFFSET                                   31:0

#define NV1196_SET_SPECULAR_ARRAY_OFFSET                                   0x00000d10
#define NV1196_SET_SPECULAR_ARRAY_OFFSET_OFFSET                                  31:0

#define NV1196_SET_TEX_COORD0_ARRAY_OFFSET                                 0x00000d18
#define NV1196_SET_TEX_COORD0_ARRAY_OFFSET_OFFSET                                31:0

#define NV1196_SET_TEX_COORD1_ARRAY_OFFSET                                 0x00000d20
#define NV1196_SET_TEX_COORD1_ARRAY_OFFSET_OFFSET                                31:0

#define NV1196_SET_NORMAL_ARRAY_OFFSET                                     0x00000d28
#define NV1196_SET_NORMAL_ARRAY_OFFSET_OFFSET                                    31:0

#define NV1196_SET_WEIGHT_ARRAY_OFFSET                                     0x00000d30
#define NV1196_SET_WEIGHT_ARRAY_OFFSET_OFFSET                                    31:0

#define NV1196_SET_FOG_ARRAY_OFFSET                                        0x00000d38
#define NV1196_SET_FOG_ARRAY_OFFSET_OFFSET                                       31:0

#define NV1196_SET_VERTEX_ARRAY_FORMAT                                     0x00000d04
#define NV1196_SET_VERTEX_ARRAY_FORMAT_W                                        31:24
#define NV1196_SET_VERTEX_ARRAY_FORMAT_W_NONE                              0x00000000
#define NV1196_SET_VERTEX_ARRAY_FORMAT_W_PRESENT                           0x00000001
#define NV1196_SET_VERTEX_ARRAY_FORMAT_STRIDE                                    23:8
#define NV1196_SET_VERTEX_ARRAY_FORMAT_SIZE                                       7:4
#define NV1196_SET_VERTEX_ARRAY_FORMAT_SIZE_2                              0x00000002
#define NV1196_SET_VERTEX_ARRAY_FORMAT_SIZE_3                              0x00000003
#define NV1196_SET_VERTEX_ARRAY_FORMAT_SIZE_4                              0x00000004
#define NV1196_SET_VERTEX_ARRAY_FORMAT_TYPE                                       3:0
#define NV1196_SET_VERTEX_ARRAY_FORMAT_TYPE_SHORT                          0x00000001
#define NV1196_SET_VERTEX_ARRAY_FORMAT_TYPE_FLOAT                          0x00000002

#define NV1196_SET_DIFFUSE_ARRAY_FORMAT                                    0x00000d0c
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_STRIDE                                   31:8
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_SIZE                                      7:4
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_SIZE_0                             0x00000000
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_SIZE_3                             0x00000003
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_SIZE_4                             0x00000004
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_TYPE                                      3:0
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_BGRA            0x00000000
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_TYPE_FLOAT                         0x00000002
#define NV1196_SET_DIFFUSE_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_RGBA            0x00000004

#define NV1196_SET_SPECULAR_ARRAY_FORMAT                                   0x00000d14
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_STRIDE                                  31:8
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_SIZE                                     7:4
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_SIZE_0                            0x00000000
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_SIZE_3                            0x00000003
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_SIZE_4                            0x00000004
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_TYPE                                     3:0
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_BGRA           0x00000000
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_TYPE_FLOAT                        0x00000002
#define NV1196_SET_SPECULAR_ARRAY_FORMAT_TYPE_UNSIGNED_BYTE_RGBA           0x00000004

#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT                                 0x00000d1c
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_STRIDE                                31:8
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_SIZE                                   7:4
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_0                          0x00000000
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_1                          0x00000001
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_2                          0x00000002
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_3                          0x00000003
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_SIZE_4                          0x00000004
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_TYPE                                   3:0
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_TYPE_SHORT                      0x00000001
#define NV1196_SET_TEX_COORD0_ARRAY_FORMAT_TYPE_FLOAT                      0x00000002

#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT                                 0x00000d24
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_STRIDE                                31:8
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_SIZE                                   7:4
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_0                          0x00000000
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_1                          0x00000001
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_2                          0x00000002
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_3                          0x00000003
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_SIZE_4                          0x00000004
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_TYPE                                   3:0
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_TYPE_SHORT                      0x00000001
#define NV1196_SET_TEX_COORD1_ARRAY_FORMAT_TYPE_FLOAT                      0x00000002

#define NV1196_SET_NORMAL_ARRAY_FORMAT                                     0x00000d2c
#define NV1196_SET_NORMAL_ARRAY_FORMAT_STRIDE                                    31:8
#define NV1196_SET_NORMAL_ARRAY_FORMAT_SIZE                                       7:4
#define NV1196_SET_NORMAL_ARRAY_FORMAT_SIZE_0                              0x00000000
#define NV1196_SET_NORMAL_ARRAY_FORMAT_SIZE_3                              0x00000003
#define NV1196_SET_NORMAL_ARRAY_FORMAT_TYPE                                       3:0
#define NV1196_SET_NORMAL_ARRAY_FORMAT_TYPE_SHORT                          0x00000001
#define NV1196_SET_NORMAL_ARRAY_FORMAT_TYPE_FLOAT                          0x00000002

#define NV1196_SET_WEIGHT_ARRAY_FORMAT                                     0x00000d34
#define NV1196_SET_WEIGHT_ARRAY_FORMAT_STRIDE                                    31:8
#define NV1196_SET_WEIGHT_ARRAY_FORMAT_SIZE                                       7:4
#define NV1196_SET_WEIGHT_ARRAY_FORMAT_SIZE_0                              0x00000000
#define NV1196_SET_WEIGHT_ARRAY_FORMAT_SIZE_1                              0x00000001
#define NV1196_SET_WEIGHT_ARRAY_FORMAT_TYPE                                       3:0
#define NV1196_SET_WEIGHT_ARRAY_FORMAT_TYPE_SHORT                          0x00000001
#define NV1196_SET_WEIGHT_ARRAY_FORMAT_TYPE_FLOAT                          0x00000002

#define NV1196_SET_FOG_ARRAY_FORMAT                                        0x00000d3c
#define NV1196_SET_FOG_ARRAY_FORMAT_STRIDE                                       31:8
#define NV1196_SET_FOG_ARRAY_FORMAT_SIZE                                          7:4
#define NV1196_SET_FOG_ARRAY_FORMAT_SIZE_0                                 0x00000000
#define NV1196_SET_FOG_ARRAY_FORMAT_SIZE_1                                 0x00000001
#define NV1196_SET_FOG_ARRAY_FORMAT_TYPE                                          3:0
#define NV1196_SET_FOG_ARRAY_FORMAT_TYPE_SHORT                             0x00000001
#define NV1196_SET_FOG_ARRAY_FORMAT_TYPE_FLOAT                             0x00000002

#define NV1196_SET_LOGIC_OP_ENABLE                                         0x00000d40
#define NV1196_SET_LOGIC_OP_ENABLE_V                                             31:0
#define NV1196_SET_LOGIC_OP_ENABLE_V_FALSE                                 0x00000000
#define NV1196_SET_LOGIC_OP_ENABLE_V_TRUE                                  0x00000001

#define NV1196_SET_LOGIC_OP                                                0x00000d44
#define NV1196_SET_LOGIC_OP_V                                                    31:0
#define NV1196_SET_LOGIC_OP_V_CLEAR                                        0x00001500
#define NV1196_SET_LOGIC_OP_V_AND                                          0x00001501
#define NV1196_SET_LOGIC_OP_V_AND_REVERSE                                  0x00001502
#define NV1196_SET_LOGIC_OP_V_COPY                                         0x00001503
#define NV1196_SET_LOGIC_OP_V_AND_INVERTED                                 0x00001504
#define NV1196_SET_LOGIC_OP_V_NOOP                                         0x00001505
#define NV1196_SET_LOGIC_OP_V_XOR                                          0x00001506
#define NV1196_SET_LOGIC_OP_V_OR                                           0x00001507
#define NV1196_SET_LOGIC_OP_V_NOR                                          0x00001508
#define NV1196_SET_LOGIC_OP_V_EQUIV                                        0x00001509
#define NV1196_SET_LOGIC_OP_V_INVERT                                       0x0000150A
#define NV1196_SET_LOGIC_OP_V_OR_REVERSE                                   0x0000150B
#define NV1196_SET_LOGIC_OP_V_COPY_INVERTED                                0x0000150C
#define NV1196_SET_LOGIC_OP_V_OR_INVERTED                                  0x0000150D
#define NV1196_SET_LOGIC_OP_V_NAND                                         0x0000150E
#define NV1196_SET_LOGIC_OP_V_SET                                          0x0000150F

#define NV1196_SET_BEGIN_END                                               0x00000dfc
#define NV1196_SET_BEGIN_END_OP                                                  31:0
#define NV1196_SET_BEGIN_END_OP_END                                        0x00000000
#define NV1196_SET_BEGIN_END_OP_POINTS                                     0x00000001
#define NV1196_SET_BEGIN_END_OP_LINES                                      0x00000002
#define NV1196_SET_BEGIN_END_OP_LINE_LOOP                                  0x00000003
#define NV1196_SET_BEGIN_END_OP_LINE_STRIP                                 0x00000004
#define NV1196_SET_BEGIN_END_OP_TRIANGLES                                  0x00000005
#define NV1196_SET_BEGIN_END_OP_TRIANGLE_STRIP                             0x00000006
#define NV1196_SET_BEGIN_END_OP_TRIANGLE_FAN                               0x00000007
#define NV1196_SET_BEGIN_END_OP_QUADS                                      0x00000008
#define NV1196_SET_BEGIN_END_OP_QUAD_STRIP                                 0x00000009
#define NV1196_SET_BEGIN_END_OP_POLYGON                                    0x0000000A

#define NV1196_ARRAY_ELEMENT16(i)                                  (0x00000e00+(i)*4)
#define NV1196_ARRAY_ELEMENT16_VERTEX0                                           15:0
#define NV1196_ARRAY_ELEMENT16_VERTEX1                                          31:16

#define NV1196_SET_BEGIN_END2                                              0x000010fc
#define NV1196_SET_BEGIN_END2_OP                                                 31:0
#define NV1196_SET_BEGIN_END2_OP_END                                       0x00000000
#define NV1196_SET_BEGIN_END2_OP_POINTS                                    0x00000001
#define NV1196_SET_BEGIN_END2_OP_LINES                                     0x00000002
#define NV1196_SET_BEGIN_END2_OP_LINE_LOOP                                 0x00000003
#define NV1196_SET_BEGIN_END2_OP_LINE_STRIP                                0x00000004
#define NV1196_SET_BEGIN_END2_OP_TRIANGLES                                 0x00000005
#define NV1196_SET_BEGIN_END2_OP_TRIANGLE_STRIP                            0x00000006
#define NV1196_SET_BEGIN_END2_OP_TRIANGLE_FAN                              0x00000007
#define NV1196_SET_BEGIN_END2_OP_QUADS                                     0x00000008
#define NV1196_SET_BEGIN_END2_OP_QUAD_STRIP                                0x00000009
#define NV1196_SET_BEGIN_END2_OP_POLYGON                                   0x0000000A

#define NV1196_ARRAY_ELEMENT32(i)                                  (0x00001100+(i)*4)
#define NV1196_ARRAY_ELEMENT32_V                                                 31:0

#define NV1196_SET_BEGIN_END3                                              0x000013fc
#define NV1196_SET_BEGIN_END3_OP                                                 31:0
#define NV1196_SET_BEGIN_END3_OP_END                                       0x00000000
#define NV1196_SET_BEGIN_END3_OP_POINTS                                    0x00000001
#define NV1196_SET_BEGIN_END3_OP_LINES                                     0x00000002
#define NV1196_SET_BEGIN_END3_OP_LINE_LOOP                                 0x00000003
#define NV1196_SET_BEGIN_END3_OP_LINE_STRIP                                0x00000004
#define NV1196_SET_BEGIN_END3_OP_TRIANGLES                                 0x00000005
#define NV1196_SET_BEGIN_END3_OP_TRIANGLE_STRIP                            0x00000006
#define NV1196_SET_BEGIN_END3_OP_TRIANGLE_FAN                              0x00000007
#define NV1196_SET_BEGIN_END3_OP_QUADS                                     0x00000008
#define NV1196_SET_BEGIN_END3_OP_QUAD_STRIP                                0x00000009
#define NV1196_SET_BEGIN_END3_OP_POLYGON                                   0x0000000A

#define NV1196_DRAW_ARRAYS(i)                                      (0x00001400+(i)*4)
#define NV1196_DRAW_ARRAYS_COUNT                                                31:24
#define NV1196_DRAW_ARRAYS_START_INDEX                                           23:0

/* These methods are accepted between a begin/end. */
#define NV1196_SET_MATERIAL_EMISSION_SW(i)                          (0x00001628+(i)*4)
#define NV1196_SET_VIEWPORT_OFFSET_SW(i)                            (0x00001638+(i)*4)
/* The PASSTHRU_VIEWPORT_OFFSET aliases to row 1 of the MODEL_VIEW_MATRIX1 */
#define NV1196_SET_PASSTHRU_VIEWPORT_OFFSET_SW(i)                   (0x00001648+(i)*4)

#define NV1196_SET_BEGIN_END4                                              0x000017fc
#define NV1196_SET_BEGIN_END4_OP                                                 31:0
#define NV1196_SET_BEGIN_END4_OP_END                                       0x00000000
#define NV1196_SET_BEGIN_END4_OP_POINTS                                    0x00000001
#define NV1196_SET_BEGIN_END4_OP_LINES                                     0x00000002
#define NV1196_SET_BEGIN_END4_OP_LINE_LOOP                                 0x00000003
#define NV1196_SET_BEGIN_END4_OP_LINE_STRIP                                0x00000004
#define NV1196_SET_BEGIN_END4_OP_TRIANGLES                                 0x00000005
#define NV1196_SET_BEGIN_END4_OP_TRIANGLE_STRIP                            0x00000006
#define NV1196_SET_BEGIN_END4_OP_TRIANGLE_FAN                              0x00000007
#define NV1196_SET_BEGIN_END4_OP_QUADS                                     0x00000008
#define NV1196_SET_BEGIN_END4_OP_QUAD_STRIP                                0x00000009
#define NV1196_SET_BEGIN_END4_OP_POLYGON                                   0x0000000A

#define NV1196_INLINE_ARRAY(i)                                     (0x00001800+(i)*4)
#define NV1196_INLINE_ARRAY_V                                                    31:0

#define NV1196_DEBUG_INIT(i)                                       (0x00001600+(i)*4)
#define NV1196_DEBUG_INIT_V                                                      31:0


// This typedef really should be the same as Nv20KelvinPrimitive, but this
// causes the NV03/NV04_CHANNEL_PIO union to become too large for the 16bit
// compiler. Since we don't expect to use a PIO channel with Celsius, we'll
// just use the old DWORD size typedef.

typedef NvV32 Nv097Typedef;

/* class NV20_KELVIN_PRIMITIVE */
#define  NV20_KELVIN_PRIMITIVE                                    (0x00000097)
/* NvNotification[] elements */
#define NV097_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV097_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV097_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV097_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV097_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV097_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV097_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
typedef volatile struct {
    // system method
    NvV32 ctx_Switch;
    NvV32 Reserved0004[0xfc/4];
    NvV32 NoOperation;
    NvV32 Notify;
    NvV32 SetWarningEnable;
    NvV32 GetState;
    NvV32 WaitForIdle;
    NvV32 Reserved0114[0xc/4];
    NvU32 SetFlipRead;
    NvU32 SetFlipWrite;
    NvU32 SetFlipModulo;
    NvV32 FlipIncrementWrite;
    NvV32 FlipStall;
    NvV32 Reserved0134[0xc/4];
    NvV32 PmTrigger;
    NvV32 Reserved0144[0x3c/4];
    NvU32 SetContextDmaNotifies;
    NvU32 SetContextDmaA;
    NvU32 SetContextDmaB;
    NvV32 Reserved018c[0x4/4];
    NvU32 SetContextDmaState;
    NvU32 SetContextDmaColor;
    NvU32 SetContextDmaZeta;
    NvU32 SetContextDmaVertexA;
    NvU32 SetContextDmaVertexB;
    NvU32 SetContextDmaSemaphore;
    NvU32 SetContextDmaReport;
    NvV32 Reserved01ac[0x54/4];
    NvV32 SetSurfaceClipHorizontal;
    NvV32 SetSurfaceClipVertical;
    NvV32 SetSurfaceFormat;
    NvV32 SetSurfacePitch;
    NvU32 SetSurfaceColorOffset;
    NvU32 SetSurfaceZetaOffset;
    NvV32 Reserved0218[0x48/4];
    NvV32 SetCombinerAlphaICW[8];
    NvV32 Reserved0280[0x8/4];
    NvV32 SetCombinerSpecularFogCW0;
    NvV32 SetCombinerSpecularFogCW1;
    NvV32 SetControl0;
    NvV32 SetLightControl;
    NvV32 SetColorMaterial;
    NvV32 SetFogMode;
    NvV32 SetFogGenMode;
    NvV32 SetFogEnable;
    NvV32 SetFogColor;
    NvV32 Reserved02ac[0x8/4];
    NvV32 SetWindowClipType;
    NvV32 Reserved02b8[0x8/4];
    NvV32 SetWindowClipHorizontal[8];
    NvV32 SetWindowClipVertical[8];
    NvV32 SetAlphaTestEnable;
    NvV32 SetBlendEnable;
    NvV32 SetCullFaceEnable;
    NvV32 SetDepthTestEnable;
    NvV32 SetDitherEnable;
    NvV32 SetLightingEnable;
    NvV32 SetPointParamsEnable;
    NvV32 SetPointSmoothEnable;
    NvV32 SetLineSmoothEnable;
    NvV32 SetPolySmoothEnable;
    NvV32 SetSkinMode;
    NvV32 SetStencilTestEnable;
    NvV32 SetPolyOffsetPointEnable;
    NvV32 SetPolyOffsetLineEnable;
    NvV32 SetPolyOffsetFillEnable;
    NvV32 SetAlphaFunc;
    NvU32 SetAlphaRef;
    NvV32 SetBlendFuncSfactor;
    NvV32 SetBlendFuncDfactor;
    NvU32 SetBlendColor;
    NvV32 SetBlendEquation;
    NvV32 SetDepthFunc;
    NvV32 SetColorMask;
    NvV32 SetDepthMask;
    NvU32 SetStencilMask;
    NvV32 SetStencilFunc;
    NvU32 SetStencilFuncRef;
    NvU32 SetStencilFuncMask;
    NvV32 SetStencilOpFail;
    NvV32 SetStencilOpZfail;
    NvV32 SetStencilOpZpass;
    NvV32 SetShadeMode;
    NvU32 SetLineWidth;
    NvF32 SetPolygonOffsetScaleFactor;
    NvF32 SetPolygonOffsetBias;
    NvV32 SetFrontPolygonMode;
    NvV32 SetBackPolygonMode;
    NvF32 SetClipMin;
    NvF32 SetClipMax;
    NvV32 SetCullFace;
    NvV32 SetFrontFace;
    NvV32 SetNormalizationEnable;
    NvF32 SetMaterialEmission[3];
    NvF32 SetMaterialAlpha;
    NvV32 SetSpecularEnable;
    NvV32 SetLightEnableMask;
    struct {
    NvV32 S;
    NvV32 T;
    NvV32 R;
    NvV32 Q;
    } SetTexgen[4];
    NvV32 Reserved0400[0x20/4];
    NvV32 SetTextureMatrixEnable[4];
    NvV32 Reserved0430[0xc/4];
    NvU32 SetPointSize;
    NvF32 SetProjectionMatrix[16];
    NvF32 SetModelViewMatrix0[16];
    NvF32 SetModelViewMatrix1[16];
    NvF32 SetModelViewMatrix2[16];
    NvF32 SetModelViewMatrix3[16];
    NvF32 SetInverseModelViewMatrix0[16];
    NvF32 SetInverseModelViewMatrix1[16];
    NvF32 SetInverseModelViewMatrix2[16];
    NvF32 SetInverseModelViewMatrix3[16];
    NvF32 SetCompositeMatrix[16];
    NvF32 SetTextureMatrix0[16];
    NvF32 SetTextureMatrix1[16];
    NvF32 SetTextureMatrix2[16];
    NvF32 SetTextureMatrix3[16];
    NvV32 Reserved07c0[0x80/4];
    struct {
    NvF32 S[4];
    NvF32 T[4];
    NvF32 R[4];
    NvF32 Q[4];
    } SetTexgenPlane[4];
    NvV32 Reserved0940[0x80/4];
    NvF32 SetFogParams[3];
    NvV32 SetTexgenViewModel;
    NvF32 SetFogPlane[4];
    NvF32 SetSpecularParams[6];
    NvV32 SetSwathWidth;
    NvV32 SetFlatShadeOp;
    NvV32 Reserved0a00[0x10/4];
    NvF32 SetSceneAmbientColor[3];
    NvV32 Reserved0a1c[0x4/4];
    NvF32 SetViewportOffset[4];
    NvF32 SetPointParams[8];
    NvF32 SetEyePosition[4];
    NvV32 SetCombinerFactor0[8];
    NvV32 SetCombinerFactor1[8];
    NvV32 SetCombinerAlphaOCW[8];
    NvV32 SetCombinerColorICW[8];
    NvU32 SetColorKeyColor[4];
    NvF32 SetViewportScale[4];
    NvU32 SetTransformProgram[32];
    NvF32 SetTransformConstant[32];
    struct {
    NvF32 AmbientColor[3];
    NvF32 DiffuseColor[3];
    NvF32 SpecularColor[3];
    NvV32 Reserved0c24[0x1c/4];
    } SetBackLight[8];
    NvV32 Reserved0e00[0x200/4];
    struct {
    NvF32 AmbientColor[3];
    NvF32 DiffuseColor[3];
    NvF32 SpecularColor[3];
    NvF32 LocalRange;
    NvF32 InfiniteHalfVector[3];
    NvF32 InfiniteDirection[3];
    NvF32 SpotFalloff[3];
    NvF32 SpotDirection[4];
    NvF32 LocalPosition[3];
    NvF32 LocalAttenuation[3];
    NvV32 Reserved1074[0xc/4];
    } SetLight[8];
    NvV32 Reserved1400[0x7c/4];
    NvV32 SetStippleControl;
    NvU32 SetStipplePattern[32];
    NvF32 SetVertex3f[3];
    NvV32 Reserved150c[0xc/4];
    NvF32 SetVertex4f[4];
    NvS32 SetVertex4s[2];
    NvF32 SetNormal3f[3];
    NvV32 Reserved153c[0x4/4];
    NvS32 SetNormal3s[2];
    NvV32 Reserved1548[0x8/4];
    NvF32 SetDiffuseColor4f[4];
    NvF32 SetDiffuseColor3f[3];
    NvU32 SetDiffuseColor4ub;
    NvF32 SetSpecularColor4f[4];
    NvF32 SetSpecularColor3f[3];
    NvU32 SetSpecularColor4ub;
    NvF32 SetTexcoord0_2f[2];
    NvS32 SetTexcoord0_2s;
    NvV32 Reserved159c[0x4/4];
    NvF32 SetTexcoord0_4f[4];
    NvS32 SetTexcoord0_4s[2];
    NvF32 SetTexcoord1_2f[2];
    NvS32 SetTexcoord1_2s;
    NvV32 Reserved15c4[0x4/4];
    NvF32 SetTexcoord1_4f[4];
    NvS32 SetTexcoord1_4s[2];
    NvF32 SetTexcoord2_2f[2];
    NvS32 SetTexcoord2_2s;
    NvV32 Reserved15ec[0x4/4];
    NvF32 SetTexcoord2_4f[4];
    NvS32 SetTexcoord2_4s[2];
    NvF32 SetTexcoord3_2f[2];
    NvS32 SetTexcoord3_2s;
    NvV32 Reserved1614[0xc/4];
    NvF32 SetTexcoord3_4f[4];
    NvS32 SetTexcoord3_4s[2];
    NvV32 Reserved1638[0x60/4];
    NvF32 SetFog1f;
    NvF32 SetWeight1f;
    NvF32 SetWeight2f[2];
    NvV32 Reserved16a8[0x8/4];
    NvF32 SetWeight3f[3];
    NvV32 SetEdgeFlag;
    NvF32 SetWeight4f[4];
    NvF32 SetTransformFixedConst3[4];
    NvF32 SetTransformFixedConst0[4];
    NvF32 SetTransformFixedConst1[4];
    NvF32 SetTransformFixedConst2[4];
    NvV32 InvalidateVertexCacheFile;
    NvV32 InvalidateVertexFile;
    NvV32 TlNop;
    NvV32 TlSync;
    NvV32 SetVertexDataArrayOffset[16];
    NvV32 SetVertexDataArrayFormat[16];
    NvF32 SetBackSceneAmbientColor[3];
    NvF32 SetBackMaterialAlpha;
    NvF32 SetBackMaterialEmission[3];
    NvV32 SetLogicOpEnable;
    NvV32 SetLogicOp;
    NvV32 SetTwoSideLightEn;
    NvV32 ClearReportValue;
    NvV32 SetZpassPixelCountEnable;
    NvV32 GetReport;
    NvF32 SetTLConstZero[3];
    NvF32 SetEyeDirection[3];
    NvF32 SetLinearFogConst[3];
    NvV32 SetShaderClipPlaneMode;
    NvV32 SetBeginEnd;
    NvV32 ArrayElement16;
    NvV32 Reserved1804[0x4/4];
    NvU32 ArrayElement32;
    NvV32 Reserved180c[0x4/4];
    NvV32 DrawArrays;
    NvV32 Reserved1814[0x4/4];
    NvU32 InlineArray;
    NvF32 SetEyeVector[3];
    NvU32 InlineVertexReuse;
    NvV32 Reserved182c[0x54/4];
    struct {
    NvF32 M[2];
    } SetVertexData2f[16];
    NvS32 SetVertexData2s[16];
    NvS32 SetVertexData4ub[16];
    struct {
    NvS32 M[2];
    } SetVertexData4s[16];
    struct {
    NvF32 M[4];
    } SetVertexData4f[16];
    struct {
    NvU32 Offset;
    NvV32 Format;
    NvV32 Address;
    NvV32 Control0;
    NvV32 Control1;
    NvV32 Filter;
    NvV32 Reserved1b18[0x4/4];
    NvV32 ImageRect;
    NvV32 Palette;
    NvU32 BorderColor;
    NvF32 SetBumpEnvMat00;
    NvF32 SetBumpEnvMat01;
    NvF32 SetBumpEnvMat11;
    NvF32 SetBumpEnvMat10;
    NvF32 SetBumpEnvScale;
    NvF32 SetBumpEnvOffset;
    } SetTexture[4];
    NvV32 Reserved1c00[0x164/4];
    NvV32 ParkAttribute;
    NvV32 UnparkAttribute;
    NvU32 SetSemaphoreOffset;
    NvU32 BackEndWriteSemaphoreRelease;
    NvU32 TextureReadSemaphoreRelease;
    NvV32 SetZMinMaxControl;
    NvV32 SetAntiAliasingControl;
    NvV32 SetCompressZBufferEn;
    NvV32 SetOccludeZStencilEn;
    NvV32 Reserved1d88[0x4/4];
    NvU32 SetZStencilClearValue;
    NvU32 SetColorClearValue;
    NvV32 ClearSurface;
    NvV32 SetClearRectHorizontal;
    NvV32 SetClearRectVertical;
    NvV32 Reserved1da0[0x40/4];
    NvV32 SetBeginPatch0;
    NvV32 SetBeginPatch1;
    NvV32 SetBeginPatch2;
    NvV32 SetBeginPatch3;
    NvV32 SetEndPatch;
    NvV32 SetBeginEndSwatch;
    NvV32 SetBeginEndCurve;
    NvV32 Reserved1dfc[0x4/4];
    NvF32 SetCurveCoefficients[4];
    NvV32 SetBeginTransition0;
    NvV32 SetBeginTransition1;
    NvV32 SetBeginTransition2;
    NvV32 SetEndTransition;
    NvV32 SetSpecularFogFactor[2];
    NvF32 SetBackSpecularParams[6];
    NvV32 SetCombinerColorOCW[8];
    NvV32 SetCombinerControl;
    NvV32 Reserved1e64[0x4/4];
    NvF32 SetShadowZSlopeThreshold;
    NvV32 SetShadowDepthFunc;
    NvV32 SetShaderStageProgram;
    NvV32 SetDotRGBMapping;
    NvV32 SetShaderOtherStageInput;
    NvV32 Reserved1e7c[0x4/4];
    NvF32 SetTransformData[4];
    NvU32 LaunchTransformProgram;
    NvV32 SetTransformExecutionMode;
    NvV32 SetTransformProgramCxtWriteEn;
    NvU32 SetTransformProgramLoad;
    NvU32 SetTransformProgramStart;
    NvU32 SetTransformConstantLoad;
    NvV32 Reserved1ea8[0x118/4];
    NvV32 DebugInit[10];
    NvV32 Reserved1fe8[0x18/4];
} Nv20KelvinPrimitive;

#define NV097_NO_OPERATION                                                  0x00000100

#define NV097_NOTIFY                                                        0x00000104
#define NV097_NOTIFY_TYPE                                                         31:0
#define NV097_NOTIFY_TYPE_WRITE_ONLY                                        0x00000000
#define NV097_NOTIFY_TYPE_WRITE_THEN_AWAKEN                                 0x00000001

#define NV097_SET_WARNING_ENABLE                                            0x00000108
#define NV097_SET_WARNING_ENABLE_V                                                31:0
#define NV097_SET_WARNING_ENABLE_V_STOP                                     0x00000000
#define NV097_SET_WARNING_ENABLE_V_WRITE_ONLY                               0x00000001
#define NV097_SET_WARNING_ENABLE_V_WRITE_THEN_AWAKEN                        0x00000002

#define NV097_GET_STATE                                                     0x0000010c
#define NV097_GET_STATE_GETSTATE                                                  31:0
#define NV097_GET_STATE_GETSTATE_ALL_STATE                                  0x00000001
#define NV097_GET_STATE_GETSTATE_PUT_ALL_STATE                              0x00000002
#define NV097_GET_STATE_GETSTATE_SNAPSHOT_PRIM_ASSM                         0x00000006
#define NV097_GET_STATE_GETSTATE_RELOAD_PRIM_ASSM                           0x00000007

#define NV097_WAIT_FOR_IDLE                                                 0x00000110

#define NV097_PM_TRIGGER                                                    0x00000140
#define NV097_PM_TRIGGER_V                                                        31:0
#define NV097_PM_TRIGGER_V_NOP                                              0x00000000
#define NV097_PM_TRIGGER_V_TRIGGER                                          0x00000001

#define NV097_SET_FLIP_READ                                                 0x00000120
#define NV097_SET_FLIP_READ_V                                                     31:0

#define NV097_SET_FLIP_WRITE                                                0x00000124
#define NV097_SET_FLIP_WRITE_V                                                    31:0

#define NV097_SET_FLIP_MODULO                                               0x00000128
#define NV097_SET_FLIP_MODULO_V                                                   31:0

#define NV097_FLIP_INCREMENT_WRITE                                          0x0000012c

#define NV097_FLIP_STALL                                                    0x00000130

#define NV097_SET_CONTEXT_DMA_NOTIFIES                                      0x00000180
#define NV097_SET_CONTEXT_DMA_NOTIFIES_V                                          31:0

#define NV097_SET_CONTEXT_DMA_A                                             0x00000184
#define NV097_SET_CONTEXT_DMA_A_V                                                 31:0

#define NV097_SET_CONTEXT_DMA_B                                             0x00000188
#define NV097_SET_CONTEXT_DMA_B_V                                                 31:0

#define NV097_SET_CONTEXT_DMA_STATE                                         0x00000190
#define NV097_SET_CONTEXT_DMA_STATE_V                                             31:0

#define NV097_SET_CONTEXT_DMA_COLOR                                         0x00000194
#define NV097_SET_CONTEXT_DMA_COLOR_V                                             31:0

#define NV097_SET_CONTEXT_DMA_ZETA                                          0x00000198
#define NV097_SET_CONTEXT_DMA_ZETA_V                                              31:0

#define NV097_SET_CONTEXT_DMA_VERTEX_A                                      0x0000019c
#define NV097_SET_CONTEXT_DMA_VERTEX_A_V                                          31:0

#define NV097_SET_CONTEXT_DMA_VERTEX_B                                      0x000001a0
#define NV097_SET_CONTEXT_DMA_VERTEX_B_V                                          31:0

#define NV097_SET_CONTEXT_DMA_SEMAPHORE                                     0x000001a4
#define NV097_SET_CONTEXT_DMA_SEMAPHORE_V                                         31:0

#define NV097_SET_CONTEXT_DMA_REPORT                                        0x000001a8
#define NV097_SET_CONTEXT_DMA_REPORT_V                                            31:0

#define NV097_SET_SURFACE_CLIP_HORIZONTAL                                   0x00000200
#define NV097_SET_SURFACE_CLIP_HORIZONTAL_X                                       15:0
#define NV097_SET_SURFACE_CLIP_HORIZONTAL_WIDTH                                  31:16

#define NV097_SET_SURFACE_CLIP_VERTICAL                                     0x00000204
#define NV097_SET_SURFACE_CLIP_VERTICAL_Y                                         15:0
#define NV097_SET_SURFACE_CLIP_VERTICAL_HEIGHT                                   31:16

#define NV097_SET_SURFACE_PITCH                                             0x0000020c
#define NV097_SET_SURFACE_PITCH_COLOR                                             15:0
#define NV097_SET_SURFACE_PITCH_ZETA                                             31:16

#define NV097_SET_SURFACE_COLOR_OFFSET                                      0x00000210
#define NV097_SET_SURFACE_COLOR_OFFSET_V                                          31:0

#define NV097_SET_SURFACE_ZETA_OFFSET                                       0x00000214
#define NV097_SET_SURFACE_ZETA_OFFSET_V                                           31:0

#define NV097_SET_COMBINER_ALPHA_ICW(i)                             (0x00000260+(i)*4)
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP                                       31:29
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_ALPHA_ICW_A_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_ALPHA_ICW_A_ALPHA                                     28:28
#define NV097_SET_COMBINER_ALPHA_ICW_A_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_A_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE                                    27:24
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_D                         0x0000000D
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP                                       23:21
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_ALPHA_ICW_B_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_ALPHA_ICW_B_ALPHA                                     20:20
#define NV097_SET_COMBINER_ALPHA_ICW_B_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_B_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE                                    19:16
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_D                         0x0000000D
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP                                       15:13
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_ALPHA_ICW_C_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_ALPHA_ICW_C_ALPHA                                     12:12
#define NV097_SET_COMBINER_ALPHA_ICW_C_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_C_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE                                     11:8
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_D                         0x0000000D
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP                                         7:5
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_ALPHA_ICW_D_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_ALPHA_ICW_D_ALPHA                                       4:4
#define NV097_SET_COMBINER_ALPHA_ICW_D_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_D_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE                                      3:0
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_D                         0x0000000D

#define NV097_SET_COMBINER_COLOR_ICW(i)                             (0x00000ac0+(i)*4)
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP                                       31:29
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_COLOR_ICW_A_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_COLOR_ICW_A_ALPHA                                     28:28
#define NV097_SET_COMBINER_COLOR_ICW_A_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_A_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE                                    27:24
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_D                         0x0000000D
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP                                       23:21
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_COLOR_ICW_B_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_COLOR_ICW_B_ALPHA                                     20:20
#define NV097_SET_COMBINER_COLOR_ICW_B_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_B_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE                                    19:16
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_D                         0x0000000D
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP                                       15:13
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_COLOR_ICW_C_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_COLOR_ICW_C_ALPHA                                     12:12
#define NV097_SET_COMBINER_COLOR_ICW_C_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_C_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE                                     11:8
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_D                         0x0000000D
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP                                         7:5
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_IDENTITY                0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_UNSIGNED_INVERT                  0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NORMAL                    0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_EXPAND_NEGATE                    0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NORMAL                  0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_HALFBIAS_NEGATE                  0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_IDENTITY                  0x00000006
#define NV097_SET_COMBINER_COLOR_ICW_D_MAP_SIGNED_NEGATE                    0x00000007
#define NV097_SET_COMBINER_COLOR_ICW_D_ALPHA                                       4:4
#define NV097_SET_COMBINER_COLOR_ICW_D_ALPHA_FALSE                          0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_D_ALPHA_TRUE                           0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE                                      3:0
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_0                         0x00000000
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_1                         0x00000001
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_2                         0x00000002
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_3                         0x00000003
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_4                         0x00000004
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_5                         0x00000005
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_8                         0x00000008
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_9                         0x00000009
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_A                         0x0000000A
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_B                         0x0000000B
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_C                         0x0000000C
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_D                         0x0000000D

#define NV097_SET_COMBINER_FACTOR0(i)                               (0x00000a60+(i)*4)
#define NV097_SET_COMBINER_FACTOR0_BLUE                                            7:0
#define NV097_SET_COMBINER_FACTOR0_GREEN                                          15:8
#define NV097_SET_COMBINER_FACTOR0_RED                                           23:16
#define NV097_SET_COMBINER_FACTOR0_ALPHA                                         31:24

#define NV097_SET_COMBINER_FACTOR1(i)                               (0x00000a80+(i)*4)
#define NV097_SET_COMBINER_FACTOR1_BLUE                                            7:0
#define NV097_SET_COMBINER_FACTOR1_GREEN                                          15:8
#define NV097_SET_COMBINER_FACTOR1_RED                                           23:16
#define NV097_SET_COMBINER_FACTOR1_ALPHA                                         31:24

#define NV097_SET_COMBINER_ALPHA_OCW(i)                             (0x00000aa0+(i)*4)
#define NV097_SET_COMBINER_ALPHA_OCW_OPERATION                                   31:15
#define NV097_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT                      0x00000000
#define NV097_SET_COMBINER_ALPHA_OCW_OPERATION_NOSHIFT_BIAS                 0x00000001
#define NV097_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1                 0x00000002
#define NV097_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY1_BIAS            0x00000003
#define NV097_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTLEFTBY2                 0x00000004
#define NV097_SET_COMBINER_ALPHA_OCW_OPERATION_SHIFTRIGHTBY1                0x00000006
#define NV097_SET_COMBINER_ALPHA_OCW_MUX_ENABLE                                  14:14
#define NV097_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_FALSE                       0x00000000
#define NV097_SET_COMBINER_ALPHA_OCW_MUX_ENABLE_TRUE                        0x00000001
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST                                      11:8
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_0                          0x00000000
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_4                          0x00000004
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_5                          0x00000005
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_8                          0x00000008
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_9                          0x00000009
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_A                          0x0000000A
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_B                          0x0000000B
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_C                          0x0000000C
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_D                          0x0000000D
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST                                        7:4
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_0                           0x00000000
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_4                           0x00000004
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_5                           0x00000005
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_8                           0x00000008
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_9                           0x00000009
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_A                           0x0000000A
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_B                           0x0000000B
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_C                           0x0000000C
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_D                           0x0000000D
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST                                        3:0
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_0                           0x00000000
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_4                           0x00000004
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_5                           0x00000005
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_8                           0x00000008
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_9                           0x00000009
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_A                           0x0000000A
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_B                           0x0000000B
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_C                           0x0000000C
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_D                           0x0000000D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW0                                 0x00000288
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE                            31:29
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_FALSE                 0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_INVERSE_TRUE                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA                              28:28
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_FALSE                   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_ALPHA_TRUE                    0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE                             27:24
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_0                  0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_1                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_2                  0x00000002
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_3                  0x00000003
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_4                  0x00000004
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_5                  0x00000005
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_8                  0x00000008
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_9                  0x00000009
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_A                  0x0000000A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_B                  0x0000000B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_C                  0x0000000C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_D                  0x0000000D
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_SPECLIT            0x0000000E
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_EF_PROD            0x0000000F
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE                            23:21
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_FALSE                 0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_INVERSE_TRUE                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA                              20:20
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_FALSE                   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_ALPHA_TRUE                    0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE                             19:16
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_0                  0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_1                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_2                  0x00000002
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_3                  0x00000003
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_4                  0x00000004
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_5                  0x00000005
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_8                  0x00000008
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_9                  0x00000009
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_A                  0x0000000A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_B                  0x0000000B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_C                  0x0000000C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_D                  0x0000000D
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_SPECLIT            0x0000000E
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_EF_PROD            0x0000000F
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE                            15:13
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_FALSE                 0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_INVERSE_TRUE                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA                              12:12
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_FALSE                   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_ALPHA_TRUE                    0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE                              11:8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_0                  0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_1                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_2                  0x00000002
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_3                  0x00000003
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_4                  0x00000004
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_5                  0x00000005
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_8                  0x00000008
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_9                  0x00000009
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_A                  0x0000000A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_B                  0x0000000B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_C                  0x0000000C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_D                  0x0000000D
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_SPECLIT            0x0000000E
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_EF_PROD            0x0000000F
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE                              7:5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_FALSE                 0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_INVERSE_TRUE                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA                                4:4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_FALSE                   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_ALPHA_TRUE                    0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE                               3:0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_0                  0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_1                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_2                  0x00000002
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_3                  0x00000003
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_4                  0x00000004
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_5                  0x00000005
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_8                  0x00000008
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_9                  0x00000009
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_A                  0x0000000A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_B                  0x0000000B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_C                  0x0000000C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_D                  0x0000000D
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_SPECLIT            0x0000000E
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_EF_PROD            0x0000000F

#define NV097_SET_COMBINER_SPECULAR_FOG_CW1                                 0x0000028c
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE                            31:29
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_FALSE                 0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_INVERSE_TRUE                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA                              28:28
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_FALSE                   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_ALPHA_TRUE                    0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE                             27:24
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_0                  0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_1                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_2                  0x00000002
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_3                  0x00000003
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_4                  0x00000004
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_5                  0x00000005
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_8                  0x00000008
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_9                  0x00000009
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_A                  0x0000000A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_B                  0x0000000B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_C                  0x0000000C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_D                  0x0000000D
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE                            23:21
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_FALSE                 0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_INVERSE_TRUE                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA                              20:20
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_FALSE                   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_ALPHA_TRUE                    0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE                             19:16
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_0                  0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_1                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_2                  0x00000002
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_3                  0x00000003
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_4                  0x00000004
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_5                  0x00000005
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_8                  0x00000008
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_9                  0x00000009
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_A                  0x0000000A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_B                  0x0000000B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_C                  0x0000000C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_D                  0x0000000D
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE                            15:13
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_FALSE                 0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_INVERSE_TRUE                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA                              12:12
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_FALSE                   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_ALPHA_TRUE                    0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE                              11:8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_0                  0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_1                  0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_2                  0x00000002
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_3                  0x00000003
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_4                  0x00000004
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_5                  0x00000005
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_8                  0x00000008
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_9                  0x00000009
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_A                  0x0000000A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_B                  0x0000000B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_C                  0x0000000C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_D                  0x0000000D
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP                         7:7
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_FALSE            0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_CLAMP_TRUE             0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5                 6:6
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_FALSE    0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R5_TRUE     0x00000001
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12                5:0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_FALSE   0x00000000
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_SPECULAR_ADD_INVERT_R12_TRUE    0x00000020

#define NV097_SET_CONTROL0                                                  0x00000290
#define NV097_SET_CONTROL0_COLOR_SPACE_CONVERT                                   31:28
#define NV097_SET_CONTROL0_COLOR_SPACE_CONVERT_PASS                         0x00000000
#define NV097_SET_CONTROL0_COLOR_SPACE_CONVERT_CRYCB_TO_RGB                 0x00000001
#define NV097_SET_CONTROL0_COLOR_SPACE_CONVERT_SCRYSCB_TO_RGB               0x00000002
#define NV097_SET_CONTROL0_PREMULTIPLIEDALPHA                                    27:24
#define NV097_SET_CONTROL0_PREMULTIPLIEDALPHA_FALSE                         0x00000000
#define NV097_SET_CONTROL0_PREMULTIPLIEDALPHA_TRUE                          0x00000001
#define NV097_SET_CONTROL0_TEXTUREPERSPECTIVE                                    23:20
#define NV097_SET_CONTROL0_TEXTUREPERSPECTIVE_FALSE                         0x00000000
#define NV097_SET_CONTROL0_TEXTUREPERSPECTIVE_TRUE                          0x00000001
#define NV097_SET_CONTROL0_Z_PERSPECTIVE_ENABLE                                  19:16
#define NV097_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_FALSE                       0x00000000
#define NV097_SET_CONTROL0_Z_PERSPECTIVE_ENABLE_TRUE                        0x00000001
#define NV097_SET_CONTROL0_Z_FORMAT                                              15:12
#define NV097_SET_CONTROL0_Z_FORMAT_FIXED                                   0x00000000
#define NV097_SET_CONTROL0_Z_FORMAT_FLOAT                                   0x00000001
#define NV097_SET_CONTROL0_STENCIL_WRITE_ENABLE                                    7:0
#define NV097_SET_CONTROL0_STENCIL_WRITE_ENABLE_FALSE                       0x00000000
#define NV097_SET_CONTROL0_STENCIL_WRITE_ENABLE_TRUE                        0x00000001

#define NV097_SET_LIGHT_CONTROL                                             0x00000294
#define NV097_SET_LIGHT_CONTROL_LOCALEYE                                         16:16
#define NV097_SET_LIGHT_CONTROL_LOCALEYE_FALSE                              0x00000000
#define NV097_SET_LIGHT_CONTROL_LOCALEYE_TRUE                               0x00000001
#define NV097_SET_LIGHT_CONTROL_SOUT                                             31:17
#define NV097_SET_LIGHT_CONTROL_SOUT_ZERO_OUT                               0x00000000
#define NV097_SET_LIGHT_CONTROL_SOUT_PASSTHROUGH                            0x00000001
#define NV097_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN                               1:0
#define NV097_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_FALSE                  0x00000000
#define NV097_SET_LIGHT_CONTROL_SEPARATE_SPECULAR_EN_TRUE                   0x00000001

#define NV097_SET_COLOR_MATERIAL                                            0x00000298
#define NV097_SET_COLOR_MATERIAL_EMISSIVE_MATERIAL                                 1:0
#define NV097_SET_COLOR_MATERIAL_EMISSIVE_MATERIAL_DISABLE                  0x00000000
#define NV097_SET_COLOR_MATERIAL_EMISSIVE_MATERIAL_DIFFUSE_VTX_COLOR        0x00000001
#define NV097_SET_COLOR_MATERIAL_EMISSIVE_MATERIAL_SPECULAR_VTX_COLOR       0x00000002
#define NV097_SET_COLOR_MATERIAL_AMBIENT_MATERIAL                                  3:2
#define NV097_SET_COLOR_MATERIAL_AMBIENT_MATERIAL_DISABLE                   0x00000000
#define NV097_SET_COLOR_MATERIAL_AMBIENT_MATERIAL_DIFFUSE_VTX_COLOR         0x00000001
#define NV097_SET_COLOR_MATERIAL_AMBIENT_MATERIAL_SPECULAR_VTX_COLOR        0x00000002
#define NV097_SET_COLOR_MATERIAL_DIFF_MATERIAL                                     5:4
#define NV097_SET_COLOR_MATERIAL_DIFF_MATERIAL_DISABLE                      0x00000000
#define NV097_SET_COLOR_MATERIAL_DIFF_MATERIAL_DIFFUSE_VTX_COLOR            0x00000001
#define NV097_SET_COLOR_MATERIAL_DIFF_MATERIAL_SPECULAR_VTX_COLOR           0x00000002
#define NV097_SET_COLOR_MATERIAL_SPECULAR_MATERIAL                                 7:6
#define NV097_SET_COLOR_MATERIAL_SPECULAR_MATERIAL_DISABLE                  0x00000000
#define NV097_SET_COLOR_MATERIAL_SPECULAR_MATERIAL_DIFFUSE_VTX_COLOR        0x00000001
#define NV097_SET_COLOR_MATERIAL_SPECULAR_MATERIAL_SPECULAR_VTX_COLOR       0x00000002
#define NV097_SET_COLOR_MATERIAL_BACK_EMISSIVE_MATERIAL                            9:8
#define NV097_SET_COLOR_MATERIAL_BACK_EMISSIVE_MATERIAL_DISABLE             0x00000000
#define NV097_SET_COLOR_MATERIAL_BACK_EMISSIVE_MATERIAL_DIFF_VTX_COLOR      0x00000001
#define NV097_SET_COLOR_MATERIAL_BACK_EMISSIVE_MATERIAL_SPEC_VTX_COLOR      0x00000002
#define NV097_SET_COLOR_MATERIAL_BACK_AMBIENT_MATERIAL                           11:10
#define NV097_SET_COLOR_MATERIAL_BACK_AMBIENT_MATERIAL_DISABLE              0x00000000
#define NV097_SET_COLOR_MATERIAL_BACK_AMBIENT_MATERIAL_DIFF_VTX_COLOR       0x00000001
#define NV097_SET_COLOR_MATERIAL_BACK_AMBIENT_MATERIAL_SPEC_VTX_COLOR       0x00000002
#define NV097_SET_COLOR_MATERIAL_BACK_DIFF_MATERIAL                              13:12
#define NV097_SET_COLOR_MATERIAL_BACK_DIFF_MATERIAL_DISABLE                 0x00000000
#define NV097_SET_COLOR_MATERIAL_BACK_DIFF_MATERIAL_DIFF_VTX_COLOR          0x00000001
#define NV097_SET_COLOR_MATERIAL_BACK_DIFF_MATERIAL_SPEC_VTX_COLOR          0x00000002
#define NV097_SET_COLOR_MATERIAL_BACK_SPECULAR_MATERIAL                          15:14
#define NV097_SET_COLOR_MATERIAL_BACK_SPECULAR_MATERIAL_DISABLE             0x00000000
#define NV097_SET_COLOR_MATERIAL_BACK_SPECULAR_MATERIAL_DIFF_VTX_COLOR      0x00000001
#define NV097_SET_COLOR_MATERIAL_BACK_SPECULAR_MATERIAL_SPEC_VTX_COLOR      0x00000002

#define NV097_SET_FOG_MODE                                                  0x0000029c
#define NV097_SET_FOG_MODE_V                                                      31:0
#define NV097_SET_FOG_MODE_V_LINEAR                                         0x00002601
#define NV097_SET_FOG_MODE_V_EXP                                            0x00000800
#define NV097_SET_FOG_MODE_V_EXP2                                           0x00000801
#define NV097_SET_FOG_MODE_V_EXP_ABS                                        0x00000802
#define NV097_SET_FOG_MODE_V_EXP2_ABS                                       0x00000803
#define NV097_SET_FOG_MODE_V_LINEAR_ABS                                     0x00000804

#define NV097_SET_FOG_GEN_MODE                                              0x000002a0
#define NV097_SET_FOG_GEN_MODE_V                                                  31:0
#define NV097_SET_FOG_GEN_MODE_V_SPEC_ALPHA                                 0x00000000
#define NV097_SET_FOG_GEN_MODE_V_RADIAL                                     0x00000001
#define NV097_SET_FOG_GEN_MODE_V_PLANAR                                     0x00000002
#define NV097_SET_FOG_GEN_MODE_V_ABS_PLANAR                                 0x00000003
#define NV097_SET_FOG_GEN_MODE_V_FOG_X                                      0x00000006

#define NV097_SET_FOG_ENABLE                                                0x000002a4
#define NV097_SET_FOG_ENABLE_V                                                    31:0
#define NV097_SET_FOG_ENABLE_V_FALSE                                        0x00000000
#define NV097_SET_FOG_ENABLE_V_TRUE                                         0x00000001

#define NV097_SET_FOG_COLOR                                                 0x000002a8
#define NV097_SET_FOG_COLOR_RED                                                    7:0
#define NV097_SET_FOG_COLOR_GREEN                                                 15:8
#define NV097_SET_FOG_COLOR_BLUE                                                 23:16
#define NV097_SET_FOG_COLOR_ALPHA                                                31:24

#define NV097_SET_COLOR_KEY_COLOR(i)                                (0x00000ae0+(i)*4)
#define NV097_SET_COLOR_KEY_COLOR_V                                               31:0

#define NV097_SET_WINDOW_CLIP_TYPE                                          0x000002b4
#define NV097_SET_WINDOW_CLIP_TYPE_V                                              31:0
#define NV097_SET_WINDOW_CLIP_TYPE_V_INCLUSIVE                              0x00000000
#define NV097_SET_WINDOW_CLIP_TYPE_V_EXCLUSIVE                              0x00000001

#define NV097_SET_WINDOW_CLIP_HORIZONTAL(i)                         (0x000002c0+(i)*4)
#define NV097_SET_WINDOW_CLIP_HORIZONTAL_XMIN                                     11:0
#define NV097_SET_WINDOW_CLIP_HORIZONTAL_XMAX                                    27:16

#define NV097_SET_WINDOW_CLIP_VERTICAL(i)                           (0x000002e0+(i)*4)
#define NV097_SET_WINDOW_CLIP_VERTICAL_YMIN                                       11:0
#define NV097_SET_WINDOW_CLIP_VERTICAL_YMAX                                      27:16

#define NV097_SET_ALPHA_TEST_ENABLE                                         0x00000300
#define NV097_SET_ALPHA_TEST_ENABLE_V                                             31:0
#define NV097_SET_ALPHA_TEST_ENABLE_V_FALSE                                 0x00000000
#define NV097_SET_ALPHA_TEST_ENABLE_V_TRUE                                  0x00000001

#define NV097_SET_BLEND_ENABLE                                              0x00000304
#define NV097_SET_BLEND_ENABLE_V                                                  31:0
#define NV097_SET_BLEND_ENABLE_V_FALSE                                      0x00000000
#define NV097_SET_BLEND_ENABLE_V_TRUE                                       0x00000001

#define NV097_SET_CULL_FACE_ENABLE                                          0x00000308
#define NV097_SET_CULL_FACE_ENABLE_V                                              31:0
#define NV097_SET_CULL_FACE_ENABLE_V_FALSE                                  0x00000000
#define NV097_SET_CULL_FACE_ENABLE_V_TRUE                                   0x00000001

#define NV097_SET_DEPTH_TEST_ENABLE                                         0x0000030c
#define NV097_SET_DEPTH_TEST_ENABLE_V                                             31:0
#define NV097_SET_DEPTH_TEST_ENABLE_V_FALSE                                 0x00000000
#define NV097_SET_DEPTH_TEST_ENABLE_V_TRUE                                  0x00000001

#define NV097_SET_DITHER_ENABLE                                             0x00000310
#define NV097_SET_DITHER_ENABLE_V                                                 31:0
#define NV097_SET_DITHER_ENABLE_V_FALSE                                     0x00000000
#define NV097_SET_DITHER_ENABLE_V_TRUE                                      0x00000001

#define NV097_SET_LIGHTING_ENABLE                                           0x00000314
#define NV097_SET_LIGHTING_ENABLE_V                                               31:0
#define NV097_SET_LIGHTING_ENABLE_V_FALSE                                   0x00000000
#define NV097_SET_LIGHTING_ENABLE_V_TRUE                                    0x00000001

#define NV097_SET_POINT_PARAMS_ENABLE                                       0x00000318
#define NV097_SET_POINT_PARAMS_ENABLE_V                                           31:0
#define NV097_SET_POINT_PARAMS_ENABLE_V_FALSE                               0x00000000
#define NV097_SET_POINT_PARAMS_ENABLE_V_TRUE                                0x00000001

#define NV097_SET_POINT_SMOOTH_ENABLE                                       0x0000031c
#define NV097_SET_POINT_SMOOTH_ENABLE_V                                           31:0
#define NV097_SET_POINT_SMOOTH_ENABLE_V_FALSE                               0x00000000
#define NV097_SET_POINT_SMOOTH_ENABLE_V_TRUE                                0x00000001

#define NV097_SET_LINE_SMOOTH_ENABLE                                        0x00000320
#define NV097_SET_LINE_SMOOTH_ENABLE_V                                            31:0
#define NV097_SET_LINE_SMOOTH_ENABLE_V_FALSE                                0x00000000
#define NV097_SET_LINE_SMOOTH_ENABLE_V_TRUE                                 0x00000001

#define NV097_SET_POLY_SMOOTH_ENABLE                                        0x00000324
#define NV097_SET_POLY_SMOOTH_ENABLE_V                                            31:0
#define NV097_SET_POLY_SMOOTH_ENABLE_V_FALSE                                0x00000000
#define NV097_SET_POLY_SMOOTH_ENABLE_V_TRUE                                 0x00000001

#define NV097_SET_STIPPLE_CONTROL                                           0x0000147c
#define NV097_SET_STIPPLE_CONTROL_V                                               31:0
#define NV097_SET_STIPPLE_CONTROL_V_OFF                                     0x00000000
#define NV097_SET_STIPPLE_CONTROL_V_POLYGON                                 0x00000001

#define NV097_SET_STIPPLE_PATTERN(i)                                (0x00001480+(i)*4)
#define NV097_SET_STIPPLE_PATTERN_V                                               31:0

#define NV097_SET_SKIN_MODE                                                 0x00000328
#define NV097_SET_SKIN_MODE_V                                                     31:0
#define NV097_SET_SKIN_MODE_V_OFF                                           0x00000000
#define NV097_SET_SKIN_MODE_V_2G                                            0x00000001
#define NV097_SET_SKIN_MODE_V_2                                             0x00000002
#define NV097_SET_SKIN_MODE_V_3G                                            0x00000003
#define NV097_SET_SKIN_MODE_V_3                                             0x00000004
#define NV097_SET_SKIN_MODE_V_4G                                            0x00000005
#define NV097_SET_SKIN_MODE_V_4                                             0x00000006

#define NV097_SET_STENCIL_TEST_ENABLE                                       0x0000032c
#define NV097_SET_STENCIL_TEST_ENABLE_V                                           31:0
#define NV097_SET_STENCIL_TEST_ENABLE_V_FALSE                               0x00000000
#define NV097_SET_STENCIL_TEST_ENABLE_V_TRUE                                0x00000001

#define NV097_SET_POLY_OFFSET_POINT_ENABLE                                  0x00000330
#define NV097_SET_POLY_OFFSET_POINT_ENABLE_V                                      31:0
#define NV097_SET_POLY_OFFSET_POINT_ENABLE_V_FALSE                          0x00000000
#define NV097_SET_POLY_OFFSET_POINT_ENABLE_V_TRUE                           0x00000001

#define NV097_SET_POLY_OFFSET_LINE_ENABLE                                   0x00000334
#define NV097_SET_POLY_OFFSET_LINE_ENABLE_V                                       31:0
#define NV097_SET_POLY_OFFSET_LINE_ENABLE_V_FALSE                           0x00000000
#define NV097_SET_POLY_OFFSET_LINE_ENABLE_V_TRUE                            0x00000001

#define NV097_SET_POLY_OFFSET_FILL_ENABLE                                   0x00000338
#define NV097_SET_POLY_OFFSET_FILL_ENABLE_V                                       31:0
#define NV097_SET_POLY_OFFSET_FILL_ENABLE_V_FALSE                           0x00000000
#define NV097_SET_POLY_OFFSET_FILL_ENABLE_V_TRUE                            0x00000001

#define NV097_SET_ALPHA_FUNC                                                0x0000033c
#define NV097_SET_ALPHA_FUNC_V                                                    31:0
#define NV097_SET_ALPHA_FUNC_V_NEVER                                        0x00000200
#define NV097_SET_ALPHA_FUNC_V_LESS                                         0x00000201
#define NV097_SET_ALPHA_FUNC_V_EQUAL                                        0x00000202
#define NV097_SET_ALPHA_FUNC_V_LEQUAL                                       0x00000203
#define NV097_SET_ALPHA_FUNC_V_GREATER                                      0x00000204
#define NV097_SET_ALPHA_FUNC_V_NOTEQUAL                                     0x00000205
#define NV097_SET_ALPHA_FUNC_V_GEQUAL                                       0x00000206
#define NV097_SET_ALPHA_FUNC_V_ALWAYS                                       0x00000207

#define NV097_SET_ALPHA_REF                                                 0x00000340
#define NV097_SET_ALPHA_REF_V                                                     31:0

#define NV097_SET_BLEND_FUNC_SFACTOR                                        0x00000344
#define NV097_SET_BLEND_FUNC_SFACTOR_V                                            31:0
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ZERO                                 0x00000000
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ONE                                  0x00000001
#define NV097_SET_BLEND_FUNC_SFACTOR_V_SRC_COLOR                            0x00000300
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_COLOR                  0x00000301
#define NV097_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA                            0x00000302
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_SRC_ALPHA                  0x00000303
#define NV097_SET_BLEND_FUNC_SFACTOR_V_DST_ALPHA                            0x00000304
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_ALPHA                  0x00000305
#define NV097_SET_BLEND_FUNC_SFACTOR_V_DST_COLOR                            0x00000306
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_DST_COLOR                  0x00000307
#define NV097_SET_BLEND_FUNC_SFACTOR_V_SRC_ALPHA_SATURATE                   0x00000308
#define NV097_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_COLOR                       0x00008001
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_COLOR             0x00008002
#define NV097_SET_BLEND_FUNC_SFACTOR_V_CONSTANT_ALPHA                       0x00008003
#define NV097_SET_BLEND_FUNC_SFACTOR_V_ONE_MINUS_CONSTANT_ALPHA             0x00008004

#define NV097_SET_BLEND_FUNC_DFACTOR                                        0x00000348
#define NV097_SET_BLEND_FUNC_DFACTOR_V                                            31:0
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ZERO                                 0x00000000
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ONE                                  0x00000001
#define NV097_SET_BLEND_FUNC_DFACTOR_V_SRC_COLOR                            0x00000300
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_COLOR                  0x00000301
#define NV097_SET_BLEND_FUNC_DFACTOR_V_SRC_ALPHA                            0x00000302
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_SRC_ALPHA                  0x00000303
#define NV097_SET_BLEND_FUNC_DFACTOR_V_DST_ALPHA                            0x00000304
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_ALPHA                  0x00000305
#define NV097_SET_BLEND_FUNC_DFACTOR_V_DST_COLOR                            0x00000306
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_DST_COLOR                  0x00000307
#define NV097_SET_BLEND_FUNC_DFACTOR_V_SRC_ALPHA_SATURATE                   0x00000308
#define NV097_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_COLOR                       0x00008001
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_COLOR             0x00008002
#define NV097_SET_BLEND_FUNC_DFACTOR_V_CONSTANT_ALPHA                       0x00008003
#define NV097_SET_BLEND_FUNC_DFACTOR_V_ONE_MINUS_CONSTANT_ALPHA             0x00008004

#define NV097_SET_BLEND_COLOR                                               0x0000034c
#define NV097_SET_BLEND_COLOR_V                                                   31:0

#define NV097_SET_BLEND_EQUATION                                            0x00000350
#define NV097_SET_BLEND_EQUATION_V                                                31:0
#define NV097_SET_BLEND_EQUATION_V_FUNC_SUBTRACT                            0x0000800A
#define NV097_SET_BLEND_EQUATION_V_FUNC_REVERSE_SUBTRACT                    0x0000800B
#define NV097_SET_BLEND_EQUATION_V_FUNC_ADD                                 0x00008006
#define NV097_SET_BLEND_EQUATION_V_MIN                                      0x00008007
#define NV097_SET_BLEND_EQUATION_V_MAX                                      0x00008008
#define NV097_SET_BLEND_EQUATION_V_FUNC_REVERSE_SUBTRACT_SIGNED             0x0000F005
#define NV097_SET_BLEND_EQUATION_V_FUNC_ADD_SIGNED                          0x0000F006

#define NV097_SET_DEPTH_FUNC                                                0x00000354
#define NV097_SET_DEPTH_FUNC_V                                                    31:0
#define NV097_SET_DEPTH_FUNC_V_NEVER                                        0x00000200
#define NV097_SET_DEPTH_FUNC_V_LESS                                         0x00000201
#define NV097_SET_DEPTH_FUNC_V_EQUAL                                        0x00000202
#define NV097_SET_DEPTH_FUNC_V_LEQUAL                                       0x00000203
#define NV097_SET_DEPTH_FUNC_V_GREATER                                      0x00000204
#define NV097_SET_DEPTH_FUNC_V_NOTEQUAL                                     0x00000205
#define NV097_SET_DEPTH_FUNC_V_GEQUAL                                       0x00000206
#define NV097_SET_DEPTH_FUNC_V_ALWAYS                                       0x00000207

#define NV097_SET_COLOR_MASK                                                0x00000358
#define NV097_SET_COLOR_MASK_ALPHA_WRITE_ENABLE                                  31:24
#define NV097_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_FALSE                       0x00000000
#define NV097_SET_COLOR_MASK_ALPHA_WRITE_ENABLE_TRUE                        0x00000001
#define NV097_SET_COLOR_MASK_RED_WRITE_ENABLE                                    23:16
#define NV097_SET_COLOR_MASK_RED_WRITE_ENABLE_FALSE                         0x00000000
#define NV097_SET_COLOR_MASK_RED_WRITE_ENABLE_TRUE                          0x00000001
#define NV097_SET_COLOR_MASK_GREEN_WRITE_ENABLE                                   15:8
#define NV097_SET_COLOR_MASK_GREEN_WRITE_ENABLE_FALSE                       0x00000000
#define NV097_SET_COLOR_MASK_GREEN_WRITE_ENABLE_TRUE                        0x00000001
#define NV097_SET_COLOR_MASK_BLUE_WRITE_ENABLE                                     7:0
#define NV097_SET_COLOR_MASK_BLUE_WRITE_ENABLE_FALSE                        0x00000000
#define NV097_SET_COLOR_MASK_BLUE_WRITE_ENABLE_TRUE                         0x00000001

#define NV097_SET_DEPTH_MASK                                                0x0000035c
#define NV097_SET_DEPTH_MASK_V                                                    31:0
#define NV097_SET_DEPTH_MASK_V_FALSE                                        0x00000000
#define NV097_SET_DEPTH_MASK_V_TRUE                                         0x00000001

#define NV097_SET_STENCIL_MASK                                              0x00000360
#define NV097_SET_STENCIL_MASK_V                                                  31:0

#define NV097_SET_STENCIL_FUNC                                              0x00000364
#define NV097_SET_STENCIL_FUNC_V                                                  31:0
#define NV097_SET_STENCIL_FUNC_V_NEVER                                      0x00000200
#define NV097_SET_STENCIL_FUNC_V_LESS                                       0x00000201
#define NV097_SET_STENCIL_FUNC_V_EQUAL                                      0x00000202
#define NV097_SET_STENCIL_FUNC_V_LEQUAL                                     0x00000203
#define NV097_SET_STENCIL_FUNC_V_GREATER                                    0x00000204
#define NV097_SET_STENCIL_FUNC_V_NOTEQUAL                                   0x00000205
#define NV097_SET_STENCIL_FUNC_V_GEQUAL                                     0x00000206
#define NV097_SET_STENCIL_FUNC_V_ALWAYS                                     0x00000207

#define NV097_SET_STENCIL_FUNC_REF                                          0x00000368
#define NV097_SET_STENCIL_FUNC_REF_V                                              31:0

#define NV097_SET_STENCIL_FUNC_MASK                                         0x0000036c
#define NV097_SET_STENCIL_FUNC_MASK_V                                             31:0

#define NV097_SET_STENCIL_OP_FAIL                                           0x00000370
#define NV097_SET_STENCIL_OP_FAIL_V                                               31:0
#define NV097_SET_STENCIL_OP_FAIL_V_KEEP                                    0x00001E00
#define NV097_SET_STENCIL_OP_FAIL_V_ZERO                                    0x00000000
#define NV097_SET_STENCIL_OP_FAIL_V_REPLACE                                 0x00001E01
#define NV097_SET_STENCIL_OP_FAIL_V_INCRSAT                                 0x00001E02
#define NV097_SET_STENCIL_OP_FAIL_V_DECRSAT                                 0x00001E03
#define NV097_SET_STENCIL_OP_FAIL_V_INVERT                                  0x0000150A
#define NV097_SET_STENCIL_OP_FAIL_V_INCR                                    0x00008507
#define NV097_SET_STENCIL_OP_FAIL_V_DECR                                    0x00008508

#define NV097_SET_STENCIL_OP_ZFAIL                                          0x00000374
#define NV097_SET_STENCIL_OP_ZFAIL_V                                              31:0
#define NV097_SET_STENCIL_OP_ZFAIL_V_KEEP                                   0x00001E00
#define NV097_SET_STENCIL_OP_ZFAIL_V_ZERO                                   0x00000000
#define NV097_SET_STENCIL_OP_ZFAIL_V_REPLACE                                0x00001E01
#define NV097_SET_STENCIL_OP_ZFAIL_V_INCRSAT                                0x00001E02
#define NV097_SET_STENCIL_OP_ZFAIL_V_DECRSAT                                0x00001E03
#define NV097_SET_STENCIL_OP_ZFAIL_V_INVERT                                 0x0000150A
#define NV097_SET_STENCIL_OP_ZFAIL_V_INCR                                   0x00008507
#define NV097_SET_STENCIL_OP_ZFAIL_V_DECR                                   0x00008508

#define NV097_SET_STENCIL_OP_ZPASS                                          0x00000378
#define NV097_SET_STENCIL_OP_ZPASS_V                                              31:0
#define NV097_SET_STENCIL_OP_ZPASS_V_KEEP                                   0x00001E00
#define NV097_SET_STENCIL_OP_ZPASS_V_ZERO                                   0x00000000
#define NV097_SET_STENCIL_OP_ZPASS_V_REPLACE                                0x00001E01
#define NV097_SET_STENCIL_OP_ZPASS_V_INCRSAT                                0x00001E02
#define NV097_SET_STENCIL_OP_ZPASS_V_DECRSAT                                0x00001E03
#define NV097_SET_STENCIL_OP_ZPASS_V_INVERT                                 0x0000150A
#define NV097_SET_STENCIL_OP_ZPASS_V_INCR                                   0x00008507
#define NV097_SET_STENCIL_OP_ZPASS_V_DECR                                   0x00008508

#define NV097_SET_SHADE_MODE                                                0x0000037c
#define NV097_SET_SHADE_MODE_V                                                    31:0
#define NV097_SET_SHADE_MODE_V_FLAT                                         0x00001D00
#define NV097_SET_SHADE_MODE_V_SMOOTH                                       0x00001D01

#define NV097_SET_LINE_WIDTH                                                0x00000380
#define NV097_SET_LINE_WIDTH_V                                                    31:0

#define NV097_SET_POLYGON_OFFSET_SCALE_FACTOR                               0x00000384
#define NV097_SET_POLYGON_OFFSET_SCALE_FACTOR_V                                   31:0

#define NV097_SET_POLYGON_OFFSET_BIAS                                       0x00000388
#define NV097_SET_POLYGON_OFFSET_BIAS_V                                           31:0

#define NV097_SET_FRONT_POLYGON_MODE                                        0x0000038c
#define NV097_SET_FRONT_POLYGON_MODE_V                                            31:0
#define NV097_SET_FRONT_POLYGON_MODE_V_POINT                                0x00001B00
#define NV097_SET_FRONT_POLYGON_MODE_V_LINE                                 0x00001B01
#define NV097_SET_FRONT_POLYGON_MODE_V_FILL                                 0x00001B02

#define NV097_SET_BACK_POLYGON_MODE                                         0x00000390
#define NV097_SET_BACK_POLYGON_MODE_V                                             31:0
#define NV097_SET_BACK_POLYGON_MODE_V_POINT                                 0x00001B00
#define NV097_SET_BACK_POLYGON_MODE_V_LINE                                  0x00001B01
#define NV097_SET_BACK_POLYGON_MODE_V_FILL                                  0x00001B02

#define NV097_SET_CLIP_MIN                                                  0x00000394
#define NV097_SET_CLIP_MIN_V                                                      31:0

#define NV097_SET_CLIP_MAX                                                  0x00000398
#define NV097_SET_CLIP_MAX_V                                                      31:0

#define NV097_SET_CULL_FACE                                                 0x0000039c
#define NV097_SET_CULL_FACE_V                                                     31:0
#define NV097_SET_CULL_FACE_V_FRONT                                         0x00000404
#define NV097_SET_CULL_FACE_V_BACK                                          0x00000405
#define NV097_SET_CULL_FACE_V_FRONT_AND_BACK                                0x00000408

#define NV097_SET_FRONT_FACE                                                0x000003a0
#define NV097_SET_FRONT_FACE_V                                                    31:0
#define NV097_SET_FRONT_FACE_V_CW                                           0x00000900
#define NV097_SET_FRONT_FACE_V_CCW                                          0x00000901

#define NV097_SET_NORMALIZATION_ENABLE                                      0x000003a4
#define NV097_SET_NORMALIZATION_ENABLE_V                                          31:0
#define NV097_SET_NORMALIZATION_ENABLE_V_FALSE                              0x00000000
#define NV097_SET_NORMALIZATION_ENABLE_V_TRUE                               0x00000001

#define NV097_SET_MATERIAL_EMISSION(i)                              (0x000003a8+(i)*4)
#define NV097_SET_MATERIAL_EMISSION_V                                             31:0

#define NV097_SET_MATERIAL_ALPHA                                            0x000003b4
#define NV097_SET_MATERIAL_ALPHA_V                                                31:0

#define NV097_SET_BACK_MATERIAL_ALPHA                                       0x000017ac
#define NV097_SET_BACK_MATERIAL_ALPHA_V                                           31:0

#define NV097_SET_SPECULAR_ENABLE                                           0x000003b8
#define NV097_SET_SPECULAR_ENABLE_V                                               31:0
#define NV097_SET_SPECULAR_ENABLE_V_FALSE                                   0x00000000
#define NV097_SET_SPECULAR_ENABLE_V_TRUE                                    0x00000001

#define NV097_SET_LIGHT_ENABLE_MASK                                         0x000003bc
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT0                                         1:0
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT0_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT0_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT0_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT0_SPOT                             0x00000003
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT1                                         3:2
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT1_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT1_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT1_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT1_SPOT                             0x00000003
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT2                                         5:4
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT2_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT2_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT2_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT2_SPOT                             0x00000003
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT3                                         7:6
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT3_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT3_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT3_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT3_SPOT                             0x00000003
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT4                                         9:8
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT4_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT4_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT4_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT4_SPOT                             0x00000003
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT5                                       11:10
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT5_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT5_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT5_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT5_SPOT                             0x00000003
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT6                                       13:12
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT6_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT6_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT6_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT6_SPOT                             0x00000003
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT7                                       15:14
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT7_OFF                              0x00000000
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT7_INFINITE                         0x00000001
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT7_LOCAL                            0x00000002
#define NV097_SET_LIGHT_ENABLE_MASK_LIGHT7_SPOT                             0x00000003

#define NV097_SET_VERTEX_DATA2F_M(i,j)                        (0x00001880+(i)*8+(j)*4)
#define NV097_SET_VERTEX_DATA2F_M_V                                               31:0

#define NV097_SET_VERTEX_DATA4F_M(i,j)                       (0x00001a00+(i)*16+(j)*4)
#define NV097_SET_VERTEX_DATA4F_M_V                                               31:0

#define NV097_SET_VERTEX_DATA2S(i)                                  (0x00001900+(i)*4)
#define NV097_SET_VERTEX_DATA2S_V                                                 31:0

#define NV097_SET_VERTEX_DATA4UB(i)                                 (0x00001940+(i)*4)
#define NV097_SET_VERTEX_DATA4UB_V                                                31:0

#define NV097_SET_VERTEX_DATA4S_M(i,j)                        (0x00001980+(i)*8+(j)*4)
#define NV097_SET_VERTEX_DATA4S_M_V                                               31:0

#define NV097_SET_TEXGEN_S(i)                                      (0x000003c0+(i)*16)
#define NV097_SET_TEXGEN_S_V                                                      31:0
#define NV097_SET_TEXGEN_S_V_DISABLE                                        0x00000000
#define NV097_SET_TEXGEN_S_V_NORMAL_MAP                                     0x00008511
#define NV097_SET_TEXGEN_S_V_REFLECTION_MAP                                 0x00008512
#define NV097_SET_TEXGEN_S_V_EYE_LINEAR                                     0x00002400
#define NV097_SET_TEXGEN_S_V_OBJECT_LINEAR                                  0x00002401
#define NV097_SET_TEXGEN_S_V_SPHERE_MAP                                     0x00002402

#define NV097_SET_TEXGEN_T(i)                                      (0x000003c4+(i)*16)
#define NV097_SET_TEXGEN_T_V                                                      31:0
#define NV097_SET_TEXGEN_T_V_DISABLE                                        0x00000000
#define NV097_SET_TEXGEN_T_V_NORMAL_MAP                                     0x00008511
#define NV097_SET_TEXGEN_T_V_REFLECTION_MAP                                 0x00008512
#define NV097_SET_TEXGEN_T_V_EYE_LINEAR                                     0x00002400
#define NV097_SET_TEXGEN_T_V_OBJECT_LINEAR                                  0x00002401
#define NV097_SET_TEXGEN_T_V_SPHERE_MAP                                     0x00002402

#define NV097_SET_TEXGEN_R(i)                                      (0x000003c8+(i)*16)
#define NV097_SET_TEXGEN_R_V                                                      31:0
#define NV097_SET_TEXGEN_R_V_DISABLE                                        0x00000000
#define NV097_SET_TEXGEN_R_V_NORMAL_MAP                                     0x00008511
#define NV097_SET_TEXGEN_R_V_REFLECTION_MAP                                 0x00008512
#define NV097_SET_TEXGEN_R_V_EYE_LINEAR                                     0x00002400
#define NV097_SET_TEXGEN_R_V_OBJECT_LINEAR                                  0x00002401

#define NV097_SET_TEXGEN_Q(i)                                      (0x000003cc+(i)*16)
#define NV097_SET_TEXGEN_Q_V                                                      31:0
#define NV097_SET_TEXGEN_Q_V_DISABLE                                        0x00000000
#define NV097_SET_TEXGEN_Q_V_EYE_LINEAR                                     0x00002400
#define NV097_SET_TEXGEN_Q_V_OBJECT_LINEAR                                  0x00002401

#define NV097_SET_TEXGEN_VIEW_MODEL                                         0x000009cc
#define NV097_SET_TEXGEN_VIEW_MODEL_V                                             31:0
#define NV097_SET_TEXGEN_VIEW_MODEL_V_LOCAL_VIEWER                          0x00000000
#define NV097_SET_TEXGEN_VIEW_MODEL_V_INFINITE_VIEWER                       0x00000001

#define NV097_SET_TEXTURE_MATRIX_ENABLE(i)                          (0x00000420+(i)*4)
#define NV097_SET_TEXTURE_MATRIX_ENABLE_V                                         31:0
#define NV097_SET_TEXTURE_MATRIX_ENABLE_V_FALSE                             0x00000000
#define NV097_SET_TEXTURE_MATRIX_ENABLE_V_TRUE                              0x00000001

#define NV097_SET_POINT_SIZE                                                0x0000043c
#define NV097_SET_POINT_SIZE_V                                                    31:0

#define NV097_SET_SWATH_WIDTH                                               0x000009f8
#define NV097_SET_SWATH_WIDTH_V                                                   31:0
#define NV097_SET_SWATH_WIDTH_V_8                                           0x00000000
#define NV097_SET_SWATH_WIDTH_V_16                                          0x00000001
#define NV097_SET_SWATH_WIDTH_V_32                                          0x00000002
#define NV097_SET_SWATH_WIDTH_V_64                                          0x00000003
#define NV097_SET_SWATH_WIDTH_V_128                                         0x00000004
#define NV097_SET_SWATH_WIDTH_V_OFF                                         0x0000000F

#define NV097_SET_FLAT_SHADE_OP                                             0x000009fc
#define NV097_SET_FLAT_SHADE_OP_V                                                 31:0
#define NV097_SET_FLAT_SHADE_OP_V_LAST_VTX                                  0x00000000
#define NV097_SET_FLAT_SHADE_OP_V_FIRST_VTX                                 0x00000001

#define NV097_SET_PROJECTION_MATRIX(i)                              (0x00000440+(i)*4)
#define NV097_SET_PROJECTION_MATRIX_V                                             31:0

#define NV097_SET_MODEL_VIEW_MATRIX0(i)                             (0x00000480+(i)*4)
#define NV097_SET_MODEL_VIEW_MATRIX0_V                                            31:0

#define NV097_SET_MODEL_VIEW_MATRIX1(i)                             (0x000004c0+(i)*4)
#define NV097_SET_MODEL_VIEW_MATRIX1_V                                            31:0

#define NV097_SET_MODEL_VIEW_MATRIX2(i)                             (0x00000500+(i)*4)
#define NV097_SET_MODEL_VIEW_MATRIX2_V                                            31:0

#define NV097_SET_MODEL_VIEW_MATRIX3(i)                             (0x00000540+(i)*4)
#define NV097_SET_MODEL_VIEW_MATRIX3_V                                            31:0

#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX0(i)                     (0x00000580+(i)*4)
#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX0_V                                    31:0

#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX1(i)                     (0x000005c0+(i)*4)
#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX1_V                                    31:0

#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX2(i)                     (0x00000600+(i)*4)
#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX2_V                                    31:0

#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX3(i)                     (0x00000640+(i)*4)
#define NV097_SET_INVERSE_MODEL_VIEW_MATRIX3_V                                    31:0

#define NV097_SET_COMPOSITE_MATRIX(i)                               (0x00000680+(i)*4)
#define NV097_SET_COMPOSITE_MATRIX_V                                              31:0

#define NV097_SET_TEXTURE_MATRIX0(i)                                (0x000006c0+(i)*4)
#define NV097_SET_TEXTURE_MATRIX0_V                                               31:0

#define NV097_SET_TEXTURE_MATRIX1(i)                                (0x00000700+(i)*4)
#define NV097_SET_TEXTURE_MATRIX1_V                                               31:0

#define NV097_SET_TEXTURE_MATRIX2(i)                                (0x00000740+(i)*4)
#define NV097_SET_TEXTURE_MATRIX2_V                                               31:0

#define NV097_SET_TEXTURE_MATRIX3(i)                                (0x00000780+(i)*4)
#define NV097_SET_TEXTURE_MATRIX3_V                                               31:0

#define NV097_SET_TEXGEN_PLANE_S(i,j)                        (0x00000840+(i)*64+(j)*4)
#define NV097_SET_TEXGEN_PLANE_S_V                                                31:0

#define NV097_SET_TEXGEN_PLANE_T(i,j)                        (0x00000850+(i)*64+(j)*4)
#define NV097_SET_TEXGEN_PLANE_T_V                                                31:0

#define NV097_SET_TEXGEN_PLANE_R(i,j)                        (0x00000860+(i)*64+(j)*4)
#define NV097_SET_TEXGEN_PLANE_R_V                                                31:0

#define NV097_SET_TEXGEN_PLANE_Q(i,j)                        (0x00000870+(i)*64+(j)*4)
#define NV097_SET_TEXGEN_PLANE_Q_V                                                31:0

#define NV097_SET_FOG_PARAMS(i)                                     (0x000009c0+(i)*4)
#define NV097_SET_FOG_PARAMS_V                                                    31:0

#define NV097_SET_FOG_PLANE(i)                                      (0x000009d0+(i)*4)
#define NV097_SET_FOG_PLANE_V                                                     31:0

#define NV097_SET_SPECULAR_PARAMS(i)                                (0x000009e0+(i)*4)
#define NV097_SET_SPECULAR_PARAMS_V                                               31:0

#define NV097_SET_BACK_SPECULAR_PARAMS(i)                           (0x00001e28+(i)*4)
#define NV097_SET_BACK_SPECULAR_PARAMS_V                                          31:0

#define NV097_SET_SCENE_AMBIENT_COLOR(i)                            (0x00000a10+(i)*4)
#define NV097_SET_SCENE_AMBIENT_COLOR_V                                           31:0

#define NV097_SET_VIEWPORT_SCALE(i)                                 (0x00000af0+(i)*4)
#define NV097_SET_VIEWPORT_SCALE_V                                                31:0

#define NV097_SET_VIEWPORT_OFFSET(i)                                (0x00000a20+(i)*4)
#define NV097_SET_VIEWPORT_OFFSET_V                                               31:0

#define NV097_SET_POINT_PARAMS(i)                                   (0x00000a30+(i)*4)
#define NV097_SET_POINT_PARAMS_V                                                  31:0

#define NV097_SET_EYE_POSITION(i)                                   (0x00000a50+(i)*4)
#define NV097_SET_EYE_POSITION_V                                                  31:0

#define NV097_SET_BACK_LIGHT_AMBIENT_COLOR(i,j)              (0x00000c00+(i)*64+(j)*4)
#define NV097_SET_BACK_LIGHT_AMBIENT_COLOR_V                                      31:0

#define NV097_SET_BACK_LIGHT_DIFFUSE_COLOR(i,j)              (0x00000c0c+(i)*64+(j)*4)
#define NV097_SET_BACK_LIGHT_DIFFUSE_COLOR_V                                      31:0

#define NV097_SET_BACK_LIGHT_SPECULAR_COLOR(i,j)             (0x00000c18+(i)*64+(j)*4)
#define NV097_SET_BACK_LIGHT_SPECULAR_COLOR_V                                     31:0

#define NV097_SET_LIGHT_AMBIENT_COLOR(i,j)                  (0x00001000+(i)*128+(j)*4)
#define NV097_SET_LIGHT_AMBIENT_COLOR_V                                           31:0

#define NV097_SET_LIGHT_DIFFUSE_COLOR(i,j)                  (0x0000100c+(i)*128+(j)*4)
#define NV097_SET_LIGHT_DIFFUSE_COLOR_V                                           31:0

#define NV097_SET_LIGHT_SPECULAR_COLOR(i,j)                 (0x00001018+(i)*128+(j)*4)
#define NV097_SET_LIGHT_SPECULAR_COLOR_V                                          31:0

#define NV097_SET_LIGHT_LOCAL_RANGE(i)                            (0x00001024+(i)*128)
#define NV097_SET_LIGHT_LOCAL_RANGE_V                                             31:0

#define NV097_SET_LIGHT_INFINITE_HALF_VECTOR(i,j)           (0x00001028+(i)*128+(j)*4)
#define NV097_SET_LIGHT_INFINITE_HALF_VECTOR_V                                    31:0

#define NV097_SET_LIGHT_INFINITE_DIRECTION(i,j)             (0x00001034+(i)*128+(j)*4)
#define NV097_SET_LIGHT_INFINITE_DIRECTION_V                                      31:0

#define NV097_SET_LIGHT_SPOT_FALLOFF(i,j)                   (0x00001040+(i)*128+(j)*4)
#define NV097_SET_LIGHT_SPOT_FALLOFF_V                                            31:0

#define NV097_SET_LIGHT_SPOT_DIRECTION(i,j)                 (0x0000104c+(i)*128+(j)*4)
#define NV097_SET_LIGHT_SPOT_DIRECTION_V                                          31:0

#define NV097_SET_LIGHT_LOCAL_POSITION(i,j)                 (0x0000105c+(i)*128+(j)*4)
#define NV097_SET_LIGHT_LOCAL_POSITION_V                                          31:0

#define NV097_SET_LIGHT_LOCAL_ATTENUATION(i,j)              (0x00001068+(i)*128+(j)*4)
#define NV097_SET_LIGHT_LOCAL_ATTENUATION_V                                       31:0

#define NV097_SET_VERTEX3F(i)                                       (0x00001500+(i)*4)
#define NV097_SET_VERTEX3F_V                                                      31:0

#define NV097_SET_VERTEX4F(i)                                       (0x00001518+(i)*4)
#define NV097_SET_VERTEX4F_V                                                      31:0

#define NV097_SET_VERTEX4S(i)                                       (0x00001528+(i)*4)
#define NV097_SET_VERTEX4S_V                                                      31:0

#define NV097_SET_NORMAL3F(i)                                       (0x00001530+(i)*4)
#define NV097_SET_NORMAL3F_V                                                      31:0

#define NV097_SET_NORMAL3S(i)                                       (0x00001540+(i)*4)
#define NV097_SET_NORMAL3S_V                                                      31:0

#define NV097_SET_DIFFUSE_COLOR4F(i)                                (0x00001550+(i)*4)
#define NV097_SET_DIFFUSE_COLOR4F_V                                               31:0

#define NV097_SET_DIFFUSE_COLOR3F(i)                                (0x00001560+(i)*4)
#define NV097_SET_DIFFUSE_COLOR3F_V                                               31:0

#define NV097_SET_DIFFUSE_COLOR4UB                                          0x0000156c
#define NV097_SET_DIFFUSE_COLOR4UB_V                                              31:0

#define NV097_SET_SPECULAR_COLOR4F(i)                               (0x00001570+(i)*4)
#define NV097_SET_SPECULAR_COLOR4F_V                                              31:0

#define NV097_SET_SPECULAR_COLOR3F(i)                               (0x00001580+(i)*4)
#define NV097_SET_SPECULAR_COLOR3F_V                                              31:0

#define NV097_SET_SPECULAR_COLOR4UB                                         0x0000158c
#define NV097_SET_SPECULAR_COLOR4UB_V                                             31:0

#define NV097_SET_TEXCOORD0_2F(i)                                   (0x00001590+(i)*4)
#define NV097_SET_TEXCOORD0_2F_V                                                  31:0

#define NV097_SET_TEXCOORD0_2S                                              0x00001598
#define NV097_SET_TEXCOORD0_2S_V                                                  31:0

#define NV097_SET_TEXCOORD0_4F(i)                                   (0x000015a0+(i)*4)
#define NV097_SET_TEXCOORD0_4F_V                                                  31:0

#define NV097_SET_TEXCOORD0_4S(i)                                   (0x000015b0+(i)*4)
#define NV097_SET_TEXCOORD0_4S_V                                                  31:0

#define NV097_SET_TEXCOORD1_2F(i)                                   (0x000015b8+(i)*4)
#define NV097_SET_TEXCOORD1_2F_V                                                  31:0

#define NV097_SET_TEXCOORD1_2S                                              0x000015c0
#define NV097_SET_TEXCOORD1_2S_V                                                  31:0

#define NV097_SET_TEXCOORD1_4F(i)                                   (0x000015c8+(i)*4)
#define NV097_SET_TEXCOORD1_4F_V                                                  31:0

#define NV097_SET_TEXCOORD1_4S(i)                                   (0x000015d8+(i)*4)
#define NV097_SET_TEXCOORD1_4S_V                                                  31:0

#define NV097_SET_TEXCOORD2_2F(i)                                   (0x000015e0+(i)*4)
#define NV097_SET_TEXCOORD2_2F_V                                                  31:0

#define NV097_SET_TEXCOORD2_2S                                              0x000015e8
#define NV097_SET_TEXCOORD2_2S_V                                                  31:0

#define NV097_SET_TEXCOORD2_4F(i)                                   (0x000015f0+(i)*4)
#define NV097_SET_TEXCOORD2_4F_V                                                  31:0

#define NV097_SET_TEXCOORD2_4S(i)                                   (0x00001600+(i)*4)
#define NV097_SET_TEXCOORD2_4S_V                                                  31:0

#define NV097_SET_TEXCOORD3_2F(i)                                   (0x00001608+(i)*4)
#define NV097_SET_TEXCOORD3_2F_V                                                  31:0

#define NV097_SET_TEXCOORD3_2S                                              0x00001610
#define NV097_SET_TEXCOORD3_2S_V                                                  31:0

#define NV097_SET_TEXCOORD3_4F(i)                                   (0x00001620+(i)*4)
#define NV097_SET_TEXCOORD3_4F_V                                                  31:0

#define NV097_SET_TEXCOORD3_4S(i)                                   (0x00001630+(i)*4)
#define NV097_SET_TEXCOORD3_4S_V                                                  31:0

#define NV097_SET_FOG1F                                                     0x00001698
#define NV097_SET_FOG1F_V                                                         31:0

#define NV097_SET_WEIGHT1F                                                  0x0000169c
#define NV097_SET_WEIGHT1F_V                                                      31:0

#define NV097_SET_WEIGHT2F(i)                                       (0x000016a0+(i)*4)
#define NV097_SET_WEIGHT2F_V                                                      31:0

#define NV097_SET_WEIGHT3F(i)                                       (0x000016b0+(i)*4)
#define NV097_SET_WEIGHT3F_V                                                      31:0

#define NV097_SET_WEIGHT4F(i)                                       (0x000016c0+(i)*4)
#define NV097_SET_WEIGHT4F_V                                                      31:0

#define NV097_SET_EDGE_FLAG                                                 0x000016bc
#define NV097_SET_EDGE_FLAG_V                                                     31:0
#define NV097_SET_EDGE_FLAG_V_FALSE                                         0x00000000
#define NV097_SET_EDGE_FLAG_V_TRUE                                          0x00000001

#define NV097_SET_TRANSFORM_FIXED_CONST0(i)                         (0x000016e0+(i)*4)
#define NV097_SET_TRANSFORM_FIXED_CONST0_V                                        31:0

#define NV097_SET_TRANSFORM_FIXED_CONST1(i)                         (0x000016f0+(i)*4)
#define NV097_SET_TRANSFORM_FIXED_CONST1_V                                        31:0

#define NV097_SET_TRANSFORM_FIXED_CONST2(i)                         (0x00001700+(i)*4)
#define NV097_SET_TRANSFORM_FIXED_CONST2_V                                        31:0

#define NV097_SET_TRANSFORM_FIXED_CONST3(i)                         (0x000016d0+(i)*4)
#define NV097_SET_TRANSFORM_FIXED_CONST3_V                                        31:0

#define NV097_SET_TLCONST_ZERO(i)                                   (0x000017d4+(i)*4)
#define NV097_SET_TLCONST_ZERO_V                                                  31:0

#define NV097_SET_EYE_DIRECTION(i)                                  (0x000017e0+(i)*4)
#define NV097_SET_EYE_DIRECTION_V                                                 31:0

#define NV097_SET_LINEAR_FOG_CONST(i)                               (0x000017ec+(i)*4)
#define NV097_SET_LINEAR_FOG_CONST_V                                              31:0

#define NV097_INVALIDATE_VERTEX_CACHE_FILE                                  0x00001710

#define NV097_INVALIDATE_VERTEX_FILE                                        0x00001714

#define NV097_TL_NOP                                                        0x00001718

#define NV097_TL_SYNC                                                       0x0000171c

#define NV097_SET_VERTEX_DATA_ARRAY_OFFSET(i)                       (0x00001720+(i)*4)
#define NV097_SET_VERTEX_DATA_ARRAY_OFFSET_CONTEXT_DMA                           31:31
#define NV097_SET_VERTEX_DATA_ARRAY_OFFSET_CONTEXT_DMA_VERTEX_A             0x00000000
#define NV097_SET_VERTEX_DATA_ARRAY_OFFSET_CONTEXT_DMA_VERTEX_B             0x00000001
#define NV097_SET_VERTEX_DATA_ARRAY_OFFSET_OFFSET                                 30:0

#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT(i)                       (0x00001760+(i)*4)
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_STRIDE                                 31:8
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_SIZE                                    7:4
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_SIZE_DISABLED                    0x00000000
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_SIZE_1                           0x00000001
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_SIZE_2                           0x00000002
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_SIZE_3                           0x00000003
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_SIZE_4                           0x00000004
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_SIZE_3W                          0x00000007
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_TYPE                                    3:0
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_TYPE_UB_D3D                      0x00000000
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_TYPE_S1                          0x00000001
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_TYPE_F                           0x00000002
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_TYPE_UB_OGL                      0x00000004
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_TYPE_S32K                        0x00000005
#define NV097_SET_VERTEX_DATA_ARRAY_FORMAT_TYPE_CMP                         0x00000006

#define NV097_SET_LOGIC_OP_ENABLE                                           0x000017bc
#define NV097_SET_LOGIC_OP_ENABLE_V                                               31:0
#define NV097_SET_LOGIC_OP_ENABLE_V_FALSE                                   0x00000000
#define NV097_SET_LOGIC_OP_ENABLE_V_TRUE                                    0x00000001

#define NV097_SET_LOGIC_OP                                                  0x000017c0
#define NV097_SET_LOGIC_OP_V                                                      31:0
#define NV097_SET_LOGIC_OP_V_CLEAR                                          0x00001500
#define NV097_SET_LOGIC_OP_V_AND                                            0x00001501
#define NV097_SET_LOGIC_OP_V_AND_REVERSE                                    0x00001502
#define NV097_SET_LOGIC_OP_V_COPY                                           0x00001503
#define NV097_SET_LOGIC_OP_V_AND_INVERTED                                   0x00001504
#define NV097_SET_LOGIC_OP_V_NOOP                                           0x00001505
#define NV097_SET_LOGIC_OP_V_XOR                                            0x00001506
#define NV097_SET_LOGIC_OP_V_OR                                             0x00001507
#define NV097_SET_LOGIC_OP_V_NOR                                            0x00001508
#define NV097_SET_LOGIC_OP_V_EQUIV                                          0x00001509
#define NV097_SET_LOGIC_OP_V_INVERT                                         0x0000150A
#define NV097_SET_LOGIC_OP_V_OR_REVERSE                                     0x0000150B
#define NV097_SET_LOGIC_OP_V_COPY_INVERTED                                  0x0000150C
#define NV097_SET_LOGIC_OP_V_OR_INVERTED                                    0x0000150D
#define NV097_SET_LOGIC_OP_V_NAND                                           0x0000150E
#define NV097_SET_LOGIC_OP_V_SET                                            0x0000150F

#define NV097_SET_BEGIN_END                                                 0x000017fc
#define NV097_SET_BEGIN_END_OP                                                    31:0
#define NV097_SET_BEGIN_END_OP_END                                          0x00000000
#define NV097_SET_BEGIN_END_OP_POINTS                                       0x00000001
#define NV097_SET_BEGIN_END_OP_LINES                                        0x00000002
#define NV097_SET_BEGIN_END_OP_LINE_LOOP                                    0x00000003
#define NV097_SET_BEGIN_END_OP_LINE_STRIP                                   0x00000004
#define NV097_SET_BEGIN_END_OP_TRIANGLES                                    0x00000005
#define NV097_SET_BEGIN_END_OP_TRIANGLE_STRIP                               0x00000006
#define NV097_SET_BEGIN_END_OP_TRIANGLE_FAN                                 0x00000007
#define NV097_SET_BEGIN_END_OP_QUADS                                        0x00000008
#define NV097_SET_BEGIN_END_OP_QUAD_STRIP                                   0x00000009
#define NV097_SET_BEGIN_END_OP_POLYGON                                      0x0000000A

#define NV097_ARRAY_ELEMENT16                                               0x00001800
#define NV097_ARRAY_ELEMENT16_VERTEX0                                             15:0
#define NV097_ARRAY_ELEMENT16_VERTEX1                                            31:16

#define NV097_ARRAY_ELEMENT32                                               0x00001808
#define NV097_ARRAY_ELEMENT32_V                                                   31:0

#define NV097_DRAW_ARRAYS                                                   0x00001810
#define NV097_DRAW_ARRAYS_COUNT                                                  31:24
#define NV097_DRAW_ARRAYS_START_INDEX                                             23:0

#define NV097_INLINE_VERTEX_REUSE                                           0x00001828
#define NV097_INLINE_VERTEX_REUSE_V                                               31:0

#define NV097_INLINE_ARRAY                                                  0x00001818
#define NV097_INLINE_ARRAY_V                                                      31:0

#define NV097_SET_TEXTURE_OFFSET(i)                                (0x00001b00+(i)*64)
#define NV097_SET_TEXTURE_OFFSET_V                                                31:0

#define NV097_SET_TEXTURE_FORMAT(i)                                (0x00001b04+(i)*64)
#define NV097_SET_TEXTURE_FORMAT_CONTEXT_DMA                                       1:0
#define NV097_SET_TEXTURE_FORMAT_CONTEXT_DMA_A                              0x00000001
#define NV097_SET_TEXTURE_FORMAT_CONTEXT_DMA_B                              0x00000002
#define NV097_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE                                    2:2
#define NV097_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_FALSE                       0x00000000
#define NV097_SET_TEXTURE_FORMAT_CUBEMAP_ENABLE_TRUE                        0x00000001
#define NV097_SET_TEXTURE_FORMAT_BORDER_SOURCE                                     3:3
#define NV097_SET_TEXTURE_FORMAT_BORDER_SOURCE_TEXTURE                      0x00000000
#define NV097_SET_TEXTURE_FORMAT_BORDER_SOURCE_COLOR                        0x00000001
#define NV097_SET_TEXTURE_FORMAT_DIMENSIONALITY                                    7:4
#define NV097_SET_TEXTURE_FORMAT_DIMENSIONALITY_ONE                         0x00000001
#define NV097_SET_TEXTURE_FORMAT_DIMENSIONALITY_TWO                         0x00000002
#define NV097_SET_TEXTURE_FORMAT_DIMENSIONALITY_THREE                       0x00000003
#define NV097_SET_TEXTURE_FORMAT_COLOR                                            15:8
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_Y8                                0x00000000
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_AY8                               0x00000001
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_A1R5G5B5                          0x00000002
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_X1R5G5B5                          0x00000003
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_A4R4G4B4                          0x00000004
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_R5G6B5                            0x00000005
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_A8R8G8B8                          0x00000006
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_X8R8G8B8                          0x00000007
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_I8_A8R8G8B8                       0x0000000B
#define NV097_SET_TEXTURE_FORMAT_COLOR_L_DXT1_A1R5G5B5                      0x0000000C
#define NV097_SET_TEXTURE_FORMAT_COLOR_L_DXT23_A8R8G8B8                     0x0000000E
#define NV097_SET_TEXTURE_FORMAT_COLOR_L_DXT45_A8R8G8B8                     0x0000000F
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_A1R5G5B5                    0x00000010
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_R5G6B5                      0x00000011
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_A8R8G8B8                    0x00000012
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_Y8                          0x00000013
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_SY8                         0x00000014
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_X7SY9                       0x00000015
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_R8B8                        0x00000016
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_G8B8                        0x00000017
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_SG8SB8                      0x00000018
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_A8                                0x00000019
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_A8Y8                              0x0000001A
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_AY8                         0x0000001B
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_X1R5G5B5                    0x0000001C
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_A4R4G4B4                    0x0000001D
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_X8R8G8B8                    0x0000001E
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_A8                          0x0000001F
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_A8Y8                        0x00000020
#define NV097_SET_TEXTURE_FORMAT_COLOR_LC_IMAGE_CR8YB8CB8YA8                0x00000024
#define NV097_SET_TEXTURE_FORMAT_COLOR_LC_IMAGE_YB8CR8YA8CB8                0x00000025
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_A8CR8CB8Y8                  0x00000026
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_R6G5B5                            0x00000027
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_G8B8                              0x00000028
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_R8B8                              0x00000029
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_DEPTH_X8_Y24_FIXED                0x0000002A
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_DEPTH_X8_Y24_FLOAT                0x0000002B
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_DEPTH_Y16_FIXED                   0x0000002C
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_DEPTH_Y16_FLOAT                   0x0000002D
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_DEPTH_X8_Y24_FIXED          0x0000002E
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_DEPTH_X8_Y24_FLOAT          0x0000002F
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_DEPTH_Y16_FIXED             0x00000030
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_DEPTH_Y16_FLOAT             0x00000031
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_Y16                               0x00000032
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_YB_16_YA_16                       0x00000033
#define NV097_SET_TEXTURE_FORMAT_COLOR_LC_IMAGE_A4V6YB6A4U6YA6              0x00000034
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_Y16                         0x00000035
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_YB16YA16                    0x00000036
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_R6G5B5                      0x00000037
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_R5G5B5A1                          0x00000038
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_R4G4B4A4                          0x00000039
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_A8B8G8R8                          0x0000003A
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_B8G8R8A8                          0x0000003B
#define NV097_SET_TEXTURE_FORMAT_COLOR_SZ_R8G8B8A8                          0x0000003C
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_R5G5B5A1                    0x0000003D
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_R4G4B4A4                    0x0000003E
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_A8B8G8R8                    0x0000003F
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_B8G8R8A8                    0x00000040
#define NV097_SET_TEXTURE_FORMAT_COLOR_LU_IMAGE_R8G8B8A8                    0x00000041
#define NV097_SET_TEXTURE_FORMAT_MIPMAP_LEVELS                                   19:16
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U                                     23:20
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_1                              0x00000000
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_2                              0x00000001
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_4                              0x00000002
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_8                              0x00000003
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_16                             0x00000004
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_32                             0x00000005
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_64                             0x00000006
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_128                            0x00000007
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_256                            0x00000008
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_512                            0x00000009
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_1024                           0x0000000A
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_2048                           0x0000000B
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_U_4096                           0x0000000C
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V                                     27:24
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_1                              0x00000000
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_2                              0x00000001
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_4                              0x00000002
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_8                              0x00000003
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_16                             0x00000004
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_32                             0x00000005
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_64                             0x00000006
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_128                            0x00000007
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_256                            0x00000008
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_512                            0x00000009
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_1024                           0x0000000A
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_2048                           0x0000000B
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_V_4096                           0x0000000C
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P                                     31:28
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_1                              0x00000000
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_2                              0x00000001
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_4                              0x00000002
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_8                              0x00000003
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_16                             0x00000004
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_32                             0x00000005
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_64                             0x00000006
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_128                            0x00000007
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_256                            0x00000008
#define NV097_SET_TEXTURE_FORMAT_BASE_SIZE_P_512                            0x00000009

#define NV097_SET_TEXTURE_ADDRESS(i)                               (0x00001b08+(i)*64)
#define NV097_SET_TEXTURE_ADDRESS_U                                                3:0
#define NV097_SET_TEXTURE_ADDRESS_U_WRAP                                    0x00000001
#define NV097_SET_TEXTURE_ADDRESS_U_MIRROR                                  0x00000002
#define NV097_SET_TEXTURE_ADDRESS_U_CLAMP_TO_EDGE                           0x00000003
#define NV097_SET_TEXTURE_ADDRESS_U_BORDER                                  0x00000004
#define NV097_SET_TEXTURE_ADDRESS_U_CLAMP_OGL                               0x00000005
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_U                                        7:4
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_U_FALSE                           0x00000000
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_U_TRUE                            0x00000001
#define NV097_SET_TEXTURE_ADDRESS_V                                               11:8
#define NV097_SET_TEXTURE_ADDRESS_V_WRAP                                    0x00000001
#define NV097_SET_TEXTURE_ADDRESS_V_MIRROR                                  0x00000002
#define NV097_SET_TEXTURE_ADDRESS_V_CLAMP_TO_EDGE                           0x00000003
#define NV097_SET_TEXTURE_ADDRESS_V_BORDER                                  0x00000004
#define NV097_SET_TEXTURE_ADDRESS_V_CLAMP_OGL                               0x00000005
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_V                                      15:12
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_V_FALSE                           0x00000000
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_V_TRUE                            0x00000001
#define NV097_SET_TEXTURE_ADDRESS_P                                              19:16
#define NV097_SET_TEXTURE_ADDRESS_P_WRAP                                    0x00000001
#define NV097_SET_TEXTURE_ADDRESS_P_MIRROR                                  0x00000002
#define NV097_SET_TEXTURE_ADDRESS_P_CLAMP_TO_EDGE                           0x00000003
#define NV097_SET_TEXTURE_ADDRESS_P_BORDER                                  0x00000004
#define NV097_SET_TEXTURE_ADDRESS_P_CLAMP_OGL                               0x00000005
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_P                                      23:20
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_P_FALSE                           0x00000000
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_P_TRUE                            0x00000001
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_Q                                      31:24
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_Q_FALSE                           0x00000000
#define NV097_SET_TEXTURE_ADDRESS_CYLWRAP_Q_TRUE                            0x00000001

#define NV097_SET_TEXTURE_CONTROL0(i)                              (0x00001b0c+(i)*64)
#define NV097_SET_TEXTURE_CONTROL0_ENABLE                                        31:30
#define NV097_SET_TEXTURE_CONTROL0_ENABLE_FALSE                             0x00000000
#define NV097_SET_TEXTURE_CONTROL0_ENABLE_TRUE                              0x00000001
#define NV097_SET_TEXTURE_CONTROL0_MIN_LOD_CLAMP                                 29:18
#define NV097_SET_TEXTURE_CONTROL0_MAX_LOD_CLAMP                                  17:6
#define NV097_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO                                   5:4
#define NV097_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_0                          0x00000000
#define NV097_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_1                          0x00000001
#define NV097_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_2                          0x00000002
#define NV097_SET_TEXTURE_CONTROL0_LOG_MAX_ANISO_3                          0x00000003
#define NV097_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE                              3:3
#define NV097_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_FALSE                 0x00000000
#define NV097_SET_TEXTURE_CONTROL0_IMAGE_FIELD_ENABLE_TRUE                  0x00000001
#define NV097_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE                               2:2
#define NV097_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_FALSE                  0x00000000
#define NV097_SET_TEXTURE_CONTROL0_ALPHA_KILL_ENABLE_TRUE                   0x00000001
#define NV097_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION                             1:0
#define NV097_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_FALSE                0x00000000
#define NV097_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_ALPHA                0x00000001
#define NV097_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_RGBA                 0x00000002
#define NV097_SET_TEXTURE_CONTROL0_COLOR_KEY_OPERATION_KILL                 0x00000003

#define NV097_SET_TEXTURE_CONTROL1(i)                              (0x00001b10+(i)*64)
#define NV097_SET_TEXTURE_CONTROL1_IMAGE_PITCH                                   31:16

#define NV097_SET_TEXTURE_FILTER(i)                                (0x00001b14+(i)*64)
#define NV097_SET_TEXTURE_FILTER_MIPMAP_LOD_BIAS                                  12:0
#define NV097_SET_TEXTURE_FILTER_CONVOLUTION_KERNEL                              15:13
#define NV097_SET_TEXTURE_FILTER_CONVOLUTION_KERNEL_QUINCUNX                0x00000001
#define NV097_SET_TEXTURE_FILTER_CONVOLUTION_KERNEL_GAUSSIAN_3              0x00000002
#define NV097_SET_TEXTURE_FILTER_MIN                                             23:16
#define NV097_SET_TEXTURE_FILTER_MIN_BOX_LOD0                               0x00000001
#define NV097_SET_TEXTURE_FILTER_MIN_TENT_LOD0                              0x00000002
#define NV097_SET_TEXTURE_FILTER_MIN_BOX_NEARESTLOD                         0x00000003
#define NV097_SET_TEXTURE_FILTER_MIN_TENT_NEARESTLOD                        0x00000004
#define NV097_SET_TEXTURE_FILTER_MIN_BOX_TENT_LOD                           0x00000005
#define NV097_SET_TEXTURE_FILTER_MIN_TENT_TENT_LOD                          0x00000006
#define NV097_SET_TEXTURE_FILTER_MIN_CONVOLUTION_2D_LOD0                    0x00000007
#define NV097_SET_TEXTURE_FILTER_MAG                                             27:24
#define NV097_SET_TEXTURE_FILTER_MAG_BOX_LOD0                               0x00000001
#define NV097_SET_TEXTURE_FILTER_MAG_TENT_LOD0                              0x00000002
#define NV097_SET_TEXTURE_FILTER_MAG_CONVOLUTION_2D_LOD0                    0x00000004
#define NV097_SET_TEXTURE_FILTER_ASIGNED                                         28:28
#define NV097_SET_TEXTURE_FILTER_ASIGNED_BIT_DISABLED                       0x00000000
#define NV097_SET_TEXTURE_FILTER_ASIGNED_BIT_ENABLED                        0x00000001
#define NV097_SET_TEXTURE_FILTER_RSIGNED                                         29:29
#define NV097_SET_TEXTURE_FILTER_RSIGNED_BIT_DISABLED                       0x00000000
#define NV097_SET_TEXTURE_FILTER_RSIGNED_BIT_ENABLED                        0x00000001
#define NV097_SET_TEXTURE_FILTER_GSIGNED                                         30:30
#define NV097_SET_TEXTURE_FILTER_GSIGNED_BIT_DISABLED                       0x00000000
#define NV097_SET_TEXTURE_FILTER_GSIGNED_BIT_ENABLED                        0x00000001
#define NV097_SET_TEXTURE_FILTER_BSIGNED                                         31:31
#define NV097_SET_TEXTURE_FILTER_BSIGNED_BIT_DISABLED                       0x00000000
#define NV097_SET_TEXTURE_FILTER_BSIGNED_BIT_ENABLED                        0x00000001

#define NV097_SET_TEXTURE_IMAGE_RECT(i)                            (0x00001b1c+(i)*64)
#define NV097_SET_TEXTURE_IMAGE_RECT_WIDTH                                       31:16
#define NV097_SET_TEXTURE_IMAGE_RECT_HEIGHT                                       15:0

#define NV097_SET_TEXTURE_PALETTE(i)                               (0x00001b20+(i)*64)
#define NV097_SET_TEXTURE_PALETTE_CONTEXT_DMA                                      1:0
#define NV097_SET_TEXTURE_PALETTE_CONTEXT_DMA_A                             0x00000000
#define NV097_SET_TEXTURE_PALETTE_CONTEXT_DMA_B                             0x00000001
#define NV097_SET_TEXTURE_PALETTE_LENGTH                                           5:2
#define NV097_SET_TEXTURE_PALETTE_LENGTH_256                                0x00000000
#define NV097_SET_TEXTURE_PALETTE_LENGTH_128                                0x00000001
#define NV097_SET_TEXTURE_PALETTE_LENGTH_64                                 0x00000002
#define NV097_SET_TEXTURE_PALETTE_LENGTH_32                                 0x00000003
#define NV097_SET_TEXTURE_PALETTE_OFFSET                                          31:6

#define NV097_SET_TEXTURE_BORDER_COLOR(i)                          (0x00001b24+(i)*64)
#define NV097_SET_TEXTURE_BORDER_COLOR_V                                          31:0

#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT00(i)                    (0x00001b28+(i)*64)
#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT00_V                                    31:0

#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT01(i)                    (0x00001b2c+(i)*64)
#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT01_V                                    31:0

#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT11(i)                    (0x00001b30+(i)*64)
#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT11_V                                    31:0

#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT10(i)                    (0x00001b34+(i)*64)
#define NV097_SET_TEXTURE_SET_BUMP_ENV_MAT10_V                                    31:0

#define NV097_SET_TEXTURE_SET_BUMP_ENV_SCALE(i)                    (0x00001b38+(i)*64)
#define NV097_SET_TEXTURE_SET_BUMP_ENV_SCALE_V                                    31:0

#define NV097_SET_TEXTURE_SET_BUMP_ENV_OFFSET(i)                   (0x00001b3c+(i)*64)
#define NV097_SET_TEXTURE_SET_BUMP_ENV_OFFSET_V                                   31:0

#define NV097_PARK_ATTRIBUTE                                                0x00001d64

#define NV097_UNPARK_ATTRIBUTE                                              0x00001d68

#define NV097_SET_SEMAPHORE_OFFSET                                          0x00001d6c
#define NV097_SET_SEMAPHORE_OFFSET_V                                              31:0

#define NV097_BACK_END_WRITE_SEMAPHORE_RELEASE                              0x00001d70
#define NV097_BACK_END_WRITE_SEMAPHORE_RELEASE_V                                  31:0

#define NV097_TEXTURE_READ_SEMAPHORE_RELEASE                                0x00001d74
#define NV097_TEXTURE_READ_SEMAPHORE_RELEASE_V                                    31:0

#define NV097_SET_ZMIN_MAX_CONTROL                                          0x00001d78
#define NV097_SET_ZMIN_MAX_CONTROL_CULL_NEAR_FAR_EN                                3:0
#define NV097_SET_ZMIN_MAX_CONTROL_CULL_NEAR_FAR_EN_FALSE                   0x00000000
#define NV097_SET_ZMIN_MAX_CONTROL_CULL_NEAR_FAR_EN_TRUE                    0x00000001
#define NV097_SET_ZMIN_MAX_CONTROL_ZCLAMP_EN                                       7:4
#define NV097_SET_ZMIN_MAX_CONTROL_ZCLAMP_EN_CULL                           0x00000000
#define NV097_SET_ZMIN_MAX_CONTROL_ZCLAMP_EN_CLAMP                          0x00000001
#define NV097_SET_ZMIN_MAX_CONTROL_CULL_IGNORE_W                                  11:8
#define NV097_SET_ZMIN_MAX_CONTROL_CULL_IGNORE_W_FALSE                      0x00000000
#define NV097_SET_ZMIN_MAX_CONTROL_CULL_IGNORE_W_TRUE                       0x00000001

#define NV097_SET_ANTI_ALIASING_CONTROL                                     0x00001d7c
#define NV097_SET_ANTI_ALIASING_CONTROL_ENABLE                                     3:0
#define NV097_SET_ANTI_ALIASING_CONTROL_ENABLE_FALSE                        0x00000000
#define NV097_SET_ANTI_ALIASING_CONTROL_ENABLE_TRUE                         0x00000001
#define NV097_SET_ANTI_ALIASING_CONTROL_ALPHA_TO_COVERAGE                          7:4
#define NV097_SET_ANTI_ALIASING_CONTROL_ALPHA_TO_COVERAGE_DISABLE           0x00000000
#define NV097_SET_ANTI_ALIASING_CONTROL_ALPHA_TO_COVERAGE_ENABLE            0x00000001
#define NV097_SET_ANTI_ALIASING_CONTROL_ALPHA_TO_ONE                              11:8
#define NV097_SET_ANTI_ALIASING_CONTROL_ALPHA_TO_ONE_DISABLE                0x00000000
#define NV097_SET_ANTI_ALIASING_CONTROL_ALPHA_TO_ONE_ENABLE                 0x00000001
#define NV097_SET_ANTI_ALIASING_CONTROL_SAMPLE_MASK                              31:16

#define NV097_SET_COMPRESS_ZBUFFER_EN                                       0x00001d80
#define NV097_SET_COMPRESS_ZBUFFER_EN_V                                           31:0
#define NV097_SET_COMPRESS_ZBUFFER_EN_V_DISABLE                             0x00000000
#define NV097_SET_COMPRESS_ZBUFFER_EN_V_ENABLE                              0x00000001

#define NV097_SET_OCCLUDE_ZSTENCIL_EN                                       0x00001d84
#define NV097_SET_OCCLUDE_ZSTENCIL_EN_OCCLUDE_ZEN                                  0:0
#define NV097_SET_OCCLUDE_ZSTENCIL_EN_OCCLUDE_ZEN_DISABLE                   0x00000000
#define NV097_SET_OCCLUDE_ZSTENCIL_EN_OCCLUDE_ZEN_ENABLE                    0x00000001
#define NV097_SET_OCCLUDE_ZSTENCIL_EN_OCCLUDE_STENCIL_EN                           1:1
#define NV097_SET_OCCLUDE_ZSTENCIL_EN_OCCLUDE_STENCIL_EN_DISABLE            0x00000000
#define NV097_SET_OCCLUDE_ZSTENCIL_EN_OCCLUDE_STENCIL_EN_ENABLE             0x00000001

#define NV097_SET_SURFACE_FORMAT                                            0x00000208
#define NV097_SET_SURFACE_FORMAT_COLOR                                             3:0
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5                 0x00000001
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5                 0x00000002
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_R5G6B5                            0x00000003
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8                 0x00000004
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8                 0x00000005
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8             0x00000006
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8             0x00000007
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_A8R8G8B8                          0x00000008
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_B8                                0x00000009
#define NV097_SET_SURFACE_FORMAT_COLOR_LE_G8B8                              0x0000000A
#define NV097_SET_SURFACE_FORMAT_ZETA                                              7:4
#define NV097_SET_SURFACE_FORMAT_ZETA_Z16                                   0x00000001
#define NV097_SET_SURFACE_FORMAT_ZETA_Z24S8                                 0x00000002
#define NV097_SET_SURFACE_FORMAT_TYPE                                             11:8
#define NV097_SET_SURFACE_FORMAT_TYPE_PITCH                                 0x00000001
#define NV097_SET_SURFACE_FORMAT_TYPE_SWIZZLE                               0x00000002
#define NV097_SET_SURFACE_FORMAT_ANTI_ALIASING                                   15:12
#define NV097_SET_SURFACE_FORMAT_ANTI_ALIASING_CENTER_1                     0x00000000
#define NV097_SET_SURFACE_FORMAT_ANTI_ALIASING_CENTER_CORNER_2              0x00000001
#define NV097_SET_SURFACE_FORMAT_ANTI_ALIASING_SQUARE_OFFSET_4              0x00000002
#define NV097_SET_SURFACE_FORMAT_WIDTH                                           23:16
#define NV097_SET_SURFACE_FORMAT_WIDTH_1                                    0x00000000
#define NV097_SET_SURFACE_FORMAT_WIDTH_2                                    0x00000001
#define NV097_SET_SURFACE_FORMAT_WIDTH_4                                    0x00000002
#define NV097_SET_SURFACE_FORMAT_WIDTH_8                                    0x00000003
#define NV097_SET_SURFACE_FORMAT_WIDTH_16                                   0x00000004
#define NV097_SET_SURFACE_FORMAT_WIDTH_32                                   0x00000005
#define NV097_SET_SURFACE_FORMAT_WIDTH_64                                   0x00000006
#define NV097_SET_SURFACE_FORMAT_WIDTH_128                                  0x00000007
#define NV097_SET_SURFACE_FORMAT_WIDTH_256                                  0x00000008
#define NV097_SET_SURFACE_FORMAT_WIDTH_512                                  0x00000009
#define NV097_SET_SURFACE_FORMAT_WIDTH_1024                                 0x0000000A
#define NV097_SET_SURFACE_FORMAT_WIDTH_2048                                 0x0000000B
#define NV097_SET_SURFACE_FORMAT_WIDTH_4096                                 0x0000000C
#define NV097_SET_SURFACE_FORMAT_HEIGHT                                          31:24
#define NV097_SET_SURFACE_FORMAT_HEIGHT_1                                   0x00000000
#define NV097_SET_SURFACE_FORMAT_HEIGHT_2                                   0x00000001
#define NV097_SET_SURFACE_FORMAT_HEIGHT_4                                   0x00000002
#define NV097_SET_SURFACE_FORMAT_HEIGHT_8                                   0x00000003
#define NV097_SET_SURFACE_FORMAT_HEIGHT_16                                  0x00000004
#define NV097_SET_SURFACE_FORMAT_HEIGHT_32                                  0x00000005
#define NV097_SET_SURFACE_FORMAT_HEIGHT_64                                  0x00000006
#define NV097_SET_SURFACE_FORMAT_HEIGHT_128                                 0x00000007
#define NV097_SET_SURFACE_FORMAT_HEIGHT_256                                 0x00000008
#define NV097_SET_SURFACE_FORMAT_HEIGHT_512                                 0x00000009
#define NV097_SET_SURFACE_FORMAT_HEIGHT_1024                                0x0000000A
#define NV097_SET_SURFACE_FORMAT_HEIGHT_2048                                0x0000000B
#define NV097_SET_SURFACE_FORMAT_HEIGHT_4096                                0x0000000C

#define NV097_SET_ZSTENCIL_CLEAR_VALUE                                      0x00001d8c
#define NV097_SET_ZSTENCIL_CLEAR_VALUE_V                                          31:0

#define NV097_SET_COLOR_CLEAR_VALUE                                         0x00001d90
#define NV097_SET_COLOR_CLEAR_VALUE_V                                             31:0

#define NV097_CLEAR_SURFACE                                                 0x00001d94
#define NV097_CLEAR_SURFACE_Z                                                      0:0
#define NV097_CLEAR_SURFACE_Z_DISABLE                                       0x00000000
#define NV097_CLEAR_SURFACE_Z_ENABLE                                        0x00000001
#define NV097_CLEAR_SURFACE_STENCIL                                                1:1
#define NV097_CLEAR_SURFACE_STENCIL_DISABLE                                 0x00000000
#define NV097_CLEAR_SURFACE_STENCIL_ENABLE                                  0x00000001
#define NV097_CLEAR_SURFACE_R                                                      4:4
#define NV097_CLEAR_SURFACE_R_DISABLE                                       0x00000000
#define NV097_CLEAR_SURFACE_R_ENABLE                                        0x00000001
#define NV097_CLEAR_SURFACE_G                                                      5:5
#define NV097_CLEAR_SURFACE_G_DISABLE                                       0x00000000
#define NV097_CLEAR_SURFACE_G_ENABLE                                        0x00000001
#define NV097_CLEAR_SURFACE_B                                                      6:6
#define NV097_CLEAR_SURFACE_B_DISABLE                                       0x00000000
#define NV097_CLEAR_SURFACE_B_ENABLE                                        0x00000001
#define NV097_CLEAR_SURFACE_A                                                      7:7
#define NV097_CLEAR_SURFACE_A_DISABLE                                       0x00000000
#define NV097_CLEAR_SURFACE_A_ENABLE                                        0x00000001

#define NV097_SET_CLEAR_RECT_HORIZONTAL                                     0x00001d98
#define NV097_SET_CLEAR_RECT_HORIZONTAL_XMIN                                      15:0
#define NV097_SET_CLEAR_RECT_HORIZONTAL_XMAX                                     31:16

#define NV097_SET_CLEAR_RECT_VERTICAL                                       0x00001d9c
#define NV097_SET_CLEAR_RECT_VERTICAL_YMIN                                        15:0
#define NV097_SET_CLEAR_RECT_VERTICAL_YMAX                                       31:16

#define NV097_SET_BEGIN_PATCH0                                              0x00001de0
#define NV097_SET_BEGIN_PATCH0_POSITION_DEGREE                                     3:0
#define NV097_SET_BEGIN_PATCH0_PARAM1_DEGREE                                       7:4
#define NV097_SET_BEGIN_PATCH0_PARAM2_DEGREE                                      11:8
#define NV097_SET_BEGIN_PATCH0_PARAM3_DEGREE                                     15:12
#define NV097_SET_BEGIN_PATCH0_PARAM4_DEGREE                                     19:16
#define NV097_SET_BEGIN_PATCH0_PARAM5_DEGREE                                     23:20
#define NV097_SET_BEGIN_PATCH0_PARAM6_DEGREE                                     27:24
#define NV097_SET_BEGIN_PATCH0_PARAM7_DEGREE                                     31:28

#define NV097_SET_BEGIN_PATCH1                                              0x00001de4
#define NV097_SET_BEGIN_PATCH1_PARAM8_DEGREE                                       3:0
#define NV097_SET_BEGIN_PATCH1_PARAM9_DEGREE                                       7:4
#define NV097_SET_BEGIN_PATCH1_PARAM10_DEGREE                                     11:8
#define NV097_SET_BEGIN_PATCH1_PARAM11_DEGREE                                    15:12
#define NV097_SET_BEGIN_PATCH1_PARAM12_DEGREE                                    19:16
#define NV097_SET_BEGIN_PATCH1_PARAM13_DEGREE                                    23:20
#define NV097_SET_BEGIN_PATCH1_PARAM14_DEGREE                                    27:24
#define NV097_SET_BEGIN_PATCH1_PARAM15_DEGREE                                    31:28

#define NV097_SET_BEGIN_PATCH2                                              0x00001de8
#define NV097_SET_BEGIN_PATCH2_SWATCH_ROWS                                         7:0
#define NV097_SET_BEGIN_PATCH2_SWATCH_COLS                                        15:8
#define NV097_SET_BEGIN_PATCH2_SWATCH_SIZE                                       20:16
#define NV097_SET_BEGIN_PATCH2_PARTIAL_SWATCH_WIDTH                              25:21
#define NV097_SET_BEGIN_PATCH2_PARTIAL_SWATCH_HEIGHT                             30:26
#define NV097_SET_BEGIN_PATCH2_PATCH_TYPE                                        31:31
#define NV097_SET_BEGIN_PATCH2_PATCH_TYPE_SQUARE                            0x00000000

#define NV097_SET_BEGIN_PATCH3                                              0x00001dec
#define NV097_SET_BEGIN_PATCH3_ROW_TRNS                                            2:0
#define NV097_SET_BEGIN_PATCH3_ROW_TRNS_NONE                                0x00000000
#define NV097_SET_BEGIN_PATCH3_ROW_TRNS_FIRST                               0x00000001
#define NV097_SET_BEGIN_PATCH3_ROW_TRNS_LAST                                0x00000002
#define NV097_SET_BEGIN_PATCH3_ROW_TRNS_FIRST_AND_LAST                      0x00000003
#define NV097_SET_BEGIN_PATCH3_ROW_TRNS_REV_FIRST                           0x00000005
#define NV097_SET_BEGIN_PATCH3_ROW_TRNS_REV_LAST                            0x00000006
#define NV097_SET_BEGIN_PATCH3_COL_TRNS                                            5:3
#define NV097_SET_BEGIN_PATCH3_COL_TRNS_NONE                                0x00000000
#define NV097_SET_BEGIN_PATCH3_COL_TRNS_FIRST                               0x00000001
#define NV097_SET_BEGIN_PATCH3_COL_TRNS_LAST                                0x00000002
#define NV097_SET_BEGIN_PATCH3_COL_TRNS_FIRST_AND_LAST                      0x00000003
#define NV097_SET_BEGIN_PATCH3_COL_TRNS_REV_FIRST                           0x00000005
#define NV097_SET_BEGIN_PATCH3_COL_TRNS_REV_LAST                            0x00000006
#define NV097_SET_BEGIN_PATCH3_POSITION_GUARD_CURVE_DEGREE                         9:6
#define NV097_SET_BEGIN_PATCH3_NORMAL_GUARD_CURVE_DEGREE                         13:10
#define NV097_SET_BEGIN_PATCH3_PRIMITIVE                                         15:14
#define NV097_SET_BEGIN_PATCH3_PRIMITIVE_TRI_STRIP                          0x00000000
#define NV097_SET_BEGIN_PATCH3_PRIMITIVE_REVERSED_TRI_STRIP                 0x00000001
#define NV097_SET_BEGIN_PATCH3_PRIMITIVE_BW_TRI_STRIP                       0x00000002
#define NV097_SET_BEGIN_PATCH3_PRIMITIVE_BW_REVERSED_TRI_STRIP              0x00000003
#define NV097_SET_BEGIN_PATCH3_TESSELATION                                       16:16
#define NV097_SET_BEGIN_PATCH3_TESSELATION_ADAPTIVE_STITCH                  0x00000000
#define NV097_SET_BEGIN_PATCH3_TESSELATION_FIXED_STITCH                     0x00000001
#define NV097_SET_BEGIN_PATCH3_NUM_COEFFS                                        31:24

#define NV097_SET_END_PATCH                                                 0x00001df0

#define NV097_SET_BEGIN_END_SWATCH                                          0x00001df4
#define NV097_SET_BEGIN_END_SWATCH_SWATCH_CMD                                      3:0
#define NV097_SET_BEGIN_END_SWATCH_SWATCH_CMD_END                           0x00000000
#define NV097_SET_BEGIN_END_SWATCH_SWATCH_CMD_BEGIN                         0x00000001
#define NV097_SET_BEGIN_END_SWATCH_NEW_SWATH                                       7:4
#define NV097_SET_BEGIN_END_SWATCH_NEW_SWATH_CONTINUE                       0x00000000
#define NV097_SET_BEGIN_END_SWATCH_NEW_SWATH_NEW                            0x00000001
#define NV097_SET_BEGIN_END_SWATCH_SKIP_FIRST_ROW                                 11:8
#define NV097_SET_BEGIN_END_SWATCH_SKIP_FIRST_ROW_FALSE                     0x00000000
#define NV097_SET_BEGIN_END_SWATCH_SKIP_FIRST_ROW_TRUE                      0x00000001
#define NV097_SET_BEGIN_END_SWATCH_SKIP_FIRST_COL                                15:12
#define NV097_SET_BEGIN_END_SWATCH_SKIP_FIRST_COL_FALSE                     0x00000000
#define NV097_SET_BEGIN_END_SWATCH_SKIP_FIRST_COL_TRUE                      0x00000001
#define NV097_SET_BEGIN_END_SWATCH_SHORT_SWATCH                                  19:16
#define NV097_SET_BEGIN_END_SWATCH_SHORT_SWATCH_FULL_HEIGHT                 0x00000000
#define NV097_SET_BEGIN_END_SWATCH_SHORT_SWATCH_PARTIAL_HEIGHT              0x00000001
#define NV097_SET_BEGIN_END_SWATCH_NARROW_SWATCH                                 31:20
#define NV097_SET_BEGIN_END_SWATCH_NARROW_SWATCH_FULL_WIDTH                 0x00000000
#define NV097_SET_BEGIN_END_SWATCH_NARROW_SWATCH_PARTIAL_WIDTH              0x00000001

#define NV097_SET_BEGIN_END_CURVE                                           0x00001df8
#define NV097_SET_BEGIN_END_CURVE_CMD                                              3:0
#define NV097_SET_BEGIN_END_CURVE_CMD_END_CURVE_DATA                        0x00000000
#define NV097_SET_BEGIN_END_CURVE_CMD_STRIP_CURVE                           0x00000001
#define NV097_SET_BEGIN_END_CURVE_CMD_LEFT_GUARD_CURVE                      0x00000002
#define NV097_SET_BEGIN_END_CURVE_CMD_RIGHT_GUARD_CURVE                     0x00000003
#define NV097_SET_BEGIN_END_CURVE_CMD_OUTER_TRANSITION_CURVE                0x00000004
#define NV097_SET_BEGIN_END_CURVE_CMD_INNER_TRANSITION_CURVE                0x00000005
#define NV097_SET_BEGIN_END_CURVE_CMD_OUTER_END_PT                          0x00000006
#define NV097_SET_BEGIN_END_CURVE_CMD_INNER_END_PT                          0x00000007

#define NV097_SET_CURVE_COEFFICIENTS(i)                             (0x00001e00+(i)*4)
#define NV097_SET_CURVE_COEFFICIENTS_V                                            31:0

#define NV097_SET_BEGIN_TRANSITION0                                         0x00001e10
#define NV097_SET_BEGIN_TRANSITION0_POSITION_DEGREE                                3:0
#define NV097_SET_BEGIN_TRANSITION0_PARAM1_DEGREE                                  7:4
#define NV097_SET_BEGIN_TRANSITION0_PARAM2_DEGREE                                 11:8
#define NV097_SET_BEGIN_TRANSITION0_PARAM3_DEGREE                                15:12
#define NV097_SET_BEGIN_TRANSITION0_PARAM4_DEGREE                                19:16
#define NV097_SET_BEGIN_TRANSITION0_PARAM5_DEGREE                                23:20
#define NV097_SET_BEGIN_TRANSITION0_PARAM6_DEGREE                                27:24
#define NV097_SET_BEGIN_TRANSITION0_PARAM7_DEGREE                                31:28

#define NV097_SET_BEGIN_TRANSITION1                                         0x00001e14
#define NV097_SET_BEGIN_TRANSITION1_PARAM8_DEGREE                                  3:0
#define NV097_SET_BEGIN_TRANSITION1_PARAM9_DEGREE                                  7:4
#define NV097_SET_BEGIN_TRANSITION1_PARAM10_DEGREE                                11:8
#define NV097_SET_BEGIN_TRANSITION1_PARAM11_DEGREE                               15:12
#define NV097_SET_BEGIN_TRANSITION1_PARAM12_DEGREE                               19:16
#define NV097_SET_BEGIN_TRANSITION1_PARAM13_DEGREE                               23:20
#define NV097_SET_BEGIN_TRANSITION1_PARAM14_DEGREE                               27:24
#define NV097_SET_BEGIN_TRANSITION1_PARAM15_DEGREE                               31:28

#define NV097_SET_BEGIN_TRANSITION2                                         0x00001e18
#define NV097_SET_BEGIN_TRANSITION2_INSIDE_SEGMENTS                                9:0
#define NV097_SET_BEGIN_TRANSITION2_OUTSIDE_SEGMENTS                             19:10
#define NV097_SET_BEGIN_TRANSITION2_NUM_COEFFS                                   31:24

#define NV097_SET_END_TRANSITION                                            0x00001e1c

#define NV097_SET_SHADOW_ZSLOPE_THRESHOLD                                   0x00001e68
#define NV097_SET_SHADOW_ZSLOPE_THRESHOLD_V                                       31:0

#define NV097_SET_SHADOW_DEPTH_FUNC                                         0x00001e6c
#define NV097_SET_SHADOW_DEPTH_FUNC_V                                             31:0
#define NV097_SET_SHADOW_DEPTH_FUNC_V_NEVER                                 0x00000000
#define NV097_SET_SHADOW_DEPTH_FUNC_V_LESS                                  0x00000001
#define NV097_SET_SHADOW_DEPTH_FUNC_V_EQUAL                                 0x00000002
#define NV097_SET_SHADOW_DEPTH_FUNC_V_LEQUAL                                0x00000003
#define NV097_SET_SHADOW_DEPTH_FUNC_V_GREATER                               0x00000004
#define NV097_SET_SHADOW_DEPTH_FUNC_V_NOTEQUAL                              0x00000005
#define NV097_SET_SHADOW_DEPTH_FUNC_V_GEQUAL                                0x00000006
#define NV097_SET_SHADOW_DEPTH_FUNC_V_ALWAYS                                0x00000007

#define NV097_SET_SHADER_STAGE_PROGRAM                                      0x00001e70
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE0                                      4:0
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE0_PROGRAM_NONE                  0x00000000
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE0_2D_PROJECTIVE                 0x00000001
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE0_3D_PROJECTIVE                 0x00000002
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE0_CUBE_MAP                      0x00000003
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE0_PASS_THROUGH                  0x00000004
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE0_CLIP_PLANE                    0x00000005
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1                                      9:5
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_PROGRAM_NONE                  0x00000000
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_2D_PROJECTIVE                 0x00000001
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_3D_PROJECTIVE                 0x00000002
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_CUBE_MAP                      0x00000003
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_PASS_THROUGH                  0x00000004
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_CLIP_PLANE                    0x00000005
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_BUMPENVMAP                    0x00000006
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_BUMPENVMAP_LUMINANCE          0x00000007
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_DEPENDENT_AR                  0x0000000F
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_DEPENDENT_GB                  0x00000010
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE1_DOT_PRODUCT                   0x00000011
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2                                    14:10
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_PROGRAM_NONE                  0x00000000
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_2D_PROJECTIVE                 0x00000001
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_3D_PROJECTIVE                 0x00000002
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_CUBE_MAP                      0x00000003
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_PASS_THROUGH                  0x00000004
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_CLIP_PLANE                    0x00000005
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_BUMPENVMAP                    0x00000006
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_BUMPENVMAP_LUMINANCE          0x00000007
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_BRDF                          0x00000008
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_DOT_ST                        0x00000009
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_DOT_ZW                        0x0000000A
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_DOT_REFLECT_DIFFUSE           0x0000000B
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_DEPENDENT_AR                  0x0000000F
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_DEPENDENT_GB                  0x00000010
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE2_DOT_PRODUCT                   0x00000011
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3                                    19:15
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_PROGRAM_NONE                  0x00000000
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_2D_PROJECTIVE                 0x00000001
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_3D_PROJECTIVE                 0x00000002
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_CUBE_MAP                      0x00000003
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_PASS_THROUGH                  0x00000004
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_CLIP_PLANE                    0x00000005
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_BUMPENVMAP                    0x00000006
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_BUMPENVMAP_LUMINANCE          0x00000007
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_BRDF                          0x00000008
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DOT_ST                        0x00000009
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DOT_ZW                        0x0000000A
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DOT_REFLECT_SPECULAR          0x0000000C
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DOT_STR_3D                    0x0000000D
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DOT_STR_CUBE                  0x0000000E
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DEPENDENT_AR                  0x0000000F
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DEPENDENT_GB                  0x00000010
#define NV097_SET_SHADER_STAGE_PROGRAM_STAGE3_DOT_REFLECT_SPECULAR_CONST    0x00000012

#define NV097_SET_EYE_VECTOR(i)                                     (0x0000181c+(i)*4)
#define NV097_SET_EYE_VECTOR_V                                                    31:0

#define NV097_SET_DOT_RGBMAPPING                                            0x00001e74
#define NV097_SET_DOT_RGBMAPPING_STAGE1                                            3:0
#define NV097_SET_DOT_RGBMAPPING_STAGE1_ZERO_TO_1                           0x00000000
#define NV097_SET_DOT_RGBMAPPING_STAGE1_MINUS_1_TO_1_MS                     0x00000001
#define NV097_SET_DOT_RGBMAPPING_STAGE1_MINUS_1_TO_1_GL                     0x00000002
#define NV097_SET_DOT_RGBMAPPING_STAGE1_MINUS_1_TO_1_NV                     0x00000003
#define NV097_SET_DOT_RGBMAPPING_STAGE1_HILO_1                              0x00000004
#define NV097_SET_DOT_RGBMAPPING_STAGE1_HILO_HEMISPHERE_MS                  0x00000005
#define NV097_SET_DOT_RGBMAPPING_STAGE1_HILO_HEMISPHERE_GL                  0x00000006
#define NV097_SET_DOT_RGBMAPPING_STAGE1_HILO_HEMISPHERE_NV                  0x00000007
#define NV097_SET_DOT_RGBMAPPING_STAGE2                                            7:4
#define NV097_SET_DOT_RGBMAPPING_STAGE2_ZERO_TO_1                           0x00000000
#define NV097_SET_DOT_RGBMAPPING_STAGE2_MINUS_1_TO_1_MS                     0x00000001
#define NV097_SET_DOT_RGBMAPPING_STAGE2_MINUS_1_TO_1_GL                     0x00000002
#define NV097_SET_DOT_RGBMAPPING_STAGE2_MINUS_1_TO_1_NV                     0x00000003
#define NV097_SET_DOT_RGBMAPPING_STAGE2_HILO_1                              0x00000004
#define NV097_SET_DOT_RGBMAPPING_STAGE2_HILO_HEMISPHERE_MS                  0x00000005
#define NV097_SET_DOT_RGBMAPPING_STAGE2_HILO_HEMISPHERE_GL                  0x00000006
#define NV097_SET_DOT_RGBMAPPING_STAGE2_HILO_HEMISPHERE_NV                  0x00000007
#define NV097_SET_DOT_RGBMAPPING_STAGE3                                           11:8
#define NV097_SET_DOT_RGBMAPPING_STAGE3_ZERO_TO_1                           0x00000000
#define NV097_SET_DOT_RGBMAPPING_STAGE3_MINUS_1_TO_1_MS                     0x00000001
#define NV097_SET_DOT_RGBMAPPING_STAGE3_MINUS_1_TO_1_GL                     0x00000002
#define NV097_SET_DOT_RGBMAPPING_STAGE3_MINUS_1_TO_1_NV                     0x00000003
#define NV097_SET_DOT_RGBMAPPING_STAGE3_HILO_1                              0x00000004
#define NV097_SET_DOT_RGBMAPPING_STAGE3_HILO_HEMISPHERE_MS                  0x00000005
#define NV097_SET_DOT_RGBMAPPING_STAGE3_HILO_HEMISPHERE_GL                  0x00000006
#define NV097_SET_DOT_RGBMAPPING_STAGE3_HILO_HEMISPHERE_NV                  0x00000007

#define NV097_SET_SHADER_CLIP_PLANE_MODE                                    0x000017f8
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_S                                  0:0
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_S_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_S_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_T                                  1:1
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_T_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_T_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_R                                  2:2
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_R_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_R_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_Q                                  3:3
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_Q_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE0_Q_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_S                                  4:4
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_S_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_S_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_T                                  5:5
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_T_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_T_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_R                                  6:6
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_R_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_R_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_Q                                  7:7
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_Q_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE1_Q_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_S                                  8:8
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_S_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_S_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_T                                  9:9
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_T_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_T_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_R                                10:10
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_R_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_R_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_Q                                11:11
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_Q_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE2_Q_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_S                                12:12
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_S_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_S_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_T                                13:13
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_T_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_T_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_R                                14:14
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_R_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_R_CLIPGEZ                   0x00000001
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_Q                                15:15
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_Q_CLIPLTZ                   0x00000000
#define NV097_SET_SHADER_CLIP_PLANE_MODE_STAGE3_Q_CLIPGEZ                   0x00000001

#define NV097_SET_SHADER_OTHER_STAGE_INPUT                                  0x00001e78
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE1                                 15:0
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE1_INSTAGE_0                 0x00000000
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE2                                19:16
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE2_INSTAGE_0                 0x00000000
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE2_INSTAGE_1                 0x00000001
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE3                                23:20
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE3_INSTAGE_0                 0x00000000
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE3_INSTAGE_1                 0x00000001
#define NV097_SET_SHADER_OTHER_STAGE_INPUT_STAGE3_INSTAGE_2                 0x00000002

#define NV097_SET_SPECULAR_FOG_FACTOR(i)                            (0x00001e20+(i)*4)
#define NV097_SET_SPECULAR_FOG_FACTOR_BLUE                                         7:0
#define NV097_SET_SPECULAR_FOG_FACTOR_GREEN                                       15:8
#define NV097_SET_SPECULAR_FOG_FACTOR_RED                                        23:16
#define NV097_SET_SPECULAR_FOG_FACTOR_ALPHA                                      31:24

#define NV097_SET_COMBINER_CONTROL                                          0x00001e60
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT                                 7:0
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_ONE                      0x00000001
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_TWO                      0x00000002
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_THREE                    0x00000003
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_FOUR                     0x00000004
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_FIVE                     0x00000005
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_SIX                      0x00000006
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_SEVEN                    0x00000007
#define NV097_SET_COMBINER_CONTROL_ITERATION_COUNT_EIGHT                    0x00000008
#define NV097_SET_COMBINER_CONTROL_MUX_SELECT                                     11:8
#define NV097_SET_COMBINER_CONTROL_MUX_SELECT_LSB                           0x00000000
#define NV097_SET_COMBINER_CONTROL_MUX_SELECT_MSB                           0x00000001
#define NV097_SET_COMBINER_CONTROL_FACTOR0                                       15:12
#define NV097_SET_COMBINER_CONTROL_FACTOR0_SAME_FACTOR_ALL                  0x00000000
#define NV097_SET_COMBINER_CONTROL_FACTOR0_EACH_STAGE                       0x00000001
#define NV097_SET_COMBINER_CONTROL_FACTOR1                                       31:16
#define NV097_SET_COMBINER_CONTROL_FACTOR1_SAME_FACTOR_ALL                  0x00000000
#define NV097_SET_COMBINER_CONTROL_FACTOR1_EACH_STAGE                       0x00000001

#define NV097_SET_COMBINER_COLOR_OCW(i)                             (0x00001e40+(i)*4)
#define NV097_SET_COMBINER_COLOR_OCW_BLUETOALPHA_AB                              31:19
#define NV097_SET_COMBINER_COLOR_OCW_BLUETOALPHA_AB_DISABLE                 0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_BLUETOALPHA_AB_AB_DST_ENABLE           0x00000001
#define NV097_SET_COMBINER_COLOR_OCW_BLUETOALPHA_CD                              18:18
#define NV097_SET_COMBINER_COLOR_OCW_BLUETOALPHA_CD_DISABLE                 0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_BLUETOALPHA_CD_CD_DST_ENABLE           0x00000001
#define NV097_SET_COMBINER_COLOR_OCW_OP                                          17:15
#define NV097_SET_COMBINER_COLOR_OCW_OP_NOSHIFT                             0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_OP_NOSHIFT_BIAS                        0x00000001
#define NV097_SET_COMBINER_COLOR_OCW_OP_SHIFTLEFTBY1                        0x00000002
#define NV097_SET_COMBINER_COLOR_OCW_OP_SHIFTLEFTBY1_BIAS                   0x00000003
#define NV097_SET_COMBINER_COLOR_OCW_OP_SHIFTLEFTBY2                        0x00000004
#define NV097_SET_COMBINER_COLOR_OCW_OP_SHIFTRIGHTBY1                       0x00000006
#define NV097_SET_COMBINER_COLOR_OCW_MUX_ENABLE                                  14:14
#define NV097_SET_COMBINER_COLOR_OCW_MUX_ENABLE_FALSE                       0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_MUX_ENABLE_TRUE                        0x00000001
#define NV097_SET_COMBINER_COLOR_OCW_AB_DOT_ENABLE                               13:13
#define NV097_SET_COMBINER_COLOR_OCW_AB_DOT_ENABLE_FALSE                    0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_AB_DOT_ENABLE_TRUE                     0x00000001
#define NV097_SET_COMBINER_COLOR_OCW_CD_DOT_ENABLE                               12:12
#define NV097_SET_COMBINER_COLOR_OCW_CD_DOT_ENABLE_FALSE                    0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_CD_DOT_ENABLE_TRUE                     0x00000001
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST                                      11:8
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_0                          0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_4                          0x00000004
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_5                          0x00000005
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_8                          0x00000008
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_9                          0x00000009
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_A                          0x0000000A
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_B                          0x0000000B
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_C                          0x0000000C
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_D                          0x0000000D
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST                                        7:4
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_0                           0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_4                           0x00000004
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_5                           0x00000005
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_8                           0x00000008
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_9                           0x00000009
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_A                           0x0000000A
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_B                           0x0000000B
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_C                           0x0000000C
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_D                           0x0000000D
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST                                        3:0
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_0                           0x00000000
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_4                           0x00000004
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_5                           0x00000005
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_8                           0x00000008
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_9                           0x00000009
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_A                           0x0000000A
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_B                           0x0000000B
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_C                           0x0000000C
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_D                           0x0000000D

#define NV097_SET_TRANSFORM_EXECUTION_MODE                                  0x00001e94
#define NV097_SET_TRANSFORM_EXECUTION_MODE_MODE                                    1:0
#define NV097_SET_TRANSFORM_EXECUTION_MODE_MODE_FIXED                       0x00000000
#define NV097_SET_TRANSFORM_EXECUTION_MODE_MODE_PROGRAM                     0x00000002
#define NV097_SET_TRANSFORM_EXECUTION_MODE_RANGE_MODE                             31:2
#define NV097_SET_TRANSFORM_EXECUTION_MODE_RANGE_MODE_USER                  0x00000000
#define NV097_SET_TRANSFORM_EXECUTION_MODE_RANGE_MODE_PRIV                  0x00000001

#define NV097_SET_TRANSFORM_PROGRAM_CXT_WRITE_EN                            0x00001e98
#define NV097_SET_TRANSFORM_PROGRAM_CXT_WRITE_EN_V                                31:0
#define NV097_SET_TRANSFORM_PROGRAM_CXT_WRITE_EN_V_READ_ONLY                0x00000000
#define NV097_SET_TRANSFORM_PROGRAM_CXT_WRITE_EN_V_READ_WRITE               0x00000001

#define NV097_SET_TRANSFORM_PROGRAM_LOAD                                    0x00001e9c
#define NV097_SET_TRANSFORM_PROGRAM_LOAD_PROG_LD_PTR                              31:0

#define NV097_SET_TRANSFORM_PROGRAM_START                                   0x00001ea0
#define NV097_SET_TRANSFORM_PROGRAM_START_V                                       31:0

#define NV097_SET_TRANSFORM_PROGRAM(i)                              (0x00000b00+(i)*4)
#define NV097_SET_TRANSFORM_PROGRAM_V                                             31:0

#define NV097_SET_TRANSFORM_CONSTANT_LOAD                                   0x00001ea4
#define NV097_SET_TRANSFORM_CONSTANT_LOAD_CONST_LD_PTR                            31:0

#define NV097_SET_TRANSFORM_CONSTANT(i)                             (0x00000b80+(i)*4)
#define NV097_SET_TRANSFORM_CONSTANT_V                                            31:0

#define NV097_SET_TRANSFORM_DATA(i)                                 (0x00001e80+(i)*4)
#define NV097_SET_TRANSFORM_DATA_V                                                31:0

#define NV097_LAUNCH_TRANSFORM_PROGRAM                                      0x00001e90
#define NV097_LAUNCH_TRANSFORM_PROGRAM_V                                          31:0

#define NV097_SET_TWO_SIDE_LIGHT_EN                                         0x000017c4
#define NV097_SET_TWO_SIDE_LIGHT_EN_V                                             31:0
#define NV097_SET_TWO_SIDE_LIGHT_EN_V_FALSE                                 0x00000000
#define NV097_SET_TWO_SIDE_LIGHT_EN_V_TRUE                                  0x00000001

#define NV097_SET_BACK_SCENE_AMBIENT_COLOR(i)                       (0x000017a0+(i)*4)
#define NV097_SET_BACK_SCENE_AMBIENT_COLOR_V                                      31:0

#define NV097_SET_BACK_MATERIAL_EMISSION(i)                         (0x000017b0+(i)*4)
#define NV097_SET_BACK_MATERIAL_EMISSION_V                                        31:0

#define NV097_CLEAR_REPORT_VALUE                                            0x000017c8
#define NV097_CLEAR_REPORT_VALUE_TYPE                                             31:0
#define NV097_CLEAR_REPORT_VALUE_TYPE_ZPASS_PIXEL_CNT                       0x00000001

#define NV097_SET_ZPASS_PIXEL_COUNT_ENABLE                                  0x000017cc
#define NV097_SET_ZPASS_PIXEL_COUNT_ENABLE_V                                      31:0
#define NV097_SET_ZPASS_PIXEL_COUNT_ENABLE_V_FALSE                          0x00000000
#define NV097_SET_ZPASS_PIXEL_COUNT_ENABLE_V_TRUE                           0x00000001

#define NV097_GET_REPORT                                                    0x000017d0
#define NV097_GET_REPORT_OFFSET                                                   23:0
#define NV097_GET_REPORT_TYPE                                                    31:24
#define NV097_GET_REPORT_TYPE_ZPASS_PIXEL_CNT                               0x00000001

/* These methods are accepted between a begin/end. */
#define NV097_SET_VIEWPORT_OFFSET_SW(i)                             (0x00001f00+(i)*4)
/* The PASSTHRU_VIEWPORT_OFFSET aliases to row 1 of the MODEL_VIEW_MATRIX1 */
#define NV097_SET_PASSTHRU_VIEWPORT_OFFSET_SW(i)                    (0x00001f10+(i)*4)

#define NV097_DEBUG_INIT(i)                                         (0x00001fc0+(i)*4)
#define NV097_DEBUG_INIT_V                                                        31:0
#define NV097_TYPEDEF                                              Nv20KelvinPrimitive
#define NV097_SET_OBJECT                                                  (0x00000000)


// XXXmjc Shaun Ho and John Montrym will roll these into the master file at some point.
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_ZERO              NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_0
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_CONST0            NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_1
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_CONST1            NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_2
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_FOG               NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_3
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_4
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_5
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_TEX0              NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_8
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_TEX1              NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_9
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_TEX2              NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_A
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_TEX3              NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_B
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_SPARE0            NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_C
#define NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_SPARE1            NV097_SET_COMBINER_ALPHA_ICW_A_SOURCE_REG_D

#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_ZERO              NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_0
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_CONST0            NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_1
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_CONST1            NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_2
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_FOG               NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_3
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_4
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_5
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_TEX0              NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_8
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_TEX1              NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_9
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_TEX2              NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_A
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_TEX3              NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_B
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_SPARE0            NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_C
#define NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_SPARE1            NV097_SET_COMBINER_ALPHA_ICW_B_SOURCE_REG_D

#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_ZERO              NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_0
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_CONST0            NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_1
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_CONST1            NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_2
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_FOG               NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_3
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_4
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_5
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_TEX0              NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_8
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_TEX1              NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_9
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_TEX2              NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_A
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_TEX3              NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_B
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_SPARE0            NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_C
#define NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_SPARE1            NV097_SET_COMBINER_ALPHA_ICW_C_SOURCE_REG_D

#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_ZERO              NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_0
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_CONST0            NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_1
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_CONST1            NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_2
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_FOG               NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_3
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_4
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_5
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_TEX0              NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_8
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_TEX1              NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_9
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_TEX2              NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_A
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_TEX3              NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_B
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_SPARE0            NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_C
#define NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_SPARE1            NV097_SET_COMBINER_ALPHA_ICW_D_SOURCE_REG_D

#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_ZERO              NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_0
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_CONST0            NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_1
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_CONST1            NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_2
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_FOG               NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_3
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_4
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_5
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_TEX0              NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_8
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_TEX1              NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_9
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_TEX2              NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_A
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_TEX3              NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_B
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_SPARE0            NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_C
#define NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_SPARE1            NV097_SET_COMBINER_COLOR_ICW_A_SOURCE_REG_D

#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_ZERO              NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_0
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_CONST0            NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_1
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_CONST1            NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_2
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_FOG               NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_3
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_4
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_5
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_TEX0              NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_8
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_TEX1              NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_9
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_TEX2              NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_A
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_TEX3              NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_B
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_SPARE0            NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_C
#define NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_SPARE1            NV097_SET_COMBINER_COLOR_ICW_B_SOURCE_REG_D

#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_ZERO              NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_0
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_CONST0            NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_1
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_CONST1            NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_2
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_FOG               NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_3
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_4
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_5
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_TEX0              NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_8
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_TEX1              NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_9
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_TEX2              NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_A
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_TEX3              NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_B
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_SPARE0            NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_C
#define NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_SPARE1            NV097_SET_COMBINER_COLOR_ICW_C_SOURCE_REG_D

#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_ZERO              NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_0
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_CONST0            NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_1
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_CONST1            NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_2
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_FOG               NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_3
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_DIFFUSE           NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_4
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_SPECULAR          NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_5
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_TEX0              NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_8
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_TEX1              NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_9
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_TEX2              NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_A
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_TEX3              NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_B
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_SPARE0            NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_C
#define NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_SPARE1            NV097_SET_COMBINER_COLOR_ICW_D_SOURCE_REG_D

#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_ZERO               NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_0
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_DIFFUSE            NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_4
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_SPECULAR           NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_5
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_TEX0               NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_8
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_TEX1               NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_9
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_TEX2               NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_A
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_TEX3               NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_B
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_SPARE0             NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_C
#define NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_SPARE1             NV097_SET_COMBINER_ALPHA_OCW_SUM_DST_REG_D

#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_ZERO                NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_0
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_DIFFUSE             NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_4
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_SPECULAR            NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_5
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_TEX0                NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_8
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_TEX1                NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_9
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_TEX2                NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_A
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_TEX3                NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_B
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_SPARE0              NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_C
#define NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_SPARE1              NV097_SET_COMBINER_ALPHA_OCW_AB_DST_REG_D

#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_ZERO                NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_0
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_DIFFUSE             NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_4
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_SPECULAR            NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_5
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_TEX0                NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_8
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_TEX1                NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_9
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_TEX2                NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_A
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_TEX3                NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_B
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_SPARE0              NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_C
#define NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_SPARE1              NV097_SET_COMBINER_ALPHA_OCW_CD_DST_REG_D

#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_ZERO               NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_0
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_DIFFUSE            NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_4
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_SPECULAR           NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_5
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_TEX0               NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_8
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_TEX1               NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_9
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_TEX2               NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_A
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_TEX3               NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_B
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_SPARE0             NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_C
#define NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_SPARE1             NV097_SET_COMBINER_COLOR_OCW_SUM_DST_REG_D

#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_ZERO                NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_0
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_DIFFUSE             NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_4
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_SPECULAR            NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_5
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_TEX0                NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_8
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_TEX1                NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_9
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_TEX2                NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_A
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_TEX3                NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_B
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_SPARE0              NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_C
#define NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_SPARE1              NV097_SET_COMBINER_COLOR_OCW_AB_DST_REG_D

#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_ZERO                NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_0
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_DIFFUSE             NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_4
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_SPECULAR            NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_5
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_TEX0                NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_8
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_TEX1                NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_9
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_TEX2                NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_A
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_TEX3                NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_B
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_SPARE0              NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_C
#define NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_SPARE1              NV097_SET_COMBINER_COLOR_OCW_CD_DST_REG_D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_ZERO       NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_CONST0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_1
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_CONST1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_2
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_FOG        NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_3
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_DIFFUSE    NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_SPECULAR   NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_TEX0       NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_TEX1       NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_9
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_TEX2       NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_TEX3       NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_SPARE0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_SPARE1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_A_SOURCE_REG_D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_ZERO       NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_CONST0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_1
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_CONST1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_2
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_FOG        NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_3
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_DIFFUSE    NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_SPECULAR   NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_TEX0       NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_TEX1       NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_9
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_TEX2       NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_TEX3       NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_SPARE0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_SPARE1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_B_SOURCE_REG_D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_ZERO       NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_CONST0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_1
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_CONST1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_2
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_FOG        NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_3
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_DIFFUSE    NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_SPECULAR   NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_TEX0       NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_TEX1       NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_9
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_TEX2       NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_TEX3       NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_SPARE0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_SPARE1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_C_SOURCE_REG_D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_ZERO       NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_CONST0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_1
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_CONST1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_2
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_FOG        NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_3
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_DIFFUSE    NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_SPECULAR   NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_TEX0       NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_TEX1       NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_9
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_TEX2       NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_TEX3       NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_SPARE0     NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_SPARE1     NV097_SET_COMBINER_SPECULAR_FOG_CW0_D_SOURCE_REG_D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_ZERO       NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_CONST0     NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_1
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_CONST1     NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_2
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_FOG        NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_3
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_DIFFUSE    NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_SPECULAR   NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_TEX0       NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_TEX1       NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_9
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_TEX2       NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_TEX3       NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_SPARE0     NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_SPARE1     NV097_SET_COMBINER_SPECULAR_FOG_CW1_E_SOURCE_REG_D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_ZERO       NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_CONST0     NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_1
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_CONST1     NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_2
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_FOG        NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_3
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_DIFFUSE    NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_SPECULAR   NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_TEX0       NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_TEX1       NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_9
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_TEX2       NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_TEX3       NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_SPARE0     NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_SPARE1     NV097_SET_COMBINER_SPECULAR_FOG_CW1_F_SOURCE_REG_D

#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_ZERO       NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_0
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_CONST0     NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_1
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_CONST1     NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_2
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_FOG        NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_3
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_DIFFUSE    NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_4
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_SPECULAR   NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_5
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_TEX0       NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_8
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_TEX1       NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_9
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_TEX2       NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_A
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_TEX3       NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_B
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_SPARE0     NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_C
#define NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_SPARE1     NV097_SET_COMBINER_SPECULAR_FOG_CW1_G_SOURCE_REG_D


/* class NV15_CONTEXT_SURFACE_SWIZZLED */
#define  NV15_CONTEXT_SURFACE_SWIZZLED                             (0x0000009E)
/* NvNotification[] elements */
#define NV09E_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV09E_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV09E_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV09E_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV09E_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV09E_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV09E_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV09E_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x01e];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextDmaImage;      /* NV01_CONTEXT_DMA                 0184-0187*/
 NvV32 Reserved01[0x05e];
 NvV32 SetFormat;               /* height_width_color V8_V8_V16     0300-0303*/
 NvU32 SetOffset;               /* byte offset of top-left pixel    0304-0307*/
 NvV32 Reserved02[0x73e];
} Nv09eTypedef, Nv15ContextSurfaceSwizzled;
#define NV09E_TYPEDEF                                Nv15ContextSurfaceSwizzled
/* dma method offsets, fields, and values */
#define NV09E_SET_OBJECT                                           (0x00000000)
#define NV09E_NO_OPERATION                                         (0x00000100)
#define NV09E_NOTIFY                                               (0x00000104)
#define NV09E_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV09E_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV09E_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV09E_SET_CONTEXT_DMA_IMAGE                                (0x00000184)
#define NV09E_SET_FORMAT                                           (0x00000300)
#define NV09E_SET_FORMAT_COLOR                                     15:0
#define NV09E_SET_FORMAT_COLOR_LE_Y8                               (0x00000001)
#define NV09E_SET_FORMAT_COLOR_LE_X1R5G5B5_Z1R5G5B5                (0x00000002)
#define NV09E_SET_FORMAT_COLOR_LE_X1R5G5B5_O1R5G5B5                (0x00000003)
#define NV09E_SET_FORMAT_COLOR_LE_R5G6B5                           (0x00000004)
#define NV09E_SET_FORMAT_COLOR_LE_Y16                              (0x00000005)
#define NV09E_SET_FORMAT_COLOR_LE_X8R8G8B8_Z8R8G8B8                (0x00000006)
#define NV09E_SET_FORMAT_COLOR_LE_X8R8G8B8_O8R8G8B8                (0x00000007)
#define NV09E_SET_FORMAT_COLOR_LE_X1A7R8G8B8_Z1A7R8G8B8            (0x00000008)
#define NV09E_SET_FORMAT_COLOR_LE_X1A7R8G8B8_O1A7R8G8B8            (0x00000009)
#define NV09E_SET_FORMAT_COLOR_LE_A8R8G8B8                         (0x0000000A)
#define NV09E_SET_FORMAT_COLOR_LE_Y32                              (0x0000000B)
#define NV09E_SET_FORMAT_WIDTH                                     23:16
#define NV09E_SET_FORMAT_WIDTH_2                                   (0x00000001)
#define NV09E_SET_FORMAT_WIDTH_4                                   (0x00000002)
#define NV09E_SET_FORMAT_WIDTH_8                                   (0x00000003)
#define NV09E_SET_FORMAT_WIDTH_16                                  (0x00000004)
#define NV09E_SET_FORMAT_WIDTH_32                                  (0x00000005)
#define NV09E_SET_FORMAT_WIDTH_64                                  (0x00000006)
#define NV09E_SET_FORMAT_WIDTH_128                                 (0x00000007)
#define NV09E_SET_FORMAT_WIDTH_256                                 (0x00000008)
#define NV09E_SET_FORMAT_WIDTH_512                                 (0x00000009)
#define NV09E_SET_FORMAT_WIDTH_1024                                (0x0000000A)
#define NV09E_SET_FORMAT_WIDTH_2048                                (0x0000000B)
#define NV09E_SET_FORMAT_HEIGHT                                    31:24
#define NV09E_SET_FORMAT_HEIGHT_2                                  (0x00000001)
#define NV09E_SET_FORMAT_HEIGHT_4                                  (0x00000002)
#define NV09E_SET_FORMAT_HEIGHT_8                                  (0x00000003)
#define NV09E_SET_FORMAT_HEIGHT_16                                 (0x00000004)
#define NV09E_SET_FORMAT_HEIGHT_32                                 (0x00000005)
#define NV09E_SET_FORMAT_HEIGHT_64                                 (0x00000006)
#define NV09E_SET_FORMAT_HEIGHT_128                                (0x00000007)
#define NV09E_SET_FORMAT_HEIGHT_256                                (0x00000008)
#define NV09E_SET_FORMAT_HEIGHT_512                                (0x00000009)
#define NV09E_SET_FORMAT_HEIGHT_1024                               (0x0000000A)
#define NV09E_SET_FORMAT_HEIGHT_2048                               (0x0000000B)
#define NV09E_SET_OFFSET                                           (0x00000304)


/* class NV15_IMAGE_BLIT */
#define  NV15_IMAGE_BLIT                                           (0x0000009F)
/* NvNotification[] elements */
#define NV09F_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV09F_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV09F_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV09F_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV09F_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV09F_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV09F_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV09F_NOTIFY_*                   0104-0107*/
 NvV32 Reserved00[0x006];
 NvV32 SyncSetRead;             /*                                  0120-0123*/
 NvV32 SyncSetWrite;            /*                                  0124-0127*/
 NvV32 SyncSetModulo;           /*                                  0128-012b*/
 NvV32 SyncIncrementWrite;      /* ignored                          012c-012f*/
 NvV32 SyncStall;               /* ignored                          0130-0133*/
 NvV32 SyncIncrementReadRange;  /* scanline range to check 0 or 1   0134-0137*/
 NvV32 Reserved02[0x012];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextSurfaces;      /* NV04_CONTEXT_SURFACES_2D         019c-019f*/
 NvV32 Reserved03[0x057];
 NvV32 SetOperation;            /* NV09F_SET_OPERATION_*            02fc-02ff*/
 NvV32 ControlPointIn;          /* y_x U16_U16, pixels              0300-0303*/
 NvV32 ControlPointOut;         /* y_x S16_S16, pixels              0304-0307*/
 NvV32 Size;                    /* height_width U16_U16 in pixels   0308-030b*/
 NvV32 Reserved04[0x73d];
} Nv09fTypedef, Nv12ImageBlit;
#define NV09F_TYPEDEF                                             Nv12ImageBlit
/* dma method offsets, fields, and values */
#define NV09F_SET_OBJECT                                           (0x00000000)
#define NV09F_NO_OPERATION                                         (0x00000100)
#define NV09F_NOTIFY                                               (0x00000104)
#define NV09F_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV09F_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV09F_SYNC_SET_READ                                        (0x00000120)
#define NV09F_SYNC_SET_WRITE                                       (0x00000124)
#define NV09F_SYNC_SET_MODULO                                      (0x00000128)
#define NV09F_SYNC_INCREMENT_WRITE                                 (0x0000012C)
#define NV09F_SYNC_STALL                                           (0x00000130)
#define NV09F_SYNC_INCREMENT_READ_RANGE                            (0x00000134)
#define NV09F_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV09F_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV09F_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV09F_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV09F_SET_CONTEXT_ROP                                      (0x00000190)
#define NV09F_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV09F_SET_CONTEXT_BETA4                                    (0x00000198)
#define NV09F_SET_CONTEXT_SURFACES                                 (0x0000019C)
#define NV09F_SET_OPERATION                                        (0x000002FC)
#define NV09F_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV09F_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV09F_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV09F_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV09F_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV09F_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV09F_CONTROL_POINT_IN                                     (0x00000300)
#define NV09F_CONTROL_POINT_IN_X                                   15:0
#define NV09F_CONTROL_POINT_IN_Y                                   31:16
#define NV09F_CONTROL_POINT_OUT                                    (0x00000304)
#define NV09F_CONTROL_POINT_OUT_X                                  15:0
#define NV09F_CONTROL_POINT_OUT_Y                                  31:16
#define NV09F_SIZE                                                 (0x00000308)
#define NV09F_SIZE_WIDTH                                           15:0
#define NV09F_SIZE_HEIGHT                                          31:16


/* class NV20_IMAGE_BLIT */
#define  NV20_IMAGE_BLIT                                            (0x0000205F)
/* NvNotification[] elements */
#define NV205F_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NV205F_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV205F_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV205F_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV205F_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV205F_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV205F_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 NoOperation;             /* ignored                          0100-0103*/
 NvV32 Notify;                  /* NV205F_NOTIFY_*                  0104-0107*/
 NvV32 Reserved00[0x006];
 NvV32 SyncSetRead;             /*                                  0120-0123*/
 NvV32 SyncSetWrite;            /*                                  0124-0127*/
 NvV32 SyncSetModulo;           /*                                  0128-012b*/
 NvV32 SyncIncrementWrite;      /* ignored                          012c-012f*/
 NvV32 SyncStall;               /* ignored                          0130-0133*/
 NvV32 SyncIncrementReadRange;  /* ignored                          0134-0137*/
 NvV32 Reserved02[0x012];
 NvV32 SetContextDmaNotifies;   /* NV01_CONTEXT_DMA                 0180-0183*/
 NvV32 SetContextColorKey;      /* NV04_CONTEXT_COLOR_KEY           0184-0187*/
 NvV32 SetContextClipRectangle; /* NV01_CONTEXT_CLIP_RECTANGLE      0188-018b*/
 NvV32 SetContextPattern;       /* NV04_CONTEXT_PATTERN             018c-018f*/
 NvV32 SetContextRop;           /* NV03_CONTEXT_ROP                 0190-0193*/
 NvV32 SetContextBeta1;         /* NV01_CONTEXT_BETA                0194-0197*/
 NvV32 SetContextBeta4;         /* NV04_CONTEXT_BETA                0198-019b*/
 NvV32 SetContextSurfaces;      /* NV04_CONTEXT_SURFACES_2D         019c-019f*/
 NvV32 Reserved03[0x057];
 NvV32 SetOperation;            /* NV205F_SET_OPERATION_*            02fc-02ff*/
 NvV32 ControlPointIn;          /* y_x U16_U16, pixels              0300-0303*/
 NvV32 ControlPointOut;         /* y_x S16_S16, pixels              0304-0307*/
 NvV32 Size;                    /* height_width U16_U16 in pixels   0308-030b*/
 NvV32 Reserved04[0x73d];
} Nv205fTypedef, Nv20ImageBlit;
#define NV205F_TYPEDEF                                             Nv20ImageBlit
/* dma method offsets, fields, and values */
#define NV205F_SET_OBJECT                                           (0x00000000)
#define NV205F_NO_OPERATION                                         (0x00000100)
#define NV205F_NOTIFY                                               (0x00000104)
#define NV205F_NOTIFY_WRITE_ONLY                                    (0x00000000)
#define NV205F_NOTIFY_WRITE_THEN_AWAKEN                             (0x00000001)
#define NV205F_SYNC_SET_READ                                        (0x00000120)
#define NV205F_SYNC_SET_WRITE                                       (0x00000124)
#define NV205F_SYNC_SET_MODULO                                      (0x00000128)
#define NV205F_SYNC_INCREMENT_WRITE                                 (0x0000012C)
#define NV205F_SYNC_STALL                                           (0x00000130)
#define NV205F_SYNC_INCREMENT_READ_RANGE                            (0x00000134)
#define NV205F_SET_CONTEXT_DMA_NOTIFIES                             (0x00000180)
#define NV205F_SET_CONTEXT_COLOR_KEY                                (0x00000184)
#define NV205F_SET_CONTEXT_CLIP_RECTANGLE                           (0x00000188)
#define NV205F_SET_CONTEXT_PATTERN                                  (0x0000018C)
#define NV205F_SET_CONTEXT_ROP                                      (0x00000190)
#define NV205F_SET_CONTEXT_BETA1                                    (0x00000194)
#define NV205F_SET_CONTEXT_BETA4                                    (0x00000198)
#define NV205F_SET_CONTEXT_SURFACES                                 (0x0000019C)
#define NV205F_SET_OPERATION                                        (0x000002FC)
#define NV205F_SET_OPERATION_SRCCOPY_AND                            (0x00000000)
#define NV205F_SET_OPERATION_ROP_AND                                (0x00000001)
#define NV205F_SET_OPERATION_BLEND_AND                              (0x00000002)
#define NV205F_SET_OPERATION_SRCCOPY                                (0x00000003)
#define NV205F_SET_OPERATION_SRCCOPY_PREMULT                        (0x00000004)
#define NV205F_SET_OPERATION_BLEND_PREMULT                          (0x00000005)
#define NV205F_CONTROL_POINT_IN                                     (0x00000300)
#define NV205F_CONTROL_POINT_IN_X                                   15:0
#define NV205F_CONTROL_POINT_IN_Y                                   31:16
#define NV205F_CONTROL_POINT_OUT                                    (0x00000304)
#define NV205F_CONTROL_POINT_OUT_X                                  15:0
#define NV205F_CONTROL_POINT_OUT_Y                                  31:16
#define NV205F_SIZE                                                 (0x00000308)
#define NV205F_SIZE_WIDTH                                           15:0
#define NV205F_SIZE_HEIGHT                                          31:16


/* class NV03_DEVICE_XX */
#define  NV03_DEVICE_XX                                            (0x000000FF)
/* NvNotification[] fields and values */
#define NV0FF_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv0FFTypedef, Nv03DeviceXX;
#define  NV0FF_TYPEDEF                                             Nv03DeviceXX

typedef V032 Nvff0Typedef;

typedef V032 Nvff1Typedef;

typedef V032 Nvff2Typedef;

typedef V032 Nvff3Typedef;

typedef V032 Nvff4Typedef;


/* class NV_CONTEXT_ERROR_TO_MEMORY */
#define  NV_CONTEXT_ERROR_TO_MEMORY                                (0x00000FF5)
/* NvNotification[] elements */
#define NVFF5_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFF5_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFF5_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFF5_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFF5_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFF5_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFF5_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFF5_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV_CONTEXT_DMA_TO_MEMORY          0180-0183*/
 V032 Reserved01[0x05f];
 struct {                      /* start of method                   0300-    */
  V032 address[2];             /* address[1] is selector on X86        0-   7*/
  U032 limit;                  /* size of data region in bytes-1       8-   b*/
 } SetDmaSpecifier;            /* end of method                         -030b*/
 V032 Reserved02[0x73d];
} Nvff5Typedef, NvContextErrorToMemory;
#define NVFF5_TYPEDEF                                    NvContextErrorToMemory
/* dma method offsets, fields, and values */
#define NVFF5_SET_OBJECT(s)                              (0x00040000+8192*(s))
#define NVFF5_NO_OPERATION(s)                            (0x00040100+8192*(s))
#define NVFF5_NOTIFY(s)                                  (0x00040104+8192*(s))
#define NVFF5_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFF5_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFF5_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00040180+8192*(s))
#define NVFF5_SET_DMA_SPECIFIER(s)                       (0x000C0300+8192*(s))
/* obsolete stuff */
#define nvContextErrorToMemory                           NvContextErrorToMemory


/* class NV_VIDEO_COLOR_KEY */
#define  NV_VIDEO_COLOR_KEY                                        (0x00000FF6)
/* NvNotification[] elements */
#define NVFF6_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFF6_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFF6_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFF6_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFF6_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFF6_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFF6_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFF6_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV1_CONTEXT_DMA_TO_MEMORY         0180-0183*/
 V032 Reserved01[0x01f];
 V032 SetVideoOutput;          /* NV1_PATCHCORD_VIDEO               0200-0203*/
 V032 SetVideoInput[3];        /* NV1_PATCHCORD_VIDEO               0204-020b*/
 V032 Reserved02[0x03c];
 V032 SetColorFormat;          /* NVFF6_SET_COLOR_FORMAT_*          0300-0303*/
 V032 SetColorKey;             /* color to compare with             0304-0307*/
 V032 SetPoint;                /* y_x, S16_S16 in pixels, top-left  0308-030b*/
 V032 SetSize;                 /* height_width U16_U16 in pixels    030c-030f*/
 V032 Reserved03[0x73c];
} Nvff6Typedef, NvVideoColorKey;
#define NVFF6_TYPEDEF                                    NvVideoColorKey
/* dma method offsets, fields, and values */
#define NVFF6_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFF6_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFF6_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFF6_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFF6_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFF6_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFF6_SET_VIDEO_OUTPUT(s)                        (0x00000200+8192*(s))
#define NVFF6_SET_VIDEO_INPUT(s,i)                       (0x00000204+8192*(s)+\
                                                                       4*(i))
#define NVFF6_SET_COLOR_FORMAT(s)                        (0x00000300+8192*(s))
#define NVFF6_SET_COLOR_FORMAT_LE_X16A8Y8                (0x00000001)
#define NVFF6_SET_COLOR_FORMAT_LE_X24Y8                  (0x00000002)
#define NVFF6_SET_COLOR_FORMAT_LE_X16A1R5G5B5            (0x00000003)
#define NVFF6_SET_COLOR_FORMAT_LE_X17R5G5B5              (0x00000004)
#define NVFF6_SET_COLOR_FORMAT_LE_A16R5G6B5              (0x00000005)
#define NVFF6_SET_COLOR_FORMAT_LE_A8R8G8B8               (0x00000006)
#define NVFF6_SET_COLOR_FORMAT_LE_X8R8G8B8               (0x00000007)
#define NVFF6_SET_COLOR_FORMAT_LE_A16Y16                 (0x00000008)
#define NVFF6_SET_COLOR_FORMAT_LE_X16Y16                 (0x00000009)
#define NVFF6_SET_COLOR_KEY(s)                           (0x00000304+8192*(s))
#define NVFF6_SET_POINT(s)                               (0x00000308+8192*(s))
#define NVFF6_SET_POINT_X                                15:0
#define NVFF6_SET_POINT_Y                                31:16
#define NVFF6_SET_SIZE(s)                                (0x0000030C+8192*(s))
#define NVFF6_SET_SIZE_WIDTH                             15:0
#define NVFF6_SET_SIZE_HEIGHT                            31:16
/* obsolete stuff */
#define nvVideoColorKey                                  NvVideoColorKey


/* class NV_VIDEO_SCALER */
#define  NV_VIDEO_SCALER                                           (0x00000FF7)
/* NvNotification[] elements */
#define NVFF7_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFF7_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFF7_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFF7_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFF7_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFF7_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFF7_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFF7_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV1_CONTEXT_DMA_TO_MEMORY         0180-0183*/
 V032 Reserved01[0x01f];
 V032 SetVideoOutput;          /* NV1_PATCHCORD_VIDEO               0200-0203*/
 V032 SetVideoInput;           /* NV1_PATCHCORD_VIDEO               0204-0207*/
 V032 Reserved02[0x03e];
 V032 SetDeltaDuDx;            /* S12d20 ratio du/dx                0300-0303*/
 V032 SetDeltaDvDy;            /* S12d20 ratio dv/dy                0304-0307*/
 V032 SetPoint;                /* y_x S16_S16 in pixels, top-left   0308-030b*/
 V032 Reserved03[0x73d];
} Nvff7Typedef, NvVideoScaler;
#define NVFF7_TYPEDEF                                    NvVideoScaler
/* dma method offsets, fields, and values */
#define NVFF7_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFF7_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFF7_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFF7_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFF7_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFF7_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFF7_SET_VIDEO_OUTPUT(s)                        (0x00000200+8192*(s))
#define NVFF7_SET_VIDEO_INPUT(s)                         (0x00000204+8192*(s))
#define NVFF7_SET_DELTA_DU_DX(s)                         (0x00000300+8192*(s))
#define NVFF7_SET_DELTA_DV_DY(s)                         (0x00000304+8192*(s))
#define NVFF7_SET_POINT(s)                               (0x00000308+8192*(s))
#define NVFF7_SET_POINT_X                                15:0
#define NVFF7_SET_POINT_Y                                31:16
/* obsolete stuff */
#define nvVideoScaler                                    NvVideoScaler


/* class NV_VIDEO_FROM_MEMORY */
#define  NV_VIDEO_FROM_MEMORY                                      (0x00000FF8)
/* NvNotification[] elements */
#define NVFF8_NOTIFIERS_NOTIFY                                     (0)
#define NVFF8_NOTIFIERS_IMAGE_SCAN(b)                              (1+(b))
#define NVFF8_NOTIFIERS_GET_OFFSET_NOTIFY(b)                       (3+(b))
/* NvNotification[] fields and values */
#define NVFF8_NOTIFICATION_INFO16_BUFFER_NOT_STARTED               (0x0001)
#define NVFF8_NOTIFICATION_INFO16_BUFFER_OFFSET_VALID              (0x0002)
#define NVFF8_NOTIFICATION_INFO16_BUFFER_DONE                      (0x0003)
#define NVFF8_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFF8_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFF8_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFF8_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFF8_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFF8_NOTIFICATION_STATUS_ERROR_BAD_PATCH                  (0x0400)
#define NVFF8_NOTIFICATION_STATUS_WARNING_INVALID_DATA             (0x0001)
#define NVFF8_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFF8_NOTIFY_*                    0104-0107*/
 V032 StopTransfer;            /* NVFF8_STOP_TRANSFER_VALUE         0108-010b*/
 V032 SetPatch;                /* NVFF8_SET_PATCH_*                 010c-010f*/
 V032 Reserved00[0x01c];
 V032 SetContextDmaNotifies;   /* NV1_CONTEXT_DMA_TO_MEMORY         0180-0183*/
 V032 SetContextDmaImage[2];   /* NV1_CONTEXT_DMA_FROM_MEMORY       0184-018b*/
 V032 Reserved01[0x01d];
 V032 SetVideoOutput;          /* NV1_PATCHCORD_VIDEO               0200-0203*/
 V032 Reserved02[0x03f];
 struct {                      /* start of methods in array         0300-    */
  U032 offset;                 /* byte offset of top-left pixel       00-  03*/
  U032 pitch;                  /* bytes, vertical pixel delta         04-  07*/
  V032 size;                   /* height_width U16_U16 in pixels      08-  0b*/
  V032 format;                 /* field_color V16_V16                 0c-  0f*/
  V032 notify;                 /* NVFF8_IMAGE_SCAN_NOTIFY_*           10-  13*/
 } ImageScan[2];               /* end of methods in array               -0327*/
 V032 GetOffsetNotify[2];      /* NVFF8_GET_OFFSET_NOTIFY_*         0328-032f*/
 V032 Reserved03[0x734];
} Nvff8Typedef, NvVideoFromMemory;
#define NVFF8_TYPEDEF                                    NvVideoFromMemory
/* dma method offsets, fields, and values */
#define NVFF8_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFF8_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFF8_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFF8_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFF8_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFF8_STOP_TRANSFER(s)                           (0x00000108+8192*(s))
#define NVFF8_STOP_TRANSFER_VALUE                        (0x00000000)
#define NVFF8_SET_PATCH(s)                               (0x0000010C+8192*(s))
#define NVFF8_SET_PATCH_INVALIDATE                       (0x00000000)
#define NVFF8_SET_PATCH_VALIDATE                         (0x00000001)
#define NVFF8_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFF8_SET_CONTEXT_DMA_IMAGE(s,b)                 (0x00000184+8192*(s)+\
                                                                        4*(b))
#define NVFF8_SET_VIDEO_OUTPUT(s)                        (0x00000200+8192*(s))
#define NVFF8_IMAGE_SCAN(s,b)                            (0x00000300+8192*(s)+\
                                                                       20*(b))
#define NVFF8_IMAGE_SCAN_OFFSET(s,b)                     (0x00000300+8192*(s)+\
                                                                       20*(b))
#define NVFF8_IMAGE_SCAN_PITCH(s,b)                      (0x00000304+8192*(s)+\
                                                                       20*(b))
#define NVFF8_IMAGE_SCAN_SIZE(s,b)                       (0x00000308+8192*(s)+\
                                                                       20*(b))
#define NVFF8_IMAGE_SCAN_SIZE_WIDTH                      15:0
#define NVFF8_IMAGE_SCAN_SIZE_HEIGHT                     31:16
#define NVFF8_IMAGE_SCAN_FORMAT(s,b)                     (0x0000030C+8192*(s)+\
                                                                       20*(b))
#define NVFF8_IMAGE_SCAN_FORMAT_COLOR                    15:0
#define NVFF8_IMAGE_SCAN_FORMAT_COLOR_LE_Y8              (0x00000001)
#define NV_VFM_FORMAT_COLOR_LE_Y8_P4                      0x00000001
#define NVFF8_IMAGE_SCAN_FORMAT_COLOR_LE_V8YB8U8YA8      (0x00000002)
#define NV_VFM_FORMAT_COLOR_LE_V8Y8U8Y8                   0x00000002
#define NVFF8_IMAGE_SCAN_FORMAT_COLOR_LE_YB8V8YA8U8      (0x00000003)
#define NV_VFM_FORMAT_COLOR_LE_Y8V8Y8U8                   0x00000003
#define NVFF8_IMAGE_SCAN_FORMAT_COLOR_LE_GY1R5G5B5       (0x00000004)
#define NV_VFM_FORMAT_COLOR_LE_X1R5G5B5_P2                0x00000004
#define NVFF8_IMAGE_SCAN_FORMAT_COLOR_LE_R5G6B5          (0x00000005)
#define NV_VFM_FORMAT_COLOR_LE_R5G6B5_P2                  0x00000005
#define NVFF8_IMAGE_SCAN_FORMAT_COLOR_LE_GY1X7R8G8B8     (0x00000006)
#define NV_VFM_FORMAT_COLOR_LE_X8R8G8B8                   0x00000006
#define NVFF8_IMAGE_SCAN_FORMAT_FIELD                    31:16
#define NVFF8_IMAGE_SCAN_FORMAT_FIELD_PROGRESSIVE        (0x00000001)
#define NVFF8_IMAGE_SCAN_FORMAT_FIELD_EVEN_FIELD         (0x00000002)
#define NVFF8_IMAGE_SCAN_FORMAT_FIELD_ODD_FIELD          (0x00000003)
#define NVFF8_IMAGE_SCAN_NOTIFY(s,b)                     (0x00000310+8192*(s)+\
                                                                       20*(b))
#define NVFF8_IMAGE_SCAN_NOTIFY_WRITE_ONLY               (0x00000000)
#define NVFF8_IMAGE_SCAN_NOTIFY_WRITE_THEN_AWAKEN        (0x00000001)
#define NVFF8_GET_OFFSET_NOTIFY(s,b)                     (0x00000328+8192*(s)+\
                                                                        4*(b))
#define NVFF8_GET_OFFSET_NOTIFY_WRITE_ONLY               (0x00000000)
#define NVFF8_GET_OFFSET_NOTIFY_WRITE_THEN_AWAKEN        (0x00000001)
/* obsolete stuff */
#define nvVideoFromMemory                                NvVideoFromMemory
#define SetImageCtxDma                                   SetContextDmaImage
#define SetImageNotifyCtxDma                             SetContextDmaNotifies


/* class NV_VIDEO_COLORMAP */
#define  NV_VIDEO_COLORMAP                                         (0x00000FF9)
/* NvNotification[] elements */
#define NVFF9_NOTIFIERS_NOTIFY                                     (0)
#define NVFF9_NOTIFIERS_COLORMAP_DIRTY_NOTIFY                      (1)
/* NvNotification[] fields and values */
#define NVFF9_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFF9_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFF9_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFF9_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFF9_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFF9_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFF9_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV_CONTEXT_DMA_TO_MEMORY          0180-0183*/
 V032 SetContextDmaColormap;   /* NV_CONTEXT_DMA_FROM_MEMORY        0184-0187*/
 V032 Reserved01[0x01e];
 V032 SetVideoOutput;          /* NV1_PATCHCORD_VIDEO               0200-0203*/
 V032 SetVideoInput;           /* NV1_PATCHCORD_VIDEO               0204-0207*/
 V032 Reserved02[0x040];
 U032 SetColormapStart;        /* offset in bytes                   0308-030b*/
 U032 SetColormapLength;       /* in bytes                          030c-030f*/
 U032 ColormapDirtyStart;      /* start of region to update         0310-0313*/
 U032 ColormapDirtyLength;     /* in bytes, starts transfer         0314-0317*/
 V032 Reserved03[0x73a];
} Nvff9Typedef, NvVideoColormap;
#define NVFF9_TYPEDEF                                    NvVideoColormap
/* dma method offsets, fields, and values */
#define NVFF9_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFF9_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFF9_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFF9_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFF9_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFF9_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFF9_SET_CONTEXT_DMA_COLORMAP(s)                (0x00000184+8192*(s))
#define NVFF9_SET_VIDEO_OUTPUT(s)                        (0x00000200+8192*(s))
#define NVFF9_SET_VIDEO_INPUT(s)                         (0x00000204+8192*(s))
#define NVFF9_SET_COLORMAP_START(s)                      (0x00000308+8192*(s))
#define NVFF9_SET_COLORMAP_LENGTH(s)                     (0x0000030C+8192*(s))
#define NVFF9_COLORMAP_DIRTY_START(s)                    (0x00000310+8192*(s))
#define NVFF9_COLORMAP_DIRTY_LENGTH(s)                   (0x00000314+8192*(s))
/* obsolete stuff */
#define nvVideoColormap                                  NvVideoColormap


/* class NV_VIDEO_SINK */
#define  NV_VIDEO_SINK                                             (0x00000FFA)
/* NvNotification[] elements */
#define NVFFA_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFFA_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFFA_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFFA_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFFA_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFFA_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFFA_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFFA_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV_CONTEXT_DMA_TO_MEMORY          0180-0183*/
 V032 Reserved01[0x01f];
 V032 SetVideoInput[64];       /* NV1_PATCHCORD_VIDEO               0200-02ff*/
 V032 Reserved02[0x740];
} NvffaTypedef, NvVideoSink;
#define NVFFA_TYPEDEF                                    NvVideoSink
/* dma method offsets, fields, and values */
#define NVFFA_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFFA_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFFA_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFFA_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFFA_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFFA_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFFA_SET_VIDEO_INPUT(s,i)                       (0x00000200+8192*(s)+\
                                                                        4*(i))
/* obsolete stuff */
#define nvVideoSink                                      NvVideoSink


/* class NV_PATCHCORD_VIDEO */
#define  NV_PATCHCORD_VIDEO                                        (0x00000FFB)
/* NvNotification[] entries, values, errors, warnings */
#define NVFFB_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 V032 Reserved00[0x7c0];
} NvffbTypedef, NvPatchcordVideo;
#define NVFFB_TYPEDEF                                    NvPatchcordVideo
/* obsolete stuff */
#define nvPatchcordVideo                                 NvPatchcordVideo


/* class NV_CONTEXT_DMA_IN_MEMORY */
#define  NV_CONTEXT_DMA_IN_MEMORY                                  (0x00000FFC)
/* NvNotification[] elements */
#define NVFFC_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFFC_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFFC_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFFC_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFFC_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFFC_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFFC_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFFC_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV_CONTEXT_DMA_TO_MEMORY          0180-0183*/
 V032 Reserved01[0x05f];
 struct {                      /* start of method                   0300-    */
  V032 address[2];             /* On X86 address[1] is the selector    0-   7*/
  U032 limit;                  /* size of data region in bytes-1       8-   b*/
 } SetDmaSpecifier;            /* end of method                         -030b*/
 V032 Reserved02[0x73d];
} NvffcTypedef, NvContextDmaInMemory;
#define NVFFC_TYPEDEF                                    NvContextDmaInMemory
/* dma method offsets, fields, and values */
#define NVFFC_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFFC_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFFC_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFFC_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFFC_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFFC_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFFC_SET_DMA_SPECIFIER(s)                       (0x00000300+8192*(s))
/* obsolete stuff */
#define nvContextDmaInMemory                             NvContextDmaInMemory


/* class NV_CONTEXT_DMA_TO_MEMORY */
#define  NV_CONTEXT_DMA_TO_MEMORY                                  (0x00000FFD)
/* NvNotification[] elements */
#define NVFFD_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFFD_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFFD_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFFD_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFFD_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFFD_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFFD_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFFD_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV_CONTEXT_DMA_TO_MEMORY          0180-0183*/
 V032 Reserved01[0x05f];
 struct {                      /* start of method                   0300-    */
  V032 address[2];             /* address[1] is selector on X86        0-   7*/
  U032 limit;                  /* size of data region in bytes-1       8-   b*/
 } SetDmaSpecifier;            /* end of method                         -030b*/
 V032 Reserved02[0x73d];
} NvffdTypedef, NvContextDmaToMemory;
#define NVFFD_TYPEDEF                                    NvContextDmaToMemory
/* dma method offsets, fields, and values */
#define NVFFD_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFFD_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFFD_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFFD_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFFD_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFFD_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFFD_SET_DMA_SPECIFIER(s)                       (0x00000300+8192*(s))
/* obsolete stuff */
#define nvContextDmaToMemory                             NvContextDmaToMemory


/* class NV_CONTEXT_DMA_FROM_MEMORY */
#define  NV_CONTEXT_DMA_FROM_MEMORY                                (0x00000FFE)
/* NvNotification[] elements */
#define NVFFE_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFFE_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFFE_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFFE_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFFE_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFFE_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFFE_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFFE_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV_CONTEXT_DMA_TO_MEMORY          0180-0183*/
 V032 Reserved01[0x05f];
 struct {                      /* start of method                   0300-    */
  V032 address[2];             /* address[1] is selector on X86        0-   7*/
  U032 limit;                  /* size of data region in bytes-1       8-   b*/
 } SetDmaSpecifier;            /* end of method                         -030b*/
 V032 Reserved02[0x73d];
} NvffeTypedef, NvContextDmaFromMemory;
#define NVFFE_TYPEDEF                                    NvContextDmaFromMemory
/* dma method offsets, fields, and values */
#define NVFFE_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFFE_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFFE_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFFE_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFFE_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFFE_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFFE_SET_DMA_SPECIFIER(s)                       (0x00000300+8192*(s))
/* obsolete stuff */
#define nvContextDmaFromMemory                           NvContextDmaFromMemory


/* class NV_CLASS */
#define  NV_CLASS                                                  (0x00000FFF)
/* NvNotification[] elements */
#define NVFFF_NOTIFIERS_NOTIFY                                     (0)
/* NvNotification[] fields and values */
#define NVFFF_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NVFFF_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NVFFF_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NVFFF_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NVFFF_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NVFFF_NOTIFICATION_STATUS_WARNING_UNAVAILABLE              (0x0002)
#define NVFFF_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 V032 NoOperation;             /* ignored                           0100-0103*/
 V032 Notify;                  /* NVFFF_NOTIFY_*                    0104-0107*/
 V032 Reserved00[0x01e];
 V032 SetContextDmaNotifies;   /* NV_CONTEXT_DMA_TO_MEMORY          0180-0183*/
 V032 Reserved01[0x05f];
 V032 Create;                  /* 32-bit handle of new object       0300-0303*/
 V032 Destroy;                 /* 32-bit handle of object           0304-0307*/
 V032 Reserved02[0x73e];
} NvfffTypedef, NvClass;
#define NVFFF_TYPEDEF                                    NvClass
/* dma method offsets, fields, and values */
#define NVFFF_SET_OBJECT(s)                              (0x00000000+8192*(s))
#define NVFFF_NO_OPERATION(s)                            (0x00000100+8192*(s))
#define NVFFF_NOTIFY(s)                                  (0x00000104+8192*(s))
#define NVFFF_NOTIFY_WRITE_ONLY                          (0x00000000)
#define NVFFF_NOTIFY_WRITE_THEN_AWAKEN                   (0x00000001)
#define NVFFF_SET_CONTEXT_DMA_NOTIFIES(s)                (0x00000180+8192*(s))
#define NVFFF_CREATE(s)                                  (0x00000300+8192*(s))
#define NVFFF_DESTROY(s)                                 (0x00000304+8192*(s))
/* obsolete stuff */
#define nvClass                                          NvClass



 /***************************************************************************\
|*                                 Channels                                  *|
 \***************************************************************************/

typedef NvV32 Nv068Typedef;

typedef NvV32 Nv069Typedef;

/* class NV03_CHANNEL_PIO */
#define  NV03_CHANNEL_PIO                                          (0x0000006A)
/* NvNotification[] fields and values */
#define NV06A_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV06A_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV06A_NOTIFICATION_STATUS_ERROR_FLOW_CONTROL               (0x0200)
/* pio subchannel method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x003];
#ifdef NV_BIG_ENDIAN
 NvU32 Free;                    /* 32 bit free count, read only     0010-0013*/
 NvU32 Zero;                    /* zeroes, read only                0014-0017*/
#else
 NvU16 Free;                    /* free count, read only            0010-0011*/
 NvU16 Zero[3];                 /* zeroes, read only                0012-0017*/
#endif
 NvV32 Reserved01[0x03A];
} Nv03ControlPio;
typedef volatile struct {
 NvV32 SetObject;               /* handle of current object         0000-0003*/
 Nv03ControlPio control;        /* flow control                     0000-00ff*/
 union {                        /* start of class methods           0100-    */
  Nv000Typedef NV000_TYPEDEF;
  Nv001Typedef NV001_TYPEDEF;
  Nv002Typedef NV002_TYPEDEF;
  Nv003Typedef NV003_TYPEDEF;
  Nv004Typedef NV004_TYPEDEF;
  Nv005Typedef NV005_TYPEDEF;
  Nv006Typedef NV006_TYPEDEF;
  Nv007Typedef NV007_TYPEDEF;
  Nv008Typedef NV008_TYPEDEF;
  Nv009Typedef NV009_TYPEDEF;
  Nv00aTypedef NV00A_TYPEDEF;
  Nv00bTypedef NV00B_TYPEDEF;
  Nv00cTypedef NV00C_TYPEDEF;
  Nv00dTypedef NV00D_TYPEDEF;
  Nv00eTypedef NV00E_TYPEDEF;
  Nv00fTypedef NV00F_TYPEDEF;
  Nv010Typedef NV010_TYPEDEF;
  Nv011Typedef NV011_TYPEDEF;
  Nv012Typedef NV012_TYPEDEF;
  Nv013Typedef NV013_TYPEDEF;
  Nv014Typedef NV014_TYPEDEF;
  Nv015Typedef NV015_TYPEDEF;
  Nv016Typedef NV016_TYPEDEF;
  Nv017Typedef NV017_TYPEDEF;
  Nv018Typedef NV018_TYPEDEF;
  Nv019Typedef NV019_TYPEDEF;
  Nv01aTypedef NV01A_TYPEDEF;
  Nv01bTypedef NV01B_TYPEDEF;
  Nv01cTypedef NV01C_TYPEDEF;
  Nv01dTypedef NV01D_TYPEDEF;
  Nv01eTypedef NV01E_TYPEDEF;
  Nv01fTypedef NV01F_TYPEDEF;
  Nv020Typedef NV020_TYPEDEF;
  Nv021Typedef NV021_TYPEDEF;
  Nv022Typedef NV022_TYPEDEF;
  Nv023Typedef NV023_TYPEDEF;
  Nv024Typedef NV024_TYPEDEF;
  Nv025Typedef NV025_TYPEDEF;
  Nv026Typedef NV026_TYPEDEF;
  Nv027Typedef NV027_TYPEDEF;
  Nv028Typedef NV028_TYPEDEF;
  Nv029Typedef NV029_TYPEDEF;
  Nv02aTypedef NV02A_TYPEDEF;
  Nv02bTypedef NV02B_TYPEDEF;
  Nv02cTypedef NV02C_TYPEDEF;
  Nv02dTypedef NV02D_TYPEDEF;
  Nv02eTypedef NV02E_TYPEDEF;
  Nv02fTypedef NV02F_TYPEDEF;
  Nv030Typedef NV030_TYPEDEF;
  Nv031Typedef NV031_TYPEDEF;
  Nv032Typedef NV032_TYPEDEF;
  Nv033Typedef NV033_TYPEDEF;
  Nv034Typedef NV034_TYPEDEF;
  Nv035Typedef NV035_TYPEDEF;
  Nv036Typedef NV036_TYPEDEF;
  Nv037Typedef NV037_TYPEDEF;
  Nv038Typedef NV038_TYPEDEF;
  Nv039Typedef NV039_TYPEDEF;
  Nv03aTypedef NV03A_TYPEDEF;
  Nv03bTypedef NV03B_TYPEDEF;
  Nv03cTypedef NV03C_TYPEDEF;
  Nv03dTypedef NV03D_TYPEDEF;
  Nv03eTypedef NV03E_TYPEDEF;
  Nv03fTypedef NV03F_TYPEDEF;
  Nv040Typedef NV040_TYPEDEF;
  Nv041Typedef NV041_TYPEDEF;
  Nv042Typedef NV042_TYPEDEF;
  Nv043Typedef NV043_TYPEDEF;
  Nv044Typedef NV044_TYPEDEF;
  Nv045Typedef NV045_TYPEDEF;
  Nv046Typedef NV046_TYPEDEF;
  Nv047Typedef NV047_TYPEDEF;
  Nv048Typedef NV048_TYPEDEF;
  Nv049Typedef NV049_TYPEDEF;
  Nv04aTypedef NV04A_TYPEDEF;
  Nv04bTypedef NV04B_TYPEDEF;
  Nv04cTypedef NV04C_TYPEDEF;
  Nv04dTypedef NV04D_TYPEDEF;
  Nv04eTypedef NV04E_TYPEDEF;
  Nv04fTypedef NV04F_TYPEDEF;
  Nv050Typedef NV050_TYPEDEF;
  Nv051Typedef NV051_TYPEDEF;
  Nv052Typedef NV052_TYPEDEF;
  Nv053Typedef NV053_TYPEDEF;
  Nv054Typedef NV054_TYPEDEF;
  Nv055Typedef NV055_TYPEDEF;
  Nv096Typedef NV096_TYPEDEF;
  Nv057Typedef NV057_TYPEDEF;
  Nv058Typedef NV058_TYPEDEF;
  Nv059Typedef NV059_TYPEDEF;
  Nv05aTypedef NV05A_TYPEDEF;
  Nv05bTypedef NV05B_TYPEDEF;
  Nv05cTypedef NV05C_TYPEDEF;
  Nv05dTypedef NV05D_TYPEDEF;
  Nv05eTypedef NV05E_TYPEDEF;
  Nv05fTypedef NV05F_TYPEDEF;
  Nv060Typedef NV060_TYPEDEF;
  Nv061Typedef NV061_TYPEDEF;
  Nv062Typedef NV062_TYPEDEF;
  Nv063Typedef NV063_TYPEDEF;
  Nv064Typedef NV064_TYPEDEF;
  Nv065Typedef NV065_TYPEDEF;
  Nv066Typedef NV066_TYPEDEF;
  Nv067Typedef NV067_TYPEDEF;
/*Nv068Typedef NV068_TYPEDEF;*/
/*Nv069Typedef NV069_TYPEDEF;*/
/*Nv06aTypedef NV06A_TYPEDEF;*/
/*Nv06bTypedef NV06B_TYPEDEF;*/
/*Nv06cTypedef NV06C_TYPEDEF;*/
/*Nv06dTypedef NV06D_TYPEDEF;*/
/*Nv06eTypedef NV06E_TYPEDEF;*/
  Nv06fTypedef NV06F_TYPEDEF;
  Nv070Typedef NV070_TYPEDEF;
  Nv071Typedef NV071_TYPEDEF;
  Nv072Typedef NV072_TYPEDEF;
  Nv073Typedef NV073_TYPEDEF;
  Nv074Typedef NV074_TYPEDEF;
  Nv075Typedef NV075_TYPEDEF;
  Nv076Typedef NV076_TYPEDEF;
  Nv077Typedef NV077_TYPEDEF;
  Nv078Typedef NV078_TYPEDEF;
  Nv079Typedef NV079_TYPEDEF;
  Nv07aTypedef NV07A_TYPEDEF;
  Nv07bTypedef NV07B_TYPEDEF;
  Nv07cTypedef NV07C_TYPEDEF;
  Nv07dTypedef NV07D_TYPEDEF;
  Nv07eTypedef NV07E_TYPEDEF;
  Nv07fTypedef NV07F_TYPEDEF;
  Nv080Typedef NV080_TYPEDEF;
  Nv081Typedef NV081_TYPEDEF;
  Nv082Typedef NV082_TYPEDEF;
  Nv083Typedef NV083_TYPEDEF;
  Nv084Typedef NV084_TYPEDEF;
  Nv085Typedef NV085_TYPEDEF;
  Nv086Typedef NV086_TYPEDEF;
  Nv087Typedef NV087_TYPEDEF;
  Nv088Typedef NV088_TYPEDEF;
  Nv089Typedef NV089_TYPEDEF;
  Nv093Typedef NV093_TYPEDEF;
  Nv094Typedef NV094_TYPEDEF;
  Nv095Typedef NV095_TYPEDEF;
  Nvff0Typedef NVFF0_TYPEDEF;
  Nvff1Typedef NVFF1_TYPEDEF;
  Nvff2Typedef NVFF2_TYPEDEF;
  Nvff3Typedef NVFF3_TYPEDEF;
  Nvff4Typedef NVFF4_TYPEDEF;
  Nvff5Typedef NVFF5_TYPEDEF;
  Nvff6Typedef NVFF6_TYPEDEF;
  Nvff7Typedef NVFF7_TYPEDEF;
  Nvff8Typedef NVFF8_TYPEDEF;
  Nvff9Typedef NVFF9_TYPEDEF;
  NvffaTypedef NVFFA_TYPEDEF;
  NvffbTypedef NVFFB_TYPEDEF;
  NvffcTypedef NVFFC_TYPEDEF;
  NvffdTypedef NVFFD_TYPEDEF;
  NvffeTypedef NVFFE_TYPEDEF;
  NvfffTypedef NVFFF_TYPEDEF;
#ifdef __GNUC__         /* anon union does not work on GCC */
 }  cls   ;         /* end of class methods                  -1fff*/
#else  /* __GNUC__ */
 }  /* cls */  ;    /* end of class methods                  -1fff*/
#endif /* __GNUC__ */

} Nv03SubchannelPio;
/* pio channel */
typedef volatile struct {      /* start of array of subchannels     0000-    */
 Nv03SubchannelPio subchannel[8];/*subchannel                       0000-1fff*/
} Nv03ChannelPio;              /* end of array of subchannels           -ffff*/
/* fields and values */
#define NV06A_FIFO_GUARANTEED_SIZE                                 (0x007C)
#define NV06A_FIFO_EMPTY                                           (0x007C)
#define NV06A_FIFO_FULL                                            (0x0000)
/* obsolete stuff */
#define NV3_CHANNEL_PIO                                            (0x0000006A)
#define Nv3ControlPio                                            Nv03ControlPio
#define Nv3SubchannelPio                                      Nv03SubchannelPio
#define Nv3ChannelPio                                            Nv03ChannelPio
#define NvChannel                                                Nv03ChannelPio
#define nv03ChannelPio                                           Nv03ChannelPio


/* class NV03_CHANNEL_DMA */
#define  NV03_CHANNEL_DMA                                          (0x0000006B)
/* NvNotification[] fields and values */
#define NV06B_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv06bTypedef, Nv03ChannelDma;
#define NV06B_TYPEDEF                                            Nv03ChannelDma
#define nv03ChannelDma                                           Nv03ChannelDma


/* class NV04_CHANNEL_PIO */
#define  NV04_CHANNEL_PIO                                          (0x0000006D)
/* NvNotification[] fields and values */
#define NV06D_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV06D_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV06D_NOTIFICATION_STATUS_ERROR_FLOW_CONTROL               (0x0200)
/* pio subchannel method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x003];
#ifdef NV_BIG_ENDIAN
 NvU32 Free;                    /* 32 bit free count, read only     0010-0013*/
 NvU32 Zero;                    /* zeroes, read only                0014-0017*/
#else
 NvU16 Free;                    /* free count, read only            0010-0011*/
 NvU16 Zero[3];                 /* zeroes, read only                0012-0017*/
#endif
 NvV32 Reserved01[0x03A];
} Nv04ControlPio;
typedef volatile struct {
 NvV32 SetObject;               /* handle of current object         0000-0003*/
 Nv04ControlPio control;        /* flow control                     0000-00ff*/
 union {                        /* start of class methods           0100-    */
  Nv000Typedef NV000_TYPEDEF;
  Nv001Typedef NV001_TYPEDEF;
  Nv002Typedef NV002_TYPEDEF;
  Nv003Typedef NV003_TYPEDEF;
  Nv004Typedef NV004_TYPEDEF;
  Nv005Typedef NV005_TYPEDEF;
  Nv006Typedef NV006_TYPEDEF;
  Nv007Typedef NV007_TYPEDEF;
  Nv008Typedef NV008_TYPEDEF;
  Nv009Typedef NV009_TYPEDEF;
  Nv00aTypedef NV00A_TYPEDEF;
  Nv00bTypedef NV00B_TYPEDEF;
  Nv00cTypedef NV00C_TYPEDEF;
  Nv00dTypedef NV00D_TYPEDEF;
  Nv00eTypedef NV00E_TYPEDEF;
  Nv00fTypedef NV00F_TYPEDEF;
  Nv010Typedef NV010_TYPEDEF;
  Nv011Typedef NV011_TYPEDEF;
  Nv012Typedef NV012_TYPEDEF;
  Nv013Typedef NV013_TYPEDEF;
  Nv014Typedef NV014_TYPEDEF;
  Nv015Typedef NV015_TYPEDEF;
  Nv016Typedef NV016_TYPEDEF;
  Nv017Typedef NV017_TYPEDEF;
  Nv018Typedef NV018_TYPEDEF;
  Nv019Typedef NV019_TYPEDEF;
  Nv01aTypedef NV01A_TYPEDEF;
  Nv01bTypedef NV01B_TYPEDEF;
  Nv01cTypedef NV01C_TYPEDEF;
  Nv01dTypedef NV01D_TYPEDEF;
  Nv01eTypedef NV01E_TYPEDEF;
  Nv01fTypedef NV01F_TYPEDEF;
  Nv020Typedef NV020_TYPEDEF;
  Nv021Typedef NV021_TYPEDEF;
  Nv022Typedef NV022_TYPEDEF;
  Nv023Typedef NV023_TYPEDEF;
  Nv024Typedef NV024_TYPEDEF;
  Nv025Typedef NV025_TYPEDEF;
  Nv026Typedef NV026_TYPEDEF;
  Nv027Typedef NV027_TYPEDEF;
  Nv028Typedef NV028_TYPEDEF;
  Nv029Typedef NV029_TYPEDEF;
  Nv02aTypedef NV02A_TYPEDEF;
  Nv02bTypedef NV02B_TYPEDEF;
  Nv02cTypedef NV02C_TYPEDEF;
  Nv02dTypedef NV02D_TYPEDEF;
  Nv02eTypedef NV02E_TYPEDEF;
  Nv02fTypedef NV02F_TYPEDEF;
  Nv030Typedef NV030_TYPEDEF;
  Nv031Typedef NV031_TYPEDEF;
  Nv032Typedef NV032_TYPEDEF;
  Nv033Typedef NV033_TYPEDEF;
  Nv034Typedef NV034_TYPEDEF;
  Nv035Typedef NV035_TYPEDEF;
  Nv036Typedef NV036_TYPEDEF;
  Nv037Typedef NV037_TYPEDEF;
  Nv038Typedef NV038_TYPEDEF;
  Nv039Typedef NV039_TYPEDEF;
  Nv03aTypedef NV03A_TYPEDEF;
  Nv03bTypedef NV03B_TYPEDEF;
  Nv03cTypedef NV03C_TYPEDEF;
  Nv03dTypedef NV03D_TYPEDEF;
  Nv03eTypedef NV03E_TYPEDEF;
  Nv03fTypedef NV03F_TYPEDEF;
  Nv040Typedef NV040_TYPEDEF;
  Nv041Typedef NV041_TYPEDEF;
  Nv042Typedef NV042_TYPEDEF;
  Nv043Typedef NV043_TYPEDEF;
  Nv044Typedef NV044_TYPEDEF;
  Nv045Typedef NV045_TYPEDEF;
  Nv046Typedef NV046_TYPEDEF;
  Nv047Typedef NV047_TYPEDEF;
  Nv048Typedef NV048_TYPEDEF;
  Nv049Typedef NV049_TYPEDEF;
  Nv04aTypedef NV04A_TYPEDEF;
  Nv04bTypedef NV04B_TYPEDEF;
  Nv04cTypedef NV04C_TYPEDEF;
  Nv04dTypedef NV04D_TYPEDEF;
  Nv04eTypedef NV04E_TYPEDEF;
  Nv04fTypedef NV04F_TYPEDEF;
  Nv050Typedef NV050_TYPEDEF;
  Nv051Typedef NV051_TYPEDEF;
  Nv052Typedef NV052_TYPEDEF;
  Nv053Typedef NV053_TYPEDEF;
  Nv054Typedef NV054_TYPEDEF;
  Nv055Typedef NV055_TYPEDEF;
  Nv096Typedef NV096_TYPEDEF;
  Nv057Typedef NV057_TYPEDEF;
  Nv058Typedef NV058_TYPEDEF;
  Nv059Typedef NV059_TYPEDEF;
  Nv05aTypedef NV05A_TYPEDEF;
  Nv05bTypedef NV05B_TYPEDEF;
  Nv05cTypedef NV05C_TYPEDEF;
  Nv05dTypedef NV05D_TYPEDEF;
  Nv05eTypedef NV05E_TYPEDEF;
  Nv05fTypedef NV05F_TYPEDEF;
  Nv060Typedef NV060_TYPEDEF;
  Nv061Typedef NV061_TYPEDEF;
  Nv062Typedef NV062_TYPEDEF;
  Nv063Typedef NV063_TYPEDEF;
  Nv064Typedef NV064_TYPEDEF;
  Nv065Typedef NV065_TYPEDEF;
  Nv066Typedef NV066_TYPEDEF;
  Nv067Typedef NV067_TYPEDEF;
/*Nv068Typedef NV068_TYPEDEF;*/
/*Nv069Typedef NV069_TYPEDEF;*/
/*Nv06aTypedef NV06A_TYPEDEF;*/
/*Nv06bTypedef NV06B_TYPEDEF;*/
/*Nv06cTypedef NV06C_TYPEDEF;*/
/*Nv06dTypedef NV06D_TYPEDEF;*/
/*Nv06eTypedef NV06E_TYPEDEF;*/
  Nv06fTypedef NV06F_TYPEDEF;
  Nv070Typedef NV070_TYPEDEF;
  Nv071Typedef NV071_TYPEDEF;
  Nv072Typedef NV072_TYPEDEF;
  Nv073Typedef NV073_TYPEDEF;
  Nv074Typedef NV074_TYPEDEF;
  Nv075Typedef NV075_TYPEDEF;
  Nv076Typedef NV076_TYPEDEF;
  Nv077Typedef NV077_TYPEDEF;
  Nv078Typedef NV078_TYPEDEF;
  Nv079Typedef NV079_TYPEDEF;
  Nv07aTypedef NV07A_TYPEDEF;
  Nv07bTypedef NV07B_TYPEDEF;
  Nv07cTypedef NV07C_TYPEDEF;
  Nv07dTypedef NV07D_TYPEDEF;
  Nv07eTypedef NV07E_TYPEDEF;
  Nv07fTypedef NV07F_TYPEDEF;
  Nv080Typedef NV080_TYPEDEF;
  Nv081Typedef NV081_TYPEDEF;
  Nv082Typedef NV082_TYPEDEF;
  Nv083Typedef NV083_TYPEDEF;
  Nv084Typedef NV084_TYPEDEF;
  Nv085Typedef NV085_TYPEDEF;
  Nv086Typedef NV086_TYPEDEF;
  Nv087Typedef NV087_TYPEDEF;
  Nv088Typedef NV088_TYPEDEF;
  Nv089Typedef NV089_TYPEDEF;
  Nv093Typedef NV093_TYPEDEF;
  Nv094Typedef NV094_TYPEDEF;
  Nv095Typedef NV095_TYPEDEF;
  Nv097Typedef NV097_TYPEDEF;
  Nv1189Typedef NV1189_TYPEDEF;
  Nv205fTypedef NV205F_TYPEDEF;
  Nv207cTypedef NV207C_TYPEDEF;
  Nvff0Typedef NVFF0_TYPEDEF;
  Nvff1Typedef NVFF1_TYPEDEF;
  Nvff2Typedef NVFF2_TYPEDEF;
  Nvff3Typedef NVFF3_TYPEDEF;
  Nvff4Typedef NVFF4_TYPEDEF;
  Nvff5Typedef NVFF5_TYPEDEF;
  Nvff6Typedef NVFF6_TYPEDEF;
  Nvff7Typedef NVFF7_TYPEDEF;
  Nvff8Typedef NVFF8_TYPEDEF;
  Nvff9Typedef NVFF9_TYPEDEF;
  NvffaTypedef NVFFA_TYPEDEF;
  NvffbTypedef NVFFB_TYPEDEF;
  NvffcTypedef NVFFC_TYPEDEF;
  NvffdTypedef NVFFD_TYPEDEF;
  NvffeTypedef NVFFE_TYPEDEF;
  NvfffTypedef NVFFF_TYPEDEF;
#ifdef __GNUC__         /* anon union does not work on GCC */
 }  cls   ;         /* end of class methods                  -1fff*/
#else  /* __GNUC__ */
 }  /* cls */  ;    /* end of class methods                  -1fff*/
#endif /* __GNUC__ */
} Nv04SubchannelPio;
/* pio channel */
typedef volatile struct {      /* start of array of subchannels     0000-    */
 Nv04SubchannelPio subchannel[8];/*subchannel                       0000-1fff*/
} Nv04ChannelPio;              /* end of array of subchannels           -ffff*/
/* fields and values */
#define NV06D_FIFO_GUARANTEED_SIZE                                 (0x0200)
#define NV06D_FIFO_EMPTY                                           (0x0200)
#define NV06D_FIFO_FULL                                            (0x0000)


/* class NV04_CHANNEL_DMA */
#define  NV04_CHANNEL_DMA                                          (0x0000006C)
/* NvNotification[] fields and values */
#define NV06C_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV06C_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv06cTypedef, Nv04ChannelDma;
#define NV06C_TYPEDEF                                            Nv04ChannelDma
/* pio flow control data structure */
typedef volatile struct {
 NvV32 Ignored00[0x010];
 NvU32 Put;                     /* put offset, write only            0040-0043*/
 NvU32 Get;                     /* get offset, read only             0044-0047*/
 NvV32 Ignored01[0x002];
 NvU32 StallNotifier;           /* Set stall notifier                0050-0053*/
 NvU32 StallChannel;            /* Stall the channel                 0054-0057*/
 NvV32 Ignored02[0x7EA];
} Nv04ControlDma;
/* obsolete stuff */
#define NV4_CHANNEL_DMA                                            (0x0000006C)
#define Nv4ChannelDma                                            Nv04ChannelDma
#define nv4ChannelDma                                            Nv04ChannelDma
#define Nv4ControlDma                                            Nv04ControlDma


/* class NV10_CHANNEL_DMA */
#define  NV10_CHANNEL_DMA                                          (0x0000006E)
/* NvNotification[] fields and values */
#define NV06E_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV06E_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv06eTypedef, Nv10ChannelDma;
#define NV06E_TYPEDEF                                            Nv10ChannelDma
/* pio flow control data structure */
typedef volatile struct {
 NvV32 Ignored00[0x010];
 NvU32 Put;                     /* put offset, write only           0040-0043*/
 NvU32 Get;                     /* get offset, read only            0044-0047*/
 NvU32 Reference;               /* reference value, read only       0048-004b*/
 NvV32 Ignored01[0x7ed];
} Nv06eControl, Nv10ControlDma;
/* fields and values */
#define NV06E_NUMBER_OF_SUBCHANNELS                                (8)
#define NV06E_SET_OBJECT                                           (0x00000000)
#define NV06E_SET_REFERENCE                                        (0x00000050)
#define NV06E_SWAP_EXTENSION                                       (0x00000090)

/* class NV20_CHANNEL_DMA */
#define  NV20_CHANNEL_DMA                                          (0x0000206E)
/* NvNotification[] fields and values */
#define NV206E_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT              (0x2000)
#define NV206E_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT          (0x4000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv206eTypedef, Nv20ChannelDma;
#define NV206E_TYPEDEF                                           Nv20ChannelDma
/* pio flow control data structure */
typedef volatile struct {
 NvV32 Ignored00[0x010];
 NvU32 Put;                     /* put offset, write only           0040-0043*/
 NvU32 Get;                     /* get offset, read only            0044-0047*/
 NvU32 Reference;               /* reference value, read only       0048-004b*/
 NvV32 Ignored01[0x7ed];
} Nv206eControl, Nv20ControlDma;
/* fields and values */
#define NV206E_NUMBER_OF_SUBCHANNELS                               (8)
#define NV206E_SET_OBJECT                                          (0x00000000)
#define NV206E_SET_REFERENCE                                       (0x00000050)
#define NV206E_SET_CONTEXT_DMA_SEMAPHORE                           (0x00000060)
#define NV206E_SEMAPHORE_OFFSET                                    (0x00000064)
#define NV206E_SEMAPHORE_ACQUIRE                                   (0x00000068)
#define NV206E_SEMAPHORE_RELEASE                                   (0x0000006c)
#define NV206E_SWAP_EXTENSION                                      (0x00000090)
#define NV206E_SUBROUTINE_RETURN_SW                                (0x0000009c)

 /***************************************************************************\
|*                            Well Known Objects                             *|
 \***************************************************************************/


/* object NV01_NULL_OBJECT */
#define   NV01_NULL_OBJECT                                         (0x00000000)
/* obsolete stuff */
#define NV1_NULL_OBJECT                                            (0x00000000)



 /***************************************************************************\
|*                               Notification                                *|
 \***************************************************************************/


/***** NvNotification Structure *****/
/*
 * NV objects return information about method completion to clients via an
 * array of notification structures in main memory.
 *
 * The client sets the status field to NV???_NOTIFICATION_STATUS_IN_PROGRESS.
 * NV fills in the NvNotification[] data structure in the following order:
 * timeStamp, otherInfo32, otherInfo16, and then status.
 */


/* memory data structures */
typedef volatile struct {
 struct {                      /*                                   0000-    */
  NvU32 nanoseconds[2];        /* nanoseconds since Jan. 1, 1970       0-   7*/
 } timeStamp;                  /*                                       -0007*/
 NvV32 info32;                 /* info returned depends on method   0008-000b*/
 NvV16 info16;                 /* info returned depends on method   000c-000d*/
 NvV16 status;                 /* user sets bit 15, NV sets status  000e-000f*/
} NvNotification;
/* status values */

 /***************************************************************************\
|*                          NvGraphicsState                                  *|
 \***************************************************************************/
/***** NvGraphicsState Structure *****/
/*
 * This represents the state structure that's passed between the Celsius
 * GetState method and the RM (in nv10 and eventually the HW). The context
 * DMA passed to NV056_SET_CONTEXT_DMA_STATE should be at least this size.
 */

typedef volatile struct {
    struct _PerFragmentState {
        // *** dword 0
        NvU32          pad0 : 8;
        NvU32     alphaFunc : 4;
        NvU32          pad1 : 4;
        NvU32     depthFunc : 4;
        NvU32          pad2 : 4;
        NvU32     depthMask : 1;
        NvU32          pad3 : 1;
        NvU32     alphaMask : 1;
        NvU32       redMask : 1;
        NvU32     greenMask : 1;
        NvU32      blueMask : 1;
        NvU32          pad4 : 2;
        // *** dword 1
        NvU32          pad5 : 4;
        NvU32   stencilFunc : 4;
        NvU32    stencilRef : 8;
        NvU32          pad6 : 8;
        NvU32   stencilMask : 8;
        // *** dword 2
        NvU32       sfailOp : 4;
        NvU32       zfailOp : 4;
        NvU32       zpassOp : 4;
        NvU32         pad7 : 20;
        // *** dword 3
        NvU32 blendEquation : 3;
        NvU32          pad8 : 1;
        NvU32      srcBlend : 4;
        NvU32     destBlend : 4;
        NvU32         pad9 : 20;
    } PerFragmentState;
    struct _PerVertexState {
        NvF32           pad0[4];
        NvF32   primaryColor[4];
        NvF32 secondaryColor[3];
        NvF32          fogCoord;
        NvF32    texCoord[2][4];
        NvF32         normal[3];
        NvF32              pad1;
        NvF32      vertexWeight;
        NvU32           pad2[7];
        NvU32              pad3;
        NvU32      edgeFlag : 8;
        NvU32         pad4 : 24;
        NvU32           pad5[2];
    } PerVertexState;
    NvU32       glBeginEndState;
    struct _VertexArrayState {
        NvU32      vertexOffset;
        NvU32      vertexFormat;
        NvU32     diffuseOffset;
        NvU32     diffuseFormat;
        NvU32    specularOffset;
        NvU32    specularFormat;
        NvU32   texCoord0Offset;
        NvU32   texCoord0Format;
        NvU32   texCoord1Offset;
        NvU32   texCoord1Format;
        NvU32      normalOffset;
        NvU32      normalFormat;
        NvU32      weightOffset;
        NvU32      weightFormat;
        NvU32         fogOffset;
        NvU32         fogFormat;
    } VertexArrayState;
    struct _PrimitiveAssmState {
        NvU32    primAssm[3*16];
    } PrimitiveAssmState;
} NvGraphicsState;

 /***************************************************************************\
|*                          Object Allocation Parameters                     *|
 \***************************************************************************/

// XXX need to add versioning to these
//     version #'s should probably have engine number encoded to protect against
//     caller using the wrong typedef.
// XXX need to convert to engine creation params whenever possible
// XXX try to delete pInfo

// class 0x07c creation parameters
typedef struct
{
    NvU32   version;
    NvP64   pInfo;
    NvU32   logicalHeadId;

} NV07C_ALLOCATION_PARAMETERS;

// class 0x207c creation parameters
typedef struct
{
    NvU32   version;
    NvP64   pInfo;
    NvU32   logicalHeadId;

} NV207C_ALLOCATION_PARAMETERS;

// class 0x07a creation parameters
typedef struct
{
    NvU32   version;
    NvP64   pInfo;
    NvU32   logicalHeadId;

} NV07A_ALLOCATION_PARAMETERS;

// GR engine creation parameters
typedef struct
{
    NvU32   version;
    NvU32   flags;
} NV_GR_ALLOCATION_PARAMETERS;

// GR engine flags; must match hal layout.
#define NV_GR_ALLOCATION_PARAMETERS_FLAGS_ENDIAN_OVERRIDE          1:0
#define NV_GR_ALLOCATION_PARAMETERS_FLAGS_ENDIAN_OVERRIDE_NONE      0     // use native endianness
#define NV_GR_ALLOCATION_PARAMETERS_FLAGS_ENDIAN_OVERRIDE_LITTLE    1
#define NV_GR_ALLOCATION_PARAMETERS_FLAGS_ENDIAN_OVERRIDE_BIG       2

 /***************************************************************************\
|*                          NVIDIA Debug Extensions                         *|
 \***************************************************************************/

/*
 * These class numbers are a temporary hack to allow the debugger
 * client to use the NvAlloc interface to access debugger services.
 */
#define  NVDE_REGISTER_DEBUGGER                                    (0xDE000001)
#define  NVDE_UNREGISTER_DEBUGGER                                  (0xDE000002)
#define  NVDE_READ_MEMORY                                          (0xDE000003)
#define  NVDE_WRITE_MEMORY                                         (0xDE000004)
#define  NVDE_GET_EVENT_INFORMATION                                (0xDE000005)
#define  NVDE_TEST                                                 (0xDE00ffff)

#define NVDE_DEBUGGER                                              (0xDE000000)

/*
 * Status codes.
 */
#define NVDE_STATUS_SUCCESS                                         (0x0000)
#define NVDE_STATUS_ERROR_STATE_IN_USE                              (0x0001)
#define NVDE_STATUS_ERROR_BAD_ARGUMENT                              (0x0002)

/*
 * Class-specific parameter blocks.
 */
typedef struct
{
    NvU64 EventHandle;
    NvU32 EventClass;
} NVDE_ALLOCATION_PARAMETERS;

// must be replaced by NVDE class
typedef struct
{
    NvU32 TrapEvent;
} NVDE_REGISTER_DEBUGGER_PARAMETERS;

// must be replaced by NVDE class
typedef struct
{
    NvU32 foo;
} NVDE_UNREGISTER_DEBUGGER_PARAMETERS;

// depreciated
typedef struct
{
    NvU32 Address;
    NvU32 Size;
    NvU32 Data;
} NVDE_READ_MEMORY_PARAMETERS;

// depreciated
typedef struct
{
    NvU32 Address;
    NvU32 Size;
    NvU32 Data;
} NVDE_WRITE_MEMORY_PARAMETERS;

// depreciated
typedef struct
{
    NvU32 CallBackAddress;
} NVDE_TEST_PARAMETERS;

typedef NvU32 (*NVDE_TEST_FUNC)(void);

// must be moved to NVDE class
typedef struct
{
    U032 Count;
    U032 Event[32][8];
} NVDE_GET_EVENT_INFORMATION_PARAMETERS;

/* class NV01_DEVICE_AUDIO */
#define  NV01_DEVICE_AUDIO                                         (0x000000A0)
/* NvNotification[] fields and values */
#define NV0A0_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV0A0_NOTIFICATION_STATUS_INSUFFICIENT_BANDWIDTH           (0x0400)
#define NV0A0_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv0A0Typedef, Nv01DeviceAudio;
#define  NV0A0_TYPEDEF                                             Nv01DeviceAudio

#define NV01_CONTEXT_DMA_AUDIO                                      (0x000000A1)
/* NvNotification[] fields and values */
#define NV0A1_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV0A1_NOTIFICATION_STATUS_INSUFFICIENT_BANDWIDTH           (0x0400)
#define NV0A1_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)

#define NV1B_AUDIO_OBJECT                                           (0x000000A2)
/* NvNotification[] fields and values */
#define NV0A2_NOTIFICATION_STATUS_NOT_IMPLEMENTED                   (0x0000)
#define NV0A2_NOTIFICATION_STATUS_REQUESTED                         (0x0001)
#define NV0A2_NOTIFICATION_STATUS_METHOD_UNKNOWN                    (0x0002)
#define NV0A2_NOTIFICATION_STATUS_BAD_ARGUMENT                      (0x2000)
#define NV0A2_NOTIFICATION_STATUS_CURRENT_NOT_SET                   (0x0004)
#define NV0A2_NOTIFICATION_STATUS_ANTECEDENT_NOT_SET                (0x0005)
#define NV0A2_NOTIFICATION_STATUS_VOICE_ACTIVE                      (0x0006)
#define NV0A2_NOTIFICATION_STATUS_NOT_DATA_TYPE_BUFFER              (0x0007)

/* class NV01_DEVICE_EXTERNAL_CODEC */
#define  NV01_DEVICE_EXTERNAL_CODEC                                 (0x000000A3)
/* NvNotification[] fields and values */
#define NV0A0_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV0A0_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV0A0_NOTIFICATION_STATUS_INSUFFICIENT_BANDWIDTH           (0x0400)
#define NV0A0_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)
/* pio method data structure */
typedef volatile struct {
 NvV32 Reserved00[0x7c0];
} Nv0A3Typedef, Nv03DeviceExternalCodec;
#define  NV0A3_TYPEDEF                                             Nv01DeviceCodec

#define NV01_CONTEXT_DMA_EXTERNAL_CODEC                             (0x000000A4)
/* NvNotification[] fields and values */
#define NV0A1_NOTIFICATION_STATUS_IN_PROGRESS                      (0x8000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_PROTECTION_FAULT           (0x4000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_BAD_ARGUMENT               (0x2000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_INVALID_STATE              (0x1000)
#define NV0A1_NOTIFICATION_STATUS_ERROR_STATE_IN_USE               (0x0800)
#define NV0A1_NOTIFICATION_STATUS_INSUFFICIENT_BANDWIDTH           (0x0400)
#define NV0A1_NOTIFICATION_STATUS_DONE_SUCCESS                     (0x0000)

#define NV01_EXTERNAL_CODEC_OBJECT                                  (0x000000A5)
/* NvNotification[] fields and values */
#define NV0A2_NOTIFICATION_STATUS_NOT_IMPLEMENTED                   (0x0000)
#define NV0A2_NOTIFICATION_STATUS_REQUESTED                         (0x0001)
#define NV0A2_NOTIFICATION_STATUS_METHOD_UNKNOWN                    (0x0002)
#define NV0A2_NOTIFICATION_STATUS_BAD_ARGUMENT                      (0x2000)
#define NV0A2_NOTIFICATION_STATUS_CURRENT_NOT_SET                   (0x0004)
#define NV0A2_NOTIFICATION_STATUS_ANTECEDENT_NOT_SET                (0x0005)
#define NV0A2_NOTIFICATION_STATUS_VOICE_ACTIVE                      (0x0006)
#define NV0A2_NOTIFICATION_STATUS_NOT_DATA_TYPE_BUFFER              (0x0007)

#define NV01_EXTERNAL_CODEC_WRITE                                   (0x000000A6)
// define the errors here later
#define NV01_EXTERNAL_CODEC_READ                                    (0x000000A7)
// define the errors here later

// this IOCTL manages system memory for the client - see AUDIO_ALLOC_MEMORY / AUDIO_FREE_MEMORY
#define NV01_MEMORY_AUDIO		                                    (0x000000A8)

// class 0x0A1 creation params (NV01_CONTEXT_DMA_AUDIO)

typedef union
{
	struct
	{
		NvU32 : 32;
	}codec;

	struct
	{
		NvU32  : 27;
		// interrupts originating from FE/SE
		NvU32 FEMethodOverFlow : 1;	// user method fifo has been overwritten
		NvU32 FEVoice : 1;			// end-of-buffer / end-of-stream
		NvU32 FENotify : 1;			// notifier originating from the FE has been written
		NvU32 DeltaPanic : 1;		// delta panic
		NvU32 DeltaWarning : 1;		// delta warning
	}apu;
	
	NvU32 uValue;					// set to ~0x0 (for codec) if the ISR fn is to be called regardless
} INTR_MASK;

typedef void (*PISRCALLBACK)(NvV32,	/* service context*/ 
							NvU32,	/* interrupt mask (INTR_MASK.uValue) with bits of triggered intr set */
							NvV32);	/* info based on reason */

typedef struct
{
	NvV32			pResList;		/*	address of resource structure	*/
	NvU8			uRevisionID;	/*	HW Revision ID of the chip - byte 0x8 in the PCI config */
	NvV32			pDevObj;		/*	address of device object		*/		
	PISRCALLBACK	pISRFn;			/*	address to an optional ISR		*/
	NvV32			pServiceContext;/*	service context for the ISR		*/
	INTR_MASK		IntrMask;		/*	set the bits for which pISRFn needs to be called	*/
	NvU32			uDeviceRef;		/*	device reference				*/
} AUDIO_INIT_DEVICE;

/*
Arguments:
		IN pResourceList - 	of type PCM_RESOURCE_LIST (WDM) - translated resource list got in IRP_MN_START_DEVICE
				of type CM_CONFIG (Win9X VxD)
				of type PCI_COMMON_CONFIG (NT4)
				TBD for linux.
	 	IN pDeviceObject - only valid in NT and WDM, ignored in Win9X VxD
		IN pISRFn (optional) - not recommended unless it is absolutely necessary.  
								The driver can install it to handle interrupts from the codec if it needs to.  
								Type - void pISRFn(U032 ServiceContext);
		IN uServiceContext (optional) - value passed back to the pISRFn if installed.
		OUT pDeviceRef	- device ref returned by the RM
*/

// notifier structures used between the client and the audio RM
typedef struct 
{
	NvU32 volatile  GSCNT;
	NvU32 volatile  CurrentOffset;
	NvU32 volatile  Zero;
	NvU8 volatile	Res0;
	NvU8 volatile	SamplesAvailable;       // not in sync
	NvU8 volatile	EnvelopeActive;         // not in sync
	NvU8 volatile	Status;
} NV1BA0NOTIFICATION, *PNV1BA0NOTIFICATION;

// notifier for GP
typedef struct 
{
	NvU32 volatile  GSCNT;
    NvU32 volatile	Method;
	NvU32 volatile	Data;
	NvU8 volatile	ReturnCode;
	NvU8 volatile	Res0;
	NvU8 volatile	Res1;
	NvU8 volatile	Status;
} NVAUDGPNOTIFICATION, *PNVAUDGPNOTIFICATION;

// status codes for GP notifiers
#define NV_AUDGP_NOTIFICATION_STATUS_IN_PROGRESS       0x00000000
#define NV_AUDGP_NOTIFICATION_STATUS_DONE_SUCCESS      0x00000001

// defines the "type" for context DMA
#define AUDIO_CONTEXT_DMA_SESGE         0x1
#define AUDIO_CONTEXT_DMA_SESSL         0x2
#define AUDIO_CONTEXT_DMA_GPSGE         0x3
#define AUDIO_CONTEXT_DMA_FENOTIFIER    0x4
#define AUDIO_CONTEXT_DMA_EPSGE         0x5
#define AUDIO_CONTEXT_DMA_GPNOTIFIER    0x6
#define AUDIO_CONTEXT_DMA_EPNOTIFIER    0x7
#define AUDIO_CONTEXT_DMA_GPFXPARAM     0x8
#define AUDIO_CONTEXT_DMA_GPFXDSPCODE   0x9

typedef struct
{
	NvU32	uDeviceRef;         // device reference
	NvU8	uType;              // one of the values defined above
	NvU32	uBaseAddress;       // base address for the type. (must be 4K aligned)
	NvU32	uMaxOffset;         // max offset for the type. (must be 4K aligned)
	NvU32	uHandle;            // OUT: handle of the context DMA
} APU_AP_ALLOC_CONTEXT_DMA;

typedef struct
{
	NvU32	uDeviceRef;         // device reference
	NvU32	uHandle;            // handle of the context DMA
} APU_AP_FREE_CONTEXT_DMA;


#define GSCNT_OFF                   0 
#define GSCNT_ACSYNC                1   /* updated for every AC_SYNC pulse (48KHz) */
#define GSCNT_SW                    2   /* client will update it */
#define GSCNT_FREE_RUNNING          3 

// class 0x0A2 creation parameters (NV1B_AUDIO_PROCESSOR)
typedef union
{
    struct
    {	
        NvU32 FEISORead     : 1;
        NvU32 FEISOWrite    : 1;
        NvU32 FEISONotify   : 1;
        NvU32 FEISOPIO      : 1;
        NvU32 SEISORead     : 1;
        NvU32 SEISOWrite    : 1;
        NvU32 SEISOSampleRead : 1;
        NvU32 GSCNT         : 2;        // see values defined above
        NvU32               : 23;
    }fields;
    
    NvU32 uValue;
} APU_AP_FLAGS;

typedef struct 
{
    NvV32           pObjectDmaBuffer;           // in buffer for global effects dma commands.
    NvV32           pObjectNotifiesBuffer;      // in buffer for voice notifies
    NvV32           pObjectGlobalNotifiesBuffer; // in buffer for global notifies
    APU_AP_FLAGS    flags; 
    VOID_PTR        pioBase; 
    NvU32           limitFifo; 
    NvU32           limitBandwidth; 
    NvU32           limitBlockClock; 
    NvU32           overhead; 
    
    NvU32           uVoiceCount;        // in/out req # of voices , return #
    NvU32           uVoice3dCount;      // in/out req # of 3d voices , return #
    NvU32           uHRTFCount;         // in/out req # of HRTFs, return #
    NvU32           uSubmixCount;       // in/out req # of Submixes, return #
    NvU32           uSegInCount;        // in/out req # of segments for input, return #
    NvU32           uSGEInCount;        // in/out req # of 4K SGE for input, return #
    NvU32           uSGEOutCount;       // in/out req # of 4K SGE for output, return #
    VOID_PTR        pGPCommandQ;        // base address of CommandQ of the GP.  Offsets for method/data
                                        // pair are got from NV1BA0_CHANNEL_DMA_PUT/NV1BA0_CHANNEL_DMA_GET

    // global sample count values - ignored if GSCNT = GSCNT_FREE_RUNNING
    NvU32           uExternalGSCNT;     // in updated according to the GSCNT flag above
    NvU32           uInternalGSCNT;     // in updated by HW, by frame_size everytime output is made to sys mem
    NvU32           uDeltaGSCNT;        // in if (uInternalGSCNT - uExternalGSCNT) < uDeltaGSCNT, HW renders
    
    VOID_PTR        pVoiceList;         // out (DEBUG ONLY) - linear address of the voice structure
    VOID_PTR        pGPScratchLin;      // out linear pointer to GP scratch memory
}APU_AP_CREATE;


typedef struct
{
    VOID_PTR        pioBase;
    NvU32           uUseForAC3;         // in - reserve for Ac-3 encode, no other effects can be loaded

    NvU32           uSGEOutCount;       // in/out req # of 4K SGE for output, return #

    // global sample counts applied only to teh EP
    NvU32           uInternalGSCNT;     // in updated by HW, by frame_size everytime output is made to sys mem
    NvU32           uDeltaGSCNT;        // in if (uInternalGSCNT - APU_AP_CREATE::uExternalGSCNT) < uDeltaGSCNT, HW renders
    NvU32           uStepSize;          // in step size added to uInternalGSCNT each frame
    VOID_PTR        pEPScratchLin;      // out linear pointer to EP scratch memory
    NvU32           uAC3GpOutputOffset; // DEBUG only!  offset into GP scratch that has the AC3 output
} APU_EP_CREATE;

typedef APU_AP_CREATE NV0A2_ALLOCATION_PARAMETERS;

// NV01_EXTERNAL_CODEC_OBJECT

// class 0x0A5 creation parameters (NV01_EXTERNAL_CODEC_OBJECT)
typedef struct
{
	VOID_PTR	pioBaseMixer;
	VOID_PTR	pioBaseAci;
} CODEC_AUDIO_CREATE;

// the object alloc structure is used, both for codec and APU object allocation
// uObjectCode codes
#define	AUDIO_OBJECT_AP					0x1
#define AUDIO_OBJECT_EP					0x2
#define CODEC_OBJECT_AUDIO				0x3
#define CODEC_OBJECT_MODEM				0x4		/* not supported */

typedef struct
{
	NvU32	uDeviceRef;         // device reference
	NvU8	uObjectCode;
	NvV32	pParam;	
} APU_OBJECT;

#define CODEC_ACCESS_08				1
#define CODEC_ACCESS_16				2
#define CODEC_ACCESS_32				4

// alloc params for NV01_EXTERNAL_CODEC_READ & NV01_EXTERNAL_CODEC_WRITE
typedef struct
{
	NvU32	    uDeviceRef;	            // device reference
	VOID_PTR	BaseAddr;               // base address for which read/write is made
	NvU32	    Offset;                 // offset from the base address for which access is to be made
	NvV32	    AccessType;             // hardware access type
	/*
	for BYTE reads/writes	ValidBytes = CODEC_ACCESS_08 valid Val field = u8
	for WORD reads/writes	ValidBytes = CODEC_ACCESS_16 valid Val field = u16
	for DWORD reads/writes	ValidBytes = CODEC_ACCESS_32 valid Val Field = u32
	any other value for ValidBytes is illegal
	*/
	union
	{
		NvU8	u8;
		NvU16	u16;
		NvU32	u32;
	}Val;
}CODEC_ACCESS_PARAMS;


// 0xA8 memory management paramters

#define MEM_ALIGN_4K					0x00000000
#define MEM_ALIGN_8K					0x00000001		
#define MEM_ALIGN_16K					0x00000003
#define MEM_ALIGN_32K					0x00000007
#define MEM_ALIGN_64K					0x0000000F
#define MEM_ALIGN_128K					0x0000001F
#define MEM_ALIGN_DONT_CARE				0xFFFFFFFF

// for allocation use:
typedef struct
{
	NvU32       uSize;          // IN:	size of memory to be allocated in bytes
	NvU32       uAlignMask;     // IN:	alignment mask to get physically contiguous memory
                                // use ALIGN_DONT_CARE if it need not be aligned and physically contiguous
	VOID_PTR    pLinearAddress; // OUT: linear address of allocated memory (NULL on failure)
} AUDIO_ALLOC_MEMORY;

// for freeing memory use:
typedef struct
{
	VOID_PTR    pLinearAddress; // IN: linear address of allocated memory
} AUDIO_FREE_MEMORY;

#ifdef __cplusplus
};          // extern "C" {
#endif

#endif /* NV32_INCLUDED */

