home *** CD-ROM | disk | FTP | other *** search
- Notes on the software emulation drivers
- =======================================
-
- RGB driver
- ==========
-
- There is now an MMX optimized version of the RGB driver.
- If you have an MMX capable PC the RGB software emulation will automatically
- be accelerated.
-
- Release notes for D3D MMX driver
-
- Functionality
- -------------
-
- 1. D3D's external interfaces unchanged, all examples and all apps that
- can use the RGB driver should be able to run with the RGB MMX driver.
-
- 2. Only 16-bit color depths have been optimized. There is a relatively
- minor (2X) improvement in 8-bit dithered RGB rendering.
-
- 3. The following are yet-to-be-implemented: 16-bit dithering.
-
- 4. The Z-buffer is 16-bit, but is signed, so the farthest Z-value is 0x7fff,
- and the nearest is 0x8000. This should not affect you unless you examine
- the Z-buffer directly.
-
- 5. There are still some rendering artifacts in certain cases. We're working
- on this problem right now, and should have fixes soon.
-
- 6. The driver only supports the PAL8 texture format. D3D apps should detect
- this and create the texture appropriately. This format is the same as
- the one supported by the ramp driver.
-
- Performance
- -----------
-
- 1. Performance is much better when all surfaces are in system memory, this
- includes the rendering target and all textures.
-
- 2. Performance is better than that of ramp mode in most situations.
- There are some performance bottlenecks that we have yet to address.
- We suggest you run the "tunnel" example with the MMX driver to get a
- feel for the changed relative costs of rendering qualities: for
- example, the speed of gouraud shading is now much closer to that of
- flat-shading. To get the best performance from the tunnel, do the
- following:
-
- Specular highlights OFF
- Fog OFF
- Perspective Correction OFF
- Gouraud shading ON
-
- With these settings, you should be getting about 29Hz for the tunnel
- running in systemmemory fullscreen at 640x400x16.
-
- 3. The nonMMX ramp driver works best on textures that are 256x256.
- This restriction has been removed in the MMX driver: it supports all
- texture dimensions equally well. It is still important to keep the total
- texture size as small as possible to reduce memory bandwidth. Note how
- fast the tiny checker texture runs in the tunnel. The checker texture is
- only 64 bytes instead of 64k like most of the other textures in the SDK.
- 256x2048 is a reasonable size for the texture in a game.
-
- 4. Mip-mapping now works on MMX.
-
-
- RAMP driver support
- ===================
- Optional Z buffering.
- Color key and stippled transparency.
- Mono interpolated rasterization only.
- Point sampled perspective correct textures.
- Flat and Gouraud shade modes.
-
- Performance notes for the RAMP driver
- =====================================
- Texture mapping performance is heavily gated by the speed of memory.
- There are a number of ways of maximizing the cache performance of your
- textures. The smaller the textures are, the better chance they have of being
- maintained in the secondary cache. This is crucial for keeping performance
- high. Also, changing the texture per primitive will thrash the cache. Try
- and keep polygons grouped in order of the textures they use.
-
- When using Z buffering and texturing, rendering your scene from front to
- back will increase performance. The textured Z buffered primitives
- pre-test the Z buffer on a scanline basis. If a scanline is hidden by a
- previously rendered polygon it is trivially rejected. If this is the case, Z
- buffering performance can exceed non-Z performance.
-
- The retained mode API automatically orders its scenes from front to back
- to facilitate this optimization.
-
- In it often a good idea to use the D3DTest program to verify performance
- results with different drivers, especially where hardware is involved.
-
-
-