home *** CD-ROM | disk | FTP | other *** search
/ MGA Millennium Bulk / BLK_5_FEB_96.iso / winnt / readme.nt < prev    next >
Text File  |  1995-12-17  |  31KB  |  620 lines

  1. README.NT                    MATROX GRAPHICS INC.            December 19, 1995
  2.  
  3.                             Matrox MGA Millennium
  4.                        Drivers for Windows NT 3.5/3.51
  5.                                  on x86 CPUs
  6.                             Rev. 1.20.038 (3.5.38)
  7.  
  8. History
  9. ~~~~~~~
  10.    Rev. 1.20 (3.5.38)   Miniport:  updated to SXCIEXT Build 27.
  11.                         User-mode: modified pan&zoom initialization.
  12.  
  13.    Rev. 1.20 (3.5.37)   Miniport:  fix for SyncOnGreen on multiple monitors;
  14.                                    fix in mode list when 3D modes unavailable;
  15.                                    identification of DigiMix boards.
  16.                         User-mode: FrameBufferMapping returned in BOARD_INFO;
  17.                                    new definition for WaitNotBusy;
  18.                                    limited use of AUTOLINE.
  19.  
  20.    Rev. 1.20 (3.5.36)   Miniport:  updated SXCIEXT code to Build 22.
  21.                         User-mode: code for MTX_PROGRAMVLINEINT,
  22.                                    MTX_WAITVSYNC.
  23.                         3D-DDI:    hardware-accelerated OpenGL on multiple
  24.                                    boards (Build 12).
  25.  
  26.    Rev. 1.11 (3.5.35)   User-mode: support for MTX_QUERYDRIVERVERSION.
  27.  
  28.    Rev. 1.11 (3.5.34)   User-mode: MAKE_BOARD_CURRENT before getting HwData;
  29.                                    MEMORY_BARRIER in vAssertModePointer.
  30.  
  31.    Rev. 1.11 (3.5.33)   Miniport:  support for MTX_QUERYCURRENTMODEDESC.
  32.                         User-mode: support for MTX_QUERYCURRENTMODEDESC;
  33.                                    handling 0 edge case in bFastFill.
  34.  
  35.    Rev. 1.11 (3.5.32)   Miniport:  added code for new flag AlternateLines.
  36.                         User-mode: added code for new flag AlternateLines.
  37.  
  38.    Rev. 1.11 (3.5.31)   Same as Rev. 1.11.030, with CheckFifoSpace enabled.
  39.  
  40.    Rev. 1.11 (3.5.30)   Miniport:  added code for new flags CheckFifoSpace,
  41.                                    AccelComplexRops.
  42.                         User-mode: added code for new flags CheckFifoSpace,
  43.                                    AccelComplexRops;
  44.                                    added small delay in pointer shape
  45.                                    download.
  46.  
  47.    Rev. 1.11 (3.5.29)   Experimental build.
  48.                         Miniport:  added code to detect MediaXL add-on.
  49.                         User-mode: added code to allocate tag ram for Media XL.
  50.                                    modified code to accelerate integer lines.
  51.  
  52.    Rev. 1.11 (3.5.28)   Miniport:  added code for 3D on multiple boards.
  53.                         User-mode: added code for 3D on multiple boards.
  54.  
  55.    Rev. 1.11 (3.5.27)   This version is based on Rev. 1.10.024.
  56.                         Miniport:  added code to support new Escapes.
  57.                         User-mode: added code to support new Escapes;
  58.                                    accelerated line drawing code for integer
  59.                                    endpoints.
  60.  
  61.    Rev. 1.11 (3.5.26)   This version is based on Rev. 1.10.024.
  62.                         Miniport:  modified code written for MediaXL;
  63.                                    removed check on Option register bits;
  64.                                    added code to compute actual refresh rate;
  65.                                    added code to support new Escapes.
  66.                         User-mode: added code to support new Escapes.
  67.  
  68.    Rev. 1.11 (3.5.25)   This version is based on Rev. 1.10.024.
  69.                         Miniport:  modified return value from ReadSystemBios.
  70.  
  71.    Rev. 1.10 (3.5.24)   This version is based on Rev. 1.10.023.
  72.                         Miniport:  modified to blank out all VGA-disabled
  73.                                    boards after DDC check.
  74.                         User-mode: modified multi-screen clipping for text;
  75.                                    modified clipping for FromScreen blting;
  76.                                    modified source coordinates for
  77.                                    ScreenToScreen punting.
  78.  
  79.    Rev. 1.10 (3.5.23)   This version is based on Rev. 1.10.022.
  80.                         Miniport:  support for multiple DDC monitors;
  81.                                    modified DCI code;
  82.                                    correct programming of MACCESS.
  83.                         User-mode: multi-screen clipping for text.
  84.  
  85.    Rev. 1.10 (3.5.22)   This version is based on Rev. 1.10.020.
  86.                         Miniport:  modified to build list of modes that
  87.                                    includes both 2D and 3D modes.
  88.                         User-mode: modified offscreen heap management.
  89.                         3D-DDI:    fixed RXCMD_READ_RECT.
  90.  
  91.    Rev. 1.04 (3.5.21)   This version is based on Rev. 1.03.018.
  92.                         Miniport:  corrected ScanSDA parameter in DDC code.
  93.  
  94.    Rev. 1.10 (3.5.20)   Miniport:  added support for refresh rates;
  95.                                    added support for DCI;
  96.                                    modified the code so that the Registry
  97.                                    HardwareInformation is updated for every
  98.                                    board detected.
  99.  
  100.                         User-mode: optimized driver, mostly based on the S3
  101.                                    code supplied with the Windows NT 3.51 DDK,
  102.                                    including support for device bitmaps and
  103.                                    DCI;
  104.                                    added code to support user-selected values
  105.                                    from the Registry.
  106.  
  107.                         3D-DDI:    optimized RXCMD_SWAP_BUFFERS command;
  108.                                    optimized RXCMD_FILL_RECT command;
  109.                                    fixed RXCMD_WRITE_RECT to Z buffer.
  110.  
  111.    Rev. 1.10 (3.5.19)   User-mode: modified bltmod to BFCOL when writing 32bpp;
  112.                                    removed masking when reading 16/32bpp;
  113.                                    modified PlnWt at 15bpp;
  114.                                    modified Build number.
  115.                         3D-DDI:    optimized triangle primitives;
  116.                                    removed WaitFIFO macros;
  117.                                    adapted to fully support OpenGL on the final
  118.                                    version of NT 3.51, Build 1057.
  119.  
  120.    Rev. 1.03 (3.5.18)   User-mode: modified offset convention in FastFill;
  121.                                    modified Build number.
  122.  
  123.    Rev. 1.10 (3.5.17)   Miniport:  added Int10 call in RESET_DEVICE
  124.                         User-mode: modified Build number.
  125.  
  126.    Rev. 1.02 (3.5.16)   Miniport:  added Int10 call in RESET_DEVICE
  127.                         User-mode: modified Build number.
  128.  
  129.    Rev. 1.10 (3.5.15)   Miniport:  updated FindAdapter.
  130.                         User-mode: added MTX_QUERYPITCH escape code;
  131.                                    modified Build number.
  132.  
  133.    Rev. 1.02 (3.5.14)   Miniport:  updated FindAdapter.
  134.                         User-mode: added MTX_QUERYPITCH escape code;
  135.                                    modified Build number.
  136.  
  137.    Rev. 1.10 (3.5.13)   Miniport:  updated FindAdapter routine for systems
  138.                                    with PCI bridges.
  139.  
  140.    Rev. 1.02 (3.5.12)   Miniport:  updated FindAdapter routine for systems
  141.                                    with PCI bridges.
  142.  
  143.    Rev. 1.10 (3.5.11)   Added 3D DLL (DDIRX.DLL).
  144.  
  145.    Rev. 1.02 (3.5.10)   Miniport:  updated FindAdapter routine;
  146.                                    new and improved PCI access routines;
  147.                                    added services for 3D DDI;
  148.                         User-mode: added back complex rop3 support;
  149.                                    fixes in blt routines;
  150.                                    added entry points for 3D DDI;
  151.                                    modified Build number.
  152.  
  153.    Rev. 1.02 (3.5.09)   Miniport:  updated low-level code;
  154.                                    added DPMS code;
  155.                                    adapted for TVP3030;
  156.                                    adapted for Alpha AXP.
  157.                         User-mode: added DPMS and DDC entry points;
  158.                                    removed complex rop3 support;
  159.                                    optimized write and read macros;
  160.                                    adapted for TVP3030;
  161.                                    adapted for Alpha AXP;
  162.                                    modified Build number.
  163.  
  164.    Rev. 1.02 (3.5.08)   Experimental build.
  165.  
  166.    Rev. 1.01 (3.5.07)   User-mode: modified Build number.
  167.                         New MGA.MON file.
  168.  
  169.    Rev. 1.01 (3.5.06)   Miniport:  fixed VGA trashing by mtxCheckHwAll;
  170.                                    added default build of list of modes;
  171.                                    added DDC support.
  172.                         User-mode: added DrvFillPath support;
  173.                                    modified cache limit for fonts;
  174.                                    modified Build number.
  175.  
  176.    Rev. 1.00 (3.5.05)   Miniport:  modified YDstOrg computation.
  177.                         User-mode: modified full clipping limit;
  178.                                    modified Build number.
  179.  
  180.    Rev. 1.00 (3.5.04)   Miniport:  updated low-level code;  added code to
  181.                                    validate PCI mechanism before any access,
  182.                                    since some drivers use undocumented
  183.                                    features to modify the access method.
  184.                         User-mode: modified Build number.
  185.  
  186.    Rev. 1.00 (3.5.03)   Miniport:  added mechanism 1 in PCI search.
  187.                         User-mode: modified Build number.
  188.  
  189.    Rev. 1.00 (3.5.02)   Miniport:  small change in MGA.C.
  190.                         User-mode: modified Build number.
  191.  
  192.    Rev. 1.00 (3.5.01)   Miniport:  updated with latest low-level code;
  193.                                    modified Chip and Adapter strings.
  194.                         User-mode: modified Build number.
  195.  
  196.    Rev. 1.00 (3.5.00)   Initial version.
  197.  
  198.  
  199. Windows NT Files on this Disk
  200. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  201.    \MGAX64.TAG          Tag file for Windows NT Setup
  202.    \MGAX64.SYS          MGA Millennium miniport driver
  203.    \MGAX64.DLL          MGA Millennium user-mode driver
  204.    \OEMSETUP.INF        MGA Millennium driver installation file for Windows NT
  205.    \TXTSETUP.OEM        MGA Millennium driver installation file for Windows NT
  206.  
  207.    \MGA.MON             MGA monitor file
  208.    \MGASET.CPL          Monitor selection applet for Control Panel
  209.    \MONDLG.DLL          DLL required by the Monitor selection applet
  210.    \DDIRX.DLL           MGA Millennium 3D-DDI driver
  211.  
  212.    \README.NT           This file
  213.  
  214.  
  215. About These Drivers
  216. ~~~~~~~~~~~~~~~~~~~
  217. These drivers support 2, 4, and 8Mbytes MGA Millennium boards.  Multiple
  218. boards are also supported.  The drivers, together with the 3D-DDI DLL,
  219. also support hardware-accelerated 3D.
  220.  
  221.  
  222. Installation
  223. ~~~~~~~~~~~~
  224. Refer to your MGA Millennium Owner's Manual to install your board in your
  225. system.
  226.  
  227. If you are installing two MGA Millennium boards in your system, please note
  228. that only one should be VGA-enabled through the on-board switch.  Dual-
  229. board installations are similar to single-board installations.  The
  230. system will automatically assign separate addresses to each PCI board,
  231. allowing the driver to issue commands to each board.  In a dual-board
  232. configuration, both boards must run with the same resolution and pixel
  233. depth (number of colors).  The VGA-enabled board will drive the top left
  234. monitor.
  235.  
  236. The general procedure for changing a display driver is the following:
  237.  
  238.       - Open the ControlPanel/Display applet.
  239.  
  240.       - Press the 'Change Display Type...' button.
  241.  
  242.       - In the Display Type dialog box, press the 'Change...' button.
  243.  
  244.       - In the Select Device dialog box, press the 'Other...' button.
  245.  
  246.       - In the Install From Disk dialog box, type the location of the
  247.         Matrox MGA Millennium installation files (e.g. "A:\WINNT").
  248.  
  249.       - From the displayed list, select a resolution and pixel depth
  250.         supported by your board and monitor, then press 'Install'.
  251.         Modes requiring 4 or 8 MBytes are called out in the displayed list.
  252.         Dual-board modes are not available at driver installation time,
  253.         since the number of installed boards cannot be determined at
  254.         this time.
  255.  
  256.       - Answer 'Yes' to the Installing Driver dialog box.
  257.  
  258.       - If the MGA Millennium drivers are already installed on your system,
  259.         you will be prompted to choose between the currently installed
  260.         drivers or new ones.  If you select 'New', you will be prompted
  261.         for the path to the new driver files.  This will default to the
  262.         path entered in the Install From Disk dialog box.
  263.  
  264.       - In the Display Settings Change dialog box, you should select
  265.         'Restart Now' so that the new settings take effect.
  266.  
  267.       - If your system does not reboot at the expected resolution, it is
  268.         probable that your board does not support the selected resolution/
  269.         pixel depth combination.  Open ControlPanel/Display again and press
  270.         the 'List All Modes...' button to get all the modes available for
  271.         your particular board.  You can also experiment with the 'Color
  272.         Palette' and 'Desktop Area' controls to select a new mode.  Use
  273.         the 'Test' button to make sure that the new mode is supported by
  274.         your monitor.
  275.  
  276.  
  277. Changing Resolution
  278. ~~~~~~~~~~~~~~~~~~~
  279. Whenever you want to change resolution, run the ControlPanel/Display applet.
  280. The available modes are displayed through the 'List All Modes...' button.
  281.  
  282. If you are using a dual-screen configuration, the driver will spread the
  283. desktop over the two monitors.  Special dual-screen resolutions will be
  284. listed, where the horizontal or vertical resolutions are twice their
  285. normal size.  Selecting one of these resolutions will permit testing of
  286. both monitors.
  287.  
  288.  
  289. Monitor Customization
  290. ~~~~~~~~~~~~~~~~~~~~~
  291. There are two ways to select refresh rates for your monitor.  Whenever
  292. a new driver is installed, it is assumed that refresh rates are selected
  293. through the ControlPanel/MGA Monitor applet.  If your preference goes to
  294. selecting refresh rates through the 'Refresh Frequency' field of the
  295. ControlPanel/Display applet, you will have to edit a value in the Registry.
  296. Both options are described below.  The section 'Editing the Registry' gives
  297. details on how to modify the values that control driver behavior.
  298.  
  299. After installation, the display driver assumes that refresh rates will be set
  300. through the MGA Monitor applet.  However, since the applet has not been run
  301. yet, the driver will assume that your monitor is capable of handling all
  302. resolutions from 640x480 up to 1600x1200 at a 60 Hz refresh rate.  If your
  303. monitor does not support the higher resolutions, or if it is capable of
  304. higher refresh rates, you can run the ControlPanel/MGA Monitor applet and
  305. select a suitable monitor from the list.  This will ensure that your monitor
  306. will not be over-driven, and that you will get the benefits of higher refresh
  307. rates.
  308.  
  309. The MGA Monitor applet should have been copied by the Windows NT Setup
  310. program into your SystemRoot\SYSTEM32 subdirectory when the MGA Millennium
  311. drivers were installed.  To customize your monitor:
  312.  
  313.       - Open the ControlPanel/MGA Monitor applet.
  314.  
  315.       - If your monitor supports DDC (Display Data Channel), a dialog box
  316.         will allow you to exit without creating an MGA.INF file.  If you
  317.         decide to create an MGA.INF file, its settings will override the
  318.         capabilities provided by your monitor through the DDC.
  319.  
  320.       - From the list of monitors, select the appropriate monitor, or one
  321.         whose maximum refresh rate matches the one you are using.  An
  322.         MGA.INF file will be created in the SystemRoot\SYSTEM32
  323.         subdirectory.
  324.  
  325. To make sure that the newly created MGA.INF is correct for your monitor:
  326.  
  327.       - From Control Panel, start the Display applet.
  328.  
  329.       - Select the resolution and pixel depth you wish to test.
  330.  
  331.       - Press the 'Test' button.  The test will use the video parameters
  332.         appropriate for the monitor selected in MGA Monitor.
  333.  
  334. If your monitor does not display a stable test screen, then the parameters
  335. set by MGA.INF are not suitable for your monitor.  Press the 'Cancel' button
  336. to close Display, run MGA Monitor again to select another monitor from the
  337. list, and repeat the Display test.
  338.  
  339. If the test screen is not displayed, but you get instead a message box about
  340. the screen not being visible due to a limitation of your video card or
  341. display monitor, then it is probable that the tested resolution (say,
  342. 1280 x 1024) was above the limit set by MGA.INF (say, 1024 x 768).  If your
  343. monitor is capable of the higher resolution, then run MGA Monitor again to
  344. select an appropriate monitor.
  345.  
  346. The new MGA.INF will take effect when you restart Windows NT.  Any resolution
  347. higher than the set limit will not appear in the Display applet mode list.
  348. Deleting MGA.INF will remove all monitor limits to the resolution, although
  349. the refresh rate will default to 60Hz.
  350.  
  351. In a dual-board configuration, both boards will output the same refresh
  352. rate to each monitor.  It is recommended that the monitor selected in MGA
  353. Monitor be compatible with the less capable monitor in your setup.
  354.  
  355. If you would rather select refresh rates through the ControlPanel/Display
  356. applet, set the 'User.MgaInfoFile' value in the Registry to 0 (see the
  357. 'Editing the Registry' section for details).  The next time you reboot,
  358. refresh rates available for each mode will be returned to the Display
  359. applet.  The system will probably reboot in the 640x480x8 mode, and a
  360. warning message will be displayed.  This is normal, since the system could
  361. not find the hardware default setting that was used previously for refresh
  362. rates.  You can now select refresh rates from the list displayed by
  363. ControlPanel/Display.  You should test any new mode to make sure that your
  364. monitor actually supports the new resolution/refresh rate combination.
  365.  
  366. In a dual-board configuration, both boards will output the same refresh
  367. rate to each monitor.  The less capable monitor in your setup will determine
  368. the maximum refresh rate.
  369.  
  370.  
  371. Editing the Registry
  372. ~~~~~~~~~~~~~~~~~~~~
  373. Information held in the Windows NT Registry can have a direct effect on the
  374. whole system.  Introducing incorrect values can cause serious problems and
  375. may make it necessary to reinstall Windows NT.  The changes outlined below
  376. should have effects limited to the MGA Millennium drivers.  However, if you
  377. accidentally modify values that make your system unusable, please note that
  378. it is often possible to undo the damage by using the 'Last Known Good
  379. Configuration' option at boot time.
  380.  
  381. Modifying keys and values in the Registry is done through the Registry
  382. Editor.  The Registry Editor can be invoked in the following way:
  383.  
  384.       - Open a Command Prompt window.
  385.  
  386.       - Type 'regedt32'.  The Registry Editor will come up.
  387.  
  388. To modify the values that govern the behavior of the MGA Millennium driver:
  389.  
  390.       - Select the HKEY_LOCAL_MACHINE window.
  391.  
  392.       - Travel down to the key named:
  393.         HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mgax64\Device0.
  394.  
  395. In the right window pane, you will find many values.  Three of these control
  396. the use of 3D-accelerated modes.  They are described in the 'Hardware-
  397. accelerated 3D' section.  They are:
  398.         User3D.DoubleBuffer,
  399.         User3D.ZBuffer, and
  400.         User3D.SubPixel.
  401.  
  402. Seven values control the general behavior of the driver:
  403.  
  404. User.AlternateLines when set to 1, allows lines defined by integer coordinates
  405.                     to be drawn using the faster AUTOLINE opcode of the
  406.                     drawing engine.  The convention used to determine which
  407.                     pixels contribute to a given line is slightly different
  408.                     in AUTOLINE and in Windows NT.  Setting AlternateLines
  409.                     to 1 trades off compliance with the Windows NT conventions
  410.                     for performance.  A value of 0 will enforce compliance.
  411.                     Lines defined by non-integer endpoint coordinates are not
  412.                     affected by this setting.
  413.  
  414.                     The default value of User.AlternateLines is 0.
  415.  
  416. User.CenterDialogs  when set to 1, allows centering of dialog boxes and
  417.                     pop-up windows on the top left display of a dual-screen
  418.                     setup.  The centered windows can still be moved over the
  419.                     whole desktop.  A value of 0 will have no effect on the
  420.                     position of these windows.
  421.  
  422.                     There are serious side-effects to this feature.  For
  423.                     instance, testing a dual-screen mode from the
  424.                     ControlPanel/Display applet will actually test only the
  425.                     corresponding single-screen mode.  Other side-effects
  426.                     include toolbars that will not use the whole desktop, and
  427.                     screen savers that will work only on the top left screen.
  428.  
  429.                     The default value of User.CenterDialogs is 0.
  430.  
  431. User.ComplexBlt     when set to 1, allows the driver to accelerate some
  432.                     complex raster operations (ROPs) by executing a sequence
  433.                     of simple ROPs (ORing, ANDing, etc...).  A value of 0
  434.                     will result in complex ROPs being performed in software.
  435.  
  436.                     The complex ROPs are performed directly on the display
  437.                     through a succession of simple ROPs.  Artifacts (flashing)
  438.                     in the target display area may become visible when an
  439.                     intermediate result in video RAM is displayed on a given
  440.                     refresh cycle, to be replaced by the final image on the
  441.                     next cycle.
  442.  
  443.                     The default value of User.ComplexBlt is 1.
  444.  
  445. User.DeviceBitmaps  when set to 1, allows use of off-screen memory for
  446.                     caching bitmaps.  This will allow the hardware to
  447.                     accelerate drawing to bitmaps.  A value of 0 disables
  448.                     bitmap caching, allowing the CPU to draw onto all
  449.                     bitmaps.  Bitmap caching is internally disabled when
  450.                     a desktop requiring more than one board is in use,
  451.                     regardless of the Registry setting.
  452.  
  453.                     The default value of User.DeviceBitmaps is 1.
  454.  
  455. User.MgaInfoFile    when set to 1, allows use of the MGA Monitor applet
  456.                     to control refresh rates.  A value of 0 will allow the
  457.                     Display applet to list available refresh rates.  See
  458.                     the 'Monitor Customization' section for more details.
  459.  
  460.                     The default value of User.MgaInfoFile is 1.
  461.  
  462. User.SynchronizeDac when set to 1, will require the driver to wait for a
  463.                     vertical sync before programming the ramdac with a new
  464.                     pointer shape or a new palette.  If you notice stray
  465.                     pixels flashing around the pointer, setting this flag
  466.                     to 1 might fix the problem.  Setting it to 0 will result
  467.                     in slightly better performance.
  468.  
  469.                     The default value of User.SynchronizeDac is 0.
  470.  
  471. User.SynchronizeEngine when set to 1, will require the driver to wait for
  472.                     the Millennium hardware to be ready to accept new data
  473.                     before programming the next operation.  Setting it to 0
  474.                     will result in better performance.
  475.  
  476.                     On most x86-based systems, the PCI logic should ensure
  477.                     that such a check is redundant.  If you're experiencing
  478.                     problems that might be related to timing (with
  479.                     communication programs, for instance), setting this value
  480.                     to 1 may be of help.
  481.  
  482.                     The default value of User.SynchronizeEngine is 0.
  483.  
  484. If you wish to change any of these values:
  485.  
  486.       - Double-click on the selected value.
  487.  
  488.       - In the DWORD Editor, change the value to '0' or '1'.  The new value
  489.         will take effect the next time you reboot.
  490.  
  491.  
  492. Hardware-accelerated 3D
  493. ~~~~~~~~~~~~~~~~~~~~~~~
  494. The DDIRX.DLL file supplied with the MGA Millennium drivers allows for
  495. hardware-accelerated 3D, with a few restrictions:
  496.  
  497.       - Hardware-accelerated 3D is available only for Windows NT 3.51.
  498.  
  499.       - The 3D DLL does not support 8bpp (256 colors) modes.  These modes
  500.         use an index-based color scheme, which does not lend itself to 3D
  501.         acceleration, instead of the RGB color representation of higher-
  502.         color modes.  RGB-based displays are generally unsatisfactory when
  503.         limited to 256 colors.  Modes identified as '16777216 Colors' are
  504.         24bpp modes and do not support 3D acceleration, as opposed to 'True
  505.         Color' modes, which are 32bpp modes that can accelerate 3D drawing.
  506.  
  507.       - Limitations to the available resolutions are to be expected.  All
  508.         3D modes require extra memory to handle double buffering and/or Z
  509.         buffering, and this memory is no longer available for display.
  510.  
  511. The DDIRX.DLL file will have been copied into the SystemRoot\SYSTEM32
  512. subdirectory when the MGA Millennium drivers were installed.  Also, three
  513. values will have been created in the Registry under the key:
  514.  
  515.     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mgax64\Device0.
  516.  
  517. These values are User3D.DoubleBuffer, User3D.ZBuffer, and User3D.SubPixel.
  518. They were initialized to one, effectively enabling 3D acceleration for those
  519. combinations of resolution and pixel depth that can support it on your
  520. board.  These values can be modified through the Windows NT Registry Editor
  521. (regedt32.exe).  The procedure for modifying value entries is straightforward,
  522. and is described in the 'Editing the Registry' section and in the Registry
  523. Editor help.  New Registry settings take effect only after a system reboot.
  524.  
  525. The functions controlled by the User3D values are as follows:
  526.  
  527. User3D.DoubleBuffer when set to 1, allows a back buffer to be allocated
  528.                     from the MGA Millennium memory.  It should be set to
  529.                     0 if no back buffer is required.
  530.  
  531.                     This value should be set to 1 if 3D animation is to
  532.                     be fully accelerated.
  533.  
  534. User3D.ZBuffer      when set to 1, allows a Z buffer to be allocated from
  535.                     the MGA Millennium memory.  It should be set to 0 if
  536.                     no Z buffer is required.
  537.  
  538.                     This value should be set to 1 if 3D rendering is to
  539.                     be fully accelerated.
  540.  
  541. User3D.SubPixel     when set to 1, allows the 3D-DDI driver to perform
  542.                     rendering with sub-pixel precision.  It should be
  543.                     set to 0 otherwise.
  544.  
  545.                     This value should be set to 1 if high quality 3D
  546.                     rendering is to be performed.  Faster rendering can
  547.                     be achieved by setting the value to zero, although
  548.                     some artifacts may then appear near objects boundaries.
  549.  
  550. The values User3D.DoubleBuffer and User3D.ZBuffer will be read from the
  551. Registry and their settings will be taken into account when building the
  552. list of available modes.  If both values are set to zero, only normal (N)
  553. modes will be selected.  Other settings will allow Z-buffering (Z), double-
  554. buffering (DB), or both (DBZ).  Valid combinations of resolution and pixel
  555. depth that do not support 3D acceleration will be available as normal modes,
  556. so that all valid resolutions will appear once, and only once, in the list
  557. of available modes in the ControlPanel/Display applet.  Display does not
  558. provide any way to specify the 3D capabilities of a given mode.  After
  559. installation, all available DBZ modes are enabled, and the remaining modes
  560. are N modes.
  561.  
  562. The available modes depend on the amount of WRAM installed on your board.
  563. They are:
  564.  
  565.     For 2MBytes boards:
  566.  
  567.     |             | 8bpp |      15bpp |      16bpp | 24bpp |      32bpp |
  568.     +-------------+------+------------+------------+-------+------------+
  569.     |  640 x  480 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z        |
  570.     |  800 x  600 |    N | N,Z,DB     | N,Z,DB     |     N | N          |
  571.     | 1024 x  768 |    N | N          | N          |     - | -          |
  572.     | 1152 x  882 |    N | N          | N          |     - | -          |
  573.     | 1280 x 1024 |    N | -          | -          |     - | -          |
  574.     | 1600 x 1200 |    N | -          | -          |     - | -          |
  575.  
  576.     For 4MBytes boards:
  577.  
  578.     |             | 8bpp |      15bpp |      16bpp | 24bpp |      32bpp |
  579.     +-------------+------+------------+------------+-------+------------+
  580.     |  640 x  480 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z,DB,DBZ |
  581.     |  800 x  600 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z,DB     |
  582.     | 1024 x  768 |    N | N,Z,DB     | N,Z,DB     |     N | N          |
  583.     | 1152 x  882 |    N | N,Z,DB     | N,Z,DB     |     N | N          |
  584.     | 1280 x 1024 |    N | N          | N          |     N | -          |
  585.     | 1600 x 1200 |    N | N          | N          |     - | -          |
  586.  
  587.     For 8MBytes boards:
  588.  
  589.     |             | 8bpp |      15bpp |      16bpp | 24bpp |      32bpp |
  590.     +-------------+------+------------+------------+-------+------------+
  591.     |  640 x  480 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z,DB,DBZ |
  592.     |  800 x  600 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z,DB,DBZ |
  593.     | 1024 x  768 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z,DB,DBZ |
  594.     | 1152 x  882 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z,DB     |
  595.     | 1280 x 1024 |    N | N,Z,DB,DBZ | N,Z,DB,DBZ |     N | N,Z        |
  596.     | 1600 x 1200 |    N | N,Z,DB     | N,Z,DB     |     N | -          |
  597.  
  598. Please note that all User3D values are reset to one whenever a display
  599. driver is installed.
  600.  
  601.  
  602. Board Testing
  603. ~~~~~~~~~~~~~
  604.  
  605. Known Bugs and Limitations
  606. ~~~~~~~~~~~~~~~~~~~~~~~~~~
  607.  
  608. HCT/DispTest
  609.         The DispTest application for testing full-screen VGA modes may crash
  610.         the system when some modes are tested.  An updated BIOS is required.
  611.  
  612.         Screen 13/13 is wrong when viewed in a window.
  613.  
  614. Systems using more than one PCI bus
  615.         There are systems where Windows NT reports conflicts between adapters
  616.         installed beyond the PCI bridge.  In this case, the MGA Millennium
  617.         miniport driver cannot access its own board.  If your system appears
  618.         unable to find the Millennium board, try moving it to a different PCI
  619.         slot.
  620.