README 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. Quick Voodoo/Voodoo2 Crash Course (mostly Alan's notes to save looking
  2. stuff up in the docs all the time)
  3. Voodoo and Voodoo 2 appear as multimedia devices. They may be on a "dual
  4. function" board in which case we should not 'borrow' the Voodoo as we will
  5. blank the main video card. That is reported in the PCI config space.
  6. Voodoo/Voodoo2 hardware may not always be initialized by the host OS because
  7. it is not video.
  8. The voodoo memory is split into two pools. A 1-4Mb pool holds the frame
  9. buffer, an optional second buffer, zbuffers, and alpha. A second 2-8Mb
  10. memory area holds all the textures.
  11. Texture ram is directly writable but not important for the current 2D
  12. driver. Video RAM is 16bit depth and tiled. The view of the video memory
  13. area is "magic", it doesn't contain a mapping of the video RAM into PCI
  14. space but contains pixel poking functionality.
  15. The frame buffer always appears untiled and 1024 pixels wide. For write
  16. there are some 16 different write modes including 24/32bit. The hardware
  17. does not support 24/32bit - these are provided for software rendering
  18. fallback. Read back is always 16bit. Endian conversion is hardware. Byte
  19. aligned access is not supported, only word aligned. Also watch how you
  20. access data - you can't access out of frame buffer space and if you get
  21. the control bits wrong you also get zbuffered, fogged and other fun.
  22. LFB writes have depth and alpha if you want.
  23. The real hardware is RGB565, how it sets stuff up internally is out of
  24. our hands - which means X memory alloc/pixmap cache is a little
  25. constrained.
  26. [IDEA: Should we put the mouse and framebuffer at different Z values so
  27. that we don't have to erase it to draw under it - less flicker]
  28. Acceleration:
  29. All Voodoo
  30. Fast Fill - Solid 2D rectangle fill
  31. (Also depth buffer clear for 3D)
  32. Supports a constant alpha option
  33. Requires a running 3D engine
  34. Voodoo2 and later
  35. Screen to screen blit
  36. CPU to screen blit
  37. Ultra fast fill to some alignments
  38. Monochrome to colour expansion (cpu to screen only)
  39. (and they finally made the 2D and 3D state independant
  40. if someone ever gets drunk enough to do DRI...)
  41. Colour conversion on blit
  42. Dither
  43. Chroma testing (src/dst) and selection of op by colour
  44. raster ops are the usual 16 suspects
  45. Other bits supported
  46. CLUT Gamma correction