3Dlabs Permedia3 Display Driver

SUMMARY

This is a display driver for graphics adapters based on the 3Dlabs Permedia-3 chipset. It supports GDI acceleration, Microsoft DirectDraw® acceleration, Microsoft Direct3D® acceleration, and multiple monitor support. This display driver forms a matched pair with the 3Dlabs Permedia3 video miniport driver. The miniport driver is responsible for non-rendering tasks such as adapter initialization, register mapping, and other resource allocation, whereas the display driver handles actual rendering tasks.

This sample driver runs on Windows® 2000 on the x86 platform. It also builds and runs on Windows 98 and Windows ME.

The driver is compiled as a DX8 driver and currently supports pointsprites, multisampling, volume textures and DX8 multistreaming (with a single stream).

RELEASE NOTES

All applicable samples and DCT tests have been run successfully with this driver.

HARDWARE LIMITATIONS

This hardware doesn't support the following features:

BUILDING THE SAMPLE

Type build -cz from the ..\disp directory. A successful build produces the video display driver perm3dd.dll.

CODE TOUR

File Manifest

File			Description

dirs              Directories that make up the driver (currently dx and gdi)

dx\chroma.h       Chromakeying definitions and inline functions
dx\d3d.c          Main D3D capabilites and callback tables
dx\d3dbuff.c      Main context callbacks for D3D videomemory buffers
dx\d3dcntxt.c     Main context callbacks for D3D
dx\d3ddp2op.c     D3D DrawPrimitives2 command buffer operations support
dx\d3ddp2p3.c     D3D DrawPrimitives2 callback support
dx\d3dprim.c      D3D primitives rendering
dx\d3dsset.c      D3D stateblock support
dx\d3dsset.h      D3D stateblock support macros and definitions
dx\d3dstate.c     Translate D3D renderstates and texture stage states into hw specific settings.
dx\d3dstrct.c     Internal D3D structure management.
dx\d3dstrct.h     Internal D3D structure management headers and macros
dx\d3dsurf.c      Surface management callbacks for D3D
dx\d3dsurf.h      Surface management macros and structures
dx\d3dtxt.c       D3D hardware specific texture setup
dx\dcontext.h     D3D context definition and other useful macros
dx\dd.c           Main DirectDraw callbacks
dx\ddblt.c        DirectDraw Blt callback implementation for vidmem-vidmem blts and clears
dx\ddbltfx.c      DirectDraw Blt implementation for stretching blts
dx\dddownld.c     DirectDraw Blt implementation for sysmem-vidmem blts and clears
dx\ddenable.c     Windows 2000 only DirectDraw/D3D enabling functions
dx\ddover.c       DirectDraw Overlays implementation
dx\ddover.h       DirectDraw Overlays implementation macros and definitions
dx\ddsurf.c       DirectDraw surfaces creation/destructions callbacks
dx\ddvideo.c      DirectDraw Videoports implementation
dx\debug.c        Debugging aids
dx\direct3d.h     Global direct3d function declarations
dx\directx.h      DirectX macros and definitions
dx\dltamacr.h     Hardware specific D3D macros and definitions
dx\dma.h          DMA transport definitons and macros
dx\glint.h        Macros and definitions needed to Access Glint based chips
dx\linalloc.c     Videomemory linear allocator
dx\makefile       Drivers makefile  
dx\sources        The generic file for building the dx code sample library
dx\stateset.c     Hardware context swapping

inc\bitmac2.h     Bit manipulation macros for hardware registers
inc\debug.h       Debugging aids macros and definitions
inc\driver.h
inc\ereg.h        Permedia 3 register structures
inc\gigiregl.h    Permedia 3 register structures
inc\glddtk.h
inc\glglobal.h
inc\glintdef.h
inc\glintfx.h
inc\glintreg.h    Permedia 3 register structures
inc\gtag.h        Permedia 3 register tag definitions
inc\linalloc.h    Videomemory linear allocator macros and definitions
inc\p2rd.h        Definitions for the P2RD internal RAMDAC.
inc\p3rd.h        Definitions for the P2ST internal RAMDAC.
inc\p3rxdef.h
inc\pmdef.h
inc\ramdac.h
inc\reg.h         Permedia 3 register structures
inc\rgb525.h      This module contains the definitions for the IBM RGB525 RAMDAC.
inc\rgb526.h      This module contains the definitions for the IBM RGB526 RAMDAC.
inc\rgb528.h      This module contains the definitions for the IBM RGB528 RAMDAC.
inc\rgb640.h      This module contains the definitions for the IBM RGB640 RAMDAC.
inc\softcopy.h
inc\surf_fmt.h
inc\tag.h         Permedia 3 register tag definitions
inc\tvp3026.h
inc\tvp4020.h


gdi\bitblt.c      Contains the high-level DrvBitBlt and DrvCopyBits functions
gdi\brush.c       Handles all brush/pattern initialization and realization.
gdi\color.c       Color dithering
gdi\dbgtags.c     Debugging aid: convert tags numbers to string names
gdi\ddraw.c       Provides interfaces back from the DDRAW .lib file into the main NT driver
gdi\debug.c       Debug helper routines.
gdi\dma.c         Handling of DMA buffers.
gdi\enable.c      Functions that enable and disable the driver, the pdev, and the surface.
gdi\fillpath.c    DrvFillPath
gdi\glint.h       Permedia 3 hardware related defines
gdi\glntctxt.c    Context switching for Permedia 3
gdi\glntctxt.h    Permedia 3 context switching macros and definitions
gdi\glntinit.c    Initialisation for the Permedia3 chip.
gdi\heap.c        Routines for a 2-d heap.
gdi\lines.c       Code for drawing short fractional endpoint lines and longer lines with strips.
gdi\lines.h       Line drawing constants and structures        
gdi\lineto.c      The code in this file handles the DrvLineTo() API call.
gdi\makefile      Drivers makefile  
gdi\p3rd.h        Definitions for the P2ST internal RAMDAC.
gdi\paint.c       DrvPaint support
gdi\palette.c     Palette support.
gdi\pointer.c     Hardware pointer support for the display driver.
gdi\precomp.h     Common headers
gdi\pxrx.c        Hardware support for fills and copys
gdi\pxrx.h        Macros and defines for hardware fills and copys
gdi\pxrxpoly.c    Draws PXRX polygons.
gdi\pxrxxfer.c    Hardware support for blts
gdi\pxrxstrp.c    Hardware line drawing support routines
gdi\registry.c    Routines to initialize the registry and lookup string values.
gdi\res.rc        Resource file for the display driver
gdi\sources       The generic file for building the code sample   
gdi\stroke.c      DrvStrokePath for Permedia3 driver
gdi\sync.c        DrvSynchronize code.
gdi\textout.c     Text rendering module
gdi\thunk.c       Testing and instrument all the driver's Drv calls.

CHANGES SINCE THE DX8.0 DDK RELEASE

The most important changes to this sample driver since the DX8.0 DDK release have been:

Top of page

© 2000 Microsoft Corporation