1
2005-08-07 Keith Packard <keithp@keithp.com>
3
* ati_video.c: (RadeonDisplayVideo):
4
Build with modular X libraries and headers
6
2005-06-09 Eric Anholt <anholt@FreeBSD.org>
10
Axe a few dead fields from the port priv struct and add my name to
11
the "Copyright" line of the license to ati_video.c that already has my
14
2005-06-09 Eric Anholt <anholt@FreeBSD.org>
17
Perform a warnings sweep on hw/kdrive. A number of these were my fault,
18
but some come from others.
20
2005-06-09 Eric Anholt <anholt@FreeBSD.org>
24
* ati_draw.c: (ATIWaitMarker), (ATIGetOffsetPitch),
25
(ATIUploadToScreen), (ATIUploadToScratch), (ATIDrawInit),
27
* ati_dri.c: (ATIDRISwapContext):
28
* ati_video.c: (R128DisplayVideo), (RadeonDisplayVideo):
29
- Replace the syncAccel hook in the kdrive structure with a pair of
30
hooks in the kaa structure: markSync and waitMarker. The first, if
31
set, returns a hardware-dependent marker number which can then be
32
waited for with waitMarker. If markSync is absent (which is the case
33
on all drivers currently), waitMarker must wait for idle on any given
34
marker number. The intention is to allow for more parallelism when
35
we get downloading from framebuffer, or more fine-grained idling.
36
- Replace the KdMarkSync/KdCheckSync functions with kaaMarkSync and
37
kaaWaitSync. These will need to be refined when KAA starts being
38
smart about using them. Merge kpict.c into kasync.c since kasyn.c has
39
all the rest of these fallback funcs.
40
- Restructure all drivers to initialize a KaaInfo structure by hand
41
rather than statically in dubious order.
42
- Whack the i810 driver into shape in hopes that it'll work after this
43
change (it certainly wouldn't have before this). Doesn't support my
45
- Make a new KXV helper to avoid duplicated code to fill the region
46
with the necessary color key. Use it in i810 and mach64 (tested).
48
2005-02-28 Keith Packard <keithp@keithp.com>
51
Add macrovision register defines
53
2005-01-24 19:37 anholt
55
* ati_dma.c, ati_draw.c, ati_reg.h: Finish converting RB2D_DSTCACHE
56
to RB3D_DSTCACHE. Remove an extra pixel cache flush in the idle
57
function. Init an extra reg for r200, and annotate the
58
TCL_BYPASS better. Also, clean up some style nits from the last
61
2005-01-24 18:39 keithp
63
* ati.h, ati_draw.c, ati_reg.h, radeon_composite.c: Add tracing.
64
Hack Radeon cache registers to use 3D addresses. Works on M6
66
2005-01-24 17:38 anholt
68
* ati_dri.c: Silence a warning about uninitialized variable (though
71
2005-01-20 08:22 anholt
73
* ati_dma.c, ati_dma.h, ati_dri.c: Add a set of macros for dealing
74
with the repeated code to wait for a while reading a
75
register/attempting DMA. Now it'll wait for a certain number of
76
seconds rather than a certain number of times through the loop
77
before deciding that it's timed out and resetting the hardware.
78
Also, add more timeout handling, and reset the draw state after
81
2005-01-19 23:28 anholt
83
* radeon_composite.c: Use RadeonSwitchTo3D() instead of doing the
84
WAIT_UNTIL ourselves (RST3D() also does DC_FLUSH, which may be
87
2005-01-19 23:09 anholt
89
* ati_video.c: Add R200 XV support, and make R100 (hopefully) use
90
linear filtering instead of nearest. Also, use RadeonSwitchTo3D
91
instead of doing the WAIT_UNTIL ourselves.
93
2005-01-19 17:09 anholt
95
* ati_dma.c, ati_reg.h: Make R200 PDMA work -- primary queue sizes
96
are now 9 bits, not 8.
98
2004-12-22 10:39 anholt
100
* ati_draw.c, ati_reg.h, radeon_composite.c: Back out the previous
101
day's broken R200 "fix" -- the same number of coords are always
102
emitted. Fix the real problem, which was not enough regs being
103
initialized in ati_draw.c. Fix a typo that was resulting in
104
alpha coming out as 0 * src or 0 * broken instead of src * 1 or
105
src * mask. Assign the blending results to R0, as appears to be
106
necessary. Unbreak the dst-alpha-blend-with-no-dst-alpha code.
107
Yow. And set the right DMA count for the r200 traps code.
109
2004-12-21 01:51 anholt
111
* ati_draw.c, radeon_composite.c: Fix r200 render (for real this
112
time?) by setting tex1_comp_cnt right for non-mask rendering.
113
Reenable it. Also, R200TexFormats was used instead of R100 in
114
one place. Harmless so far, because the formats were in the same
117
2004-12-21 01:49 anholt
119
* ati_dri.c: Whitespace nit.
121
2004-09-19 20:12 anholt
123
* ati_draw.c, ati_reg.h, radeon_composite.c: Fix the R200 Render
124
code. Composite and Trapezoids are now supported just as well as
127
2004-09-19 03:57 anholt
129
* ati_dri.c, ati_reg.h: Unbreak the AGP DRI case. That was quite a
132
2004-09-13 23:26 anholt
134
* ati.c, ati_reg.h: Add proper PCI/AGP detection, based on Mike
135
Harris's code for Radeon, but using the MMIO mirror of the bits
136
instead of config space.
138
2004-09-12 16:22 anholt
140
* ati_draw.c: - Fix a segfault on VT switch with DRI. Still dies
141
due to cursor allocation troubles. - Move the
142
RemoveBlockAndWakeupHandlers to match
143
RegisterBlockAndWakeupHandlers. - Enable R100 trapezoid
144
"acceleration" when DRI is working, so that it can be exposed
147
2004-09-12 16:01 anholt
149
* ati_dri.c: Fix a bad argument missed in the previous commit for
150
ATIDRIDMA* functions.
152
2004-09-12 15:21 anholt
154
* ati_draw.c: Move the RegisterBlockAndWakeupHandlers to before DRI
155
initialization. The change to use that instead of manual
156
wrapping made the DMA dispatch come after the lock had been
157
dropped, causing lots of pain.
159
2004-09-12 13:31 anholt
161
* ati.h, ati_dma.c, ati_dri.c: Reset the CCE/CP on engine reset,
162
and make the ATIDRIDMA functions take a more useful argument.
164
2004-09-12 13:19 anholt
166
* ati_draw.c: Add missing kaa.h include for kaaInitTrapOffsets.
168
2004-09-12 13:02 anholt
170
* ati_dri.c: Fix handling of is_agp. is_agp is whether the card is
171
actually AGP, while using_agp should say whether AGP is being
172
used as part of DMA/DRI.
174
2004-09-12 12:52 anholt
176
* ati_dma.c, ati_dma.h, ati_dri.c: Improve error handling,
177
especially in the DRI case. Do some FatalErrors instead of
178
ErrorFs for things that are really bad, and put limits on some
179
loops. Now, sometimes instead of hanging the entire system, we
180
(mostly-) cleanly drop to console when the card has hung.
182
2004-09-11 02:28 anholt
184
* ati.h, ati_dma.h, ati_draw.c, ati_draw.h, ati_reg.h,
185
r128_composite.c, radeon_composite.c: - Add disabled WIP
186
trapezoid code for R128 and R100. The R128 rendering is not
187
doing an add of 1 per triangle like I hoped, and instead seems
188
to be saturating all the pixels or something. The R100
189
acceleration renders pretty well, with some gaps. Note that
190
both are slower than software due to lack of DMA to submit
191
vertices. - Mostly fix R128 and Radeon transform support,
192
including supporting bilinear filtering on R128. Subpixel
193
offsets are still probably an issue (reported by rendercheck),
194
but I want to make 100% sure about my understanding of the
195
protocol before changing everybody, including fb. - Add support
196
for dst formats without alpha to R128 Composite. - Remove the
197
R128 Blend code, which has long outlived its usefulness. (I
198
kept it around for one reason: It could be useful for the w/h
199
> 1024 case with no mask and a non-src op. That seems pretty
200
infrequent and not worth the trouble).
202
2004-07-24 10:02 keithp
204
* ati.c: Check for mmio before restoring crtc/crtc2 pitch registers
206
2004-07-22 11:17 keithp
208
* ati.c, ati.h, ati_cursor.c, ati_reg.h: 2004-07-22 Keith Packard
211
reviewed by: <delete if not using a buddy>
213
* hw/kdrive/ati/ati.c: (ATISetOffscreen), (ATISetPitch),
214
(ATIRandRSetConfig), (ATIPreserve), (ATIRestore),
216
* hw/kdrive/ati/ati.h:
217
* hw/kdrive/ati/ati_cursor.c: (RadeonLoadCursor),
218
(ATIUnloadCursor), (ATICursorEnable):
219
* hw/kdrive/ati/ati_reg.h:
220
Correct pitch so that accelerator can run on 1400x1050
222
Add a few more register sets for cursors.
224
2004-07-19 05:07 anholt
226
* radeon_composite.c: Add support for a8b8g8r8 and x8b8g8r8
227
pictures, which showed up frequently with metacity usage.
229
2004-07-19 04:42 anholt
231
* ati_cursor.c: Breakage in last commit to this file:
232
pCurPriv->area isn't set up until Enable, these days.
234
2004-07-19 04:19 anholt
236
* ati_draw.c: Set the right number of texture coordinates for r200
237
Render support (still disabled, needs to be tested).
239
2004-07-19 04:16 anholt
241
* r128_composite.c, radeon_composite.c: - Add Radeon picture
242
transform support. - On R128, don't refer to an old Composite's
243
mask transform when the current Composite doesn't have a mask.
244
- Staticize some global variables in r128_composite.c.
246
2004-07-19 00:53 anholt
248
* ati.c, ati.h, ati_cursor.c, ati_draw.c, ati_draw.h: Use the
249
offscreen memory manager as much as possible to do the
250
reservation of memory at startup. Do some drive-by cleanups
251
while I'm here (sorry!).
253
2004-07-19 00:20 anholt
255
* r128_composite.c: Add support for transforms of textures on R128.
257
2004-07-03 03:23 anholt
259
* r128_composite.c: Clean up Rage 128 composite code. Now it
260
composites more operations correctly and is simpler.
262
2004-06-27 17:48 keithp
264
* ati.c, ati.h, ati_cursor.c, ati_draw.c: 2004-06-27 Keith Packard
267
* hw/kdrive/ati/ati.c: (ATICardInit), (ATISetOffscreen),
268
(ATIScreenInit), (ATIRandRSetConfig), (ATIRandRInit),
269
(ATIFinishInitScreen), (ATIEnable):
270
* hw/kdrive/ati/ati.h:
271
* hw/kdrive/ati/ati_cursor.c: (ATICursorInit):
272
* hw/kdrive/ati/ati_draw.c: (RadeonSwitchTo2D),
274
(ATIBlockHandler), (ATIWakeupHandler), (ATIDrawEnable),
275
(ATIDrawDisable), (ATIDrawFini):
276
Separate out off-screen allocation from Init.
277
Fix Enable to update off-screen addresses.
278
Wrap RandR to update off-screen addresses.
280
* hw/kdrive/fbdev/fbdev.c: (fbdevMapFramebuffer):
281
Set off_screen_base and memory_size fields correctly.
283
2004-06-25 21:13 keithp
285
* ati.c, ati_cursor.c, ati_draw.c, ati_reg.h: 2004-06-25 Keith
286
Packard <keithp@keithp.com>
288
* hw/kdrive/ati/ati.c: (ATIScreenInit):
289
* hw/kdrive/ati/ati_cursor.c: (ATIMoveCursor),
290
(ClassicAllocCursorColors), (ClassicSetCursorColors),
291
(ClassicRecolorCursor), (ClassicLoadCursor),
293
(ATIRealizeCursor), (ATISetCursor), (ATICursorEnable),
295
* hw/kdrive/ati/ati_draw.c: (ATIDrawFini):
296
* hw/kdrive/ati/ati_reg.h:
297
Add ARGB cursor support for Radeon cards.
299
2004-06-10 12:22 anholt
301
* ati_draw.c: - Pass the right pixel mask (all ones) in to
302
PrepareSolid in the solid-fill-based composite acceleration. -
303
Use a real pixmap when doing an UploadToScratch (For
304
pDrawable->type == DRAWABLE_WINDOW, you need to get the backing
305
pixmap). - Pass back the x/y offsets from kaaGetOffscreenPixmap
306
unconditionally, because they'll be used in the scratch case. -
307
Turn on the Render acceleration for Rage 128 and Radeon
310
2004-06-10 02:50 anholt
312
* ati_draw.c: Align scratch area offsets to the offscreen byte
315
2004-06-10 01:37 anholt
317
* ati_dma.c: Oops, testers reported that the last patch actually
318
didn't work (conflicts occurred), so the R300 PDMA doesn't work.
321
2004-06-09 22:57 anholt
323
* ati_dma.c, ati_microcode.c: Bug #242: Fix setup of R300 cards, by
324
providing R300 CP code from volodya-project and initializing
327
2004-05-17 13:18 anholt
329
* Makefile.am, ati.c, ati.h, ati_cursor.c, ati_dma.c, ati_dma.h,
330
ati_draw.c, ati_draw.h, ati_dri.c, ati_microcode.c, ati_reg.h,
331
ati_video.c, r128_composite.c, radeon_composite.c: Overhaul of
332
the ATI driver: - Add monochrome hardware cursor support. - Try
333
to auto-detect AGP support for DRI on Radeons. And fail.
334
Detect it properly on R128. - Set up card for pseudo-DMA if
335
possible. Convert 2D rendering code to prepare DMA packets
336
only. Use generic code to decode DMA packets to MMIO if PDMA
337
is unavailable. Add WIP code to support "real" DMA without DRM
338
support. - Dispatch pending DMA commands when the server sleeps.
339
Otherwise some things, such as typing in an xterm, wouldn't
340
show up for a time. - Fix Radeon Composite acceleration in
341
many ways, and add Rage 128 Composite acceleration. Disable
342
them both due to still-not-understood issues they have. They
343
fail with In, Out, AtopReverse, and Xor, and text rendering is
344
strange. - Add textured XV support for R100 and Rage 128. No
345
brightness/sat controls, but it does support multiple ports,
346
and cooperates with Composite. - Add WIP code for hostdata
347
uploads. - Many cleanups and fixes.
349
2004-01-24 21:31 anholt
351
* ati_dri.c: Disable GLX visuals code on !GLXEXT, and remove a
354
2004-01-24 17:30 anholt
356
* ati.c, ati.h, ati_dri.c, radeon_composite.c: - Add glx visuals
357
code based on XFree86's Radeon driver. - Reserve areas for
358
back/depth/span when USING_DRI && GLXEXT. This would be better
359
in a TransitionTo3d, but we'd need to work with the offscreen
360
memory manager for that. - Misc. fixes to ati_dri.c for DRI+GLX.
361
Needs more work still.
363
2004-01-24 17:16 anholt
365
* ati_draw.h: Oops, turn fallback output back off.
367
2004-01-24 17:04 anholt
369
* ati_dri.c: Whitespace cleanup.
371
2004-01-10 16:10 anholt
373
* ati_draw.c, r128_blendtmp.h: Support 1x1 repeat sources in R128's
376
2004-01-09 00:43 anholt
378
* ati.c, ati.h, ati_draw.c, ati_draw.h, ati_dri.c: Change PCI ID
379
information field to be one of r128, r100, r200, r300. This is
380
all the information we need so far. Put that information into
381
atic, and use it correctly in the code (unlike before).
383
2004-01-08 12:18 anholt
385
* ati_draw.c, radeon_composite.c: Compile fixes for non-DRI case
386
and for non-C99 compiler.
388
2004-01-08 00:25 anholt
390
* ati.c: Forced commit: Previous commit included the removal of the
391
8192 scanline limit on offscreen memory in the fbdev case. I
392
remember daenzer (who originally put that code in) saying he
393
wasn't sure of it, and there doesn't seem to be any reason for
394
that limit given how acceleration is done.
396
2004-01-08 00:16 anholt
398
* ati.c, ati.h, ati_draw.c: - Add a new UploadToScratch kaa hook
399
for putting the data for a single pixmap into temporary
400
offscreen storage. Subsequent UploadToScratch may clobber the
401
data of previous ones. This allows hardware acceleration of
402
composite operations on glyphs. - Add a new UploadToScreen kaa
403
hook for doing the actual moving of data to framebuffer. This
404
would allow us to do things like hostdata blits or memcpy to
405
agp and then blit. - Add an UploadToScreen on ATI which is just
406
memcpy, but which will be replaced with a hostdata blit soon.
407
- Add UploadToScratch on ATI and reserve 64k of scratch space.
408
This provided a 3x speedup of rgb24text on my Radeon.
410
2004-01-06 18:30 anholt
412
* radeon_composite.c: Speed things up slightly by removing Z values
413
from emitted vertices and by emitting as a tri fan rather than a
414
tri list. A rect list would save an additional vertex (out of 4)
415
per rectangle, but there's no measurable speed difference and the
416
tri fan may be useful when transforms come into play.
418
2004-01-04 12:47 anholt
420
* ati_draw.c, radeon_composite.c: - Correctly set the texture
421
coordinate set source for the second texture unit. - Re-enable
422
Radeon's Composite accel now that fonts work again.
424
2004-01-03 03:46 anholt
426
* ati_draw.c, radeon_composite.c: - Add more Composite operations,
427
including Saturate, to Radeon Composite accel. I don't 100%
428
trust that the math works for Saturate, but I can't tell from
429
existing information. - Fix texture pitch fallback checks. -
430
Fallback when src or mask have transforms. - Disable Radeon
431
Composite accel until the offset thing is fixed. - Set
432
offscreenPitch to 64 on Radeon thanks to new information and a
433
kaa fix. Fixes acceleration at width!=1024.
435
2003-12-31 15:24 anholt
437
* radeon_composite.c: Some strange \240 character snuck into the
438
original commit of this file.
440
2003-12-30 00:45 anholt
442
* ati_drawtmp.h: There's never a copy between different depths.
445
2003-12-30 00:23 anholt
447
* Makefile.am, ati_draw.c, ati_draw.h, ati_drawtmp.h, ati_reg.h,
448
radeon_composite.c: - Add new Composite hook for kdrive drivers,
449
which only ensures that the pixmaps are offscreen and don't
450
have alpha maps. It is the last case checked before going to
451
software fallback - Use the new Composite hook in the ati driver
452
to implement acceleration of most Composites that get done in
453
an xcompmgr environment on r100 series cards. It is only
454
available when using the DRM. There are still some corruption
455
issues, but the DRI is still non-default and I need to get this
456
into version control.
458
2003-12-29 01:04 anholt
460
* Makefile.am: Add dependency lines so that servers are rebuilt
461
when server libraries are changed.
463
2003-12-28 22:24 anholt
465
* Makefile.am, ati.c, ati.h, ati_draw.c, ati_draw.h, ati_drawtmp.h,
466
ati_dri.c, ati_dri.h, ati_dripriv.h, ati_reg.h, ati_sarea.h,
467
ati_stub.c, r128_blendtmp.h, r128_common.h, r128_sarea.h,
468
radeon_common.h, radeon_sarea.h: Merge dri-0-1-branch to trunk.
469
Notable changes: - Add libdrm and libdri. Portions of the DRI
470
extension are stubbed out. - Use the DRM in the ATI driver
471
when available. This provides a minor performance improvement
472
in x11perf, and opens the possibility of using the 3d hardware
473
for acceleration in the future. - Implement solid fill
474
acceleration for Composite in KAA. - Implement Blend hook for
475
Composite and use it on r128. - Fix a bug of mine that resulted
476
in overuse of offscreen memory. - Fix many miscellaneous bugs in
477
ATI driver and add PCI IDs.
479
2003-12-28 21:10 anholt
481
* ati_drawtmp.h, r128_blendtmp.h: - Disable libdrm verbosity. It
482
isn't important enough yet to make a run-time flag for it. -
483
Fix the (void)atic; tricks to quiet unused variable warnings in
484
ATI template files. Mixing statements and variable defines works
485
in newer compilers, but not pdx's.
487
2003-12-28 01:16 anholt
489
* ati.h, ati_draw.c, ati_draw.h, ati_drawtmp.h, ati_dri.c,
490
r128_blendtmp.h: - Allow acceleration between same-depth pixmaps,
491
rather than between anything and a dst that matched the screen
492
depth (fixes corruption for non-screen-depth src and makes more
493
acceleration possible). - Add ATI_FALLBACK macro and use it to
494
allow verbose descriptions of why hardware acceleration fails.
495
- Check that src and dst alignment meet requirements of the card
496
before accelerating. The BIOS may set up screens that don't
497
meet the requirements. - Fix the R128 offset alignment (32
498
bytes, not 8). - Enable Blend operation even if screen is 24bpp
499
(it will fail if the dest is 24bpp anyway).
501
2003-12-27 02:46 anholt
503
* ati_reg.h, r128_blendtmp.h: Properly initialize texture registers
504
in Blend. Fixes problems with blending code such as whiteness in
505
test-render, or no blending at all.
509
2003-12-23 14:29 anholt
511
* Makefile.am, ati_draw.c, ati_drawtmp.h, ati_reg.h,
512
r128_blendtmp.h: - Implement acceleration of Composite on R128
513
when there is no mask, no transformation, no repeat, and only
514
certain ops are used. - Add debugging output for software
515
fallbacks for Composite. - Allow pixmaps in offscreen that don't
516
match root depth. - Clean up some mess in ati_reg.h.
518
Many thanks to andersca for a lot of this code.
520
2003-12-09 21:01 anholt
522
* ati_draw.c: Add missing kaaDrawFini to ATI driver.
524
2003-12-01 14:56 anholt
526
* Makefile.am, ati.c, ati.h, ati_draw.c, ati_draw.h, ati_drawtmp.h,
527
ati_dri.c, ati_dri.h, ati_dripriv.h, ati_reg.h, ati_sarea.h,
528
ati_stub.c, r128_common.h, r128_sarea.h, radeon_common.h,
529
radeon_sarea.h: - Initial add of enough of the DRI to create a 2d
530
driver that uses the DRM for its acceleration. - Converted the
531
ATI driver to use the DRM to execute rendering commands using
532
DMA instead of MMIO when available.
534
2003-11-30 20:33 anholt
536
* Makefile.am, ati.c, ati.h, ati_stub.c: - Add fbdev mode-setting
537
backend to Xati. It and vesa are compiled in when available,
538
with fbdev being used by default. - Use depth 16 by default when
539
vesa backend is used. - Add MMIO defines for PowerPC (should be
540
in a common location).
542
Many thanks for Michel Daenzer for much of this code.
544
2003-11-30 19:15 anholt
546
* ati.c: Add more RV250 PCI IDs.
548
2003-11-30 17:46 anholt
550
* ati_draw.c: Remove sys/io.h inclusion from some files that didn't
551
need it, and change asm/io.h to sys/io.h in vga.c, which newer
552
Linux complains about.
554
2003-11-25 14:39 anholt
556
* ati.c: Add new Radeon 9200 PCI IDs.
558
2003-11-23 02:12 anholt
560
* ati_draw.c: - Fix Radeon offscreen pixmap pitch alignment. -
561
Remove usleeps from idle and waitavail code, recommended by
562
keithp. - Add a workaround for apparent broken acceleration with
563
Rage 128 and offset alignment with 8-bit acceleration (24-hack
564
and plain 8-bit). - Minor cleanup of setup code.
566
2003-11-22 18:08 anholt
568
* ati.c: Add RV250 PCI IDs.
570
2003-11-19 23:49 anholt
572
* ati.c, ati.h, ati_draw.c, ati_reg.h: - Fix a bug in pitch
573
alignment for offscren pixmaps. - Add 24-bit acceleration for
574
Xati using the 8-bit trick from mach64. - Add offscreen pixmap
577
2003-11-19 16:05 anholt
579
* ati.c, ati_draw.c: - Fix confusion of depth/bitsPerPixel in
580
ati_draw.c - Disable acceleration with 24bpp due to apparent
581
broken acceleration. Accel at 24bpp was the cause of the
582
crashes when people tried to use any depth over 16. XFree86
583
doesn't support 24 either. - Disable at < 8bpp, too. - Add the
584
other Rage 128 PCI IDs. - Remove unnecessary setting of scissor
585
registers (only default scissor gets used).
587
2003-11-19 00:32 anholt
589
* .cvsignore, Makefile.am, ati.c, ati.h, ati_draw.c, ati_reg.h,
590
ati_stub.c: - Add PCI information (device/vendor id, bus
591
location) to KdCardAttr to help with ati, and future DRM
592
drivers. - Add new "ati" kdrive driver. It has ancestry in the
593
r128 driver from andersca, but took a detour through being the
594
WIP SiS 300 driver on the way. It supports Radeons (tested on
595
QD VIVO and 7500) and Rage 128. Current limitations include
596
that it requires depth 16 and that the other Rage 128 PCI IDs