172b676d7Smrg/* 272b676d7Smrg * 2D Acceleration for SiS 530, 620, 300, 540, 630, 730. 372b676d7Smrg * Definitions for the SIS engine communication 472b676d7Smrg * 572b676d7Smrg * Copyright (C) 2001-2005 by Thomas Winischhofer, Vienna, Austria 672b676d7Smrg * 772b676d7Smrg * Redistribution and use in source and binary forms, with or without 872b676d7Smrg * modification, are permitted provided that the following conditions 972b676d7Smrg * are met: 1072b676d7Smrg * 1) Redistributions of source code must retain the above copyright 1172b676d7Smrg * notice, this list of conditions and the following disclaimer. 1272b676d7Smrg * 2) Redistributions in binary form must reproduce the above copyright 1372b676d7Smrg * notice, this list of conditions and the following disclaimer in the 1472b676d7Smrg * documentation and/or other materials provided with the distribution. 1572b676d7Smrg * 3) The name of the author may not be used to endorse or promote products 1672b676d7Smrg * derived from this software without specific prior written permission. 1772b676d7Smrg * 1872b676d7Smrg * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1972b676d7Smrg * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 2072b676d7Smrg * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 2172b676d7Smrg * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2272b676d7Smrg * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2372b676d7Smrg * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2472b676d7Smrg * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2572b676d7Smrg * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2672b676d7Smrg * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2772b676d7Smrg * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2872b676d7Smrg * 2972b676d7Smrg * Authors: Thomas Winischhofer <thomas@winischhofer.net> 3072b676d7Smrg * Can-Ru Yeou, SiS Inc. (code base) 3172b676d7Smrg * 3272b676d7Smrg */ 3372b676d7Smrg 3472b676d7Smrg#define PATREGSIZE 384 /* Pattern register size. 384 bytes @ 0x8300 */ 3572b676d7Smrg#define BR(x) (0x8200 | (x) << 2) 3672b676d7Smrg#define PBR(x) (0x8300 | (x) << 2) 3772b676d7Smrg 3872b676d7Smrg/* SiS300 engine commands */ 3972b676d7Smrg#define BITBLT 0x00000000 /* Blit */ 4072b676d7Smrg#define COLOREXP 0x00000001 /* Color expand */ 4172b676d7Smrg#define ENCOLOREXP 0x00000002 /* Enhanced color expand */ 4272b676d7Smrg#define MULTIPLE_SCANLINE 0x00000003 /* ? */ 4372b676d7Smrg#define LINE 0x00000004 /* Draw line */ 4472b676d7Smrg#define TRAPAZOID_FILL 0x00000005 /* Fill trapezoid */ 4572b676d7Smrg#define TRANSPARENT_BITBLT 0x00000006 /* Transparent Blit */ 4672b676d7Smrg 4772b676d7Smrg/* source select */ 4872b676d7Smrg#define SRCVIDEO 0x00000000 /* source is video RAM */ 4972b676d7Smrg#define SRCSYSTEM 0x00000010 /* source is system memory */ 5072b676d7Smrg#define SRCCPUBLITBUF SRCSYSTEM /* source is CPU-driven BitBuffer (for color expand) */ 5172b676d7Smrg#define SRCAGP 0x00000020 /* source is AGP memory (?) */ 5272b676d7Smrg 5372b676d7Smrg/* Pattern flags */ 5472b676d7Smrg#define PATFG 0x00000000 /* foreground color */ 5572b676d7Smrg#define PATPATREG 0x00000040 /* pattern in pattern buffer (0x8300) */ 5672b676d7Smrg#define PATMONO 0x00000080 /* mono pattern */ 5772b676d7Smrg 5872b676d7Smrg/* blitting direction */ 5972b676d7Smrg#define X_INC 0x00010000 6072b676d7Smrg#define X_DEC 0x00000000 6172b676d7Smrg#define Y_INC 0x00020000 6272b676d7Smrg#define Y_DEC 0x00000000 6372b676d7Smrg 6472b676d7Smrg/* Clipping flags */ 6572b676d7Smrg#define NOCLIP 0x00000000 6672b676d7Smrg#define NOMERGECLIP 0x04000000 6772b676d7Smrg#define CLIPENABLE 0x00040000 6872b676d7Smrg#define CLIPWITHOUTMERGE 0x04040000 6972b676d7Smrg 7072b676d7Smrg/* Transparency */ 7172b676d7Smrg#define OPAQUE 0x00000000 7272b676d7Smrg#define TRANSPARENT 0x00100000 7372b676d7Smrg 7472b676d7Smrg/* Trapezoid */ 7572b676d7Smrg#define T_XISMAJORL 0x00800000 /* X axis is driving axis (left) */ 7672b676d7Smrg#define T_XISMAJORR 0x01000000 /* X axis is driving axis (right) */ 7772b676d7Smrg#define T_L_Y_INC Y_INC /* left edge direction Y */ 7872b676d7Smrg#define T_L_X_INC X_INC /* left edge direction X */ 7972b676d7Smrg#define T_R_Y_INC 0x00400000 /* right edge direction Y */ 8072b676d7Smrg#define T_R_X_INC 0x00200000 /* right edge direction X */ 8172b676d7Smrg 8272b676d7Smrg/* ? */ 8372b676d7Smrg#define DSTAGP 0x02000000 8472b676d7Smrg#define DSTVIDEO 0x02000000 8572b676d7Smrg 8672b676d7Smrg/* Line */ 8772b676d7Smrg#define LINE_STYLE 0x00800000 8872b676d7Smrg#define NO_RESET_COUNTER 0x00400000 8972b676d7Smrg#define NO_LAST_PIXEL 0x00200000 9072b676d7Smrg 9172b676d7Smrg 9272b676d7Smrg/* Macros to do useful things with the SIS BitBLT engine */ 9372b676d7Smrg 9472b676d7Smrg/* BR(16) (0x8240): 9572b676d7Smrg 9672b676d7Smrg bit 31 2D engine: 1 is idle, 9772b676d7Smrg bit 30 3D engine: 1 is idle, 9872b676d7Smrg bit 29 Command queue: 1 is empty 9972b676d7Smrg 10072b676d7Smrg bits 28:24: Current CPU driven BitBlt buffer stage bit[4:0] 10172b676d7Smrg 10272b676d7Smrg bits 15:0: Current command queue length (530/620: 12:0) 10372b676d7Smrg 10472b676d7Smrg*/ 10572b676d7Smrg 10672b676d7Smrg/* BR(16)+2 = 0x8242 */ 10772b676d7Smrg 10872b676d7Smrg/* As sis_dri.c relocated the cmd-q len to the sarea, don't use it directly here */ 10972b676d7Smrg/* #define CmdQueLen pSiS->cmdQueueLen */ 11072b676d7Smrg#define CmdQueLen (*(pSiS->cmdQueueLenPtr)) 11172b676d7Smrg 11272b676d7Smrg#define SiSIdle \ 11372b676d7Smrg { \ 11472b676d7Smrg while( (SIS_MMIO_IN16(pSiS->IOBase, BR(16)+2) & 0xE000) != 0xE000){}; \ 11572b676d7Smrg while( (SIS_MMIO_IN16(pSiS->IOBase, BR(16)+2) & 0xE000) != 0xE000){}; \ 11672b676d7Smrg while( (SIS_MMIO_IN16(pSiS->IOBase, BR(16)+2) & 0xE000) != 0xE000){}; \ 11772b676d7Smrg CmdQueLen = (SIS_MMIO_IN16(pSiS->IOBase, 0x8240) & pSiS->CmdQueLenMask) - pSiS->CmdQueLenFix; \ 11872b676d7Smrg } 11972b676d7Smrg/* (do three times, because 2D engine seems quite unsure about whether or not it's idle) */ 12072b676d7Smrg 12172b676d7Smrg#define SiSSetupSRCBase(base) \ 12272b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 12372b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(0), base);\ 12472b676d7Smrg CmdQueLen--; 12572b676d7Smrg 12672b676d7Smrg#define SiSSetupSRCPitch(pitch) \ 12772b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 12872b676d7Smrg SIS_MMIO_OUT16(pSiS->IOBase, BR(1), pitch);\ 12972b676d7Smrg CmdQueLen--; 13072b676d7Smrg 13172b676d7Smrg#define SiSSetupSRCXY(x,y) \ 13272b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 1339fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(2), (CARD32)(x)<<16 | (CARD32)(y) );\ 13472b676d7Smrg CmdQueLen--; 13572b676d7Smrg 13672b676d7Smrg#define SiSSetupDSTBase(base) \ 13772b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 13872b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(4), base);\ 13972b676d7Smrg CmdQueLen--; 14072b676d7Smrg 14172b676d7Smrg#define SiSSetupDSTXY(x,y) \ 14272b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 1439fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(3), (CARD32)(x)<<16 | (CARD32)(y) );\ 14472b676d7Smrg CmdQueLen--; 14572b676d7Smrg 14672b676d7Smrg#define SiSSetupDSTRect(x,y) \ 14772b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 1489fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(5), (CARD32)(y)<<16 | (CARD32)(x) );\ 14972b676d7Smrg CmdQueLen--; 15072b676d7Smrg 15172b676d7Smrg#define SiSSetupDSTColorDepth(bpp) \ 15272b676d7Smrg if(pSiS->VGAEngine != SIS_530_VGA) { \ 15372b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 15472b676d7Smrg SIS_MMIO_OUT16(pSiS->IOBase, BR(1)+2, bpp);\ 15572b676d7Smrg CmdQueLen--; \ 15672b676d7Smrg } 15772b676d7Smrg 15872b676d7Smrg#define SiSSetupRect(w,h) \ 15972b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 1609fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(6), (CARD32)(h)<<16 | (CARD32)(w) );\ 16172b676d7Smrg CmdQueLen--; 16272b676d7Smrg 16372b676d7Smrg#define SiSSetupPATFG(color) \ 16472b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 16572b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(7), color);\ 16672b676d7Smrg CmdQueLen--; 16772b676d7Smrg 16872b676d7Smrg#define SiSSetupPATBG(color) \ 16972b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 17072b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(8), color);\ 17172b676d7Smrg CmdQueLen--; 17272b676d7Smrg 17372b676d7Smrg#define SiSSetupSRCFG(color) \ 17472b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 17572b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(9), color);\ 17672b676d7Smrg CmdQueLen--; 17772b676d7Smrg 17872b676d7Smrg#define SiSSetupSRCBG(color) \ 17972b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 18072b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(10), color);\ 18172b676d7Smrg CmdQueLen--; 18272b676d7Smrg 18372b676d7Smrg/* 0x8224 src colorkey high */ 18472b676d7Smrg/* 0x8228 src colorkey low */ 18572b676d7Smrg/* 0x821c dest colorkey high */ 18672b676d7Smrg/* 0x8220 dest colorkey low */ 18772b676d7Smrg#define SiSSetupSRCTrans(color) \ 18872b676d7Smrg if (CmdQueLen <= 1) SiSIdle;\ 18972b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, 0x8224, color);\ 19072b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, 0x8228, color);\ 19172b676d7Smrg CmdQueLen -= 2; 19272b676d7Smrg 19372b676d7Smrg#define SiSSetupDSTTrans(color) \ 19472b676d7Smrg if (CmdQueLen <= 1) SiSIdle;\ 19572b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, 0x821C, color); \ 19672b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, 0x8220, color); \ 19772b676d7Smrg CmdQueLen -= 2; 19872b676d7Smrg 19972b676d7Smrg#define SiSSetupMONOPAT(p0,p1) \ 20072b676d7Smrg if (CmdQueLen <= 1) SiSIdle;\ 20172b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(11), p0);\ 20272b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(12), p1);\ 20372b676d7Smrg CmdQueLen -= 2; 20472b676d7Smrg 20572b676d7Smrg#define SiSSetupClipLT(left,top) \ 20672b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2079fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(13), ((left) & 0xFFFF) | (CARD32)(top)<<16 );\ 20872b676d7Smrg CmdQueLen--; 20972b676d7Smrg 21072b676d7Smrg#define SiSSetupClipRB(right,bottom) \ 21172b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2129fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(14), ((right) & 0xFFFF) | (CARD32)(bottom)<<16 );\ 21372b676d7Smrg CmdQueLen--; 21472b676d7Smrg 21572b676d7Smrg/* General */ 21672b676d7Smrg#define SiSSetupROP(rop) \ 21772b676d7Smrg pSiS->CommandReg = (rop) << 8; 21872b676d7Smrg 21972b676d7Smrg#define SiSSetupCMDFlag(flags) \ 22072b676d7Smrg pSiS->CommandReg |= (flags); 22172b676d7Smrg 22272b676d7Smrg#define SiSDoCMD \ 22372b676d7Smrg if (CmdQueLen <= 1) SiSIdle;\ 22472b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(15), pSiS->CommandReg); \ 22572b676d7Smrg CmdQueLen--; \ 22672b676d7Smrg if(pSiS->VGAEngine != SIS_530_VGA) { \ 22772b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(16), 0);\ 22872b676d7Smrg CmdQueLen--; \ 22972b676d7Smrg } else { \ 23072b676d7Smrg unsigned long temp; \ 23172b676d7Smrg temp = SIS_MMIO_IN32(pSiS->IOBase, BR(16)); \ 23272b676d7Smrg (void) temp; \ 23372b676d7Smrg } \ 23472b676d7Smrg 23572b676d7Smrg/* Line */ 23672b676d7Smrg#define SiSSetupX0Y0(x,y) \ 23772b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2389fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(2), (CARD32)(y)<<16 | (CARD32)(x) );\ 23972b676d7Smrg CmdQueLen--; 24072b676d7Smrg 24172b676d7Smrg#define SiSSetupX1Y1(x,y) \ 24272b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2439fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, BR(3), (CARD32)(y)<<16 | (CARD32)(x) );\ 24472b676d7Smrg CmdQueLen--; 24572b676d7Smrg 24672b676d7Smrg#define SiSSetupLineCount(c) \ 24772b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 24872b676d7Smrg SIS_MMIO_OUT16(pSiS->IOBase, BR(6), c);\ 24972b676d7Smrg CmdQueLen--; 25072b676d7Smrg 25172b676d7Smrg#define SiSSetupStylePeriod(p) \ 25272b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 25372b676d7Smrg SIS_MMIO_OUT16(pSiS->IOBase, BR(6)+2, p);\ 25472b676d7Smrg CmdQueLen--; 25572b676d7Smrg 25672b676d7Smrg#define SiSSetupStyleLow(ls) \ 25772b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 25872b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(11), ls);\ 25972b676d7Smrg CmdQueLen--; 26072b676d7Smrg 26172b676d7Smrg#define SiSSetupStyleHigh(ls) \ 26272b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 26372b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, BR(12), ls);\ 26472b676d7Smrg CmdQueLen--; 26572b676d7Smrg 26672b676d7Smrg/* Trapezoid */ 26772b676d7Smrg#define SiSSetupYH(y,h) \ 26872b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2699fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, 0x8208, (CARD32)(y)<<16 | (CARD32)(h) );\ 27072b676d7Smrg CmdQueLen--; 27172b676d7Smrg 27272b676d7Smrg#define SiSSetupLR(left,right) \ 27372b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2749fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, 0x820C, (CARD32)(right)<<16 | (CARD32)(left) );\ 27572b676d7Smrg CmdQueLen--; 27672b676d7Smrg 27772b676d7Smrg#define SiSSetupdL(dxL,dyL) \ 27872b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2799fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, 0x8244, (CARD32)(dyL)<<16 | (CARD32)(dxL) );\ 28072b676d7Smrg CmdQueLen--; 28172b676d7Smrg 28272b676d7Smrg#define SiSSetupdR(dxR,dyR) \ 28372b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 2849fb9d7ebSjoerg SIS_MMIO_OUT32(pSiS->IOBase, 0x8248, (CARD32)(dyR)<<16 | (CARD32)(dxR) );\ 28572b676d7Smrg CmdQueLen--; 28672b676d7Smrg 28772b676d7Smrg#define SiSSetupEL(eL) \ 28872b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 28972b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, 0x824C, eL);\ 29072b676d7Smrg CmdQueLen--; 29172b676d7Smrg 29272b676d7Smrg#define SiSSetupER(eR) \ 29372b676d7Smrg if (CmdQueLen <= 0) SiSIdle;\ 29472b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, 0x8250, eR);\ 29572b676d7Smrg CmdQueLen--; 29672b676d7Smrg 29772b676d7Smrg 29872b676d7Smrg/* Set Pattern register */ 29972b676d7Smrg#define SiSSetPattern(num, value) \ 30072b676d7Smrg if (CmdQueLen <= 0) SiSIdle; \ 30172b676d7Smrg SIS_MMIO_OUT32(pSiS->IOBase, (PATTERN_REG + (num * 4)), value); \ 30272b676d7Smrg CmdQueLen--; 30372b676d7Smrg 30472b676d7Smrg 30572b676d7Smrg/* 3D stuff (used for RENDER) */ 30672b676d7Smrg 30772b676d7Smrg/* 30872b676d7Smrg * Register Addresses of 300/630/730/(540?) 30972b676d7Smrg */ 31072b676d7Smrg#define REG_3D_TSFSa 0x8800 31172b676d7Smrg#define REG_3D_TSZa 0x8804 31272b676d7Smrg#define REG_3D_TSXa 0x8808 31372b676d7Smrg#define REG_3D_TSYa 0x880C 31472b676d7Smrg#define REG_3D_TSARGBa 0x8810 31572b676d7Smrg#define REG_3D_TSWGa 0x8814 31672b676d7Smrg#define REG_3D_TSUAa 0x8818 31772b676d7Smrg#define REG_3D_TSVAa 0x881C 31872b676d7Smrg#define REG_3D_TSUBa 0x8820 31972b676d7Smrg#define REG_3D_TSVBa 0x8824 32072b676d7Smrg#define REG_3D_TSUCa 0x8828 32172b676d7Smrg#define REG_3D_TSVCa 0x882C 32272b676d7Smrg 32372b676d7Smrg#define REG_3D_TSFSb 0x8830 32472b676d7Smrg#define REG_3D_TSZb 0x8834 32572b676d7Smrg#define REG_3D_TSXb 0x8838 32672b676d7Smrg#define REG_3D_TSYb 0x883C 32772b676d7Smrg#define REG_3D_TSARGBb 0x8840 32872b676d7Smrg#define REG_3D_TSWGb 0x8844 32972b676d7Smrg#define REG_3D_TSUAb 0x8848 33072b676d7Smrg#define REG_3D_TSVAb 0x884C 33172b676d7Smrg#define REG_3D_TSUBb 0x8850 33272b676d7Smrg#define REG_3D_TSVBb 0x8854 33372b676d7Smrg#define REG_3D_TSUCb 0x8858 33472b676d7Smrg#define REG_3D_TSVCb 0x885C 33572b676d7Smrg 33672b676d7Smrg#define REG_3D_TSFSc 0x8860 33772b676d7Smrg#define REG_3D_TSZc 0x8864 33872b676d7Smrg#define REG_3D_TSXc 0x8868 33972b676d7Smrg#define REG_3D_TSYc 0x886C 34072b676d7Smrg#define REG_3D_TSARGBc 0x8870 34172b676d7Smrg#define REG_3D_TSWGc 0x8874 34272b676d7Smrg#define REG_3D_TSUAc 0x8878 34372b676d7Smrg#define REG_3D_TSVAc 0x887C 34472b676d7Smrg#define REG_3D_TSUBc 0x8880 34572b676d7Smrg#define REG_3D_TSVBc 0x8884 34672b676d7Smrg#define REG_3D_TSUCc 0x8888 34772b676d7Smrg#define REG_3D_TSVCc 0x888C 34872b676d7Smrg 34972b676d7Smrg/* 35072b676d7Smrg * REG_3D_AGPCmdSetting (89e4h-89f7) 35172b676d7Smrg */ 35272b676d7Smrg#define REG_3D_AGPCmBase 0x89E4 35372b676d7Smrg#define REG_3D_AGPRmDwNum 0x89E8 35472b676d7Smrg#define REG_3D_AGPTtDwNum 0x89EC 35572b676d7Smrg#define REG_3D_AGPCmFire 0x89F0 35672b676d7Smrg 35772b676d7Smrg#define REG_3D_ParsingSet 0x89F4 35872b676d7Smrg#define REG_3D_PrimitiveSet 0x89F8 35972b676d7Smrg#define REG_3D_ShadeMode 0x89F8 36072b676d7Smrg#define REG_3D_EngineFire 0x89FC 36172b676d7Smrg#define REG_3D_EngineStatus 0x89FC 36272b676d7Smrg#define REG_3D_TEnable 0x8A00 36372b676d7Smrg#define REG_3D_TEnable2 0x8A04 36472b676d7Smrg 36572b676d7Smrg#define REG_3D_ZSet 0x8A08 36672b676d7Smrg#define REG_3D_ZBias 0x8A0C 36772b676d7Smrg#define REG_3D_ZStWriteMask 0x8A10 36872b676d7Smrg 36972b676d7Smrg#define REG_3D_ZAddress 0x8A14 37072b676d7Smrg#define REG_3D_AlphaSet 0x8A18 37172b676d7Smrg#define REG_3D_AlphaAddress 0x8A1C 37272b676d7Smrg#define REG_3D_DstSet 0x8A20 37372b676d7Smrg#define REG_3D_DstAlphaWriteMask 0x8A24 37472b676d7Smrg 37572b676d7Smrg#define REG_3D_DstAddress 0x8A28 37672b676d7Smrg 37772b676d7Smrg#define REG_3D_LinePattern 0x8A2C 37872b676d7Smrg 37972b676d7Smrg#define REG_3D_FogSet 0x8A30 38072b676d7Smrg 38172b676d7Smrg#define REG_3D_FogFarDistance 0x8A34 38272b676d7Smrg#define REG_3D_FogInverseDistance 0x8A38 38372b676d7Smrg#define REG_3D_FogFactorDensity 0x8A3C 38472b676d7Smrg 38572b676d7Smrg#define REG_3D_StencilSet 0x8A44 38672b676d7Smrg#define REG_3D_StencilSet2 0x8A48 38772b676d7Smrg#define REG_3D_StencilAddress 0x8A4C 38872b676d7Smrg 38972b676d7Smrg#define REG_3D_DstBlendMode 0x8A50 39072b676d7Smrg#define REG_3D_SrcBlendMode 0x8A50 39172b676d7Smrg#define REG_3D_ClipTopBottom 0x8A54 39272b676d7Smrg#define REG_3D_ClipLeftRight 0x8A58 39372b676d7Smrg 39472b676d7Smrg#define REG_3D_Brightness 0x8A5C 39572b676d7Smrg 39672b676d7Smrg#define REG_3D_BumpMapSet 0x8A68 39772b676d7Smrg#define REG_3D_BumpMapAddress 0x8A6C 39872b676d7Smrg#define REG_3D_BumpMapPitch 0x8A70 39972b676d7Smrg#define REG_3D_BumpMapMatrix0 0x8A74 40072b676d7Smrg#define REG_3D_BumpMapMatrix1 0x8A78 40172b676d7Smrg 40272b676d7Smrg/* 40372b676d7Smrg * Texture Registers 40472b676d7Smrg */ 40572b676d7Smrg#define REG_3D_TextureSet 0x8A7C 40672b676d7Smrg#define REG_3D_TextureWidthHeight 0x8A7C 40772b676d7Smrg#define REG_3D_TextureMip 0x8A80 40872b676d7Smrg 40972b676d7Smrg#define REG_3D_TextureTransparencyColorHigh 0x8A84 41072b676d7Smrg#define REG_3D_TextureTransparencyColorLow 0x8A88 41172b676d7Smrg#define REG_3D_TextureBorderColor 0x8A8C 41272b676d7Smrg#define REG_3D_TextureAddress0 0x8A90 41372b676d7Smrg#define REG_3D_TextureAddress1 0x8A94 41472b676d7Smrg#define REG_3D_TextureAddress2 0x8A98 41572b676d7Smrg#define REG_3D_TextureAddress3 0x8A9C 41672b676d7Smrg#define REG_3D_TextureAddress4 0x8AA0 41772b676d7Smrg#define REG_3D_TextureAddress5 0x8AA4 41872b676d7Smrg#define REG_3D_TextureAddress6 0x8AA8 41972b676d7Smrg#define REG_3D_TextureAddress7 0x8AAC 42072b676d7Smrg#define REG_3D_TextureAddress8 0x8AB0 42172b676d7Smrg#define REG_3D_TextureAddress9 0x8AB4 42272b676d7Smrg#define REG_3D_TextureAddress10 0x8AB8 42372b676d7Smrg#define REG_3D_TextureAddress11 0x8ABC 42472b676d7Smrg#define REG_3D_TexturePitch0 0x8AC0 42572b676d7Smrg#define REG_3D_TexturePitch1 0x8AC0 42672b676d7Smrg#define REG_3D_TexturePitch2 0x8AC4 42772b676d7Smrg#define REG_3D_TexturePitch3 0x8AC4 42872b676d7Smrg#define REG_3D_TexturePitch4 0x8AC8 42972b676d7Smrg#define REG_3D_TexturePitch5 0x8AC8 43072b676d7Smrg#define REG_3D_TexturePitch6 0x8ACC 43172b676d7Smrg#define REG_3D_TexturePitch7 0x8ACC 43272b676d7Smrg#define REG_3D_TexturePitch8 0x8AD0 43372b676d7Smrg#define REG_3D_TexturePitch9 0x8AD0 43472b676d7Smrg#define REG_3D_TexturePitch10 0x8AD4 43572b676d7Smrg 43672b676d7Smrg#define REG_3D_Texture1Set 0x8ADC 43772b676d7Smrg#define REG_3D_Texture1WidthHeight 0x8ADC 43872b676d7Smrg#define REG_3D_Texture1Mip 0x8AE0 43972b676d7Smrg 44072b676d7Smrg#define REG_3D_Texture1TransparencyColorHigh 0x8AE4 44172b676d7Smrg#define REG_3D_Texture1TransparencyColorLow 0x8AE8 44272b676d7Smrg#define REG_3D_Texture1BorderColor 0x8AEC 44372b676d7Smrg#define REG_3D_Texture1Address0 0x8AF0 44472b676d7Smrg#define REG_3D_Texture1Address1 0x8AF4 44572b676d7Smrg#define REG_3D_Texture1Address2 0x8AF8 44672b676d7Smrg#define REG_3D_Texture1Address3 0x8AFC 44772b676d7Smrg#define REG_3D_Texture1Address4 0x8B00 44872b676d7Smrg#define REG_3D_Texture1Address5 0x8B04 44972b676d7Smrg#define REG_3D_Texture1Address6 0x8B08 45072b676d7Smrg#define REG_3D_Texture1Address7 0x8B0C 45172b676d7Smrg#define REG_3D_Texture1Address8 0x8B10 45272b676d7Smrg#define REG_3D_Texture1Address9 0x8B14 45372b676d7Smrg#define REG_3D_Texture1Address10 0x8B18 45472b676d7Smrg#define REG_3D_Texture1Address11 0x8B1C 45572b676d7Smrg#define REG_3D_Texture1Pitch0 0x8B20 45672b676d7Smrg#define REG_3D_Texture1Pitch1 0x8B20 45772b676d7Smrg#define REG_3D_Texture1Pitch2 0x8B24 45872b676d7Smrg#define REG_3D_Texture1Pitch3 0x8B24 45972b676d7Smrg#define REG_3D_Texture1Pitch4 0x8B28 46072b676d7Smrg#define REG_3D_Texture1Pitch5 0x8B28 46172b676d7Smrg#define REG_3D_Texture1Pitch6 0x8B2C 46272b676d7Smrg#define REG_3D_Texture1Pitch7 0x8B2C 46372b676d7Smrg#define REG_3D_Texture1Pitch8 0x8B30 46472b676d7Smrg#define REG_3D_Texture1Pitch9 0x8B30 46572b676d7Smrg#define REG_3D_Texture1Pitch10 0x8B34 46672b676d7Smrg 46772b676d7Smrg#define REG_3D_TextureBlendFactor 0x8B3C 46872b676d7Smrg#define REG_3D_TextureColorBlendSet0 0x8B40 46972b676d7Smrg#define REG_3D_TextureColorBlendSet1 0x8B44 47072b676d7Smrg#define REG_3D_TextureAlphaBlendSet0 0x8B48 47172b676d7Smrg#define REG_3D_TextureAlphaBlendSet1 0x8B4C 47272b676d7Smrg 47372b676d7Smrg#define REG_3D_EndPrimitiveList 0x8B50 47472b676d7Smrg 47572b676d7Smrg#define REG_3D_Stipple0 0x8B60 47672b676d7Smrg 47772b676d7Smrg#define REG_3D_TexturePalette 0x8C00 47872b676d7Smrg 47972b676d7Smrg/* 48072b676d7Smrg * REG_3D_ParsingSet - Parsing Mask (89F4h-89F7h) 48172b676d7Smrg */ 48272b676d7Smrg#define MASK_VertexDWSize 0xF0000000 48372b676d7Smrg#define MASK_VertexDataFormat 0x0FFF0000 48472b676d7Smrg#define MASK_PsVertex_HAS_RHW 0x08000000 48572b676d7Smrg#define MASK_PsVertex_HAS_NORMALXYZ 0x04000000 48672b676d7Smrg#define MASK_PsVertex_HAS_DIFFUSE 0x02000000 48772b676d7Smrg#define MASK_PsVertex_HAS_SPECULAR 0x01000000 48872b676d7Smrg#define MASK_PsUVSet 0x00FF0000 48972b676d7Smrg#define MASK_PsVertex_HAS_1SetUV 0x00800000 49072b676d7Smrg#define MASK_PsVertex_HAS_2SetUV 0x00C00000 49172b676d7Smrg#define MASK_PsVertex_HAS_3SetUV 0x00E00000 49272b676d7Smrg#define MASK_PsVertex_HAS_UVSet1 0x00800000 49372b676d7Smrg#define MASK_PsVertex_HAS_UVSet2 0x00400000 49472b676d7Smrg#define MASK_PsVertex_HAS_UVSet3 0x00200000 49572b676d7Smrg#define MASK_PsCullDirection_CCW 0x00008000 49672b676d7Smrg#define MASK_PsShadingMode 0x00007000 49772b676d7Smrg#define MASK_PsTextureFrom 0x000003F0 49872b676d7Smrg#define MASK_PsTexture0FromA 0x00000000 49972b676d7Smrg#define MASK_PsTexture1FromA 0x00000000 50072b676d7Smrg#define MASK_PsTexture1FromB 0x00000040 50172b676d7Smrg#define MASK_PsBumpTextureFromA 0x00000000 50272b676d7Smrg#define MASK_PsBumpTextureFromB 0x00000010 50372b676d7Smrg#define MASK_PsBumpTextureFromC 0x00000020 50472b676d7Smrg#define MASK_PsDataType 0x0000000F 50572b676d7Smrg#define MASK_PsPointList 0x00000000 50672b676d7Smrg#define MASK_PsLineList 0x00000004 50772b676d7Smrg#define MASK_PsLineStrip 0x00000005 50872b676d7Smrg#define MASK_PsTriangleList 0x00000008 50972b676d7Smrg#define MASK_PsTriangleStrip 0x00000009 51072b676d7Smrg#define MASK_PsTriangleFan 0x0000000A 51172b676d7Smrg/* 51272b676d7Smrg * REG_3D_PrimitiveSet - Fire Primitive Mask (89F8h-89FBh) 51372b676d7Smrg */ 51472b676d7Smrg#define MASK_DrawPrimitiveCommand 0x00000007 51572b676d7Smrg#define MASK_SetFirePosition 0x00001F00 51672b676d7Smrg#define MASK_BumpTextureFrom 0x00030000 51772b676d7Smrg#define MASK_Texture1From 0x000C0000 51872b676d7Smrg#define MASK_Texture0From 0x00300000 51972b676d7Smrg#define MASK_ShadingMode 0x07000000 52072b676d7Smrg#define MASK_CullDirection 0x08000000 52172b676d7Smrg/* 52272b676d7Smrg * Command Queue Length Mask (89FCh-89FF) 52372b676d7Smrg */ 52472b676d7Smrg#define MASK_CmdQueueLen 0x0FFF0000 52572b676d7Smrg 52672b676d7Smrg/* 52772b676d7Smrg * REG_3D_TEnable - Capability Enable Mask (8A00h-8A03h) 52872b676d7Smrg */ 52972b676d7Smrg#define MASK_DitherEnable 0x00000001 53072b676d7Smrg#define MASK_BlendEnable 0x00000002 53172b676d7Smrg#define MASK_FogTestEnable 0x00000004 53272b676d7Smrg#define MASK_FogEnable 0x00000008 53372b676d7Smrg#define MASK_SpecularEnable 0x00000010 53472b676d7Smrg#define MASK_FogPerspectiveEnable 0x00000020 53572b676d7Smrg#define MASK_TextureCacheClear 0x00000040 53672b676d7Smrg#define MASK_TextureCacheEnable 0x00000080 53772b676d7Smrg#define MASK_BumpMapEnable 0x00000100 53872b676d7Smrg#define MASK_TexturePerspectiveEnable 0x00000200 53972b676d7Smrg#define MASK_TextureEnable 0x00000400 54072b676d7Smrg#define MASK_CullEnable 0x00000800 54172b676d7Smrg#define MASK_TextureNumUsed 0x0000F000 54272b676d7Smrg#define MASK_AlphaBufferEnable 0x00010000 54372b676d7Smrg#define MASK_AlphaTestEnable 0x00020000 54472b676d7Smrg#define MASK_AlphaWriteEnable 0x00040000 54572b676d7Smrg#define MASK_ZTestEnable 0x00080000 54672b676d7Smrg#define MASK_ZWriteEnable 0x00100000 54772b676d7Smrg#define MASK_StencilBufferEnable 0x00200000 54872b676d7Smrg#define MASK_StencilTestEnable 0x00400000 54972b676d7Smrg#define MASK_StencilWriteEnable 0x00800000 55072b676d7Smrg#define MASK_Texture0TransparencyEnable 0x01000000 55172b676d7Smrg#define MASK_Texture1TransparencyEnable 0x02000000 55272b676d7Smrg#define MASK_TextureAWrapUCorrection 0x04000000 55372b676d7Smrg#define MASK_TextureAWrapVCorrection 0x08000000 55472b676d7Smrg#define MASK_TextureBWrapUCorrection 0x10000000 55572b676d7Smrg#define MASK_TextureBWrapVCorrection 0x20000000 55672b676d7Smrg#define MASK_TextureCWrapUCorrection 0x40000000 55772b676d7Smrg#define MASK_TextureCWrapVCorrection 0x80000000 55872b676d7Smrg 55972b676d7Smrg/* 56072b676d7Smrg * REG_3D_TEnable2 - Capability Enable Mask2 (8A04h-8A07h) 56172b676d7Smrg */ 56272b676d7Smrg#define MASK_Texture0BlockTextureEnable 0x00000001 56372b676d7Smrg#define MASK_Texture1BlockTextureEnable 0x00000002 56472b676d7Smrg#define MASK_Texture0AnisotropicEnable 0x00000010 56572b676d7Smrg#define MASK_Texture1AnisotropicEnable 0x00000020 56672b676d7Smrg#define MASK_TextureMipmapBiasEnable 0x00000040 56772b676d7Smrg#define MASK_LinePatternEnable 0x00000100 56872b676d7Smrg#define MASK_StippleAlphaEnable 0x00000200 56972b676d7Smrg#define MASK_StippleEnable 0x00000400 57072b676d7Smrg#define MASK_AntiAliasEnable 0x00000800 57172b676d7Smrg#define MASK_ZMaskWriteEnable 0x00001000 57272b676d7Smrg#define MASK_StencilMaskWriteEnable 0x00002000 57372b676d7Smrg#define MASK_AlphaMaskWriteEnable 0x00004000 57472b676d7Smrg#define MASK_ColorMaskWriteEnable 0x00008000 57572b676d7Smrg#define MASK_ZCacheClear 0x00010000 57672b676d7Smrg#define MASK_ZCacheEnable 0x00020000 57772b676d7Smrg#define MASK_StencilCacheClear 0x00040000 57872b676d7Smrg#define MASK_StencilCacheEnable 0x00080000 57972b676d7Smrg#define MASK_AlphaCacheClear 0x00100000 58072b676d7Smrg#define MASK_AlphaCacheEnable 0x00200000 58172b676d7Smrg#define MASK_ColorCacheClear 0x00400000 58272b676d7Smrg#define MASK_ColorCacheEnable 0x00800000 58372b676d7Smrg 58472b676d7Smrg/* 58572b676d7Smrg * REG_3D_ZSet -- Define Z Buffer Setting Mask (8A08h-8A0Bh) 58672b676d7Smrg */ 58772b676d7Smrg#define MASK_ZBufferPitch 0x00000FFF 58872b676d7Smrg#define MASK_ZTestMode 0x00070000 58972b676d7Smrg#define MASK_ZBufferInSystem 0x00080000 59072b676d7Smrg#define MASK_ZBufferFormat 0x01F00000 59172b676d7Smrg 59272b676d7Smrg/* 59372b676d7Smrg * REG_3D_ZBias -- Define Z Buffer Setting Mask (8A0Ch-8A0Fh) 59472b676d7Smrg */ 59572b676d7Smrg#define MASK_ZBias 0xFFFFFFFF 59672b676d7Smrg 59772b676d7Smrg/* 59872b676d7Smrg * REG_3D_ZStWriteMask -- Define Z and Stencil Buffer Mask (8A10h-8A13h) 59972b676d7Smrg */ 60072b676d7Smrg#define MASK_ZWriteMask 0x00FFFFFF 60172b676d7Smrg 60272b676d7Smrg/* 60372b676d7Smrg * REG_3D_ZAddress -- Define Z Buffer Base Address(8A14h-8A17h) 60472b676d7Smrg */ 60572b676d7Smrg#define MASK_ZAddress 0xFFFFFFFF 60672b676d7Smrg 60772b676d7Smrg/* 60872b676d7Smrg * REG_3D_AlphaSet -- Define Alpha Buffer Setting Mask (8A18h-8A1Bh) 60972b676d7Smrg */ 61072b676d7Smrg#define MASK_AlphaBufferPitch 0x000003FF 61172b676d7Smrg#define MASK_AlphaRefValue 0x00FF0000 61272b676d7Smrg#define MASK_AlphaTestMode 0x07000000 61372b676d7Smrg#define MASK_AlphaBufferInSystem 0x08000000 61472b676d7Smrg#define MASK_AlphaBufferFormat 0x30000000 61572b676d7Smrg 61672b676d7Smrg/* 61772b676d7Smrg * REG_3D_AlphaAddress -- Define Alpha Buffer Base Address(8A1Ch-8A1Fh) 61872b676d7Smrg */ 61972b676d7Smrg#define MASK_AlphaAddress 0xFFFFFFFF 62072b676d7Smrg 62172b676d7Smrg/* 62272b676d7Smrg * REG_3D_DstSet -- Define Destination Buffer Setting Mask (8A20h-8A23h) 62372b676d7Smrg */ 62472b676d7Smrg#define MASK_DstBufferPitch 0x00000FFF 62572b676d7Smrg#define MASK_DstBufferFormat 0x000F0000 62672b676d7Smrg#define MASK_DstBufferBitDepth 0x00300000 62772b676d7Smrg#define MASK_DstBufferRgbOrder 0x00400000 62872b676d7Smrg#define MASK_DstBufferInSystem 0x00800000 62972b676d7Smrg#define MASK_Dst7BitFormat 0x007F0000 63072b676d7Smrg#define MASK_ROP2 0x0F000000 63172b676d7Smrg 63272b676d7Smrg/* 63372b676d7Smrg * REG_3D_DstAlphaWriteMask -- Define Destination/Alpha Buffer Write Mask (8A24h-8A27h) 63472b676d7Smrg */ 63572b676d7Smrg#define MASK_ColorWriteMask 0x00FFFFFF 63672b676d7Smrg#define MASK_AlphaWriteMask 0xFF000000 63772b676d7Smrg 63872b676d7Smrg/* 63972b676d7Smrg * REG_3D_DstAddress -- Define Destination Buffer Base Address(8A1Ch-8A1Fh) 64072b676d7Smrg */ 64172b676d7Smrg#define MASK_DstAddress 0xFFFFFFFF 64272b676d7Smrg 64372b676d7Smrg/* 64472b676d7Smrg * REG_3D_LinePattern -- Define Line Pattern (8A2Ch-8A2Fh) 64572b676d7Smrg */ 64672b676d7Smrg#define MASK_LinePatternRepeatFactor 0x00007FFF 64772b676d7Smrg#define MASK_LinePatternLastPixelFlag 0x00008000 64872b676d7Smrg#define MASK_LinePattern 0xFFFF0000 64972b676d7Smrg 65072b676d7Smrg/* 65172b676d7Smrg * REG_3D_FogSet -- Define Fog Mask (8A30h-8A33h) 65272b676d7Smrg */ 65372b676d7Smrg#define MASK_FogColor 0x00FFFFFF 65472b676d7Smrg#define MASK_FogMode 0x07000000 65572b676d7Smrg#define MASK_FogZLookup 0x08000000 65672b676d7Smrg 65772b676d7Smrg/* 65872b676d7Smrg * REG_3D_FogStartEnd -- Define Fog Start End Setting (8A34h-8A37h) 65972b676d7Smrg */ 66072b676d7Smrg#define MASK_FogFarDistance 0x0007FFFF 66172b676d7Smrg 66272b676d7Smrg/* 66372b676d7Smrg * REG_3D_FogStartEnd -- Define Fog End Setting (8A38h-8A3Bh) 66472b676d7Smrg */ 66572b676d7Smrg#define MASK_FogInvFarDistance 0x0007FFFF 66672b676d7Smrg 66772b676d7Smrg#define MASK_FogDensity 0x0003FFFF 66872b676d7Smrg#define MASK_FogFactor 0xFF000000 66972b676d7Smrg 67072b676d7Smrg#define MASK_StencilMaskValue 0x000000FF 67172b676d7Smrg#define MASK_StencilReferenceValue 0x0000FF00 67272b676d7Smrg#define MASK_StencilTestMode 0x07000000 67372b676d7Smrg#define MASK_StencilBufferInSystem 0x08000000 67472b676d7Smrg#define MASK_StencilFormat 0x30000000 67572b676d7Smrg 67672b676d7Smrg#define MASK_StencilMode_ALWAYS 0x07000000 67772b676d7Smrg#define MASK_StencilBufferPitch 0x00000FFF 67872b676d7Smrg#define MASK_StencilZPassOp 0x00007000 67972b676d7Smrg#define MASK_StencilZFailOp 0x00070000 68072b676d7Smrg#define MASK_StencilFailOp 0x00700000 68172b676d7Smrg#define MASK_StencilWriteMask 0xFF000000 68272b676d7Smrg 68372b676d7Smrg#define MASK_StencilZPassOp_REPLACE 0x00002000 68472b676d7Smrg#define MASK_StencilZFailOp_REPLACE 0x00020000 68572b676d7Smrg#define MASK_StencilFailOp_REPLACE 0x00200000 68672b676d7Smrg#define MASK_StencilAddress 0xFFFFFFFF 68772b676d7Smrg 68872b676d7Smrg#define MASK_SrcBlendMode 0x0000000F 68972b676d7Smrg#define MASK_DstBlendMode 0x000000F0 69072b676d7Smrg#define MASK_DSTBLEND_ZERO 0x00000000 69172b676d7Smrg#define MASK_DSTBLEND_ONE 0x00000010 69272b676d7Smrg#define MASK_DSTBLEND_SRC_COLOR 0x00000020 69372b676d7Smrg#define MASK_DSTBLEND_INV_SRC_COLOR 0x00000030 69472b676d7Smrg#define MASK_DSTBLEND_SRC_ALPHA 0x00000040 69572b676d7Smrg#define MASK_DSTBLEND_INV_SRC_ALPHA 0x00000050 69672b676d7Smrg#define MASK_DSTBLEND_DST_ALPHA 0x00000060 69772b676d7Smrg#define MASK_DSTBLEND_INV_DST_ALPHA 0x00000070 69872b676d7Smrg#define MASK_DSTBLEND_DST_COLOR 0x00000080 69972b676d7Smrg#define MASK_DSTBLEND_INV_DST_COLOR 0x00000090 70072b676d7Smrg#define MASK_DSTBLEND_SRC_ALPHA_SAT 0x000000A0 70172b676d7Smrg 70272b676d7Smrg#define MASK_SRCBLEND_ZERO 0x00000000 70372b676d7Smrg#define MASK_SRCBLEND_ONE 0x00000001 70472b676d7Smrg#define MASK_SRCBLEND_SRC_COLOR 0x00000002 70572b676d7Smrg#define MASK_SRCBLEND_INV_SRC_COLOR 0x00000003 70672b676d7Smrg#define MASK_SRCBLEND_SRC_ALPHA 0x00000004 70772b676d7Smrg#define MASK_SRCBLEND_INV_SRC_ALPHA 0x00000005 70872b676d7Smrg#define MASK_SRCBLEND_DST_ALPHA 0x00000006 70972b676d7Smrg#define MASK_SRCBLEND_INV_DST_ALPHA 0x00000007 71072b676d7Smrg#define MASK_SRCBLEND_DST_COLOR 0x00000008 71172b676d7Smrg#define MASK_SRCBLEND_INV_DST_COLOR 0x00000009 71272b676d7Smrg#define MASK_SRCBLEND_SRC_ALPHA_SAT 0x0000000A 71372b676d7Smrg#define MASK_SRCBLEND_BOTH_SRC_ALPHA 0x0000000B 71472b676d7Smrg#define MASK_SRCBLEND_BOTH_INV_SRC_ALPHA 0x0000000C 71572b676d7Smrg 71672b676d7Smrg#define MASK_BottomClip 0x00001FFF 71772b676d7Smrg#define MASK_TopClip 0x03FFE000 71872b676d7Smrg 71972b676d7Smrg#define MASK_RightClip 0x00001FFF 72072b676d7Smrg#define MASK_LeftClip 0x03FFE000 72172b676d7Smrg 72272b676d7Smrg#define MASK_BMMemoryInSystem 0x00000080 72372b676d7Smrg#define MASK_BMHeight 0x00000F00 72472b676d7Smrg#define MASK_BMWidth 0x0000F000 72572b676d7Smrg#define MASK_BMFilter 0x00010000 72672b676d7Smrg#define MASK_BMMappingMode 0x007E0000 72772b676d7Smrg#define MASK_BMFormat 0x07800000 72872b676d7Smrg#define MASK_BMTxBumpmap 0x08000000 72972b676d7Smrg 73072b676d7Smrg#define MASK_BMAddress 0xFFFFFFFC 73172b676d7Smrg 73272b676d7Smrg#define MASK_BMOffset 0xFF800000 73372b676d7Smrg#define MASK_BMScale 0x007FE000 73472b676d7Smrg#define MASK_BMPitch 0x00001FFF 73572b676d7Smrg 73672b676d7Smrg#define MASK_BMMatrix00 0x000007FF 73772b676d7Smrg#define MASK_BMMatrix01 0x07FF0000 73872b676d7Smrg#define MASK_BMMatrix10 0x000007FF 73972b676d7Smrg#define MASK_BMMatrix11 0x07FF0000 74072b676d7Smrg 74172b676d7Smrg#define MASK_TextureHeight 0x0000000F 74272b676d7Smrg#define MASK_TextureWidth 0x000000F0 74372b676d7Smrg#define MASK_TextureLevel 0x00000F00 74472b676d7Smrg#define MASK_TextureSignYUVFormat 0x00001000 74572b676d7Smrg#define MASK_TextureMappingMode 0x00FF0000 74672b676d7Smrg#define MASK_TextureWrapU 0x00010000 74772b676d7Smrg#define MASK_TextureWrapV 0x00020000 74872b676d7Smrg#define MASK_TextureMirrorU 0x00040000 74972b676d7Smrg#define MASK_TextureMirrorV 0x00080000 75072b676d7Smrg#define MASK_TextureClampU 0x00100000 75172b676d7Smrg#define MASK_TextureClampV 0x00200000 75272b676d7Smrg#define MASK_TextureBorderU 0x00400000 75372b676d7Smrg#define MASK_TextureBorderV 0x00800000 75472b676d7Smrg#define MASK_TextureFormat 0xFF000000 75572b676d7Smrg#define MASK_TextureBitDepth 0x70000000 75672b676d7Smrg#define MASK_TextureRgbOrder 0x80000000 75772b676d7Smrg 75872b676d7Smrg#define MASK_TextureAnisotropyRatio 0x0000000F 75972b676d7Smrg#define MASK_TextureMipmapLodBias 0x00003FF0 76072b676d7Smrg#define MASK_TextureFilterMin 0x0001C000 76172b676d7Smrg#define MASK_TextureFilterMag 0x00020000 76272b676d7Smrg#define MASK_TextureFilter 0x0003C000 76372b676d7Smrg#define MASK_TextureLevelInSystem 0x3FFC0000 76472b676d7Smrg#define MASK_TextureLevel0InSystem 0x00040000 76572b676d7Smrg#define MASK_TextureBlockLength 0xF0000000 76672b676d7Smrg 76772b676d7Smrg#define MASK_TextureTransparencyColorHighB 0x000000FF 76872b676d7Smrg#define MASK_TextureTransparencyColorHighG 0x0000FF00 76972b676d7Smrg#define MASK_TextureTransparencyColorHighR 0x00FF0000 77072b676d7Smrg#define MASK_TextureAlphaTransparencyMode 0x08000000 77172b676d7Smrg 77272b676d7Smrg#define MASK_TextureTransparencyColorLowB 0x000000FF 77372b676d7Smrg#define MASK_TextureTransparencyColorLowG 0x0000FF00 77472b676d7Smrg#define MASK_TextureTransparencyColorLowR 0x00FF0000 77572b676d7Smrg#define MASK_TextureBlockHeight 0x07000000 77672b676d7Smrg#define MASK_TextureBlockWidth 0x70000000 77772b676d7Smrg 77872b676d7Smrg#define MASK_TextureBorderColorB 0x000000FF 77972b676d7Smrg#define MASK_TextureBorderColorG 0x0000FF00 78072b676d7Smrg#define MASK_TextureBorderColorR 0x00FF0000 78172b676d7Smrg#define MASK_TextureBorderColorA 0xFF000000 78272b676d7Smrg 78372b676d7Smrg#define MASK_TexturePitchOdd 0x000003FF 78472b676d7Smrg#define MASK_TexturePitchEven 0x03FF0000 78572b676d7Smrg#define SHIFT_TexturePitchEven 16 78672b676d7Smrg 78772b676d7Smrg#define MASK_TextureRealInSystem 0x00000001 78872b676d7Smrg#define MASK_TextureDowngrade 0x00000002 78972b676d7Smrg 79072b676d7Smrg#define OP_3D_POINT_DRAW 0x00000000 79172b676d7Smrg#define OP_3D_LINE_DRAW 0x00000001 79272b676d7Smrg#define OP_3D_TRIANGLE_DRAW 0x00000002 79372b676d7Smrg 79472b676d7Smrg#define OP_3D_DIRECTION_RIGHT 0x00000000 79572b676d7Smrg#define OP_3D_DIRECTION_LEFT 0x00000100 79672b676d7Smrg#define OP_3D_DIRECTION_HORIZONTAL 0x00000000 79772b676d7Smrg#define OP_3D_DIRECTION_VERTICAL 0x00000100 79872b676d7Smrg 79972b676d7Smrg#define OP_3D_FIRE_TFIRE 0x00000000 80072b676d7Smrg#define OP_3D_FIRE_TSARGBa 0x00000100 80172b676d7Smrg#define OP_3D_FIRE_TSWa 0x00000200 80272b676d7Smrg#define OP_3D_FIRE_TSVAa 0x00000300 80372b676d7Smrg#define OP_3D_FIRE_TSVBa 0x00000400 80472b676d7Smrg#define OP_3D_FIRE_TSVCa 0x00000500 80572b676d7Smrg 80672b676d7Smrg#define OP_3D_FIRE_TSARGBb 0x00000900 80772b676d7Smrg#define OP_3D_FIRE_TSWb 0x00000a00 80872b676d7Smrg#define OP_3D_FIRE_TSVAb 0x00000b00 80972b676d7Smrg#define OP_3D_FIRE_TSVBb 0x00000c00 81072b676d7Smrg#define OP_3D_FIRE_TSVCb 0x00000d00 81172b676d7Smrg 81272b676d7Smrg#define OP_3D_FIRE_TSARGBc 0x00001100 81372b676d7Smrg#define OP_3D_FIRE_TSWc 0x00001200 81472b676d7Smrg#define OP_3D_FIRE_TSVAc 0x00001300 81572b676d7Smrg#define OP_3D_FIRE_TSVBc 0x00001400 81672b676d7Smrg#define OP_3D_FIRE_TSVCc 0x00001500 81772b676d7Smrg 81872b676d7Smrg#define OP_3D_Texture0FromA 0x00000000 81972b676d7Smrg#define OP_3D_Texture0FromB 0x00100000 82072b676d7Smrg#define OP_3D_Texture0FromC 0x00200000 82172b676d7Smrg#define OP_3D_Texture1FromA 0x00000000 82272b676d7Smrg#define OP_3D_Texture1FromB 0x00040000 82372b676d7Smrg#define OP_3D_Texture1FromC 0x00080000 82472b676d7Smrg#define OP_3D_TextureBumpFromA 0x00000000 82572b676d7Smrg#define OP_3D_TextureBumpFromB 0x00010000 82672b676d7Smrg#define OP_3D_TextureBumpFromC 0x00020000 82772b676d7Smrg 82872b676d7Smrg#define SHADE_FLAT_VertexA 0x01000000 82972b676d7Smrg#define SHADE_FLAT_VertexB 0x02000000 83072b676d7Smrg#define SHADE_FLAT_VertexC 0x03000000 83172b676d7Smrg#define SHADE_GOURAUD 0x04000000 83272b676d7Smrg 83372b676d7Smrg#define Z_BUFFER_FORMAT_Z16 0x00000000 83472b676d7Smrg#define Z_BUFFER_FORMAT_Z16_INT 0x00100000 83572b676d7Smrg#define Z_BUFFER_FORMAT_S1Z15 0x00400000 83672b676d7Smrg#define Z_BUFFER_FORMAT_S1Z15_INT 0x00500000 83772b676d7Smrg#define Z_BUFFER_FORMAT_Z32 0x00800000 83872b676d7Smrg#define Z_BUFFER_FORMAT_S1Z31 0x00C00000 83972b676d7Smrg#define Z_BUFFER_FORMAT_S2Z30 0x00D00000 84072b676d7Smrg#define Z_BUFFER_FORMAT_S4Z28 0x00E00000 84172b676d7Smrg#define Z_BUFFER_FORMAT_S8Z24 0x00F00000 84272b676d7Smrg#define Z_BUFFER_FORMAT_FZ30 0x01800000 84372b676d7Smrg#define Z_BUFFER_FORMAT_FS1Z30 0x01C00000 84472b676d7Smrg#define Z_BUFFER_FORMAT_FS2Z30 0x01D00000 84572b676d7Smrg#define MASK_Z_BUFFER_FORMAT 0x01F00000 84672b676d7Smrg 84772b676d7Smrg#define ALPHA_BUFFER_FORMAT_1 0x00000000 84872b676d7Smrg#define ALPHA_BUFFER_FORMAT_2 0x10000000 84972b676d7Smrg#define ALPHA_BUFFER_FORMAT_4 0x20000000 85072b676d7Smrg#define ALPHA_BUFFER_FORMAT_8 0x30000000 85172b676d7Smrg 85272b676d7Smrg#define DST_FORMAT_RGB_555 0x00100000 85372b676d7Smrg#define DST_FORMAT_RGB_565 0x00110000 85472b676d7Smrg#define DST_FORMAT_ARGB_1555 0x00120000 85572b676d7Smrg#define DST_FORMAT_ARGB_4444 0x00130000 85672b676d7Smrg#define DST_FORMAT_ARGB_1888 0x00300000 85772b676d7Smrg#define DST_FORMAT_ARGB_2888 0x00310000 85872b676d7Smrg#define DST_FORMAT_ARGB_4888 0x00320000 85972b676d7Smrg#define DST_FORMAT_ARGB_8888 0x00330000 86072b676d7Smrg#define DST_FORMAT_ARGB_0888 0x00340000 86172b676d7Smrg 86272b676d7Smrg#define DST_FORMAT_BGR_555 0x00500000 86372b676d7Smrg#define DST_FORMAT_BGR_565 0x00510000 86472b676d7Smrg#define DST_FORMAT_ABGR_1555 0x00520000 86572b676d7Smrg#define DST_FORMAT_ABGR_4444 0x00530000 86672b676d7Smrg#define DST_FORMAT_ABGR_1888 0x00700000 86772b676d7Smrg#define DST_FORMAT_ABGR_2888 0x00710000 86872b676d7Smrg#define DST_FORMAT_ABGR_4888 0x00720000 86972b676d7Smrg#define DST_FORMAT_ABGR_8888 0x00730000 87072b676d7Smrg#define DST_FORMAT_ABGR_0888 0x00740000 87172b676d7Smrg 87272b676d7Smrg#define MASK_TEXTURE_FORMAT 0xFF000000 87372b676d7Smrg 87472b676d7Smrg#define TEXEL_INDEX1 0x00000000 87572b676d7Smrg#define TEXEL_INDEX2 0x01000000 87672b676d7Smrg#define TEXEL_INDEX4 0x02000000 87772b676d7Smrg#define TEXEL_INDEX8 0x03000000 87872b676d7Smrg 87972b676d7Smrg#define TEXEL_INDEX1WithAlpha 0x04000000 88072b676d7Smrg#define TEXEL_INDEX2WithAlpha 0x05000000 88172b676d7Smrg#define TEXEL_INDEX4WithAlpha 0x06000000 88272b676d7Smrg#define TEXEL_INDEX8WithAlpha 0x07000000 88372b676d7Smrg 88472b676d7Smrg#define TEXEL_I1 0x10000000 88572b676d7Smrg#define TEXEL_I2 0x11000000 88672b676d7Smrg#define TEXEL_I4 0x12000000 88772b676d7Smrg#define TEXEL_I8 0x13000000 88872b676d7Smrg 88972b676d7Smrg#define TEXEL_DXT1 0x19000000 89072b676d7Smrg#define TEXEL_DXT2 0x1A000000 89172b676d7Smrg#define TEXEL_DXT3 0x1B000000 89272b676d7Smrg 89372b676d7Smrg#define TEXEL_YUV422 0x20000000 89472b676d7Smrg#define TEXEL_YVU422 0x21000000 89572b676d7Smrg#define TEXEL_UVY422 0x22000000 89672b676d7Smrg#define TEXEL_VUY422 0x23000000 89772b676d7Smrg#define TEXEL_YUV411 0x24000000 89872b676d7Smrg 89972b676d7Smrg#define TEXEL_L1 0x30000000 90072b676d7Smrg#define TEXEL_L2 0x31000000 90172b676d7Smrg#define TEXEL_L4 0x32000000 90272b676d7Smrg#define TEXEL_L8 0x33000000 90372b676d7Smrg 90472b676d7Smrg#define TEXEL_AL11 0x34000000 90572b676d7Smrg#define TEXEL_AL44 0x35000000 90672b676d7Smrg#define TEXEL_AL26 0x37000000 90772b676d7Smrg#define TEXEL_AL88 0x38000000 90872b676d7Smrg 90972b676d7Smrg#define TEXEL_A1 0x40000000 91072b676d7Smrg#define TEXEL_A2 0x41000000 91172b676d7Smrg#define TEXEL_A4 0x42000000 91272b676d7Smrg#define TEXEL_A8 0x43000000 91372b676d7Smrg 91472b676d7Smrg#define TEXEL_RGB_332_8 0x50000000 91572b676d7Smrg#define TEXEL_RGB_233_8 0x51000000 91672b676d7Smrg#define TEXEL_RGB_232_8 0x52000000 91772b676d7Smrg#define TEXEL_ARGB_1232_8 0x53000000 91872b676d7Smrg#define TEXEL_ARGB_2222_8 0x54000000 91972b676d7Smrg 92072b676d7Smrg#define TEXEL_RGB_555_16 0x60000000 92172b676d7Smrg#define TEXEL_RGB_565_16 0x61000000 92272b676d7Smrg#define TEXEL_ARGB_1555_16 0x62000000 92372b676d7Smrg#define TEXEL_ARGB_4444_16 0x63000000 92472b676d7Smrg 92572b676d7Smrg#define TEXEL_ARGB_1888_32 0x70000000 92672b676d7Smrg#define TEXEL_ARGB_2888_32 0x71000000 92772b676d7Smrg#define TEXEL_ARGB_4888_32 0x72000000 92872b676d7Smrg#define TEXEL_ARGB_8888_32 0x73000000 92972b676d7Smrg#define TEXEL_ARGB_0888_32 0x74000000 93072b676d7Smrg 93172b676d7Smrg#define TEXEL_BGR_332_8 0xD0000000 93272b676d7Smrg#define TEXEL_BGR_233_8 0xD1000000 93372b676d7Smrg#define TEXEL_BGR_232_8 0xD2000000 93472b676d7Smrg#define TEXEL_ABGR_1232_8 0xD3000000 93572b676d7Smrg#define TEXEL_ABGR_2222_8 0xD4000000 93672b676d7Smrg 93772b676d7Smrg#define TEXEL_BGR_555_16 0xE0000000 93872b676d7Smrg#define TEXEL_BGR_565_16 0xE1000000 93972b676d7Smrg#define TEXEL_ABGR_1555_16 0xE2000000 94072b676d7Smrg#define TEXEL_ABGR_4444_16 0xE3000000 94172b676d7Smrg 94272b676d7Smrg#define TEXEL_ABGR_1888_32 0xF0000000 94372b676d7Smrg#define TEXEL_ABGR_2888_32 0xF1000000 94472b676d7Smrg#define TEXEL_ABGR_4888_32 0xF2000000 94572b676d7Smrg#define TEXEL_ABGR_8888_32 0xF3000000 94672b676d7Smrg#define TEXEL_ABGR_0888_32 0xF4000000 94772b676d7Smrg 94872b676d7Smrg#define TEXEL_VU88 0x00000000 94972b676d7Smrg#define TEXEL_LVU655 0x00800000 95072b676d7Smrg#define TEXEL_LVU888 0x01000000 95172b676d7Smrg#define TEXEL_UV88 0x02000000 95272b676d7Smrg#define TEXEL_LUV655 0x02800000 95372b676d7Smrg#define TEXEL_LUV888 0x03000000 95472b676d7Smrg 95572b676d7Smrg#define FOGMODE_CHEAP 0x04000000 95672b676d7Smrg#define FOGMODE_LINEAR 0x05000000 95772b676d7Smrg#define FOGMODE_EXP 0x06000000 95872b676d7Smrg#define FOGMODE_EXP2 0x07000000 95972b676d7Smrg 96072b676d7Smrg#define Z_16 0x00000000 96172b676d7Smrg#define S_1_Z_15 0x00400000 96272b676d7Smrg#define Z_32 0x00800000 96372b676d7Smrg#define S_1_Z_31 0x00c00000 96472b676d7Smrg#define S_2_Z_30 0x00d00000 96572b676d7Smrg#define S_4_Z_28 0x00e00000 96672b676d7Smrg#define S_8_Z_24 0x00f00000 96772b676d7Smrg 96872b676d7Smrg#define S_1 0x00000000 96972b676d7Smrg#define S_2 0x10000000 97072b676d7Smrg#define S_4 0x20000000 97172b676d7Smrg#define S_8 0x30000000 97272b676d7Smrg 97372b676d7Smrg#define TEXTURE_FILTER_NEAREST 0x00000000 97472b676d7Smrg#define TEXTURE_FILTER_LINEAR 0x00004000 97572b676d7Smrg#define TEXTURE_FILTER_NEAREST_MIP_NEAREST 0x00008000 97672b676d7Smrg#define TEXTURE_FILTER_NEAREST_MIP_LINEAR 0x00010000 97772b676d7Smrg#define TEXTURE_FILTER_LINEAR_MIP_NEAREST 0x0000c000 97872b676d7Smrg#define TEXTURE_FILTER_LINEAR_MIP_LINEAR 0x00014000 97972b676d7Smrg 98072b676d7Smrg#define A_REPLACE_RGB_STAGE0 0xa1485000 98172b676d7Smrg#define A_REPLACE_A_STAGE0 0xc3230000 98272b676d7Smrg#define L_REPLACE__RGB_STAGE0 0xc1485000 98372b676d7Smrg#define L_REPLACE__A_STAGE0 0x63230000 98472b676d7Smrg#define LA_REPLACE__RGB_STAGE0 0xc1485000 98572b676d7Smrg#define LA_REPLACE__A_STAGE0 0xc3230000 98672b676d7Smrg#define I_REPLACE__RGB_STAGE0 0xc1485000 98772b676d7Smrg#define I_REPLACE__A_STAGE0 0xc3230000 98872b676d7Smrg#define RGB_REPLACE__RGB_STAGE0 0xc1485000 98972b676d7Smrg#define RGB_REPLACE__A_STAGE0 0x63230000 99072b676d7Smrg#define RGBA_REPLACE__RGB_STAGE0 0xc1485000 99172b676d7Smrg#define RGBA_REPLACE__A_STAGE0 0xc3230000 99272b676d7Smrg 99372b676d7Smrg#define A_MODULATE_RGB_STAGE0 0xa1485000 99472b676d7Smrg#define A_MODULATE_A_STAGE0 0x63c30000 99572b676d7Smrg#define L_MODULATE__RGB_STAGE0 0xa1705000 99672b676d7Smrg#define L_MODULATE__A_STAGE0 0x63230000 99772b676d7Smrg#define LA_MODULATE__RGB_STAGE0 0xa1705000 99872b676d7Smrg#define LA_MODULATE__A_STAGE0 0x63c30000 99972b676d7Smrg#define I_MODULATE__RGB_STAGE0 0xa1705000 100072b676d7Smrg#define I_MODULATE__A_STAGE0 0x63c30000 100172b676d7Smrg#define RGB_MODULATE__RGB_STAGE0 0xa1705000 100272b676d7Smrg#define RGB_MODULATE__A_STAGE0 0x63230000 100372b676d7Smrg#define RGBA_MODULATE__RGB_STAGE0 0xa1705000 100472b676d7Smrg#define RGBA_MODULATE__A_STAGE0 0x63c30000 100572b676d7Smrg 100672b676d7Smrg#define RGB_DECAL__RGB_STAGE0 0xc1485000 100772b676d7Smrg#define RGB_DECAL__A_STAGE0 0x63230000 100872b676d7Smrg#define RGBA_DECAL__RGB_STAGE0 0xc534c001 100972b676d7Smrg#define RGBA_DECAL__A_STAGE0 0x63230000 101072b676d7Smrg 101172b676d7Smrg#define A_BLEND_RGB_STAGE0 0xa1485000 101272b676d7Smrg#define A_BLEND_A_STAGE0 0x63c30000 101372b676d7Smrg#define L_BLEND__RGB_STAGE0 0x4530c001 101472b676d7Smrg#define L_BLEND__A_STAGE0 0x63230000 101572b676d7Smrg#define LA_BLEND__RGB_STAGE0 0x4530c001 101672b676d7Smrg#define LA_BLEND__A_STAGE0 0x63c30000 101772b676d7Smrg#define I_BLEND__RGB_STAGE0 0x4530c001 101872b676d7Smrg#define I_BLEND__A_STAGE0 0x46c60001 101972b676d7Smrg#define RGB_BLEND__RGB_STAGE0 0x4530c001 102072b676d7Smrg#define RGB_BLEND__A_STAGE0 0x63230000 102172b676d7Smrg#define RGBA_BLEND__RGB_STAGE0 0x4530c001 102272b676d7Smrg#define RGBA_BLEND__A_STAGE0 0x63c30000 102372b676d7Smrg 102472b676d7Smrg#define RGB_STAGE1 0xa1485000 102572b676d7Smrg#define A_STAGE1 0xa3230000 102672b676d7Smrg 102772b676d7Smrg#define A_REPLACE_RGB_STAGE1 0xa1485000 102872b676d7Smrg#define A_REPLACE_A_STAGE1 0xe3230000 102972b676d7Smrg#define L_REPLACE__RGB_STAGE1 0xe1485000 103072b676d7Smrg#define L_REPLACE__A_STAGE1 0xa3230000 103172b676d7Smrg#define LA_REPLACE__RGB_STAGE1 0xe1485000 103272b676d7Smrg#define LA_REPLACE__A_STAGE1 0xe3230000 103372b676d7Smrg#define I_REPLACE__RGB_STAGE1 0xe1485000 103472b676d7Smrg#define I_REPLACE__A_STAGE1 0xe3230000 103572b676d7Smrg#define RGB_REPLACE__RGB_STAGE1 0xe1485000 103672b676d7Smrg#define RGB_REPLACE__A_STAGE1 0xa3230000 103772b676d7Smrg#define RGBA_REPLACE__RGB_STAGE1 0xe1485000 103872b676d7Smrg#define RGBA_REPLACE__A_STAGE1 0xe3230000 103972b676d7Smrg 104072b676d7Smrg#define A_MODULATE_RGB_STAGE1 0xa1485000 104172b676d7Smrg#define A_MODULATE_A_STAGE1 0xa3e30000 104272b676d7Smrg#define L_MODULATE__RGB_STAGE1 0xa1785000 104372b676d7Smrg#define L_MODULATE__A_STAGE1 0xa3230000 104472b676d7Smrg#define LA_MODULATE__RGB_STAGE1 0xa1785000 104572b676d7Smrg#define LA_MODULATE__A_STAGE1 0xa3e30000 104672b676d7Smrg#define I_MODULATE__RGB_STAGE1 0xa1785000 104772b676d7Smrg#define I_MODULATE__A_STAGE1 0xa3e30000 104872b676d7Smrg#define RGB_MODULATE__RGB_STAGE1 0xa1785000 104972b676d7Smrg#define RGB_MODULATE__A_STAGE1 0xa3230000 105072b676d7Smrg#define RGBA_MODULATE__RGB_STAGE1 0xa1785000 105172b676d7Smrg#define RGBA_MODULATE__A_STAGE1 0xa3e30000 105272b676d7Smrg 105372b676d7Smrg#define RGB_DECAL__RGB_STAGE1 0xe1485000 105472b676d7Smrg#define RGB_DECAL__A_STAGE1 0xa3230000 105572b676d7Smrg#define RGBA_DECAL__RGB_STAGE1 0xe5394001 105672b676d7Smrg#define RGBA_DECAL__A_STAGE1 0xa3230000 105772b676d7Smrg 105872b676d7Smrg#define A_BLEND_RGB_STAGE1 0xa1485000 105972b676d7Smrg#define A_BLEND_A_STAGE1 0xa3e30000 106072b676d7Smrg#define L_BLEND__RGB_STAGE1 0x45394001 106172b676d7Smrg#define L_BLEND__A_STAGE1 0xa3230000 106272b676d7Smrg#define LA_BLEND__RGB_STAGE1 0x45394001 106372b676d7Smrg#define LA_BLEND__A_STAGE1 0xa3e30000 106472b676d7Smrg#define I_BLEND__RGB_STAGE1 0x45394001 106572b676d7Smrg#define I_BLEND__A_STAGE1 0x4aea0001 106672b676d7Smrg#define RGB_BLEND__RGB_STAGE1 0x45394001 106772b676d7Smrg#define RGB_BLEND__A_STAGE1 0xa3230000 106872b676d7Smrg#define RGBA_BLEND__RGB_STAGE1 0x45394001 106972b676d7Smrg#define RGBA_BLEND__A_STAGE1 0xa3e30000 107072b676d7Smrg 107172b676d7Smrg 107272b676d7Smrg#define INIT_6327_CapsEnable 0x00000080 107372b676d7Smrg#define INIT_6327_CapsEnable2 0x00000000 107472b676d7Smrg 107572b676d7Smrg#define INIT_6327_ZSet 0x00030000 107672b676d7Smrg#define INIT_6327_ZMask 0xffffffff 107772b676d7Smrg#define INIT_6327_AlphaSet 0x07000000 107872b676d7Smrg#define INIT_6327_DstSet 0x0C000000 107972b676d7Smrg#define INIT_6327_DstMask 0xffffffff 108072b676d7Smrg#define INIT_6327_FogSet 0x04000000 108172b676d7Smrg#define INIT_6327_BlendMode 0x00000001 108272b676d7Smrg#define INIT_6327_TextureSet 0x00030000 108372b676d7Smrg#define INIT_6327_TextureMip 0x00000000 108472b676d7Smrg#define INIT_6327_TextureColorBlend0 0xC1485000 108572b676d7Smrg#define INIT_6327_TextureAlphaBlend0 0x333A0000 108672b676d7Smrg#define INIT_6327_Texture1Set 0x00030000 108772b676d7Smrg#define INIT_6327_Texture1Set2 0x00000000 108872b676d7Smrg#define INIT_6327_TextureColorBlend1 0x294B4000 108972b676d7Smrg#define INIT_6327_TextureAlphaBlend1 0x333A0000 109072b676d7Smrg#define INIT_6327_ParsingSet 0x00000060 109172b676d7Smrg 109272b676d7Smrg#define SiS_Z_COMP_NEVER 0x00000000 109372b676d7Smrg#define SiS_Z_COMP_S_LT_B 0x00010000 109472b676d7Smrg#define SiS_Z_COMP_S_EQ_B 0x00020000 109572b676d7Smrg#define SiS_Z_COMP_S_LE_B 0x00030000 109672b676d7Smrg#define SiS_Z_COMP_S_GT_B 0x00040000 109772b676d7Smrg#define SiS_Z_COMP_S_NE_B 0x00050000 109872b676d7Smrg#define SiS_Z_COMP_S_GE_B 0x00060000 109972b676d7Smrg#define SiS_Z_COMP_ALWAYS 0x00070000 110072b676d7Smrg 110172b676d7Smrg#define SiS_ALPHA_NEVER 0x00000000 110272b676d7Smrg#define SiS_ALPHA_LESS 0x01000000 110372b676d7Smrg#define SiS_ALPHA_EQUAL 0x02000000 110472b676d7Smrg#define SiS_ALPHA_LEQUAL 0x03000000 110572b676d7Smrg#define SiS_ALPHA_GREATER 0x04000000 110672b676d7Smrg#define SiS_ALPHA_NOTEQUAL 0x05000000 110772b676d7Smrg#define SiS_ALPHA_GEQUAL 0x06000000 110872b676d7Smrg#define SiS_ALPHA_ALWAYS 0x07000000 110972b676d7Smrg 111072b676d7Smrg#define SiS_STENCIL_NEVER 0x00000000 111172b676d7Smrg#define SiS_STENCIL_LESS 0x01000000 111272b676d7Smrg#define SiS_STENCIL_EQUAL 0x02000000 111372b676d7Smrg#define SiS_STENCIL_LEQUAL 0x03000000 111472b676d7Smrg#define SiS_STENCIL_GREATER 0x04000000 111572b676d7Smrg#define SiS_STENCIL_NOTEQUAL 0x05000000 111672b676d7Smrg#define SiS_STENCIL_GEQUAL 0x06000000 111772b676d7Smrg#define SiS_STENCIL_ALWAYS 0x07000000 111872b676d7Smrg 111972b676d7Smrg#define SiS_SFAIL_KEEP 0x00000000 112072b676d7Smrg#define SiS_SFAIL_ZERO 0x00100000 112172b676d7Smrg#define SiS_SFAIL_REPLACE 0x00200000 112272b676d7Smrg#define SiS_SFAIL_INVERT 0x00500000 112372b676d7Smrg#define SiS_SFAIL_INCR 0x00600000 112472b676d7Smrg#define SiS_SFAIL_DECR 0x00700000 112572b676d7Smrg 112672b676d7Smrg#define SiS_SPASS_ZFAIL_KEEP 0x00000000 112772b676d7Smrg#define SiS_SPASS_ZFAIL_ZERO 0x00010000 112872b676d7Smrg#define SiS_SPASS_ZFAIL_REPLACE 0x00020000 112972b676d7Smrg#define SiS_SPASS_ZFAIL_INVERT 0x00050000 113072b676d7Smrg#define SiS_SPASS_ZFAIL_INCR 0x00060000 113172b676d7Smrg#define SiS_SPASS_ZFAIL_DECR 0x00070000 113272b676d7Smrg 113372b676d7Smrg#define SiS_SPASS_ZPASS_KEEP 0x00000000 113472b676d7Smrg#define SiS_SPASS_ZPASS_ZERO 0x00001000 113572b676d7Smrg#define SiS_SPASS_ZPASS_REPLACE 0x00002000 113672b676d7Smrg#define SiS_SPASS_ZPASS_INVERT 0x00005000 113772b676d7Smrg#define SiS_SPASS_ZPASS_INCR 0x00006000 113872b676d7Smrg#define SiS_SPASS_ZPASS_DECR 0x00007000 113972b676d7Smrg 114072b676d7Smrg#define SiS_D_ZERO 0x00000000 114172b676d7Smrg#define SiS_D_ONE 0x00000010 114272b676d7Smrg#define SiS_D_SRC_COLOR 0x00000020 114372b676d7Smrg#define SiS_D_ONE_MINUS_SRC_COLOR 0x00000030 114472b676d7Smrg#define SiS_D_SRC_ALPHA 0x00000040 114572b676d7Smrg#define SiS_D_ONE_MINUS_SRC_ALPHA 0x00000050 114672b676d7Smrg#define SiS_D_DST_ALPHA 0x00000060 114772b676d7Smrg#define SiS_D_ONE_MINUS_DST_ALPHA 0x00000070 114872b676d7Smrg 114972b676d7Smrg#define SiS_S_ZERO 0x00000000 115072b676d7Smrg#define SiS_S_ONE 0x00000001 115172b676d7Smrg#define SiS_S_SRC_ALPHA 0x00000004 115272b676d7Smrg#define SiS_S_ONE_MINUS_SRC_ALPHA 0x00000005 115372b676d7Smrg#define SiS_S_DST_ALPHA 0x00000006 115472b676d7Smrg#define SiS_S_ONE_MINUS_DST_ALPHA 0x00000007 115572b676d7Smrg#define SiS_S_DST_COLOR 0x00000008 115672b676d7Smrg#define SiS_S_ONE_MINUS_DST_COLOR 0x00000009 115772b676d7Smrg#define SiS_S_SRC_ALPHA_SATURATE 0x0000000a 115872b676d7Smrg 115972b676d7Smrg/* Logic Op */ 116072b676d7Smrg#define LOP_CLEAR 0x00000000 116172b676d7Smrg#define LOP_NOR 0x01000000 116272b676d7Smrg#define LOP_AND_INVERTED 0x02000000 116372b676d7Smrg#define LOP_COPY_INVERTED 0x03000000 116472b676d7Smrg#define LOP_AND_REVERSE 0x04000000 116572b676d7Smrg#define LOP_INVERT 0x05000000 116672b676d7Smrg#define LOP_XOR 0x06000000 116772b676d7Smrg#define LOP_NAND 0x07000000 116872b676d7Smrg#define LOP_AND 0x08000000 116972b676d7Smrg#define LOP_EQUIV 0x09000000 117072b676d7Smrg#define LOP_NOOP 0x0a000000 117172b676d7Smrg#define LOP_OR_INVERTED 0x0b000000 117272b676d7Smrg#define LOP_COPY 0x0c000000 117372b676d7Smrg#define LOP_OR_REVERSE 0x0d000000 117472b676d7Smrg#define LOP_OR 0x0e000000 117572b676d7Smrg#define LOP_SET 0x0f000000 117672b676d7Smrg 117772b676d7Smrg#define SiSWait3DCmdQueue(wLen)\ 117872b676d7Smrgdo{ \ 117972b676d7Smrg while ( CmdQueLen < (int)(wLen)) { \ 118072b676d7Smrg CmdQueLen = (SIS_MMIO_IN16(pSiS->IOBase, 0x8240) & pSiS->CmdQueLenMask) - pSiS->CmdQueLenFix; \ 118172b676d7Smrg } \ 118272b676d7Smrg CmdQueLen -= (int)(wLen); \ 118372b676d7Smrg} while(0) 118472b676d7Smrg 1185