summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2010-09-23 00:01:16 -0400
committerMatt Turner <mattst88@gmail.com>2010-09-23 00:31:21 -0400
commit7669aeb2a170c246089043bb4d203c25cbfe5e95 (patch)
tree8c1db027eebd8d3898d025a9c8f8506dbc250b07
parentff602c76781e27f191f4836b4f7eff5df5f7e54c (diff)
Delete DRI/DRM
The DRM kernel component has been gone since at least 2.6.13, and Mesa dropped the gamma driver in February 2010 (79aeafd3ca3680c28f6d47a21a501334844f4475). Signed-off-by: Matt Turner <mattst88@gmail.com>
-rw-r--r--DRI.txt407
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac34
-rw-r--r--src/Makefile.am10
-rw-r--r--src/glint.h33
-rw-r--r--src/glint_common.h64
-rw-r--r--src/glint_dri.c1960
-rw-r--r--src/glint_dri.h123
-rw-r--r--src/glint_dripriv.h296
-rw-r--r--src/glint_driver.c34
-rw-r--r--src/glint_regs.h19
-rw-r--r--src/pm3_accel.c9
-rw-r--r--src/tx_accel.c15
13 files changed, 3 insertions, 3003 deletions
diff --git a/DRI.txt b/DRI.txt
deleted file mode 100644
index 5bac4f3..0000000
--- a/DRI.txt
+++ /dev/null
@@ -1,407 +0,0 @@
-
- GLINT State Transition Strategy
-
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is granted to make and distribute verbatim copies
-of this document provided the copyright notice and this permission
-notice are preserved on all copies.
-
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.2 2000/02/23 04:47:06 martin Exp $
-
-GLINT State Transition Strategy
-
-Direct Rendering requires a coordinated method of state management
-across all drivers accessing this device. This document defines the
-expected behavior of all drivers participating in direct rendering with
-this device.
-
-Currently only the GMX2000 supports direct rendering.
-
-
-Section 1) State Transition Types
-
-The direct rendering document entitled "state-mgmt.txt" gives a device
-independent overview on the different types of state transitions. This
-section gives a more detailed description of GLINT specific hardware state.
-
-No context switch--no state saves or restores will be done for transitions,
-however the device can be busy executing commands from previous accesses to
-the device.
-
-X context switch--the intersection of 2D and 3D state will be saved
-and restored. This is the state marked as DDX/3DClient in Appendix A.
-The device will be synced and idle after this switch.
-
-3D context switch--all 3D state will be saved and restored. 3D state is
-defined as all registered owned by the 3DClient driver. See Appendix A
-for more details. The device will be synced and idle after this switch.
-
-The registers owned by the DRM kernel module and submodules are not
-managed by context switches.
-
-
-Section 2) VT Switching and DGA Access
-
-VT Switching away from the X Server or client access to the device
-framebuffer via DGA require the device to be locked away from 3D direct
-rendering accesses. The X Server will hold the lock on behalf of these
-services until access is restored.
-
-
-Section 3) Potential Optimizations
-
-Lighten the number of registers required for context switches by using a
-mechanism to determine whether stipple or pattern registers need to be
-saved/restored. This optimization has not been done for the initial
-direct rendering infrastructure sample implementation.
-
-
-Appendix A: GMX2000 Register Ownership
-
-driver column contains:
- DDX - DDX driver manages register
- DRM - DRM or DRM subdriver manages register
- 3DClient - 3D Client Driver manges register
- DDX/3DClient, DDX/DRM, 3DClient/DRM - register access is shared
-
-if the RO (read only) column is marked with a *, then no writes are
-permitted to this register, and thus no drivers own it.
-
-primary and secondary columns contain the default values after
-initialization. primary is the master rasterizer, secondary is the
-slave rasterizer.
-
-
-Name offset primary secondary RO driver
-------------------------------------------------------------------------------
-ResetStatus o=0000 0x00000000 0x00000000 DDX/DRM
-IntEnable o=0008 0x00000000 0x00000000 DRM
-IntFlags o=0010 0x00000000 0x00000018 DRM
-InFIFOSpace o=0018 0x00000000 0x00000021 *
-OutFIFOWords o=0020 0x00000000 0x00000000 *
-DMAAddress o=0028 0x00000000 0x00000000 DRM
-DMACount o=0030 0x00000000 0x00000000 DRM
-ErrorFlags o=0038 0x00000000 0x00000002 DRM
-VClkCtl o=0040 0x00000000 0x00000000 DDX
-TestRegister o=0048 0x00000000 0x00000000 DDX
-Aperture0 o=0050 0x00000000 0x00000000 DDX
-Aperture1 o=0058 0x00000000 0x00000000 DDX
-DMAControl o=0060 0x00000000 0x00000000 DRM
-FIFODis o=0068 0x00000000 0x00000001 DDX
-LBMemoryCtl o=1000 0x00000000 0x770883ff DDX
-LBMemoryEDO o=1008 0x00000000 0x77080000 DDX
-FBMemoryCtl o=1800 0x00000000 0x63c00800 DDX
-FBModeSel o=1808 0x00000000 0x00000907 DDX
-FBGCWrMask o=1810 0x00000000 0xffffffff *
-FBGCColorLower o=1818 0x00000000 0x00828282 *
-FBTXMemCtl o=1820 0x00000000 0x00000002 DDX
-FBWrMask o=1830 0x00000000 0xffffffff *
-FBGCColorUpper o=1838 0x00000000 0x00828282 *
-VTGHLimit o=3000 0x00000000 0x000000c8 DDX
-VTGHSyncStart o=3008 0x00ffffff 0x00000006 DDX
-VTGHSyncEnd o=3010 0x00000000 0x00000016 DDX
-VTGHBlankEnd o=3018 0x00ffffff 0x00000028 DDX
-VTGVLimit o=3020 0x00000000 0x000001fb DDX
-VTGVSyncStart o=3028 0x00ffffff 0x00000004 DDX
-VTGVSyncEnd o=3030 0x00000000 0x0000000a DDX
-VTGVBlankEnd o=3038 0x00ffffff 0x0000001b DDX
-VTGHGateStart o=3040 0x00000000 0x00000027 DDX
-VTGHGateEnd o=3048 0x00ffffff 0x000000c7 DDX
-VTGVGateStart o=3050 0x00000000 0x0000001a DDX
-VTGVGateEnd o=3058 0x00ffffff 0x0000001b DDX
-VTGPolarity o=3060 0x00000000 0x000000ba DDX
-VTGFrameRowAddr o=3068 0x00ffffff 0x00000000 DDX
-VTGVLineNumber o=3070 0x00000000 0x00000079 DDX
-VTGSerialClk o=3078 0x00ffffff 0x00000002 DDX
-VTGModeCtl o=3080 0x00000000 0x00000000 DDX
-GInFIFOSpace o=0018 0x00000000 *
-GDMAAddress o=0028 0x00000000 DRM
-GDMACount o=0030 0x00000000 DRM
-GDMAControl o=0060 0x00000000 DRM
-GOutDMA o=0080 0x00000000 DRM
-GOutDMACount o=0088 0x00000000 DRM
-GResetStatus o=0800 0x00000000 DRM
-GIntEnable o=0808 0x00000000 DRM
-GIntFlags o=0810 0x00000000 DRM
-GErrorFlags o=0838 0x00000000 DRM
-GTestRegister o=0848 0x00000000 DDX
-GFIFODis o=0868 0x00000000 DDX
-GChipConfig o=0870 0x00000000 DDX
-GCSRAperture o=0878 0x00000000 DDX
-GPageTableAddr o=0c00 0x00000000 DRM
-GPageTableLength o=0c08 0x00000000 DRM
-GDelayTimer o=0c38 0x00000000 DRM
-GCommandMode o=0c40 0x00000000 DRM
-GCommandIntEnable o=0c48 0x00000000 DRM
-GCommandIntFlags o=0c50 0x00000000 DRM
-GCommandErrorFlags o=0c58 0x00000000 DRM
-GCommandStatus o=0c60 0x00000000 *
-GCommandFaultingAddr o=0c68 0x00000000 *
-GVertexFaultingAddr o=0c70 0x00000000 *
-GWriteFaultingAddr o=0c88 0x00000000 *
-GFeedbackSelectCount o=0c98 0x00000000 *
-GGammaProcessorMode o=0cb8 0x00000000 DDX
-GVGAShadow o=0d00 0x00000000 DDX
-GMultGLINTAperture o=0d08 0x00000000 DDX
-GMultGLINT1 o=0d10 0x00000000 DDX
-GMultGLINT2 o=0d18 0x00000000 DDX
-StartXDom t=0000 undefined undefined DDX/3DClient
-dXDom t=0001 undefined undefined DDX/3DClient
-StartXSub t=0002 undefined undefined DDX/3DClient
-dXSub t=0003 undefined undefined DDX/3DClient
-StartY t=0004 undefined undefined DDX/3DClient
-dY t=0005 undefined undefined DDX/3DClient
-GLINTCount t=0006 undefined undefined DDX/3DClient
-PointTable0 t=0010 undefined undefined DDX/3DClient
-PointTable1 t=0011 undefined undefined DDX/3DClient
-PointTable2 t=0012 undefined undefined DDX/3DClient
-PointTable3 t=0013 undefined undefined DDX/3DClient
-RasterizerMode t=0014 undefined undefined DDX/3DClient
-YLimits t=0015 undefined undefined DDX/3DClient
-ScanLineOwnership t=0016 0x00000001 0x00000005 DDX
-PixelSize t=0018 undefined undefined DDX/3DClient
-ScissorMode t=0030 undefined undefined DDX/3DClient
-ScissorMinXY t=0031 undefined undefined DDX/3DClient
-ScissorMaxXY t=0032 undefined undefined DDX/3DClient
-ScreenSize t=0033 undefined undefined DDX/3DClient
-AreaStippleMode t=0034 undefined undefined DDX/3DClient
-LineStippleMode t=0035 undefined undefined DDX/3DClient
-LoadLineStippleCounters t=0036 undefined undefined DDX/3DClient
-WindowOrigin t=0039 undefined undefined DDX/3DClient
-AreaStipplePattern0 t=0040 undefined undefined DDX/3DClient
-AreaStipplePattern1 t=0041 undefined undefined DDX/3DClient
-AreaStipplePattern2 t=0042 undefined undefined DDX/3DClient
-AreaStipplePattern3 t=0043 undefined undefined DDX/3DClient
-AreaStipplePattern4 t=0044 undefined undefined DDX/3DClient
-AreaStipplePattern5 t=0045 undefined undefined DDX/3DClient
-AreaStipplePattern6 t=0046 undefined undefined DDX/3DClient
-AreaStipplePattern7 t=0047 undefined undefined DDX/3DClient
-AreaStipplePattern8 t=0048 undefined undefined DDX/3DClient
-AreaStipplePattern9 t=0049 undefined undefined DDX/3DClient
-AreaStipplePattern10 t=004a undefined undefined DDX/3DClient
-AreaStipplePattern11 t=004b undefined undefined DDX/3DClient
-AreaStipplePattern12 t=004c undefined undefined DDX/3DClient
-AreaStipplePattern13 t=004d undefined undefined DDX/3DClient
-AreaStipplePattern14 t=004e undefined undefined DDX/3DClient
-AreaStipplePattern15 t=004f undefined undefined DDX/3DClient
-AreaStipplePattern16 t=0050 undefined undefined DDX/3DClient
-AreaStipplePattern17 t=0051 undefined undefined DDX/3DClient
-AreaStipplePattern18 t=0052 undefined undefined DDX/3DClient
-AreaStipplePattern19 t=0053 undefined undefined DDX/3DClient
-AreaStipplePattern20 t=0054 undefined undefined DDX/3DClient
-AreaStipplePattern21 t=0055 undefined undefined DDX/3DClient
-AreaStipplePattern22 t=0056 undefined undefined DDX/3DClient
-AreaStipplePattern23 t=0057 undefined undefined DDX/3DClient
-AreaStipplePattern24 t=0058 undefined undefined DDX/3DClient
-AreaStipplePattern25 t=0059 undefined undefined DDX/3DClient
-AreaStipplePattern26 t=005a undefined undefined DDX/3DClient
-AreaStipplePattern27 t=005b undefined undefined DDX/3DClient
-AreaStipplePattern28 t=005c undefined undefined DDX/3DClient
-AreaStipplePattern29 t=005d undefined undefined DDX/3DClient
-AreaStipplePattern30 t=005e undefined undefined DDX/3DClient
-AreaStipplePattern31 t=005f undefined undefined DDX/3DClient
-RouterMode t=0108 undefined undefined DDX/3DClient
-TextureAddressMode t=0070 undefined undefined DDX/3DClient
-SStart t=0071 undefined undefined 3DClient
-dSdx t=0072 undefined undefined 3DClient
-dSdyDom t=0073 undefined undefined 3DClient
-TStart t=0074 undefined undefined 3DClient
-dTdx t=0075 undefined undefined 3DClient
-dTdyDom t=0076 undefined undefined 3DClient
-QStart t=0077 undefined undefined 3DClient
-dQdx t=0078 undefined undefined 3DClient
-dQdyDom t=0079 undefined undefined 3DClient
-LOD t=007a undefined undefined 3DClient
-dSdy t=007b undefined undefined 3DClient
-dTdy t=007c undefined undefined 3DClient
-dQdy t=007d undefined undefined 3DClient
-TextureReadMode t=0090 undefined undefined DDX/3DClient
-TextureFormat t=0091 undefined undefined 3DClient
-TextureCacheControl t=0092 undefined undefined 3DClient
-GLINTBorderColor t=0095 undefined undefined 3DClient
-TexelLUTIndex t=0098 undefined undefined 3DClient
-TexelLUTData t=0099 undefined undefined 3DClient
-TexelLUTAddress t=009a undefined undefined 3DClient
-TexelLUTTransfer t=009b undefined undefined 3DClient
-TextureFilterMode t=009c undefined undefined 3DClient
-TextureChromaUpper t=009d undefined undefined 3DClient
-TextureChromaLower t=009e undefined undefined 3DClient
-TxBaseAddr0 t=00a0 undefined undefined 3DClient
-TxBaseAddr1 t=00a1 undefined undefined 3DClient
-TxBaseAddr2 t=00a2 undefined undefined 3DClient
-TxBaseAddr3 t=00a3 undefined undefined 3DClient
-TxBaseAddr4 t=00a4 undefined undefined 3DClient
-TxBaseAddr5 t=00a5 undefined undefined 3DClient
-TxBaseAddr6 t=00a6 undefined undefined 3DClient
-TxBaseAddr7 t=00a7 undefined undefined 3DClient
-TxBaseAddr8 t=00a8 undefined undefined 3DClient
-TxBaseAddr9 t=00a9 undefined undefined 3DClient
-TxBaseAddr10 t=00aa undefined undefined 3DClient
-TxBaseAddr11 t=00ab undefined undefined 3DClient
-TexelLUT0 t=01d0 undefined undefined 3DClient
-TexelLUT1 t=01d1 undefined undefined 3DClient
-TexelLUT2 t=01d2 undefined undefined 3DClient
-TexelLUT3 t=01d3 undefined undefined 3DClient
-TexelLUT4 t=01d4 undefined undefined 3DClient
-TexelLUT5 t=01d5 undefined undefined 3DClient
-TexelLUT6 t=01d6 undefined undefined 3DClient
-TexelLUT7 t=01d7 undefined undefined 3DClient
-TexelLUT8 t=01d8 undefined undefined 3DClient
-TexelLUT9 t=01d9 undefined undefined 3DClient
-TexelLUT10 t=01da undefined undefined 3DClient
-TexelLUT11 t=01db undefined undefined 3DClient
-TexelLUT12 t=01dc undefined undefined 3DClient
-TexelLUT13 t=01dd undefined undefined 3DClient
-TexelLUT14 t=01de undefined undefined 3DClient
-TexelLUT15 t=01df undefined undefined 3DClient
-Texel0 t=00c0 undefined undefined 3DClient
-Texel1 t=00c1 undefined undefined 3DClient
-Texel2 t=00c2 undefined undefined 3DClient
-Texel3 t=00c3 undefined undefined 3DClient
-Texel4 t=00c4 undefined undefined 3DClient
-Texel5 t=00c5 undefined undefined 3DClient
-Texel6 t=00c6 undefined undefined 3DClient
-Texel7 t=00c7 undefined undefined 3DClient
-Interp0 t=00c8 undefined undefined 3DClient
-Interp1 t=00c9 undefined undefined 3DClient
-Interp2 t=00ca undefined undefined 3DClient
-Interp3 t=00cb undefined undefined 3DClient
-Interp4 t=00cc undefined undefined 3DClient
-TextureFilter t=00cd undefined undefined 3DClient
-TextureColorMode t=00d0 undefined undefined DDX/3DClient
-TextureEnvColor t=00d1 undefined undefined 3DClient
-FogMode t=00d2 undefined undefined DDX/3DClient
-FogColor t=00d3 undefined undefined 3DClient
-FStart t=00d4 undefined undefined 3DClient
-dFdx t=00d5 undefined undefined 3DClient
-dFdyDom t=00d6 undefined undefined 3DClient
-KsStart t=00d9 undefined undefined 3DClient
-dKsdx t=00da undefined undefined 3DClient
-dKsdyDom t=00db undefined undefined 3DClient
-KdStart t=00dc undefined undefined 3DClient
-dKdStart t=00dd undefined undefined 3DClient
-dKddyDom t=00de undefined undefined 3DClient
-RStart t=00f0 undefined undefined 3DClient
-dRdx t=00f1 undefined undefined 3DClient
-dRdyDom t=00f2 undefined undefined 3DClient
-GStart t=00f3 undefined undefined 3DClient
-dGdx t=00f4 undefined undefined 3DClient
-dGdyDom t=00f5 undefined undefined 3DClient
-BStart t=00f6 undefined undefined 3DClient
-dBdx t=00f7 undefined undefined 3DClient
-dBdyDom t=00f8 undefined undefined 3DClient
-AStart t=00f9 undefined undefined 3DClient
-dAdx t=00fa undefined undefined 3DClient
-dAdyDom t=00fb undefined undefined 3DClient
-ColorDDAMode t=00fc undefined undefined DDX/3DClient
-ConstantColor t=00fd undefined undefined 3DClient
-GLINTColor t=00fe undefined undefined DDX/3DClient
-AlphaTestMode t=0100 undefined undefined DDX/3DClient
-AntialiasMode t=0101 undefined undefined DDX/3DClient
-AlphaBlendMode t=0102 undefined undefined DDX/3DClient
-ChromaUpper t=01e1 undefined undefined 3DClient
-ChromaLower t=01e2 undefined undefined 3DClient
-ChromaTestMode t=01e3 undefined undefined 3DClient
-DitherMode t=0103 undefined undefined DDX/3DClient
-FBSoftwareWriteMask t=0104 undefined undefined DDX/3DClient
-LogicalOpMode t=0105 undefined undefined DDX/3DClient
-FBWriteData t=0106 undefined undefined DDX/3DClient
-LBReadMode t=0110 undefined undefined DDX/3DClient
- Partial Product bit 0-5 need by 3DClient
-LBReadFormat t=0111 set by DDX set by DDX DDX
-LBSourceOffset t=0112 undefined undefined DDX/3DClient
-LBStencil t=0115 undefined undefined *
-LBDepth t=0116 undefined undefined *
-LBWindowBase t=0117 undefined undefined DDX/3DClient
-LBWriteMode t=0118 undefined undefined DDX/3DClient
-LBWriteFormat t=0119 set by DDX set by DDX DDX
-TextureDownloadOffset t=011e undefined undefined DDX/3DClient
-LBWindowOffset t=011f undefined undefined DDX/3DClient
-GLINTWindow t=0130 undefined undefined DDX/3DClient
-StencilMode t=0131 undefined undefined DDX/3DClient
-StencilData t=0132 undefined undefined 3DClient
-GLINTStencil t=0133 undefined undefined 3DClient
-DepthMode t=0134 undefined undefined DDX/3DClient
-GLINTDepth t=0135 undefined undefined DDX/3DClient
-ZStartU t=0136 undefined undefined 3DClient
-ZStartL t=0137 undefined undefined 3DClient
-dZdxU t=0138 undefined undefined 3DClient
-dZdxL t=0139 undefined undefined 3DClient
-dZdyDomU t=013a undefined undefined 3DClient
-dZdyDomL t=013b undefined undefined 3DClient
-FastClearDepth t=013c undefined undefined 3DClient
-FBReadMode t=0150 set by DDX set by DDX DDX/3DClient
- Partial Product bit 0-5 need by 3DClient
-LBReadFormat t=0111 set by DDX set by DDX DDX
-FBSourceOffset t=0151 undefined undefined DDX/3DClient
-FBPixelOffset t=0152 undefined undefined DDX/3DClient
-FBWindowBase t=0156 undefined undefined DDX/3DClient
-FBWriteMode t=0157 undefined undefined DDX/3DClient
-FBHardwareWriteMask t=0158 undefined undefined DDX/3DClient
-FBBlockColor t=0159 undefined undefined DDX/3DClient
-PatternRamMode t=015f undefined undefined DDX/3DClient
-PatternRamData0 t=0160 undefined undefined DDX/3DClient
-PatternRamData1 t=0161 undefined undefined DDX/3DClient
-PatternRamData2 t=0162 undefined undefined DDX/3DClient
-PatternRamData3 t=0163 undefined undefined DDX/3DClient
-PatternRamData4 t=0164 undefined undefined DDX/3DClient
-PatternRamData5 t=0165 undefined undefined DDX/3DClient
-PatternRamData6 t=0166 undefined undefined DDX/3DClient
-PatternRamData7 t=0167 undefined undefined DDX/3DClient
-PatternRamData8 t=0168 undefined undefined DDX/3DClient
-PatternRamData9 t=0169 undefined undefined DDX/3DClient
-PatternRamData10 t=016a undefined undefined DDX/3DClient
-PatternRamData11 t=016b undefined undefined DDX/3DClient
-PatternRamData12 t=016c undefined undefined DDX/3DClient
-PatternRamData13 t=016d undefined undefined DDX/3DClient
-PatternRamData14 t=016e undefined undefined DDX/3DClient
-PatternRamData15 t=016f undefined undefined DDX/3DClient
-PatternRamData16 t=0170 undefined undefined DDX/3DClient
-PatternRamData17 t=0171 undefined undefined DDX/3DClient
-PatternRamData18 t=0172 undefined undefined DDX/3DClient
-PatternRamData19 t=0173 undefined undefined DDX/3DClient
-PatternRamData20 t=0174 undefined undefined DDX/3DClient
-PatternRamData21 t=0175 undefined undefined DDX/3DClient
-PatternRamData22 t=0176 undefined undefined DDX/3DClient
-PatternRamData23 t=0177 undefined undefined DDX/3DClient
-PatternRamData24 t=0178 undefined undefined DDX/3DClient
-PatternRamData25 t=0179 undefined undefined DDX/3DClient
-PatternRamData26 t=017a undefined undefined DDX/3DClient
-PatternRamData27 t=017b undefined undefined DDX/3DClient
-PatternRamData28 t=017c undefined undefined DDX/3DClient
-PatternRamData29 t=017d undefined undefined DDX/3DClient
-PatternRamData30 t=017e undefined undefined DDX/3DClient
-PatternRamData31 t=017f undefined undefined DDX/3DClient
-FBBlockColorU t=018d undefined undefined DDX/3DClient
-FBBlockColorL t=018e undefined undefined DDX/3DClient
-FilterMode t=0180 undefined undefined DDX/3DClient
-StatisticMode t=0181 undefined undefined DDX/3DClient
-MinRegion t=0182 undefined undefined 3DClient
-MaxRegion t=0183 undefined undefined 3DClient
-KsRStart t=0190 undefined undefined 3DClient
-dKsRdx t=0191 undefined undefined 3DClient
-dKsRdyDom t=0192 undefined undefined 3DClient
-KsGStart t=0193 undefined undefined 3DClient
-dKsGdx t=0194 undefined undefined 3DClient
-dKsGdyDom t=0195 undefined undefined 3DClient
-KsBStart t=0196 undefined undefined 3DClient
-dKsBdx t=0197 undefined undefined 3DClient
-dKsBdyDom t=0198 undefined undefined 3DClient
-KdRStart t=01a0 undefined undefined 3DClient
-dKdRdx t=01a1 undefined undefined 3DClient
-dKdRdyDom t=01a2 undefined undefined 3DClient
-KdGStart t=01a3 undefined undefined 3DClient
-dKdGdx t=01a4 undefined undefined 3DClient
-dKdGdyDom t=01a5 undefined undefined 3DClient
-KdBStart t=01a6 undefined undefined 3DClient
-dKdBdx t=01a7 undefined undefined 3DClient
-dKdBdyDom t=01a8 undefined undefined 3DClient
-
-All Gamma State is undefined and owned by 3DClient driver except for:
-
-BroadcastMask o=026f 0x00000003 DDX/3DClient
-
-All TI RAMDAC State is owned by DDX driver.
diff --git a/Makefile.am b/Makefile.am
index c3bee20..4f5d5fc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -21,7 +21,7 @@
SUBDIRS = src man
MAINTAINERCLEANFILES = ChangeLog INSTALL
-EXTRA_DIST = DRI.txt README.pm3
+EXTRA_DIST = README.pm3
.PHONY: ChangeLog INSTALL
diff --git a/configure.ac b/configure.ac
index 640d20f..acef5c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -53,11 +53,6 @@ AC_ARG_WITH(xorg-module-dir,
[moduledir="$withval"],
[moduledir="$libdir/xorg/modules"])
-AC_ARG_ENABLE(dri, AS_HELP_STRING([--disable-dri],
- [Disable DRI support [[default=auto]]]),
- [DRI="$enableval"],
- [DRI=auto])
-
# Store the list of server defined optional extensions in REQUIRED_MODULES
XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
XORG_DRIVER_CHECK_EXT(XFreeXDGA, xf86dgaproto)
@@ -79,35 +74,6 @@ AC_CHECK_DECL(XSERVER_LIBPCIACCESS,
AC_CHECK_HEADER(cfb8_32.h,[AC_DEFINE(HAVE_CFB8_32, 1, [Have cfb8_32 support])],[])
CPPFLAGS="$SAVE_CPPFLAGS"
-
-if test "$DRI" != no; then
- AC_CHECK_FILE([${sdkdir}/dri.h],
- [have_dri_h="yes"], [have_dri_h="no"])
- AC_CHECK_FILE([${sdkdir}/sarea.h],
- [have_sarea_h="yes"], [have_sarea_h="no"])
- AC_CHECK_FILE([${sdkdir}/dristruct.h],
- [have_dristruct_h="yes"], [have_dristruct_h="no"])
-fi
-
-AC_MSG_CHECKING([whether to include DRI support])
-if test x$DRI = xauto; then
- if test "$have_dri_h" = yes -a \
- "$have_sarea_h" = yes -a \
- "$have_dristruct_h" = yes; then
- DRI="yes"
- else
- DRI="no"
- fi
-fi
-AC_MSG_RESULT([$DRI])
-
-AM_CONDITIONAL(DRI, test x$DRI = xyes)
-if test "$DRI" = yes; then
- PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
- AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
- AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
-fi
-
if test "x$XSERVER_LIBPCIACCESS" = xyes; then
PKG_CHECK_MODULES([PCIACCESS], [pciaccess >= 0.8.0])
XORG_CFLAGS="$XORG_CFLAGS $PCIACCESS_CFLAGS"
diff --git a/src/Makefile.am b/src/Makefile.am
index 1e4efa8..9e60e48 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -23,13 +23,12 @@
# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
# _ladir passes a dummy rpath to libtool so the thing will actually link
# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
-AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@ -DPPC_MMIO_IS_BE -DSPARC_MMIO_IS_BE
+AM_CFLAGS = @XORG_CFLAGS@ -DPPC_MMIO_IS_BE -DSPARC_MMIO_IS_BE
glint_drv_la_LTLIBRARIES = glint_drv.la
glint_drv_la_LDFLAGS = -module -avoid-version
glint_drv_ladir = @moduledir@/drivers
glint_drv_la_SOURCES = \
- glint_common.h \
glint_dga.c \
glint_driver.c \
glint.h \
@@ -53,10 +52,3 @@ glint_drv_la_SOURCES = \
TIramdac.c \
tx_accel.c \
tx_dac.c
-
-if DRI
-glint_drv_la_SOURCES += \
- glint_dri.c \
- glint_dri.h \
- glint_dripriv.h
-endif
diff --git a/src/glint.h b/src/glint.h
index 9115b92..b3949b2 100644
--- a/src/glint.h
+++ b/src/glint.h
@@ -42,14 +42,6 @@
#include "xf86i2c.h"
#include "xf86DDC.h"
#include "xf86xv.h"
-#ifdef XF86DRI_DEVEL
-#include "xf86drm.h"
-#include "sarea.h"
-#define _XF86DRI_SERVER_
-#include "dri.h"
-#include "GL/glxint.h"
-#include "glint_dripriv.h"
-#endif
#define GLINT_MAX_MULTI_DEVICES 2
@@ -174,21 +166,6 @@ typedef struct {
void (*VideoTimerCallback)(ScrnInfoPtr, Time);
XF86VideoAdaptorPtr adaptor;
int videoKey;
-#ifdef XF86DRI_DEVEL
- Bool directRenderingEnabled;
- Bool PCIMode;
- DRIInfoPtr pDRIInfo;
- int drmSubFD;
- drmBufMapPtr drmBufs; /* Map of DMA buffers */
- drmRegion agp;
- drmRegion buffers;
- int numVisualConfigs;
- __GLXvisualConfig* pVisualConfigs;
- GLINTConfigPrivPtr pVisualConfigsPriv;
- GLINTRegRec DRContextRegs;
- int DRIctx;
- unsigned char *buf2D;
-#endif
OptionInfoPtr Options;
Bool PM3_UsingSGRAM;
} GLINTRec, *GLINTPtr;
@@ -346,16 +323,6 @@ extern int partprodPermedia[];
Bool GLINTDGAInit(ScreenPtr pScreen);
-Bool GLINTDRIScreenInit(ScreenPtr pScreen);
-Bool GLINTDRIFinishScreenInit(ScreenPtr pScreen);
-void GLINTDRICloseScreen(ScreenPtr pScreen);
-Bool GLINTInitGLXVisuals(ScreenPtr pScreen);
-void GLINTDRIWakeupHandler(ScreenPtr pScreen);
-void GLINTDRIBlockHandler(ScreenPtr pScreen);
-void GLINTDRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index);
-void GLINTDRIMoveBuffers(WindowPtr pWin, DDXPointRec ptOldOrg,
- RegionPtr prgnSrc, CARD32 index);
-
void GLINT_VERB_WRITE_REG(GLINTPtr, CARD32 v, int r, char *file, int line);
CARD32 GLINT_VERB_READ_REG(GLINTPtr, CARD32 r, char *file, int line);
diff --git a/src/glint_common.h b/src/glint_common.h
deleted file mode 100644
index ec601f9..0000000
--- a/src/glint_common.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* glint_common.h -- common header definitions for Gamma 2D/3D/DRM suite
- *
- * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * Converted to common header format:
- * Jens Owen <jens@tungstengraphics.com>
- *
- * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_common.h,v 1.2 2003/04/03 16:52:18 dawes Exp $
- *
- */
-
-#ifndef _GLINT_COMMON_H_
-#define _GLINT_COMMON_H_
-
-/*
- * WARNING: If you change any of these defines, make sure to change
- * the kernel include file as well (gamma_drm.h)
- */
-
-/* Driver specific DRM command indices
- * NOTE: these are not OS specific, but they are driver specific
- */
-#define DRM_GAMMA_INIT 0x00
-#define DRM_GAMMA_COPY 0x01
-
-typedef struct {
- enum {
- GAMMA_INIT_DMA = 0x01,
- GAMMA_CLEANUP_DMA = 0x02
- } func;
- int sarea_priv_offset;
- int pcimode;
- unsigned int mmio0;
- unsigned int mmio1;
- unsigned int mmio2;
- unsigned int mmio3;
- unsigned int buffers_offset;
- int num_rast;
-} drmGAMMAInit;
-
-extern int drmGAMMAInitDMA( int fd, drmGAMMAInit *info );
-extern int drmGAMMACleanupDMA( int fd );
-
-#endif
diff --git a/src/glint_dri.c b/src/glint_dri.c
deleted file mode 100644
index 4e4e71d..0000000
--- a/src/glint_dri.c
+++ /dev/null
@@ -1,1960 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c,v 1.37 2003/11/10 18:22:20 tsi Exp $ */
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-/*
- * Authors:
- * Jens Owen <jens@tungstengraphics.com>
- * Alan Hourihane <alanh@fairlite.demon.co.uk>
- *
- */
-
-#include "xf86.h"
-#include "xf86_OSproc.h"
-#include "xf86Priv.h"
-
-#include "xf86PciInfo.h"
-#include "xf86Pci.h"
-#include "fb.h"
-
-#include "miline.h"
-
-#include "GL/glxtokens.h"
-
-#include "glint_regs.h"
-#include "glint.h"
-#include "glint_dri.h"
-
-static char GLINTKernelDriverName[] = "gamma";
-static char GLINTClientDriverName[] = "gamma";
-
-static void GLINTDestroyContext(ScreenPtr pScreen, drm_context_t hwContext,
- DRIContextType contextStore);
-
-
-static unsigned int mylog2( unsigned int n )
-{
- unsigned int log2 = 1;
- while ( n > 1 ) n >>= 1, log2++;
- return log2;
-}
-
-static int
-GLINTDRIControlInit(int drmSubFD, int irq)
-{
- int retcode;
-
- if ((retcode = drmCtlInstHandler(drmSubFD, irq))) return 1;
- return 0;
-}
-
-static Bool
-GLINTInitVisualConfigs(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- int numConfigs = 0;
- __GLXvisualConfig *pConfigs = NULL;
- GLINTConfigPrivPtr pGlintConfigs = NULL;
- GLINTConfigPrivPtr *pGlintConfigPtrs = NULL;
- int db, depth, stencil, accum;
- int i;
-
- switch ( pScrn->depth ) {
- case 15:
- numConfigs = 8;
-
- pConfigs = (__GLXvisualConfig*)xnfcalloc( sizeof(__GLXvisualConfig),
- numConfigs );
- if ( !pConfigs ) {
- return FALSE;
- }
-
- pGlintConfigs = (GLINTConfigPrivPtr)xnfcalloc( sizeof(GLINTConfigPrivRec),
- numConfigs );
- if ( !pGlintConfigs ) {
- free(pConfigs);
- return FALSE;
- }
-
- pGlintConfigPtrs = (GLINTConfigPrivPtr*)xnfcalloc( sizeof(GLINTConfigPrivPtr),
- numConfigs );
- if ( !pGlintConfigPtrs ) {
- free(pConfigs);
- free(pGlintConfigs);
- return FALSE;
- }
-
- for ( i = 0 ; i < numConfigs ; i++ ) {
- pGlintConfigPtrs[i] = &pGlintConfigs[i];
- }
-
- i = 0;
- depth = 1;
- for ( accum = 0 ; accum <= 1 ; accum++ ) {
- for ( stencil = 0 ; stencil <= 1 ; stencil++ ) {
- for ( db = 1 ; db >= 0 ; db-- ) {
- pConfigs[i].vid = -1;
- pConfigs[i].class = -1;
- pConfigs[i].rgba = TRUE;
- pConfigs[i].redSize = 5;
- pConfigs[i].greenSize = 5;
- pConfigs[i].blueSize = 5;
- pConfigs[i].alphaSize = 1;
- pConfigs[i].redMask = 0x00007C00;
- pConfigs[i].greenMask = 0x000003E0;
- pConfigs[i].blueMask = 0x0000001F;
- pConfigs[i].alphaMask = 0x00008000;
- if ( accum ) {
- pConfigs[i].accumRedSize = 16;
- pConfigs[i].accumGreenSize = 16;
- pConfigs[i].accumBlueSize = 16;
- pConfigs[i].accumAlphaSize = 0;
- } else {
- pConfigs[i].accumRedSize = 0;
- pConfigs[i].accumGreenSize = 0;
- pConfigs[i].accumBlueSize = 0;
- pConfigs[i].accumAlphaSize = 0;
- }
- if ( db ) {
- pConfigs[i].doubleBuffer = TRUE;
- } else {
- pConfigs[i].doubleBuffer = FALSE;
- }
- pConfigs[i].stereo = FALSE;
- pConfigs[i].bufferSize = 20;
- if ( depth ) {
- pConfigs[i].depthSize = 16;
- } else {
- pConfigs[i].depthSize = 0;
- }
- if ( stencil ) {
- pConfigs[i].stencilSize = 8;
- } else {
- pConfigs[i].stencilSize = 0;
- }
- pConfigs[i].auxBuffers = 0;
- pConfigs[i].level = 0;
- if ( accum || stencil ) {
- pConfigs[i].visualRating = GLX_SLOW_VISUAL_EXT;
- } else {
- pConfigs[i].visualRating = GLX_NONE_EXT;
- }
- pConfigs[i].transparentPixel = GLX_NONE;
- pConfigs[i].transparentRed = 0;
- pConfigs[i].transparentGreen = 0;
- pConfigs[i].transparentBlue = 0;
- pConfigs[i].transparentAlpha = 0;
- pConfigs[i].transparentIndex = 0;
- i++;
- }
- }
- }
- if ( i != numConfigs ) {
- xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
- "[drm] Incorrect initialization of visuals\n" );
- return FALSE;
- }
- break;
-
- case 24:
- numConfigs = 8;
-
- pConfigs = (__GLXvisualConfig*)xnfcalloc( sizeof(__GLXvisualConfig),
- numConfigs );
- if ( !pConfigs ) {
- return FALSE;
- }
-
- pGlintConfigs = (GLINTConfigPrivPtr)xnfcalloc( sizeof(GLINTConfigPrivRec),
- numConfigs );
- if ( !pGlintConfigs ) {
- free(pConfigs);
- return FALSE;
- }
-
- pGlintConfigPtrs = (GLINTConfigPrivPtr*)xnfcalloc( sizeof(GLINTConfigPrivPtr),
- numConfigs );
- if ( !pGlintConfigPtrs ) {
- free(pConfigs);
- free(pGlintConfigs);
- return FALSE;
- }
-
- for ( i = 0 ; i < numConfigs ; i++ ) {
- pGlintConfigPtrs[i] = &pGlintConfigs[i];
- }
-
- i = 0;
- for ( accum = 0 ; accum <= 1 ; accum++ ) {
- for ( depth = 0 ; depth <= 1 ; depth++ ) { /* and stencil */
- for ( db = 1 ; db >= 0 ; db-- ) {
- pConfigs[i].vid = -1;
- pConfigs[i].class = -1;
- pConfigs[i].rgba = TRUE;
- pConfigs[i].redSize = 8;
- pConfigs[i].greenSize = 8;
- pConfigs[i].blueSize = 8;
- pConfigs[i].alphaSize = 0;
- pConfigs[i].redMask = 0x00FF0000;
- pConfigs[i].greenMask = 0x0000FF00;
- pConfigs[i].blueMask = 0x000000FF;
- pConfigs[i].alphaMask = 0;
- if ( accum ) {
- pConfigs[i].accumRedSize = 16;
- pConfigs[i].accumGreenSize = 16;
- pConfigs[i].accumBlueSize = 16;
- pConfigs[i].accumAlphaSize = 0;
- } else {
- pConfigs[i].accumRedSize = 0;
- pConfigs[i].accumGreenSize = 0;
- pConfigs[i].accumBlueSize = 0;
- pConfigs[i].accumAlphaSize = 0;
- }
- if ( db ) {
- pConfigs[i].doubleBuffer = TRUE;
- } else {
- pConfigs[i].doubleBuffer = FALSE;
- }
- pConfigs[i].stereo = FALSE;
- pConfigs[i].bufferSize = 24;
- if ( depth ) {
- pConfigs[i].depthSize = 16;
- pConfigs[i].stencilSize = 8;
- }
- else {
- pConfigs[i].depthSize = 0;
- pConfigs[i].stencilSize = 0;
- }
- pConfigs[i].auxBuffers = 0;
- pConfigs[i].level = 0;
- if ( accum ) {
- pConfigs[i].visualRating = GLX_SLOW_VISUAL_EXT;
- } else {
- pConfigs[i].visualRating = GLX_NONE_EXT;
- }
- pConfigs[i].transparentPixel = GLX_NONE;
- pConfigs[i].transparentRed = 0;
- pConfigs[i].transparentGreen = 0;
- pConfigs[i].transparentBlue = 0;
- pConfigs[i].transparentAlpha = 0;
- pConfigs[i].transparentIndex = 0;
- i++;
- }
- }
- }
- if ( i != numConfigs ) {
- xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
- "[drm] Incorrect initialization of visuals\n" );
- return FALSE;
- }
- break;
-
- default: /* Can't do depth 8 or 16, just 15 or 24 */
- return FALSE;
- break;
- }
-
- pGlint->numVisualConfigs = numConfigs;
- pGlint->pVisualConfigs = pConfigs;
- pGlint->pVisualConfigsPriv = pGlintConfigs;
- GlxSetVisualConfigs(numConfigs, pConfigs, (void **)pGlintConfigPtrs);
-
- return TRUE;
-}
-
-static Bool GLINTDRIAgpInit(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- int ret, count;
- CARD32 mode;
-
- /* FIXME: Make these configurable...
- */
- pGlint->agp.size = 2 * 1024 * 1024;
- pGlint->buffers.offset = 0;
- pGlint->buffers.size = GLINT_DRI_BUF_COUNT * GLINT_DRI_BUF_SIZE;
-
- if ( drmAgpAcquire( pGlint->drmSubFD ) < 0 ) {
- xf86DrvMsg( pScreen->myNum, X_ERROR, "[agp] AGP not available\n" );
- return FALSE;
- }
-
- /* Read AGP Capabilities */
- mode = drmAgpGetMode(pGlint->drmSubFD) & ~0x03; /* Mask Host capabilities */
-
- mode |= 0x01; /* Gamma only supports AGP 1x */
-
- /* Now enable AGP only on the specified BusID */
- if ( drmAgpEnable( pGlint->drmSubFD, mode ) < 0 ) {
- xf86DrvMsg( pScreen->myNum, X_ERROR, "[agp] AGP not enabled\n" );
- drmAgpRelease( pGlint->drmSubFD );
- return FALSE;
- }
-
- ret = drmAgpAlloc( pGlint->drmSubFD, pGlint->agp.size, 0, NULL,
- &pGlint->agp.handle);
-
- if ( ret < 0 ) {
- xf86DrvMsg( pScreen->myNum, X_ERROR, "[agp] Out of memory (%d)\n", ret );
- drmAgpRelease( pGlint->drmSubFD );
- return FALSE;
- }
- xf86DrvMsg( pScreen->myNum, X_INFO,
- "[agp] %d kB allocated with handle 0x%08x\n",
- pGlint->agp.size/1024, pGlint->agp.handle );
-
- if ( drmAgpBind( pGlint->drmSubFD, pGlint->agp.handle, 0 ) < 0 ) {
- xf86DrvMsg( pScreen->myNum, X_ERROR, "[agp] Could not bind memory\n" );
- drmAgpFree( pGlint->drmSubFD, pGlint->agp.handle );
- drmAgpRelease( pGlint->drmSubFD );
- return FALSE;
- }
-
- /* DMA buffers
- */
- if ( drmAddMap( pGlint->drmSubFD, pGlint->buffers.offset,
- pGlint->buffers.size, DRM_AGP, 0,
- &pGlint->buffers.handle ) < 0 ) {
- xf86DrvMsg( pScreen->myNum, X_ERROR,
- "[agp] Could not add DMA buffers mapping\n" );
- return FALSE;
- }
- xf86DrvMsg( pScreen->myNum, X_INFO,
- "[agp] DMA buffers handle = 0x%08x\n",
- pGlint->buffers.handle );
-
- if ( drmMap( pGlint->drmSubFD, pGlint->buffers.handle,
- pGlint->buffers.size, &pGlint->buffers.map ) < 0 ) {
- xf86DrvMsg( pScreen->myNum, X_ERROR,
- "[agp] Could not map DMA buffers\n" );
- return FALSE;
- }
- xf86DrvMsg( pScreen->myNum, X_INFO,
- "[agp] DMA buffers mapped at %p\n", pGlint->buffers.map);
-
- count = drmAddBufs( pGlint->drmSubFD,
- GLINT_DRI_BUF_COUNT, GLINT_DRI_BUF_SIZE,
- DRM_AGP_BUFFER, pGlint->buffers.offset );
- if ( count <= 0 ) {
- xf86DrvMsg( pScrn->scrnIndex, X_INFO,
- "[drm] failure adding %d %d byte DMA buffers\n",
- GLINT_DRI_BUF_COUNT, GLINT_DRI_BUF_SIZE );
- return FALSE;
- }
- xf86DrvMsg( pScreen->myNum, X_INFO,
- "[drm] Added %d %d byte DMA buffers\n",
- count, GLINT_DRI_BUF_SIZE );
-
- {
- int bufs;
-
- if ((bufs = drmAddBufs(pGlint->drmSubFD,
- 1,
- 8192, /* 8K = 8MB physical memory */
- 0,
- DRM_RESTRICTED /* flags */)) <= 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] 0x%x failure adding page table buffer\n",bufs);
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] added 1 page table buffer\n");
- }
-
- pGlint->PCIMode = FALSE;
-
- return TRUE;
-}
-
-static Bool GLINTDRIKernelInit( ScreenPtr pScreen )
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- DRIInfoPtr pDRIInfo = pGlint->pDRIInfo;
- GLINTDRIPtr pGlintDRI = pDRIInfo->devPrivate;
- drmGAMMAInit init;
- int ret;
-
- memset( &init, 0, sizeof(drmGAMMAInit) );
-
- init.func = GAMMA_INIT_DMA;
- init.sarea_priv_offset = sizeof(XF86DRISAREARec);
-
- init.mmio0 = pGlintDRI->registers0.handle;
- init.mmio1 = pGlintDRI->registers1.handle;
- init.mmio2 = pGlintDRI->registers2.handle;
- init.mmio3 = pGlintDRI->registers3.handle;
- init.num_rast = pGlint->numMultiDevices;
-
- if (!pGlint->PCIMode) {
- init.pcimode = 0;
- init.buffers_offset = pGlint->buffers.handle;
- } else {
- init.pcimode = 1;
- }
-
- ret = drmCommandWrite( pGlint->drmSubFD, DRM_GAMMA_INIT,
- &init, sizeof(drmGAMMAInit) );
-
- if ( ret < 0 ) {
- xf86DrvMsg( pScrn->scrnIndex, X_ERROR,
- "[drm] Failed to initialize DMA! (%d)\n", ret );
- return FALSE;
- }
-
- return TRUE;
-}
-
-Bool
-GLINTDRIScreenInit(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- DRIInfoPtr pDRIInfo;
- GLINTDRIPtr pGlintDRI;
- int dmabufs = 0;
-
- /* Check that the GLX, DRI, and DRM modules have been loaded by testing
- for canonical symbols in each module. */
- if (!xf86LoaderCheckSymbol("GlxSetVisualConfigs")) return FALSE;
- if (!xf86LoaderCheckSymbol("drmAvailable")) return FALSE;
- if (!xf86LoaderCheckSymbol("DRIQueryVersion")) {
- xf86DrvMsg(pScreen->myNum, X_ERROR,
- "[dri] GLINTDRIScreenInit failed (libdri.a too old)\n");
- return FALSE;
- }
-
- /* Check the DRI version */
- {
- int major, minor, patch;
- DRIQueryVersion(&major, &minor, &patch);
- if (major != DRIINFO_MAJOR_VERSION || minor < DRIINFO_MINOR_VERSION) {
- xf86DrvMsg(pScreen->myNum, X_ERROR,
- "[dri] GLINTDRIScreenInit failed because of a version mismatch.\n"
- "[dri] libdri version is %d.%d.%d but version %d.%d.x is needed.\n"
- "[dri] Disabling DRI.\n",
- major, minor, patch,
- DRIINFO_MAJOR_VERSION, DRIINFO_MINOR_VERSION);
- return FALSE;
- }
- }
-
- if (pGlint->Chipset != PCI_VENDOR_3DLABS_CHIP_GAMMA) return FALSE;
-
- if (pGlint->numMultiDevices > 2) return FALSE;
-
- if (pGlint->MultiChip != PCI_CHIP_MX) return FALSE;
-
- pDRIInfo = DRICreateInfoRec();
- if(pDRIInfo == NULL)
- return FALSE;
-
- pGlint->pDRIInfo = pDRIInfo;
-
- /* setup device info */
- pDRIInfo->drmDriverName = GLINTKernelDriverName;
- pDRIInfo->clientDriverName = GLINTClientDriverName;
- if (xf86LoaderCheckSymbol("DRICreatePCIBusID")) {
- pDRIInfo->busIdString = DRICreatePCIBusID(pGlint->PciInfo);
- } else {
-#ifndef XSERVER_LIBPCIACCESS
- pDRIInfo->busIdString = malloc(64); /* Freed in DRIDestroyInfoRec */
- sprintf(pDRIInfo->busIdString, "PCI:%d:%d:%d",
- ((pciConfigPtr)pGlint->PciInfo->thisCard)->busnum,
- ((pciConfigPtr)pGlint->PciInfo->thisCard)->devnum,
- ((pciConfigPtr)pGlint->PciInfo->thisCard)->funcnum);
-#endif
- }
- pDRIInfo->ddxDriverMajorVersion = GLINT_MAJOR_VERSION;
- pDRIInfo->ddxDriverMinorVersion = GLINT_MINOR_VERSION;
- pDRIInfo->ddxDriverPatchVersion = GLINT_PATCHLEVEL;
- pDRIInfo->frameBufferPhysicalAddress = (pointer) pGlint->FbAddress;
- pDRIInfo->frameBufferSize = pGlint->FbMapSize;
- pDRIInfo->frameBufferStride =
- pScrn->displayWidth * (pScrn->bitsPerPixel >> 3);
- pDRIInfo->ddxDrawableTableEntry = GLINT_MAX_DRAWABLES;
-
- /* MAX_DRAWABLES set to number of GID's minus one for DDX */
- if (SAREA_MAX_DRAWABLES < GLINT_MAX_DRAWABLES) {
- pDRIInfo->maxDrawableTableEntry = SAREA_MAX_DRAWABLES;
- }
- else {
- pDRIInfo->maxDrawableTableEntry = GLINT_MAX_DRAWABLES;
- }
-
-#ifdef NOT_DONE
- /* FIXME need to extend DRI protocol to pass this size back to client
- * for SAREA mapping that includes a device private record
- */
- pDRIInfo->SAREASize =
- ((sizeof(XF86DRISAREARec) + 0xfff) & 0x1000); /* round to page */
- /* + shared memory device private rec */
-#else
- /* For now the mapping works by using a fixed size defined
- * in the SAREA header
- */
- pDRIInfo->SAREASize = SAREA_MAX;
-#endif
-
- if (!(pGlintDRI = (GLINTDRIPtr)calloc(sizeof(GLINTDRIRec),1))) {
- DRIDestroyInfoRec(pGlint->pDRIInfo);
- return FALSE;
- }
-
- /* setup visual configurations */
- if (!(GLINTInitVisualConfigs(pScreen))) {
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "visual configs initialized\n" );
-
- pDRIInfo->devPrivate = pGlintDRI;
- pDRIInfo->devPrivateSize = sizeof(GLINTDRIRec);
- pDRIInfo->contextSize = sizeof(GLINTDRIContextRec);
-
- /* setup call backs */
- pDRIInfo->CreateContext = GLINTCreateContext;
- pDRIInfo->DestroyContext = GLINTDestroyContext;
- pDRIInfo->SwapContext = GLINTDRISwapContext;
- pDRIInfo->InitBuffers = GLINTDRIInitBuffers;
- pDRIInfo->MoveBuffers = GLINTDRIMoveBuffers;
- pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
-
- pDRIInfo->createDummyCtx = TRUE;
- pDRIInfo->createDummyCtxPriv = FALSE;
-
- /* So DRICloseScreen does the right thing if we abort */
- pGlint->buffers.map = 0;
- pGlint->agp.handle = DRM_AGP_NO_HANDLE;
-
- if (!DRIScreenInit(pScreen, pDRIInfo, &(pGlint->drmSubFD))) {
- DRIDestroyInfoRec(pGlint->pDRIInfo);
- free(pGlintDRI);
- return FALSE;
- }
-
- /* Check the DRM versioning */
- {
- drmVersionPtr version;
-
- /* Check the DRM lib version.
- drmGetLibVersion was not supported in version 1.0, so check for
- symbol first to avoid possible crash or hang.
- */
- if (xf86LoaderCheckSymbol("drmGetLibVersion")) {
- version = drmGetLibVersion(pGlint->drmSubFD);
- }
- else {
- /* drmlib version 1.0.0 didn't have the drmGetLibVersion
- entry point. Fake it by allocating a version record
- via drmGetVersion and changing it to version 1.0.0
- */
- version = drmGetVersion(pGlint->drmSubFD);
- version->version_major = 1;
- version->version_minor = 0;
- version->version_patchlevel = 0;
- }
-
- if (version) {
- if (version->version_major != 1 ||
- version->version_minor < 1) {
- /* incompatible drm library version */
- xf86DrvMsg(pScreen->myNum, X_ERROR,
- "[dri] GLINTDRIScreenInit failed because of a version mismatch.\n"
- "[dri] libdrm.a module version is %d.%d.%d but version 1.1.x is needed.\n"
- "[dri] Disabling DRI.\n",
- version->version_major,
- version->version_minor,
- version->version_patchlevel);
- drmFreeVersion(version);
- GLINTDRICloseScreen(pScreen);
- return FALSE;
- }
- drmFreeVersion(version);
- }
-
- /* Check the GLINT DRM version */
- version = drmGetVersion(pGlint->drmSubFD);
- if (version) {
- if (version->version_major != 2 ||
- version->version_minor < 0) {
- /* incompatible drm version */
- xf86DrvMsg(pScreen->myNum, X_ERROR,
- "[dri] GLINTDRIScreenInit failed because of a version mismatch.\n"
- "[dri] gamma.o kernel module version is %d.%d.%d but version 2.0.x is needed.\n"
- "[dri] Disabling DRI.\n",
- version->version_major,
- version->version_minor,
- version->version_patchlevel);
- GLINTDRICloseScreen(pScreen);
- drmFreeVersion(version);
- return FALSE;
- }
- drmFreeVersion(version);
- }
- }
-
- /* Tell the client driver how many MX's we have */
- pGlintDRI->numMultiDevices = pGlint->numMultiDevices;
- /* Tell the client about our screen size setup */
- pGlintDRI->pprod = pGlint->pprod;
-
- pGlintDRI->cpp = pScrn->bitsPerPixel / 8;
- pGlintDRI->frontPitch = pScrn->displayWidth;
- pGlintDRI->frontOffset = 0;
-
- pGlintDRI->textureSize = 32 * 1024 * 1024;
- pGlintDRI->logTextureGranularity =
- mylog2( pGlintDRI->textureSize / GAMMA_NR_TEX_REGIONS );
-
- /* setup device specific direct rendering memory maps */
-
- /* pci region 0: control regs, first 4k page, priveledged writes */
- pGlintDRI->registers0.size = 0x1000;
- if (drmAddMap( pGlint->drmSubFD,
- (drm_handle_t)pGlint->IOAddress,
- pGlintDRI->registers0.size,
- DRM_REGISTERS, DRM_READ_ONLY,
- &pGlintDRI->registers0.handle) < 0)
- {
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] Register handle 0 = 0x%08x\n",
- pGlintDRI->registers0.handle);
-
- /* pci region 0: control regs, following region, client access */
- pGlintDRI->registers1.size = 0xf000;
- if (drmAddMap( pGlint->drmSubFD,
- (drm_handle_t)(pGlint->IOAddress + 0x1000),
- pGlintDRI->registers1.size,
- DRM_REGISTERS, 0,
- &pGlintDRI->registers1.handle) < 0)
- {
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] Register handle 1 = 0x%08x\n",
- pGlintDRI->registers1.handle);
-
- /* pci region 0: control regs, second MX, first 4k page */
- pGlintDRI->registers2.size = 0x1000;
- if (drmAddMap( pGlint->drmSubFD,
- (drm_handle_t)(pGlint->IOAddress + 0x10000),
- pGlintDRI->registers2.size,
- DRM_REGISTERS, DRM_READ_ONLY,
- &pGlintDRI->registers2.handle) < 0)
- {
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] Register handle 2 = 0x%08x\n",
- pGlintDRI->registers2.handle);
-
- /* pci region 0: control regs, second MX, following region */
- pGlintDRI->registers3.size = 0xf000;
- if (drmAddMap( pGlint->drmSubFD,
- (drm_handle_t)(pGlint->IOAddress + 0x11000),
- pGlintDRI->registers3.size,
- DRM_REGISTERS, 0,
- &pGlintDRI->registers3.handle) < 0)
- {
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] Register handle 3 = 0x%08x\n",
- pGlintDRI->registers3.handle);
-
- /* setup DMA buffers */
-
- /* TRY AGP */
- if ( !GLINTDRIAgpInit( pScreen ) ) {
- /* OUCH, NO AGP, TRY PCI */
- pGlint->PCIMode = TRUE;
- if (xf86ConfigDRI.bufs_count) {
- int i;
- int bufs;
-
- for (i = 0; i < xf86ConfigDRI.bufs_count; i++) {
- if ((bufs = drmAddBufs(pGlint->drmSubFD,
- xf86ConfigDRI.bufs[i].count,
- xf86ConfigDRI.bufs[i].size,
- 0,
- 0 /* flags */)) <= 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "[drm] failure adding %d %d byte DMA buffers\n",
- xf86ConfigDRI.bufs[i].count,
- xf86ConfigDRI.bufs[i].size);
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "[drm] added %d %d byte DMA buffers\n",
- bufs, xf86ConfigDRI.bufs[i].size);
- dmabufs += bufs;
- }
- }
- }
-
- if (dmabufs <= 0) {
- int bufs;
-
- if ((bufs = drmAddBufs(pGlint->drmSubFD,
- GLINT_DRI_BUF_COUNT,
- GLINT_DRI_BUF_SIZE,
- 0,
- 0 /* flags */)) <= 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] failure adding %d %d byte DMA buffers\n",
- GLINT_DRI_BUF_COUNT,
- GLINT_DRI_BUF_SIZE);
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] added %d %d byte DMA buffers\n",
- bufs, GLINT_DRI_BUF_SIZE);
-
- if ((bufs = drmAddBufs(pGlint->drmSubFD,
- 1,
- 8192, /* 8K = 8MB physical memory */
- 0,
- DRM_RESTRICTED /* flags */)) <= 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] 0x%x failure adding page table buffer\n",bufs);
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] added 1 page table buffer\n");
- }
-
- if (!(pGlint->drmBufs = drmMapBufs(pGlint->drmSubFD))) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] failure mapping DMA buffers\n");
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] buffers mapped with %p\n",
- (void *)pGlint->drmBufs);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] %d DMA buffers mapped\n",
- pGlint->drmBufs->count);
- } /* PCIMODE */
-
- if (pGlint->irq <= 0) {
- pGlint->irq = drmGetInterruptFromBusID(pGlint->drmSubFD,
- PCI_CFG_BUS(pGlint->PciInfo),
- PCI_CFG_DEV(pGlint->PciInfo),
- PCI_CFG_FUNC(pGlint->PciInfo));
- }
-
- return TRUE;
-}
-
-void
-GLINTDRICloseScreen(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
-
- if (pGlint->buffers.map) {
- drmUnmap( pGlint->buffers.map, pGlint->buffers.size);
- pGlint->buffers.map = NULL;
- }
-
- if (pGlint->agp.handle != DRM_AGP_NO_HANDLE) {
- drmAgpUnbind( pGlint->drmSubFD, pGlint->agp.handle );
- drmAgpFree( pGlint->drmSubFD, pGlint->agp.handle );
- pGlint->agp.handle = 0;
- drmAgpRelease( pGlint->drmSubFD );
- }
-
- if (pGlint->drmBufs) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] unmapping %d buffers\n",
- pGlint->drmBufs->count);
- if (drmUnmapBufs(pGlint->drmBufs)) {
- xf86DrvMsg(pScreen->myNum, X_INFO,
- "[drm] unable to unmap DMA buffers\n");
- }
-
- }
-
- DRICloseScreen(pScreen);
-
- if (pGlint->pDRIInfo) {
- free(pGlint->pDRIInfo->devPrivate);
- DRIDestroyInfoRec(pGlint->pDRIInfo);
- }
-
- free(pGlint->pVisualConfigs);
- free(pGlint->pVisualConfigsPriv);
-}
-
-Bool
-GLINTCreateContext(ScreenPtr pScreen,
- VisualPtr visual,
- drm_context_t hwContext,
- void *pVisualConfigPriv,
- DRIContextType contextStore)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- GLINTConfigPrivPtr pGlintConfig = (GLINTConfigPrivPtr)pVisualConfigPriv;
-
- /* These are really assertions rather than necessary logic,
- just using this to exercise device private region until really needed */
-
- if (!pGlintConfig)
- return TRUE; /* no GLX driver private support, yet */
-
-#if 0
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[GLINTCreateContext] context priv index = %d\n",
- pGlintConfig->index);
-#endif
-
- if (pGlintConfig->index >= pGlint->numVisualConfigs)
- return FALSE;
-
- if (pGlint->pVisualConfigs[pGlintConfig->index].redMask != visual->redMask)
- return FALSE;
-
- return TRUE;
-}
-
-static void
-GLINTDestroyContext(ScreenPtr pScreen,
- drm_context_t hwContext,
- DRIContextType contextStore)
-{
-}
-
-Bool
-GLINTDRIFinishScreenInit(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- DRIInfoPtr pDRIInfo = pGlint->pDRIInfo;
- GLINTDRIPtr pGlintDRI = pDRIInfo->devPrivate;
- FBAreaPtr fbarea;
-
- /*
- * Setup one of 4 types of context swap handling methods
- *
- * Option A: HIDE X CONTEXT SWAPS. X contexts will be flagged as
- * preserved by the server. The kernel will never swap a preserved
- * context. The kernel will call back into the server for swapping
- * all other contexts.
- *
- * pGlint->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
- *
- *
- * Option B: SERVER SIDE CONTEXT SWAPS. X contexts will be flagged
- * as 2D contexts, but the flag will be ignored by the kernel. The
- * preserved flag will not be used, so the kernel will call back into
- * the server for swapping all contexts. The 2D flag will be used by
- * the server to optimize for 2D/3D switching between a single 3D
- * context and the servers 2D context.
- *
- * pGlint->pDRIInfo->driverSwapMethod = DRI_SERVER_SWAP;
- *
- *
- * Option C: KERNEL SIDE GENERIC SWAPS. X server will provide generic
- * kernel driver with byte codes for performing swap. X contexts will
- * be flagged as 2D contexts, so 2D/3D switching optimizations can still
- * be done. This is not supported, yet. Additional work is required
- * to support generic kernel driver and provide byte code examples.
- *
- * pGlint->pDRIInfo->driverSwapMethod = DRI_KERNEL_SWAP;
- *
- * add byte codes for context swap here:
- * drmCtlAddCommand(drmSubFD, ...
- *
- *
- * Option D: KERNEL SIDE DEVICE SPECIFIC SWAPS. DrmSubdriver will
- * have device specific code for handling swaps. X context will be
- * flagged as 2D contexts, so 2D/3D switching optimizations can still
- * be done. This is not supported by gamma driver, yet; however, the
- * framework is in place to use this option.
- *
- * pGlint->pDRIInfo->driverSwapMethod = DRI_KERNEL_SWAP;
- */
-
- pGlint->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
-
- /* Allocate the shared back buffer */
- if ((fbarea = xf86AllocateOffscreenArea(pScreen,
- pScrn->virtualX,
- pScrn->virtualY,
- 32, NULL, NULL, NULL))) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Reserved back buffer from (%d,%d) to (%d,%d)\n",
- fbarea->box.x1, fbarea->box.y1,
- fbarea->box.x2, fbarea->box.y2);
-
- pGlintDRI->backPitch = pScrn->displayWidth;
- pGlintDRI->backOffset = (fbarea->box.y1 * pScrn->displayWidth *
- pScrn->bitsPerPixel / 8) +
- (fbarea->box.x1 * pScrn->bitsPerPixel / 8);
- pGlintDRI->backX = fbarea->box.x1;
- pGlintDRI->backY = fbarea->box.y1;
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Unable to reserve back buffer\n");
- pGlintDRI->backPitch = -1;
- pGlintDRI->backOffset = -1;
- }
-
- if (!DRIFinishScreenInit(pScreen)) {
- DRICloseScreen(pScreen);
- return FALSE;
- }
-
- if (!GLINTDRIKernelInit(pScreen)) {
- DRICloseScreen(pScreen);
- return FALSE;
- }
-
- if ( (pGlint->irq <= 0) ||
- GLINTDRIControlInit(pGlint->drmSubFD, pGlint->irq) ) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] cannot initialize dma with IRQ %d\n",
- pGlint->irq);
- DRICloseScreen(pScreen);
- return FALSE;
- }
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] dma control initialized, using IRQ %d\n",
- pGlint->irq);
-
- if (!pGlint->PCIMode) {
- if (!(pGlint->drmBufs = drmMapBufs(pGlint->drmSubFD))) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] failure mapping DMA buffers\n");
- DRICloseScreen(pScreen);
- return FALSE;
- }
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[agp] buffers mapped with %p\n",
- (void *)pGlint->drmBufs);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[agp] %d DMA buffers mapped\n",
- pGlint->drmBufs->count);
- }
-
-#if 0
- /* Get the X server's context */
- pGlint->DRIctx = DRIGetContext(pScreen);
- pGlint->buf2D = pGlint->drmBufs->list[GLINT_DRI_BUF_COUNT + 1].address;
-#endif
-
- return TRUE;
-}
-
-#define ContextDump_tag 0x1b8
-#define ContextRestore_tag 0x1b9
-#define ContextData_tag 0x1ba
-
-void
-GLINTDRISwapContext(
- ScreenPtr pScreen,
- DRISyncType syncType,
- DRIContextType readContextType,
- void *readContextStore,
- DRIContextType writeContextType,
- void *writeContextStore)
-{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- GLINTDRIContextPtr pRC = (GLINTDRIContextPtr)readContextStore;
- GLINTDRIContextPtr pWC = (GLINTDRIContextPtr)writeContextStore;
- int dumpIndex;
- CARD32 readValue;
-
- /* Sync here covers both read and write context of contexts */
- if (pGlint->AccelInfoRec->Sync) {
- (*pGlint->AccelInfoRec->Sync)(pGlint->AccelInfoRec->pScrn);
- }
- pGlint->AccelInfoRec->NeedToSync = FALSE;
-
- if (readContextType != DRI_NO_CONTEXT) {
-
- /* save the 2D portion of the old context */
- pRC->MX1.CStartXDom = GLINT_READ_REG(StartXDom);
- pRC->MX1.CdXDom = GLINT_READ_REG(dXDom);
- pRC->MX1.CStartXSub = GLINT_READ_REG(StartXSub);
- pRC->MX1.CdXSub = GLINT_READ_REG(dXSub);
- pRC->MX1.CStartY = GLINT_READ_REG(StartY);
- pRC->MX1.CdY = GLINT_READ_REG(dY);
- pRC->MX1.CGLINTCount = GLINT_READ_REG(GLINTCount);
- pRC->MX1.CPointTable0 = GLINT_READ_REG(PointTable0);
- pRC->MX1.CPointTable1 = GLINT_READ_REG(PointTable1);
- pRC->MX1.CPointTable2 = GLINT_READ_REG(PointTable2);
- pRC->MX1.CPointTable3 = GLINT_READ_REG(PointTable3);
- pRC->MX1.CRasterizerMode = GLINT_READ_REG(RasterizerMode);
- pRC->MX1.CYLimits = GLINT_READ_REG(YLimits);
- pRC->MX1.CScanLineOwnership = GLINT_READ_REG(ScanLineOwnership);
- pRC->MX1.CPixelSize = GLINT_READ_REG(PixelSize);
- pRC->MX1.CScissorMode = GLINT_READ_REG(ScissorMode);
- pRC->MX1.CScissorMinXY = GLINT_READ_REG(ScissorMinXY);
- pRC->MX1.CScissorMaxXY = GLINT_READ_REG(ScissorMaxXY);
- pRC->MX1.CScreenSize = GLINT_READ_REG(ScreenSize);
- pRC->MX1.CAreaStippleMode = GLINT_READ_REG(AreaStippleMode);
- pRC->MX1.CLineStippleMode = GLINT_READ_REG(LineStippleMode);
- pRC->MX1.CLoadLineStippleCounters = GLINT_READ_REG(LoadLineStippleCounters);
- pRC->MX1.CWindowOrigin = GLINT_READ_REG(WindowOrigin);
- pRC->MX1.CRouterMode = GLINT_READ_REG(RouterMode);
- pRC->MX1.CTextureAddressMode = GLINT_READ_REG(TextureAddressMode);
- pRC->MX1.CTextureReadMode = GLINT_READ_REG(TextureReadMode);
- pRC->MX1.CTextureColorMode = GLINT_READ_REG(TextureColorMode);
- pRC->MX1.CFogMode = GLINT_READ_REG(FogMode);
- pRC->MX1.CColorDDAMode = GLINT_READ_REG(ColorDDAMode);
- pRC->MX1.CGLINTColor = GLINT_READ_REG(GLINTColor);
- pRC->MX1.CAlphaTestMode = GLINT_READ_REG(AlphaTestMode);
- pRC->MX1.CAntialiasMode = GLINT_READ_REG(AntialiasMode);
- pRC->MX1.CAlphaBlendMode = GLINT_READ_REG(AlphaBlendMode);
- pRC->MX1.CDitherMode = GLINT_READ_REG(DitherMode);
- pRC->MX1.CFBSoftwareWriteMask = GLINT_READ_REG(FBSoftwareWriteMask);
- pRC->MX1.CLogicalOpMode = GLINT_READ_REG(LogicalOpMode);
- pRC->MX1.CFBWriteData = GLINT_READ_REG(FBWriteData);
- pRC->MX1.CLBReadMode = GLINT_READ_REG(LBReadMode);
- pRC->MX1.CLBSourceOffset = GLINT_READ_REG(LBSourceOffset);
- pRC->MX1.CLBWindowBase = GLINT_READ_REG(LBWindowBase);
- pRC->MX1.CLBWriteMode = GLINT_READ_REG(LBWriteMode);
- pRC->MX1.CTextureDownloadOffset = GLINT_READ_REG(TextureDownloadOffset);
- pRC->MX1.CLBWindowOffset = GLINT_READ_REG(LBWindowOffset);
- pRC->MX1.CGLINTWindow = GLINT_READ_REG(GLINTWindow);
- pRC->MX1.CStencilMode = GLINT_READ_REG(StencilMode);
- pRC->MX1.CDepthMode = GLINT_READ_REG(DepthMode);
- pRC->MX1.CGLINTDepth = GLINT_READ_REG(GLINTDepth);
- pRC->MX1.CFBReadMode = GLINT_READ_REG(FBReadMode);
- pRC->MX1.CFBSourceOffset = GLINT_READ_REG(FBSourceOffset);
- pRC->MX1.CFBPixelOffset = GLINT_READ_REG(FBPixelOffset);
- pRC->MX1.CFBWindowBase = GLINT_READ_REG(FBWindowBase);
- pRC->MX1.CFBWriteMode = GLINT_READ_REG(FBWriteMode);
- pRC->MX1.CFBHardwareWriteMask = GLINT_READ_REG(FBHardwareWriteMask);
- pRC->MX1.CFBBlockColor = GLINT_READ_REG(FBBlockColor);
- pRC->MX1.CPatternRamMode = GLINT_READ_REG(PatternRamMode);
- pRC->MX1.CFBBlockColorU = GLINT_READ_REG(FBBlockColorU);
- pRC->MX1.CFBBlockColorL = GLINT_READ_REG(FBBlockColorL);
- pRC->MX1.CFilterMode = GLINT_READ_REG(FilterMode);
- pRC->MX1.CStatisticMode = GLINT_READ_REG(StatisticMode);
-
- if (pGlint->numMultiDevices == 2) {
- pRC->MX1.CBroadcastMask = GLINT_READ_REG(BroadcastMask);
-
- ACCESSCHIP2();
- pRC->MX2.CStartXDom = GLINT_READ_REG(StartXDom);
- pRC->MX2.CdXDom = GLINT_READ_REG(dXDom);
- pRC->MX2.CStartXSub = GLINT_READ_REG(StartXSub);
- pRC->MX2.CdXSub = GLINT_READ_REG(dXSub);
- pRC->MX2.CStartY = GLINT_READ_REG(StartY);
- pRC->MX2.CdY = GLINT_READ_REG(dY);
- pRC->MX2.CGLINTCount = GLINT_READ_REG(GLINTCount);
- pRC->MX2.CPointTable0 = GLINT_READ_REG(PointTable0);
- pRC->MX2.CPointTable1 = GLINT_READ_REG(PointTable1);
- pRC->MX2.CPointTable2 = GLINT_READ_REG(PointTable2);
- pRC->MX2.CPointTable3 = GLINT_READ_REG(PointTable3);
- pRC->MX2.CRasterizerMode = GLINT_READ_REG(RasterizerMode);
- pRC->MX2.CYLimits = GLINT_READ_REG(YLimits);
- pRC->MX2.CScanLineOwnership = GLINT_READ_REG(ScanLineOwnership);
- pRC->MX2.CPixelSize = GLINT_READ_REG(PixelSize);
- pRC->MX2.CScissorMode = GLINT_READ_REG(ScissorMode);
- pRC->MX2.CScissorMinXY = GLINT_READ_REG(ScissorMinXY);
- pRC->MX2.CScissorMaxXY = GLINT_READ_REG(ScissorMaxXY);
- pRC->MX2.CScreenSize = GLINT_READ_REG(ScreenSize);
- pRC->MX2.CAreaStippleMode = GLINT_READ_REG(AreaStippleMode);
- pRC->MX2.CLineStippleMode = GLINT_READ_REG(LineStippleMode);
- pRC->MX2.CLoadLineStippleCounters = GLINT_READ_REG(LoadLineStippleCounters);
- pRC->MX2.CWindowOrigin = GLINT_READ_REG(WindowOrigin);
- pRC->MX2.CRouterMode = GLINT_READ_REG(RouterMode);
- pRC->MX2.CTextureAddressMode = GLINT_READ_REG(TextureAddressMode);
- pRC->MX2.CTextureReadMode = GLINT_READ_REG(TextureReadMode);
- pRC->MX2.CTextureColorMode = GLINT_READ_REG(TextureColorMode);
- pRC->MX2.CFogMode = GLINT_READ_REG(FogMode);
- pRC->MX2.CColorDDAMode = GLINT_READ_REG(ColorDDAMode);
- pRC->MX2.CGLINTColor = GLINT_READ_REG(GLINTColor);
- pRC->MX2.CAlphaTestMode = GLINT_READ_REG(AlphaTestMode);
- pRC->MX2.CAntialiasMode = GLINT_READ_REG(AntialiasMode);
- pRC->MX2.CAlphaBlendMode = GLINT_READ_REG(AlphaBlendMode);
- pRC->MX2.CDitherMode = GLINT_READ_REG(DitherMode);
- pRC->MX2.CFBSoftwareWriteMask = GLINT_READ_REG(FBSoftwareWriteMask);
- pRC->MX2.CLogicalOpMode = GLINT_READ_REG(LogicalOpMode);
- pRC->MX2.CFBWriteData = GLINT_READ_REG(FBWriteData);
- pRC->MX2.CLBReadMode = GLINT_READ_REG(LBReadMode);
- pRC->MX2.CLBSourceOffset = GLINT_READ_REG(LBSourceOffset);
- pRC->MX2.CLBWindowBase = GLINT_READ_REG(LBWindowBase);
- pRC->MX2.CLBWriteMode = GLINT_READ_REG(LBWriteMode);
- pRC->MX2.CTextureDownloadOffset = GLINT_READ_REG(TextureDownloadOffset);
- pRC->MX2.CLBWindowOffset = GLINT_READ_REG(LBWindowOffset);
- pRC->MX2.CGLINTWindow = GLINT_READ_REG(GLINTWindow);
- pRC->MX2.CStencilMode = GLINT_READ_REG(StencilMode);
- pRC->MX2.CDepthMode = GLINT_READ_REG(DepthMode);
- pRC->MX2.CGLINTDepth = GLINT_READ_REG(GLINTDepth);
- pRC->MX2.CFBReadMode = GLINT_READ_REG(FBReadMode);
- pRC->MX2.CFBSourceOffset = GLINT_READ_REG(FBSourceOffset);
- pRC->MX2.CFBPixelOffset = GLINT_READ_REG(FBPixelOffset);
- pRC->MX2.CFBWindowBase = GLINT_READ_REG(FBWindowBase);
- pRC->MX2.CFBWriteMode = GLINT_READ_REG(FBWriteMode);
- pRC->MX2.CFBHardwareWriteMask = GLINT_READ_REG(FBHardwareWriteMask);
- pRC->MX2.CFBBlockColor = GLINT_READ_REG(FBBlockColor);
- pRC->MX2.CPatternRamMode = GLINT_READ_REG(PatternRamMode);
- pRC->MX2.CFBBlockColorU = GLINT_READ_REG(FBBlockColorU);
- pRC->MX2.CFBBlockColorL = GLINT_READ_REG(FBBlockColorL);
- pRC->MX2.CFilterMode = GLINT_READ_REG(FilterMode);
- pRC->MX2.CStatisticMode = GLINT_READ_REG(StatisticMode);
- ACCESSCHIP1();
- }
-
- if (readContextType == DRI_3D_CONTEXT) {
- /* save the 3D portion of the old context */
-
- /* first the MX portions */
- pRC->MX1.CSStart = GLINT_READ_REG(SStart);
- pRC->MX1.CdSdx = GLINT_READ_REG(dSdx);
- pRC->MX1.CdSdyDom = GLINT_READ_REG(dSdyDom);
- pRC->MX1.CTStart = GLINT_READ_REG(TStart);
- pRC->MX1.CdTdx = GLINT_READ_REG(dTdx);
- pRC->MX1.CdTdyDom = GLINT_READ_REG(dTdyDom);
- pRC->MX1.CQStart = GLINT_READ_REG(QStart);
- pRC->MX1.CdQdx = GLINT_READ_REG(dQdx);
- pRC->MX1.CdQdyDom = GLINT_READ_REG(dQdyDom);
- pRC->MX1.CLOD = GLINT_READ_REG(LOD);
- pRC->MX1.CdSdy = GLINT_READ_REG(dSdy);
- pRC->MX1.CdTdy = GLINT_READ_REG(dTdy);
- pRC->MX1.CdQdy = GLINT_READ_REG(dQdy);
- pRC->MX1.CTextureFormat = GLINT_READ_REG(TextureFormat);
- pRC->MX1.CTextureCacheControl = GLINT_READ_REG(TextureCacheControl);
- pRC->MX1.CGLINTBorderColor = GLINT_READ_REG(GLINTBorderColor);
- pRC->MX1.CTexelLUTIndex = GLINT_READ_REG(TexelLUTIndex);
- pRC->MX1.CTexelLUTData = GLINT_READ_REG(TexelLUTData);
- pRC->MX1.CTexelLUTAddress = GLINT_READ_REG(TexelLUTAddress);
- pRC->MX1.CTexelLUTTransfer = GLINT_READ_REG(TexelLUTTransfer);
- pRC->MX1.CTextureFilterMode = GLINT_READ_REG(TextureFilterMode);
- pRC->MX1.CTextureChromaUpper = GLINT_READ_REG(TextureChromaUpper);
- pRC->MX1.CTextureChromaLower = GLINT_READ_REG(TextureChromaLower);
- pRC->MX1.CTxBaseAddr0 = GLINT_READ_REG(TxBaseAddr0);
- pRC->MX1.CTxBaseAddr1 = GLINT_READ_REG(TxBaseAddr1);
- pRC->MX1.CTxBaseAddr2 = GLINT_READ_REG(TxBaseAddr2);
- pRC->MX1.CTxBaseAddr3 = GLINT_READ_REG(TxBaseAddr3);
- pRC->MX1.CTxBaseAddr4 = GLINT_READ_REG(TxBaseAddr4);
- pRC->MX1.CTxBaseAddr5 = GLINT_READ_REG(TxBaseAddr5);
- pRC->MX1.CTxBaseAddr6 = GLINT_READ_REG(TxBaseAddr6);
- pRC->MX1.CTxBaseAddr7 = GLINT_READ_REG(TxBaseAddr7);
- pRC->MX1.CTxBaseAddr8 = GLINT_READ_REG(TxBaseAddr8);
- pRC->MX1.CTxBaseAddr9 = GLINT_READ_REG(TxBaseAddr9);
- pRC->MX1.CTxBaseAddr10 = GLINT_READ_REG(TxBaseAddr10);
- pRC->MX1.CTxBaseAddr11 = GLINT_READ_REG(TxBaseAddr11);
- pRC->MX1.CTexelLUT0 = GLINT_READ_REG(TexelLUT0);
- pRC->MX1.CTexelLUT1 = GLINT_READ_REG(TexelLUT1);
- pRC->MX1.CTexelLUT2 = GLINT_READ_REG(TexelLUT2);
- pRC->MX1.CTexelLUT3 = GLINT_READ_REG(TexelLUT3);
- pRC->MX1.CTexelLUT4 = GLINT_READ_REG(TexelLUT4);
- pRC->MX1.CTexelLUT5 = GLINT_READ_REG(TexelLUT5);
- pRC->MX1.CTexelLUT6 = GLINT_READ_REG(TexelLUT6);
- pRC->MX1.CTexelLUT7 = GLINT_READ_REG(TexelLUT7);
- pRC->MX1.CTexelLUT8 = GLINT_READ_REG(TexelLUT8);
- pRC->MX1.CTexelLUT9 = GLINT_READ_REG(TexelLUT9);
- pRC->MX1.CTexelLUT10 = GLINT_READ_REG(TexelLUT10);
- pRC->MX1.CTexelLUT11 = GLINT_READ_REG(TexelLUT11);
- pRC->MX1.CTexelLUT12 = GLINT_READ_REG(TexelLUT12);
- pRC->MX1.CTexelLUT13 = GLINT_READ_REG(TexelLUT13);
- pRC->MX1.CTexelLUT14 = GLINT_READ_REG(TexelLUT14);
- pRC->MX1.CTexelLUT15 = GLINT_READ_REG(TexelLUT15);
- pRC->MX1.CTexel0 = GLINT_READ_REG(Texel0);
- pRC->MX1.CTexel1 = GLINT_READ_REG(Texel1);
- pRC->MX1.CTexel2 = GLINT_READ_REG(Texel2);
- pRC->MX1.CTexel3 = GLINT_READ_REG(Texel3);
- pRC->MX1.CTexel4 = GLINT_READ_REG(Texel4);
- pRC->MX1.CTexel5 = GLINT_READ_REG(Texel5);
- pRC->MX1.CTexel6 = GLINT_READ_REG(Texel6);
- pRC->MX1.CTexel7 = GLINT_READ_REG(Texel7);
- pRC->MX1.CInterp0 = GLINT_READ_REG(Interp0);
- pRC->MX1.CInterp1 = GLINT_READ_REG(Interp1);
- pRC->MX1.CInterp2 = GLINT_READ_REG(Interp2);
- pRC->MX1.CInterp3 = GLINT_READ_REG(Interp3);
- pRC->MX1.CInterp4 = GLINT_READ_REG(Interp4);
- pRC->MX1.CTextureFilter = GLINT_READ_REG(TextureFilter);
- pRC->MX1.CTextureEnvColor = GLINT_READ_REG(TextureEnvColor);
- pRC->MX1.CFogColor = GLINT_READ_REG(FogColor);
- pRC->MX1.CFStart = GLINT_READ_REG(FStart);
- pRC->MX1.CdFdx = GLINT_READ_REG(dFdx);
- pRC->MX1.CdFdyDom = GLINT_READ_REG(dFdyDom);
- pRC->MX1.CKsStart = GLINT_READ_REG(KsStart);
- pRC->MX1.CdKsdx = GLINT_READ_REG(dKsdx);
- pRC->MX1.CdKsdyDom = GLINT_READ_REG(dKsdyDom);
- pRC->MX1.CKdStart = GLINT_READ_REG(KdStart);
- pRC->MX1.CdKdStart = GLINT_READ_REG(dKdStart);
- pRC->MX1.CdKddyDom = GLINT_READ_REG(dKddyDom);
- pRC->MX1.CRStart = GLINT_READ_REG(RStart);
- pRC->MX1.CdRdx = GLINT_READ_REG(dRdx);
- pRC->MX1.CdRdyDom = GLINT_READ_REG(dRdyDom);
- pRC->MX1.CGStart = GLINT_READ_REG(GStart);
- pRC->MX1.CdGdx = GLINT_READ_REG(dGdx);
- pRC->MX1.CdGdyDom = GLINT_READ_REG(dGdyDom);
- pRC->MX1.CBStart = GLINT_READ_REG(BStart);
- pRC->MX1.CdBdx = GLINT_READ_REG(dBdx);
- pRC->MX1.CdBdyDom = GLINT_READ_REG(dBdyDom);
- pRC->MX1.CAStart = GLINT_READ_REG(AStart);
- pRC->MX1.CdAdx = GLINT_READ_REG(dAdx);
- pRC->MX1.CdAdyDom = GLINT_READ_REG(dAdyDom);
- pRC->MX1.CConstantColor = GLINT_READ_REG(ConstantColor);
- pRC->MX1.CChromaUpper = GLINT_READ_REG(ChromaUpper);
- pRC->MX1.CChromaLower = GLINT_READ_REG(ChromaLower);
- pRC->MX1.CChromaTestMode = GLINT_READ_REG(ChromaTestMode);
- pRC->MX1.CStencilData = GLINT_READ_REG(StencilData);
- pRC->MX1.CGLINTStencil = GLINT_READ_REG(GLINTStencil);
- pRC->MX1.CZStartU = GLINT_READ_REG(ZStartU);
- pRC->MX1.CZStartL = GLINT_READ_REG(ZStartL);
- pRC->MX1.CdZdxU = GLINT_READ_REG(dZdxU);
- pRC->MX1.CdZdxL = GLINT_READ_REG(dZdxL);
- pRC->MX1.CdZdyDomU = GLINT_READ_REG(dZdyDomU);
- pRC->MX1.CdZdyDomL = GLINT_READ_REG(dZdyDomL);
- pRC->MX1.CFastClearDepth = GLINT_READ_REG(FastClearDepth);
- pRC->MX1.CMinRegion = GLINT_READ_REG(MinRegion);
- pRC->MX1.CMaxRegion = GLINT_READ_REG(MaxRegion);
- pRC->MX1.CKsRStart = GLINT_READ_REG(KsRStart);
- pRC->MX1.CdKsRdx = GLINT_READ_REG(dKsRdx);
- pRC->MX1.CdKsRdyDom = GLINT_READ_REG(dKsRdyDom);
- pRC->MX1.CKsGStart = GLINT_READ_REG(KsGStart);
- pRC->MX1.CdKsGdx = GLINT_READ_REG(dKsGdx);
- pRC->MX1.CdKsGdyDom = GLINT_READ_REG(dKsGdyDom);
- pRC->MX1.CKsBStart = GLINT_READ_REG(KsBStart);
- pRC->MX1.CdKsBdx = GLINT_READ_REG(dKsBdx);
- pRC->MX1.CdKsBdyDom = GLINT_READ_REG(dKsBdyDom);
- pRC->MX1.CKdRStart = GLINT_READ_REG(KdRStart);
- pRC->MX1.CdKdRdx = GLINT_READ_REG(dKdRdx);
- pRC->MX1.CdKdRdyDom = GLINT_READ_REG(dKdRdyDom);
- pRC->MX1.CKdGStart = GLINT_READ_REG(KdGStart);
- pRC->MX1.CdKdGdx = GLINT_READ_REG(dKdGdx);
- pRC->MX1.CdKdGdyDom = GLINT_READ_REG(dKdGdyDom);
- pRC->MX1.CKdBStart = GLINT_READ_REG(KdBStart);
- pRC->MX1.CdKdBdx = GLINT_READ_REG(dKdBdx);
- pRC->MX1.CdKdBdyDom = GLINT_READ_REG(dKdBdyDom);
- if (pGlint->numMultiDevices == 2) {
- ACCESSCHIP2();
- pRC->MX2.CSStart = GLINT_READ_REG(SStart);
- pRC->MX2.CdSdx = GLINT_READ_REG(dSdx);
- pRC->MX2.CdSdyDom = GLINT_READ_REG(dSdyDom);
- pRC->MX2.CTStart = GLINT_READ_REG(TStart);
- pRC->MX2.CdTdx = GLINT_READ_REG(dTdx);
- pRC->MX2.CdTdyDom = GLINT_READ_REG(dTdyDom);
- pRC->MX2.CQStart = GLINT_READ_REG(QStart);
- pRC->MX2.CdQdx = GLINT_READ_REG(dQdx);
- pRC->MX2.CdQdyDom = GLINT_READ_REG(dQdyDom);
- pRC->MX2.CLOD = GLINT_READ_REG(LOD);
- pRC->MX2.CdSdy = GLINT_READ_REG(dSdy);
- pRC->MX2.CdTdy = GLINT_READ_REG(dTdy);
- pRC->MX2.CdQdy = GLINT_READ_REG(dQdy);
- pRC->MX2.CTextureFormat = GLINT_READ_REG(TextureFormat);
- pRC->MX2.CTextureCacheControl = GLINT_READ_REG(TextureCacheControl);
- pRC->MX2.CGLINTBorderColor = GLINT_READ_REG(GLINTBorderColor);
- pRC->MX2.CTexelLUTIndex = GLINT_READ_REG(TexelLUTIndex);
- pRC->MX2.CTexelLUTData = GLINT_READ_REG(TexelLUTData);
- pRC->MX2.CTexelLUTAddress = GLINT_READ_REG(TexelLUTAddress);
- pRC->MX2.CTexelLUTTransfer = GLINT_READ_REG(TexelLUTTransfer);
- pRC->MX2.CTextureFilterMode = GLINT_READ_REG(TextureFilterMode);
- pRC->MX2.CTextureChromaUpper = GLINT_READ_REG(TextureChromaUpper);
- pRC->MX2.CTextureChromaLower = GLINT_READ_REG(TextureChromaLower);
- pRC->MX2.CTxBaseAddr0 = GLINT_READ_REG(TxBaseAddr0);
- pRC->MX2.CTxBaseAddr1 = GLINT_READ_REG(TxBaseAddr1);
- pRC->MX2.CTxBaseAddr2 = GLINT_READ_REG(TxBaseAddr2);
- pRC->MX2.CTxBaseAddr3 = GLINT_READ_REG(TxBaseAddr3);
- pRC->MX2.CTxBaseAddr4 = GLINT_READ_REG(TxBaseAddr4);
- pRC->MX2.CTxBaseAddr5 = GLINT_READ_REG(TxBaseAddr5);
- pRC->MX2.CTxBaseAddr6 = GLINT_READ_REG(TxBaseAddr6);
- pRC->MX2.CTxBaseAddr7 = GLINT_READ_REG(TxBaseAddr7);
- pRC->MX2.CTxBaseAddr8 = GLINT_READ_REG(TxBaseAddr8);
- pRC->MX2.CTxBaseAddr9 = GLINT_READ_REG(TxBaseAddr9);
- pRC->MX2.CTxBaseAddr10 = GLINT_READ_REG(TxBaseAddr10);
- pRC->MX2.CTxBaseAddr11 = GLINT_READ_REG(TxBaseAddr11);
- pRC->MX2.CTexelLUT0 = GLINT_READ_REG(TexelLUT0);
- pRC->MX2.CTexelLUT1 = GLINT_READ_REG(TexelLUT1);
- pRC->MX2.CTexelLUT2 = GLINT_READ_REG(TexelLUT2);
- pRC->MX2.CTexelLUT3 = GLINT_READ_REG(TexelLUT3);
- pRC->MX2.CTexelLUT4 = GLINT_READ_REG(TexelLUT4);
- pRC->MX2.CTexelLUT5 = GLINT_READ_REG(TexelLUT5);
- pRC->MX2.CTexelLUT6 = GLINT_READ_REG(TexelLUT6);
- pRC->MX2.CTexelLUT7 = GLINT_READ_REG(TexelLUT7);
- pRC->MX2.CTexelLUT8 = GLINT_READ_REG(TexelLUT8);
- pRC->MX2.CTexelLUT9 = GLINT_READ_REG(TexelLUT9);
- pRC->MX2.CTexelLUT10 = GLINT_READ_REG(TexelLUT10);
- pRC->MX2.CTexelLUT11 = GLINT_READ_REG(TexelLUT11);
- pRC->MX2.CTexelLUT12 = GLINT_READ_REG(TexelLUT12);
- pRC->MX2.CTexelLUT13 = GLINT_READ_REG(TexelLUT13);
- pRC->MX2.CTexelLUT14 = GLINT_READ_REG(TexelLUT14);
- pRC->MX2.CTexelLUT15 = GLINT_READ_REG(TexelLUT15);
- pRC->MX2.CTexel0 = GLINT_READ_REG(Texel0);
- pRC->MX2.CTexel1 = GLINT_READ_REG(Texel1);
- pRC->MX2.CTexel2 = GLINT_READ_REG(Texel2);
- pRC->MX2.CTexel3 = GLINT_READ_REG(Texel3);
- pRC->MX2.CTexel4 = GLINT_READ_REG(Texel4);
- pRC->MX2.CTexel5 = GLINT_READ_REG(Texel5);
- pRC->MX2.CTexel6 = GLINT_READ_REG(Texel6);
- pRC->MX2.CTexel7 = GLINT_READ_REG(Texel7);
- pRC->MX2.CInterp0 = GLINT_READ_REG(Interp0);
- pRC->MX2.CInterp1 = GLINT_READ_REG(Interp1);
- pRC->MX2.CInterp2 = GLINT_READ_REG(Interp2);
- pRC->MX2.CInterp3 = GLINT_READ_REG(Interp3);
- pRC->MX2.CInterp4 = GLINT_READ_REG(Interp4);
- pRC->MX2.CTextureFilter = GLINT_READ_REG(TextureFilter);
- pRC->MX2.CTextureEnvColor = GLINT_READ_REG(TextureEnvColor);
- pRC->MX2.CFogColor = GLINT_READ_REG(FogColor);
- pRC->MX2.CFStart = GLINT_READ_REG(FStart);
- pRC->MX2.CdFdx = GLINT_READ_REG(dFdx);
- pRC->MX2.CdFdyDom = GLINT_READ_REG(dFdyDom);
- pRC->MX2.CKsStart = GLINT_READ_REG(KsStart);
- pRC->MX2.CdKsdx = GLINT_READ_REG(dKsdx);
- pRC->MX2.CdKsdyDom = GLINT_READ_REG(dKsdyDom);
- pRC->MX2.CKdStart = GLINT_READ_REG(KdStart);
- pRC->MX2.CdKdStart = GLINT_READ_REG(dKdStart);
- pRC->MX2.CdKddyDom = GLINT_READ_REG(dKddyDom);
- pRC->MX2.CRStart = GLINT_READ_REG(RStart);
- pRC->MX2.CdRdx = GLINT_READ_REG(dRdx);
- pRC->MX2.CdRdyDom = GLINT_READ_REG(dRdyDom);
- pRC->MX2.CGStart = GLINT_READ_REG(GStart);
- pRC->MX2.CdGdx = GLINT_READ_REG(dGdx);
- pRC->MX2.CdGdyDom = GLINT_READ_REG(dGdyDom);
- pRC->MX2.CBStart = GLINT_READ_REG(BStart);
- pRC->MX2.CdBdx = GLINT_READ_REG(dBdx);
- pRC->MX2.CdBdyDom = GLINT_READ_REG(dBdyDom);
- pRC->MX2.CAStart = GLINT_READ_REG(AStart);
- pRC->MX2.CdAdx = GLINT_READ_REG(dAdx);
- pRC->MX2.CdAdyDom = GLINT_READ_REG(dAdyDom);
- pRC->MX2.CConstantColor = GLINT_READ_REG(ConstantColor);
- pRC->MX2.CChromaUpper = GLINT_READ_REG(ChromaUpper);
- pRC->MX2.CChromaLower = GLINT_READ_REG(ChromaLower);
- pRC->MX2.CChromaTestMode = GLINT_READ_REG(ChromaTestMode);
- pRC->MX2.CStencilData = GLINT_READ_REG(StencilData);
- pRC->MX2.CGLINTStencil = GLINT_READ_REG(GLINTStencil);
- pRC->MX2.CZStartU = GLINT_READ_REG(ZStartU);
- pRC->MX2.CZStartL = GLINT_READ_REG(ZStartL);
- pRC->MX2.CdZdxU = GLINT_READ_REG(dZdxU);
- pRC->MX2.CdZdxL = GLINT_READ_REG(dZdxL);
- pRC->MX2.CdZdyDomU = GLINT_READ_REG(dZdyDomU);
- pRC->MX2.CdZdyDomL = GLINT_READ_REG(dZdyDomL);
- pRC->MX2.CFastClearDepth = GLINT_READ_REG(FastClearDepth);
- pRC->MX2.CMinRegion = GLINT_READ_REG(MinRegion);
- pRC->MX2.CMaxRegion = GLINT_READ_REG(MaxRegion);
- pRC->MX2.CKsRStart = GLINT_READ_REG(KsRStart);
- pRC->MX2.CdKsRdx = GLINT_READ_REG(dKsRdx);
- pRC->MX2.CdKsRdyDom = GLINT_READ_REG(dKsRdyDom);
- pRC->MX2.CKsGStart = GLINT_READ_REG(KsGStart);
- pRC->MX2.CdKsGdx = GLINT_READ_REG(dKsGdx);
- pRC->MX2.CdKsGdyDom = GLINT_READ_REG(dKsGdyDom);
- pRC->MX2.CKsBStart = GLINT_READ_REG(KsBStart);
- pRC->MX2.CdKsBdx = GLINT_READ_REG(dKsBdx);
- pRC->MX2.CdKsBdyDom = GLINT_READ_REG(dKsBdyDom);
- pRC->MX2.CKdRStart = GLINT_READ_REG(KdRStart);
- pRC->MX2.CdKdRdx = GLINT_READ_REG(dKdRdx);
- pRC->MX2.CdKdRdyDom = GLINT_READ_REG(dKdRdyDom);
- pRC->MX2.CKdGStart = GLINT_READ_REG(KdGStart);
- pRC->MX2.CdKdGdx = GLINT_READ_REG(dKdGdx);
- pRC->MX2.CdKdGdyDom = GLINT_READ_REG(dKdGdyDom);
- pRC->MX2.CKdBStart = GLINT_READ_REG(KdBStart);
- pRC->MX2.CdKdBdx = GLINT_READ_REG(dKdBdx);
- pRC->MX2.CdKdBdyDom = GLINT_READ_REG(dKdBdyDom);
- ACCESSCHIP1();
- }
-
- /* send gamma the context dump command */
- GLINT_WAIT(3);
- if (pGlint->numMultiDevices == 2)
- GLINT_WRITE_REG(1, BroadcastMask);
- GLINT_WRITE_REG(3<<14, FilterMode); /* context bits on gamma */
- GLINT_WRITE_REG(GLINT_GAMMA_CONTEXT_MASK, ContextDump);
-
- /* save context data from output fifo */
- dumpIndex = 0;
- do {
- while(GLINT_READ_REG(OutFIFOWords) == 0);
- readValue = GLINT_READ_REG(OutputFIFO);
-#ifdef DEBUG
-xf86DrvMsg(pScreen->myNum, X_INFO, "pRC tag [%d]: %x\n",
-dumpIndex,readValue);
-#endif
- while(GLINT_READ_REG(OutFIFOWords) == 0);
- readValue = GLINT_READ_REG(OutputFIFO);
-#ifdef DEBUG
-xf86DrvMsg(pScreen->myNum, X_INFO, "pRC data [%d]: %x\n",
-dumpIndex,readValue);
-#endif
- pRC->Gamma[dumpIndex++] = readValue;
- } while (dumpIndex < GLINT_GAMMA_CONTEXT_SIZE);
-
- /* clear contextDump tag and data out of fifo */
- while(GLINT_READ_REG(OutFIFOWords) == 0);
- readValue = GLINT_READ_REG(OutputFIFO);
- if (readValue != ContextDump_tag) {
- xf86DrvMsg(pScreen->myNum, X_ERROR, "Context dump error\n");
- }
- while(GLINT_READ_REG(OutFIFOWords) == 0);
- readValue = GLINT_READ_REG(OutputFIFO);
-
- GLINT_SLOW_WRITE_REG(1<<10, FilterMode);
- if (pGlint->numMultiDevices == 2)
- GLINT_SLOW_WRITE_REG(3,BroadcastMask);
- }
- }
-
- if (writeContextType != DRI_NO_CONTEXT) {
-
- if (writeContextType == DRI_3D_CONTEXT) {
- /* restore the 3D portion of the new context */
-
- /* send context restore command */
- GLINT_WAIT(1);
- if (pGlint->numMultiDevices == 2)
- GLINT_WRITE_REG(1, BroadcastMask);
-
- GLINT_WAIT(3);
- GLINT_WRITE_REG(ContextRestore_tag, OutputFIFO);
- GLINT_WRITE_REG(GLINT_GAMMA_CONTEXT_MASK, OutputFIFO);
- GLINT_WRITE_REG((((GLINT_GAMMA_CONTEXT_SIZE-1) << 16) |
- ContextData_tag), OutputFIFO);
-
- /* restore context data to context data register */
- dumpIndex = 0;
- do {
- GLINT_WAIT(1);
-#ifdef DEBUG
-xf86DrvMsg(pScreen->myNum, X_INFO, "pWC data [%d]: %x\n",
-dumpIndex,pWC->Gamma[dumpIndex]);
-#endif
- GLINT_WRITE_REG(pWC->Gamma[dumpIndex++], OutputFIFO);
- } while (dumpIndex < (GLINT_GAMMA_CONTEXT_SIZE));
-
- /* Sync after writing gamma context and
- before writing MX context */
- if (pGlint->AccelInfoRec->Sync) {
- (*pGlint->AccelInfoRec->Sync)(pGlint->AccelInfoRec->pScrn);
- }
- /* Update XAA's NeedToSync flag */
- pGlint->AccelInfoRec->NeedToSync = TRUE;
-
- /* finally the MX portions */
- if (pGlint->numMultiDevices == 2)
- GLINT_SLOW_WRITE_REG(1, BroadcastMask);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CSStart, SStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdSdx, dSdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdSdyDom, dSdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTStart, TStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdTdx, dTdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdTdyDom, dTdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CQStart, QStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdQdx, dQdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdQdyDom, dQdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLOD, LOD);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdSdy, dSdy);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdTdy, dTdy);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdQdy, dQdy);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureFormat, TextureFormat);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureCacheControl, TextureCacheControl);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CGLINTBorderColor, GLINTBorderColor);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUTIndex, TexelLUTIndex);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUTData, TexelLUTData);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUTAddress, TexelLUTAddress);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUTTransfer, TexelLUTTransfer);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureFilterMode, TextureFilterMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureChromaUpper, TextureChromaUpper);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureChromaLower, TextureChromaLower);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr0, TxBaseAddr0);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr1, TxBaseAddr1);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr2, TxBaseAddr2);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr3, TxBaseAddr3);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr4, TxBaseAddr4);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr5, TxBaseAddr5);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr6, TxBaseAddr6);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr7, TxBaseAddr7);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr8, TxBaseAddr8);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr9, TxBaseAddr9);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr10, TxBaseAddr10);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTxBaseAddr11, TxBaseAddr11);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT0, TexelLUT0);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT1, TexelLUT1);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT2, TexelLUT2);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT3, TexelLUT3);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT4, TexelLUT4);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT5, TexelLUT5);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT6, TexelLUT6);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT7, TexelLUT7);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT8, TexelLUT8);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT9, TexelLUT9);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT10, TexelLUT10);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT11, TexelLUT11);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT12, TexelLUT12);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT13, TexelLUT13);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT14, TexelLUT14);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexelLUT15, TexelLUT15);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel0, Texel0);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel1, Texel1);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel2, Texel2);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel3, Texel3);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel4, Texel4);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel5, Texel5);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel6, Texel6);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTexel7, Texel7);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CInterp0, Interp0);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CInterp1, Interp1);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CInterp2, Interp2);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CInterp3, Interp3);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CInterp4, Interp4);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureFilter, TextureFilter);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureEnvColor, TextureEnvColor);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFogColor, FogColor);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFStart, FStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdFdx, dFdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdFdyDom, dFdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKsStart, KsStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsdx, dKsdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsdyDom, dKsdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKdStart, KdStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKdStart, dKdStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKddyDom, dKddyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CRStart, RStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdRdx, dRdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdRdyDom, dRdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CGStart, GStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdGdx, dGdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdGdyDom, dGdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CBStart, BStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdBdx, dBdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdBdyDom, dBdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CAStart, AStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdAdx, dAdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdAdyDom, dAdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CConstantColor, ConstantColor);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CChromaUpper, ChromaUpper);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CChromaLower, ChromaLower);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CChromaTestMode, ChromaTestMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CStencilData, StencilData);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CGLINTStencil, GLINTStencil);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CZStartU, ZStartU);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CZStartL, ZStartL);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdZdxU, dZdxU);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdZdxL, dZdxL);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdZdyDomU, dZdyDomU);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdZdyDomL, dZdyDomL);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFastClearDepth, FastClearDepth);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CMinRegion, MinRegion);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CMaxRegion, MaxRegion);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKsRStart, KsRStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsRdx, dKsRdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsRdyDom, dKsRdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKsGStart, KsGStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsGdx, dKsGdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsGdyDom, dKsGdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKsBStart, KsBStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsBdx, dKsBdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKsBdyDom, dKsBdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKdRStart, KdRStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKdRdx, dKdRdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKdRdyDom, dKdRdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKdGStart, KdGStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKdGdx, dKdGdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKdGdyDom, dKdGdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CKdBStart, KdBStart);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKdBdx, dKdBdx);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdKdBdyDom, dKdBdyDom);
-
- if (pGlint->numMultiDevices == 2) {
- GLINT_SLOW_WRITE_REG(2, BroadcastMask);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CSStart, SStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdSdx, dSdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdSdyDom, dSdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTStart, TStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdTdx, dTdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdTdyDom, dTdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CQStart, QStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdQdx, dQdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdQdyDom, dQdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLOD, LOD);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdSdy, dSdy);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdTdy, dTdy);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdQdy, dQdy);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureFormat, TextureFormat);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureCacheControl, TextureCacheControl);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CGLINTBorderColor, GLINTBorderColor);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUTIndex, TexelLUTIndex);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUTData, TexelLUTData);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUTAddress, TexelLUTAddress);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUTTransfer, TexelLUTTransfer);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureFilterMode, TextureFilterMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureChromaUpper, TextureChromaUpper);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureChromaLower, TextureChromaLower);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr0, TxBaseAddr0);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr1, TxBaseAddr1);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr2, TxBaseAddr2);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr3, TxBaseAddr3);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr4, TxBaseAddr4);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr5, TxBaseAddr5);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr6, TxBaseAddr6);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr7, TxBaseAddr7);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr8, TxBaseAddr8);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr9, TxBaseAddr9);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr10, TxBaseAddr10);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTxBaseAddr11, TxBaseAddr11);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT0, TexelLUT0);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT1, TexelLUT1);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT2, TexelLUT2);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT3, TexelLUT3);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT4, TexelLUT4);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT5, TexelLUT5);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT6, TexelLUT6);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT7, TexelLUT7);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT8, TexelLUT8);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT9, TexelLUT9);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT10, TexelLUT10);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT11, TexelLUT11);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT12, TexelLUT12);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT13, TexelLUT13);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT14, TexelLUT14);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexelLUT15, TexelLUT15);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel0, Texel0);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel1, Texel1);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel2, Texel2);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel3, Texel3);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel4, Texel4);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel5, Texel5);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel6, Texel6);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTexel7, Texel7);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CInterp0, Interp0);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CInterp1, Interp1);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CInterp2, Interp2);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CInterp3, Interp3);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CInterp4, Interp4);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureFilter, TextureFilter);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureEnvColor, TextureEnvColor);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFogColor, FogColor);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFStart, FStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdFdx, dFdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdFdyDom, dFdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKsStart, KsStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsdx, dKsdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsdyDom, dKsdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKdStart, KdStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKdStart, dKdStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKddyDom, dKddyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CRStart, RStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdRdx, dRdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdRdyDom, dRdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CGStart, GStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdGdx, dGdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdGdyDom, dGdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CBStart, BStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdBdx, dBdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdBdyDom, dBdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CAStart, AStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdAdx, dAdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdAdyDom, dAdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CConstantColor, ConstantColor);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CChromaUpper, ChromaUpper);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CChromaLower, ChromaLower);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CChromaTestMode, ChromaTestMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CStencilData, StencilData);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CGLINTStencil, GLINTStencil);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CZStartU, ZStartU);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CZStartL, ZStartL);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdZdxU, dZdxU);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdZdxL, dZdxL);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdZdyDomU, dZdyDomU);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdZdyDomL, dZdyDomL);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFastClearDepth, FastClearDepth);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CMinRegion, MinRegion);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CMaxRegion, MaxRegion);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKsRStart, KsRStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsRdx, dKsRdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsRdyDom, dKsRdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKsGStart, KsGStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsGdx, dKsGdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsGdyDom, dKsGdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKsBStart, KsBStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsBdx, dKsBdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKsBdyDom, dKsBdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKdRStart, KdRStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKdRdx, dKdRdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKdRdyDom, dKdRdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKdGStart, KdGStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKdGdx, dKdGdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKdGdyDom, dKdGdyDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CKdBStart, KdBStart);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKdBdx, dKdBdx);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdKdBdyDom, dKdBdyDom);
- }
- }
-
- /* restore the 2D portion of the new context */
-
- /* Restore MX1's registers */
- if (pGlint->numMultiDevices == 2)
- GLINT_SLOW_WRITE_REG(1, BroadcastMask);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CStartXDom, StartXDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdXDom, dXDom);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CStartXSub, StartXSub);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdXSub, dXSub);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CStartY, StartY);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CdY, dY);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CGLINTCount, GLINTCount);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CPointTable0, PointTable0);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CPointTable1, PointTable1);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CPointTable2, PointTable2);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CPointTable3, PointTable3);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CRasterizerMode, RasterizerMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CYLimits, YLimits);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CScanLineOwnership, ScanLineOwnership);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CPixelSize, PixelSize);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CScissorMode, ScissorMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CScissorMinXY, ScissorMinXY);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CScissorMaxXY, ScissorMaxXY);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CScreenSize, ScreenSize);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CAreaStippleMode, AreaStippleMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLineStippleMode, LineStippleMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLoadLineStippleCounters, LoadLineStippleCounters);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CWindowOrigin, WindowOrigin);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CRouterMode, RouterMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureAddressMode, TextureAddressMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureReadMode, TextureReadMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureColorMode, TextureColorMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFogMode, FogMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CColorDDAMode, ColorDDAMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CGLINTColor, GLINTColor);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CAlphaTestMode, AlphaTestMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CAntialiasMode, AntialiasMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CAlphaBlendMode, AlphaBlendMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CDitherMode, DitherMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBSoftwareWriteMask, FBSoftwareWriteMask);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLogicalOpMode, LogicalOpMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBWriteData, FBWriteData);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLBReadMode, LBReadMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLBSourceOffset, LBSourceOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLBWindowBase, LBWindowBase);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLBWriteMode, LBWriteMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CTextureDownloadOffset, TextureDownloadOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CLBWindowOffset, LBWindowOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CGLINTWindow, GLINTWindow);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CStencilMode, StencilMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CDepthMode, DepthMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CGLINTDepth, GLINTDepth);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBReadMode, FBReadMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBSourceOffset, FBSourceOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBPixelOffset, FBPixelOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBWindowBase, FBWindowBase);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBWriteMode, FBWriteMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBHardwareWriteMask, FBHardwareWriteMask);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBBlockColor, FBBlockColor);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CPatternRamMode, PatternRamMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBBlockColorU, FBBlockColorU);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFBBlockColorL, FBBlockColorL);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CFilterMode, FilterMode);
- GLINT_SLOW_WRITE_REG(pWC->MX1.CStatisticMode, StatisticMode);
-
- /* Restore MX2's registers */
- if (pGlint->numMultiDevices == 2) {
- GLINT_SLOW_WRITE_REG(2, BroadcastMask);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CStartXDom, StartXDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdXDom, dXDom);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CStartXSub, StartXSub);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdXSub, dXSub);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CStartY, StartY);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CdY, dY);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CGLINTCount, GLINTCount);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CPointTable0, PointTable0);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CPointTable1, PointTable1);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CPointTable2, PointTable2);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CPointTable3, PointTable3);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CRasterizerMode, RasterizerMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CYLimits, YLimits);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CScanLineOwnership, ScanLineOwnership);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CPixelSize, PixelSize);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CScissorMode, ScissorMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CScissorMinXY, ScissorMinXY);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CScissorMaxXY, ScissorMaxXY);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CScreenSize, ScreenSize);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CAreaStippleMode, AreaStippleMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLineStippleMode, LineStippleMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLoadLineStippleCounters, LoadLineStippleCounters);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CWindowOrigin, WindowOrigin);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CRouterMode, RouterMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureAddressMode, TextureAddressMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureReadMode, TextureReadMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureColorMode, TextureColorMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFogMode, FogMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CColorDDAMode, ColorDDAMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CGLINTColor, GLINTColor);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CAlphaTestMode, AlphaTestMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CAntialiasMode, AntialiasMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CAlphaBlendMode, AlphaBlendMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CDitherMode, DitherMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBSoftwareWriteMask, FBSoftwareWriteMask);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLogicalOpMode, LogicalOpMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBWriteData, FBWriteData);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLBReadMode, LBReadMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLBSourceOffset, LBSourceOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLBWindowBase, LBWindowBase);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLBWriteMode, LBWriteMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CTextureDownloadOffset, TextureDownloadOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CLBWindowOffset, LBWindowOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CGLINTWindow, GLINTWindow);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CStencilMode, StencilMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CDepthMode, DepthMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CGLINTDepth, GLINTDepth);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBReadMode, FBReadMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBSourceOffset, FBSourceOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBPixelOffset, FBPixelOffset);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBWindowBase, FBWindowBase);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBWriteMode, FBWriteMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBHardwareWriteMask, FBHardwareWriteMask);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBBlockColor, FBBlockColor);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CPatternRamMode, PatternRamMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBBlockColorU, FBBlockColorU);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFBBlockColorL, FBBlockColorL);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CFilterMode, FilterMode);
- GLINT_SLOW_WRITE_REG(pWC->MX2.CStatisticMode, StatisticMode);
-
- /* Restore the "real" broadcast mask last */
- GLINT_SLOW_WRITE_REG(pWC->MX1.CBroadcastMask, BroadcastMask);
- }
- /* Sync is needed here probabilistically */
- if (pGlint->AccelInfoRec->Sync) {
- (*pGlint->AccelInfoRec->Sync)(pGlint->AccelInfoRec->pScrn);
- pGlint->AccelInfoRec->NeedToSync = FALSE;
- }
- }
-}
-
-void
-GLINTDRIInitBuffers(
- WindowPtr pWin,
- RegionPtr prgn,
- CARD32 index)
-{
- ScreenPtr pScreen = pWin->drawable.pScreen;
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- GLINTPtr pGlint = GLINTPTR(pScrn);
- BoxPtr pbox;
- int nbox;
-
- pbox = REGION_RECTS(prgn);
- nbox = REGION_NUM_RECTS(prgn);
-
- GLINT_WAIT(7);
- /* Turn off writes the FB */
- GLINT_WRITE_REG(0, FBWriteMode);
- GLINT_WRITE_REG(0, LBWindowBase);
- GLINT_WRITE_REG(1, LBWriteMode);
- if (pGlint->numMultiDevices == 2) {
- GLINT_WRITE_REG( pGlint->pprod |
- LBRM_ScanlineInt2 , LBReadMode);
- } else {
- GLINT_WRITE_REG( pGlint->pprod , LBReadMode);
- }
- GLINT_WRITE_REG(0, LBDepth);
- GLINT_WRITE_REG(0, LBStencil);
- GLINT_WRITE_REG( GWIN_UnitEnable |
- GWIN_ForceLBUpdate |
- ((index & 0xf) << 5) |
- GWIN_LBUpdateSourceREG |
- GWIN_OverrideWriteFilter, GLINTWindow);
-
- while (nbox--) {
- GLINT_WAIT(8);
- GLINT_WRITE_REG((pbox->x2)<<16, StartXSub);
- GLINT_WRITE_REG((pbox->x1)<<16, StartXDom);
- GLINT_WRITE_REG((pbox->y1)<<16, StartY);
- GLINT_WRITE_REG((pbox->y2 - pbox->y1), GLINTCount);
- GLINT_WRITE_REG(0, dXDom);
- GLINT_WRITE_REG(0x10000, dY);
- /* Must also set dXSub, since 3D tris cause it to be != 0 */
- GLINT_WRITE_REG(0, dXSub);
- GLINT_WRITE_REG(PrimitiveTrapezoid, Render);
- pbox++;
- }
-
- GLINT_WAIT(3);
- GLINT_SLOW_WRITE_REG(UNIT_DISABLE, LBWriteMode);
- GLINT_SLOW_WRITE_REG(UNIT_ENABLE, FBWriteMode);
- GLINT_SLOW_WRITE_REG(UNIT_DISABLE, GLINTWindow);
-
- /* Update XAA's NeedToSync flag */
- pGlint->AccelInfoRec->NeedToSync = TRUE;
-}
-
-void
-GLINTDRIMoveBuffers(
- WindowPtr pParent,
- DDXPointRec ptOldOrg,
- RegionPtr prgnSrc,
- CARD32 index)
-{
- ScreenPtr pScreen = pParent->drawable.pScreen;
-#if 0
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
-#endif
- int dx, dy;
- WindowPtr pChild;
- RegionRec rgnSubWindow, rgnTranslateSrc;
- CARD32 indexSubWindow;
-
- /* NOT_DONE: For now, just init the buffer. We are not copying the depth
- * and stencil, they just get redrawn for the next frame(s).
- */
-
- REGION_NULL(pScreen, &rgnSubWindow);
- REGION_NULL(pScreen, &rgnTranslateSrc);
- REGION_COPY(pScreen, &rgnTranslateSrc, prgnSrc);
- dx = ptOldOrg.x - pParent->drawable.x;
- dy = ptOldOrg.y - pParent->drawable.y;
- REGION_TRANSLATE(pScreen, &rgnTranslateSrc, -dx, -dy);
-
- pChild = pParent;
- while (1) {
- if (pChild->viewable) {
- REGION_INTERSECT(pScreen, &rgnSubWindow,
- &pChild->borderClip, &rgnTranslateSrc);
- indexSubWindow = DRIGetDrawableIndex(pChild);
- GLINTDRIInitBuffers( pChild, &rgnSubWindow, indexSubWindow);
- if (pChild->firstChild) {
- pChild = pChild->firstChild;
- continue;
- }
- }
- while (!pChild->nextSib && (pChild != pParent))
- pChild = pChild->parent;
- if (pChild == pParent)
- break;
- pChild = pChild->nextSib;
- }
-}
diff --git a/src/glint_dri.h b/src/glint_dri.h
deleted file mode 100644
index 3952759..0000000
--- a/src/glint_dri.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.7 2002/10/30 12:52:16 alanh Exp $ */
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Author:
- * Jens Owen <jens@tungstengraphics.com>
- *
- */
-
-#ifndef _GLINT_DRI_H_
-#define _GLINT_DRI_H_
-
-#include "xf86drm.h"
-#include "glint_common.h"
-
-typedef struct {
- unsigned int GDeltaMode;
- unsigned int GDepthMode;
- unsigned int GGeometryMode;
- unsigned int GTransformMode;
-} GAMMAContextRegionRec, *GAMMAContextRegionPtr;
-
-typedef struct {
- unsigned char next, prev; /* indices to form a circular LRU */
- unsigned char in_use; /* owned by a client, or free? */
- int age; /* tracked by clients to update local LRU's */
-} GAMMATextureRegionRec, *GAMMATextureRegionPtr;
-
-typedef struct {
- GAMMAContextRegionRec context_state;
-
- unsigned int dirty;
-
- /* Maintain an LRU of contiguous regions of texture space. If
- * you think you own a region of texture memory, and it has an
- * age different to the one you set, then you are mistaken and
- * it has been stolen by another client. If global texAge
- * hasn't changed, there is no need to walk the list.
- *
- * These regions can be used as a proxy for the fine-grained
- * texture information of other clients - by maintaining them
- * in the same lru which is used to age their own textures,
- * clients have an approximate lru for the whole of global
- * texture space, and can make informed decisions as to which
- * areas to kick out. There is no need to choose whether to
- * kick out your own texture or someone else's - simply eject
- * them all in LRU order.
- */
-
-#define GAMMA_NR_TEX_REGIONS 64
- GAMMATextureRegionRec texList[GAMMA_NR_TEX_REGIONS+1];
- /* Last elt is sentinal */
- int texAge; /* last time texture was uploaded */
- int last_enqueue; /* last time a buffer was enqueued */
- int last_dispatch; /* age of the most recently dispatched buffer */
- int last_quiescent; /* */
- int ctxOwner; /* last context to upload state */
-
- int vertex_prim;
-} GLINTSAREADRIRec, *GLINTSAREADRIPtr;
-
-/*
- * Glint specific record passed back to client driver
- * via DRIGetDeviceInfo request
- */
-typedef struct {
- drmRegion registers0;
- drmRegion registers1;
- drmRegion registers2;
- drmRegion registers3;
- int numMultiDevices;
- int pprod;
- int cpp;
- int frontOffset;
- int frontPitch;
- int backOffset;
- int backPitch;
- int backX;
- int backY;
- int depthOffset;
- int depthPitch;
- int textureSize;
- int logTextureGranularity;
-} GLINTDRIRec, *GLINTDRIPtr;
-
-#define GLINT_DRI_BUF_COUNT 256
-#define GLINT_DRI_BUF_SIZE 4096
-
-#define GAMMA_NR_TEX_REGIONS 64
-
-#define DMA_WRITE(val,reg) \
-do { \
- pGlint->buf2D++ = Glint##reg##Tag; \
- pGlint->buf2D++ = val; \
-} while (0)
-
-#endif /* _GLINT_DRI_H_ */
diff --git a/src/glint_dripriv.h b/src/glint_dripriv.h
deleted file mode 100644
index 76dfd2b..0000000
--- a/src/glint_dripriv.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h,v 1.5 2000/06/17 10:00:13 alanh Exp $ */
-/**************************************************************************
-
-Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
-All Rights Reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sub license, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice (including the
-next paragraph) shall be included in all copies or substantial portions
-of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
-IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
-ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-**************************************************************************/
-
-/*
- * Author:
- * Jens Owen <jens@tungstengraphics.com>
- *
- */
-
-extern void GlxSetVisualConfigs(
- int nconfigs,
- __GLXvisualConfig *configs,
- void **configprivs
-);
-
-extern Bool GLINTCreateContext(ScreenPtr pScreen,
- VisualPtr visual,
- drm_context_t hwContext,
- void* pVisualConfigPriv,
- DRIContextType contextStore);
-
-extern void GLINTDRISwapContext( ScreenPtr pScreen,
- DRISyncType syncType,
- DRIContextType readContextType,
- void* readContextStore,
- DRIContextType writeContextType,
- void* writeContextStore);
-
-/* Macros to Setup Generic Kernel Device Driver to Handle DMA for gamma */
-
-/* WARNING!!! MAGIC NUMBER!!! The number of regions already added to the
- kernel must be specified here. Currently, the number is 2. */
-#define DRM_REG(reg) \
- (2 \
- + ((reg < 0x1000) \
- ? 0 \
- : ((reg < 0x10000) ? 1 : ((reg < 0x11000) ? 2 : 3))))
-
-#define DRM_OFF(reg) \
- ((reg < 0x1000) \
- ? reg \
- : ((reg < 0x10000) \
- ? (reg - 0x1000) \
- : ((reg < 0x11000) \
- ? (reg - 0x10000) \
- : (reg - 0x11000))))
-
-
-#define DRM_I_WRITE_R(reg,a,b,c,d) \
- DRM_I_WRITE(DRM_REG(reg), DRM_OFF(reg), a, b, c, d)
-
-#define DRM_I_WRITE_IMM_R(reg,a) \
- DRM_I_WRITE_IMM(DRM_REG(reg), DRM_OFF(reg), a)
-
-#define DRM_I_READ_R(reg) \
- DRM_I_READ(DRM_REG(reg), DRM_OFF(reg))
-
-#define DRM_I_WHILE_IMM_R(reg,a,b) \
- DRM_I_WHILE_IMM(DRM_REG(reg), DRM_OFF(reg), a, b)
-
-#define DRM_I_IF_IMM_R(reg,a,b,c) \
- DRM_I_IF_IMM(DRM_REG(reg), DRM_OFF(reg), a, b, c)
-
-#define GLINTSync GlintSync
-#define GLINTSyncTag 0x188
-
-#define GLINT_MAX_DRAWABLES 15
-#define GLINT_GAMMA_CONTEXT_SIZE 964
-#define GLINT_GAMMA_CONTEXT_MASK 0x7ff
-
-typedef struct {
- int index;
-} GLINTConfigPrivRec, *GLINTConfigPrivPtr;
-
-typedef struct {
-
- /* 2D components */
- CARD32 CStartXDom;
- CARD32 CdXDom;
- CARD32 CStartXSub;
- CARD32 CdXSub;
- CARD32 CStartY;
- CARD32 CdY;
- CARD32 CGLINTCount;
- CARD32 CPointTable0;
- CARD32 CPointTable1;
- CARD32 CPointTable2;
- CARD32 CPointTable3;
- CARD32 CRasterizerMode;
- CARD32 CYLimits;
- CARD32 CScanLineOwnership;
- CARD32 CPixelSize;
- CARD32 CScissorMode;
- CARD32 CScissorMinXY;
- CARD32 CScissorMaxXY;
- CARD32 CScreenSize;
- CARD32 CAreaStippleMode;
- CARD32 CLineStippleMode;
- CARD32 CLoadLineStippleCounters;
- CARD32 CWindowOrigin;
- CARD32 CRouterMode;
- CARD32 CTextureAddressMode;
- CARD32 CTextureReadMode;
- CARD32 CTextureColorMode;
- CARD32 CFogMode;
- CARD32 CColorDDAMode;
- CARD32 CGLINTColor;
- CARD32 CAlphaTestMode;
- CARD32 CAntialiasMode;
- CARD32 CAlphaBlendMode;
- CARD32 CDitherMode;
- CARD32 CFBSoftwareWriteMask;
- CARD32 CLogicalOpMode;
- CARD32 CFBWriteData;
- CARD32 CLBReadMode;
- CARD32 CLBSourceOffset;
- CARD32 CLBWindowBase;
- CARD32 CLBWriteMode;
- CARD32 CTextureDownloadOffset;
- CARD32 CLBWindowOffset;
- CARD32 CGLINTWindow;
- CARD32 CStencilMode;
- CARD32 CDepthMode;
- CARD32 CGLINTDepth;
- CARD32 CFBReadMode;
- CARD32 CFBSourceOffset;
- CARD32 CFBPixelOffset;
- CARD32 CFBWindowBase;
- CARD32 CFBWriteMode;
- CARD32 CFBHardwareWriteMask;
- CARD32 CFBBlockColor;
- CARD32 CPatternRamMode;
- CARD32 CFBBlockColorU;
- CARD32 CFBBlockColorL;
- CARD32 CFilterMode;
- CARD32 CStatisticMode;
- CARD32 CBroadcastMask;
-
- /* 3D components */
- CARD32 CSStart;
- CARD32 CdSdx;
- CARD32 CdSdyDom;
- CARD32 CTStart;
- CARD32 CdTdx;
- CARD32 CdTdyDom;
- CARD32 CQStart;
- CARD32 CdQdx;
- CARD32 CdQdyDom;
- CARD32 CLOD;
- CARD32 CdSdy;
- CARD32 CdTdy;
- CARD32 CdQdy;
- CARD32 CTex;
- CARD32 CTextureFormat;
- CARD32 CTextureCacheControl;
- CARD32 CGLINTBorderColor;
- CARD32 CTexelLUTIndex;
- CARD32 CTexelLUTData;
- CARD32 CTexelLUTAddress;
- CARD32 CTexelLUTTransfer;
- CARD32 CTextureFilterMode;
- CARD32 CTextureChromaUpper;
- CARD32 CTextureChromaLower;
- CARD32 CTxBaseAddr0;
- CARD32 CTxBaseAddr1;
- CARD32 CTxBaseAddr2;
- CARD32 CTxBaseAddr3;
- CARD32 CTxBaseAddr4;
- CARD32 CTxBaseAddr5;
- CARD32 CTxBaseAddr6;
- CARD32 CTxBaseAddr7;
- CARD32 CTxBaseAddr8;
- CARD32 CTxBaseAddr9;
- CARD32 CTxBaseAddr10;
- CARD32 CTxBaseAddr11;
- CARD32 CTxBaseAddr12;
- CARD32 CTexelLUT0;
- CARD32 CTexelLUT1;
- CARD32 CTexelLUT2;
- CARD32 CTexelLUT3;
- CARD32 CTexelLUT4;
- CARD32 CTexelLUT5;
- CARD32 CTexelLUT6;
- CARD32 CTexelLUT7;
- CARD32 CTexelLUT8;
- CARD32 CTexelLUT9;
- CARD32 CTexelLUT10;
- CARD32 CTexelLUT11;
- CARD32 CTexelLUT12;
- CARD32 CTexelLUT13;
- CARD32 CTexelLUT14;
- CARD32 CTexelLUT15;
- CARD32 CTexel0;
- CARD32 CTexel1;
- CARD32 CTexel2;
- CARD32 CTexel3;
- CARD32 CTexel4;
- CARD32 CTexel5;
- CARD32 CTexel6;
- CARD32 CTexel7;
- CARD32 CInterp0;
- CARD32 CInterp1;
- CARD32 CInterp2;
- CARD32 CInterp3;
- CARD32 CInterp4;
- CARD32 CTextureFilter;
- CARD32 CTextureEnvColor;
- CARD32 CFogColor;
- CARD32 CFStart;
- CARD32 CdFdx;
- CARD32 CdFdyDom;
- CARD32 CKsStart;
- CARD32 CdKsdx;
- CARD32 CdKsdyDom;
- CARD32 CKdStart;
- CARD32 CdKdStart;
- CARD32 CdKddyDom;
- CARD32 CRStart;
- CARD32 CdRdx;
- CARD32 CdRdyDom;
- CARD32 CGStart;
- CARD32 CdGdx;
- CARD32 CdGdyDom;
- CARD32 CBStart;
- CARD32 CdBdx;
- CARD32 CdBdyDom;
- CARD32 CAStart;
- CARD32 CdAdx;
- CARD32 CdAdyDom;
- CARD32 CConstantColor;
- CARD32 CChromaUpper;
- CARD32 CChromaLower;
- CARD32 CChromaTestMode;
- CARD32 CStencilData;
- CARD32 CGLINTStencil;
- CARD32 CZStartU;
- CARD32 CZStartL;
- CARD32 CdZdxU;
- CARD32 CdZdxL;
- CARD32 CdZdyDomU;
- CARD32 CdZdyDomL;
- CARD32 CFastClearDepth;
- CARD32 CMinRegion;
- CARD32 CMaxRegion;
- CARD32 CKsRStart;
- CARD32 CdKsRdx;
- CARD32 CdKsRdyDom;
- CARD32 CKsGStart;
- CARD32 CdKsGdx;
- CARD32 CdKsGdyDom;
- CARD32 CKsBStart;
- CARD32 CdKsBdx;
- CARD32 CdKsBdyDom;
- CARD32 CKdRStart;
- CARD32 CdKdRdx;
- CARD32 CdKdRdyDom;
- CARD32 CKdGStart;
- CARD32 CdKdGdx;
- CARD32 CdKdGdyDom;
- CARD32 CKdBStart;
- CARD32 CdKdBdx;
- CARD32 CdKdBdyDom;
-
-} GLINTMXRec;
-
-typedef struct {
- GLINTMXRec MX1;
- GLINTMXRec MX2;
- CARD32 Gamma[GLINT_GAMMA_CONTEXT_SIZE];
-} GLINTDRIContextRec, *GLINTDRIContextPtr;
diff --git a/src/glint_driver.c b/src/glint_driver.c
index ffafc39..a0b378a 100644
--- a/src/glint_driver.c
+++ b/src/glint_driver.c
@@ -2799,19 +2799,6 @@ GLINTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
return FALSE;
}
-#ifdef XF86DRI_DEVEL
- /*
- * Setup DRI after visuals have been established, but before fbScreenInit
- * is called. fbScreenInit will eventually call into the drivers
- * InitGLXVisuals call back.
- */
- if (!pGlint->NoAccel && pGlint->HWCursor) {
- pGlint->directRenderingEnabled = GLINTDRIScreenInit(pScreen);
- } else {
- pGlint->directRenderingEnabled = FALSE;
- }
-#endif
-
/*
* Call the framebuffer layer's ScreenInit function, and fill in other
* pScreen fields.
@@ -3037,22 +3024,6 @@ GLINTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
xf86DPMSInit(pScreen, (DPMSSetProcPtr)GLINTDisplayPowerManagementSet, 0);
-#ifdef XF86DRI_DEVEL
- if (pGlint->directRenderingEnabled) {
- /* Now that mi, cfb, drm and others have done their thing,
- * complete the DRI setup.
- */
- pGlint->directRenderingEnabled = GLINTDRIFinishScreenInit(pScreen);
- }
- if (pGlint->directRenderingEnabled) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "direct rendering enabled\n");
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "direct rendering disabled\n");
- }
-#endif
-
pScrn->memPhysBase = pGlint->FbAddress;
pScrn->fbOffset = 0;
@@ -3346,11 +3317,6 @@ GLINTCloseScreen(int scrnIndex, ScreenPtr pScreen)
GLINTPtr pGlint = GLINTPTR(pScrn);
TRACE_ENTER("GLINTCloseScreen");
-#ifdef XF86DRI_DEVEL
- if (pGlint->directRenderingEnabled) {
- GLINTDRICloseScreen(pScreen);
- }
-#endif
switch (pGlint->Chipset) {
case PCI_VENDOR_TI_CHIP_PERMEDIA2:
diff --git a/src/glint_regs.h b/src/glint_regs.h
index 426e9ae..cde8d8f 100644
--- a/src/glint_regs.h
+++ b/src/glint_regs.h
@@ -1282,7 +1282,6 @@ do{ \
} \
}
-#ifndef XF86DRI_DEVEL
#define LOADROP(rop) \
{ \
if (pGlint->ROP != rop) { \
@@ -1290,14 +1289,7 @@ do{ \
pGlint->ROP = rop; \
} \
}
-#else
-#define LOADROP(rop) \
- { \
- GLINT_WRITE_REG(rop<<1|UNIT_ENABLE, LogicalOpMode); \
- pGlint->ROP = rop; \
- }
-#endif
-
+
#define CHECKCLIPPING \
{ \
if (pGlint->ClippingOn) { \
@@ -1307,7 +1299,6 @@ do{ \
} \
}
-#ifndef XF86DRI_DEVEL
#define DO_PLANEMASK(planemask) \
{ \
if (planemask != pGlint->planemask) { \
@@ -1316,14 +1307,6 @@ do{ \
GLINT_WRITE_REG(planemask, FBHardwareWriteMask);\
} \
}
-#else
-#define DO_PLANEMASK(planemask) \
- { \
- pGlint->planemask = planemask; \
- REPLICATE(planemask); \
- GLINT_WRITE_REG(planemask, FBHardwareWriteMask);\
- }
-#endif
/* Permedia Save/Restore functions */
diff --git a/src/pm3_accel.c b/src/pm3_accel.c
index 786a3e3..4170e30 100644
--- a/src/pm3_accel.c
+++ b/src/pm3_accel.c
@@ -67,7 +67,6 @@
#define PM3_OTHERWRITEMASK \
(pGlint->PM3_UsingSGRAM ? PM3FBSoftwareWriteMask : PM3FBHardwareWriteMask )
-#ifndef XF86DRI_DEVEL
#define PM3_PLANEMASK(planemask) \
{ \
if (planemask != pGlint->planemask) { \
@@ -76,14 +75,6 @@
GLINT_WRITE_REG(planemask, PM3_WRITEMASK); \
} \
}
-#else
-#define PM3_PLANEMASK(planemask) \
- { \
- pGlint->planemask = planemask; \
- REPLICATE(planemask); \
- GLINT_WRITE_REG(planemask, PM3_WRITEMASK); \
- }
-#endif
/* Clipping */
static void Permedia3SetClippingRectangle(ScrnInfoPtr pScrn, int x, int y,
diff --git a/src/tx_accel.c b/src/tx_accel.c
index 7954ce0..0ce04c8 100644
--- a/src/tx_accel.c
+++ b/src/tx_accel.c
@@ -294,7 +294,6 @@ static void TXLoadCoord(
){
GLINTPtr pGlint = GLINTPTR(pScrn);
-#ifndef XF86DRI_DEVEL
if (w != pGlint->startxsub) {
GLINT_WRITE_REG(w<<16, StartXSub);
pGlint->startxsub = w;
@@ -319,20 +318,6 @@ static void TXLoadCoord(
GLINT_WRITE_REG(d<<16,dY);
pGlint->dy = d;
}
-#else
- GLINT_WRITE_REG(w<<16, StartXSub);
- GLINT_WRITE_REG(x<<16,StartXDom);
- GLINT_WRITE_REG(y<<16,StartY);
- GLINT_WRITE_REG(h,GLINTCount);
- GLINT_WRITE_REG(a<<16,dXDom);
- GLINT_WRITE_REG(d<<16,dY);
- pGlint->startxsub = w;
- pGlint->startxdom = x;
- pGlint->starty = y;
- pGlint->count = h;
- pGlint->dxdom = a;
- pGlint->dy = d;
-#endif
}
static void