VOGONS


Apple QuickDraw 3D Accelerator Card

Topic actions

Reply 20 of 65, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
stynx wrote on 2021-11-01, 12:06:

I have researched a bit about this card.

Thank you so much! 😀

[EDIT] Please feel free to link to the patents and papers 😀

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 21 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

Some of the files

Attachments

Reply 22 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

more files

Attachments

Reply 23 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

even more files 😀

And my modified TextureEyes program for the mac with some custom textures.

Attachments

Reply 24 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

The Mipmap_aliasing_textuers PDF is a small collection of screenshots of TexturEyes rendered Objects with various textures.
It is meant tho show the mipmapping and filtering of textures. the textures are black and white patterns in a 32bit PICT container.
The QD3D accelerator card is only capable of storing 16bit textures. I was not able to enable the alpha-bit (15+1).
This could either mean, that the card does not allow for transparency in textures or that i have not used the correct method.

-Jonas

Reply 25 of 65, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
stynx wrote on 2021-11-04, 18:02:

even more files 😀

Soooo awesome! Thanks so much 😀

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 26 of 65, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

WOW Thanks =)

This is extra beautiful

Last edited by Stiletto on 2021-11-05, 18:25. Edited 2 times in total.

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 27 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

Here is the result of my measuring of the pins on the bigger ASIC:

B1 = SRAM Bank 1
B2 = SRAM Bank 2

A0 p80-B2, p88-B1
A1 shared p89
A2 shared p90
A3 shared p91
A4 shared p99
A5 shared p100
A6 p76-B2, p81-B1
A7 p75-B2, p82-B1
A8 shared p92
A9 shared p93
A10 shared p94
A11 shared p95
A12 shared p98
A13 p75-B2, p83-B1
A14 p74-B2, p84-B1
A15 p73-B2, p85-B1
A16 p72-B2, p86-B1

output enable (B1&B2): 104
enable B1: 78
enable B2: 80

data: … 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67
possibly data: 68, 69

GND: 60, 53, 71, 79, 87, 96
NC: 97, 101

Testpoints on the bottom: 102, 103

I would suspect that the two unconnected lines, that i found earlier were actually data-lines (the patent mentioned 18 data-lines instead of 16). This would explain the blips of I/O that i got on these lines when storing textures into the sram.

Pins 97 may be a address line (i have to check with an oscilloscope) as may be pin 101.
But these pins may be test pins like pins 102 and 103.

One earlier Patent mentioned a 16Mbit 80ns DRAM and the 128K cache.
I would suspect that the earlier version of the card (white magic) did more primitive texturing without filtering and mipmapping.

Reply 28 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

I have tested the cards in a Power Mac 9500. The system has 6 PCI slots.
3 Slots (A1-C1) are directly connected to the system bus and 3 slots (D2-F2) are cascaded via a PCI-PCI bridge.
The cards work in any slot but they work about 10-15% faster in the bus where the frame buffer is located.
Strangely, the cards seem to have hit a bottleneck somewhere.

The used 9500 has a 375 MHz G3 with 512K L2 and 512K L3 cache on the mainboard as well as 128 Mb memory.
A single card will reach 40-50 fps in Gerbils and two cards will get 70-85 fps.
One card gets very hot while the other card gets only slightly warm.

In the 7500/200 the cards got both very hot. So much that I had to put coolers onto them.

The 9500 allows me to test more than 2 cards. But I suspect that it is not worth the effort, even if it works.

On another note:
The card will most likely NOT support transparency in textures. The concept has transparency for objects and carries this through the pipeline. The textures are mapped at the end when all color calculations are done. The patents go into great detail about transparency of objects. The only way to render alpha-enabled textures would be to prepare the alpha-mapped object as transparent but calculate the shading and overdraw the vertex with the alpha enabled texture. Nothing like that is mentioned anywhere, though.

BTW here are some videos on my YouTube channel: https://www.youtube.com/watch?v=VEDEoFBBELY

-Jonas

Reply 29 of 65, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

Hello, thanks for showing these things =) i thinking of buying mac especially for RAVE support, what you can recommend which one i should buy and which video cards support it? iMac g4 is capable? other mac models?
p.s. Sorry for offtop. i just need list of mac and list of cards =)

3d accelerators on other platforms not PC

i finding games apps that use RAVE , maybe you can capture video of them too =)?

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 30 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie
RaVeN-05 wrote on 2021-11-06, 07:24:
Hello, thanks for showing these things =) i thinking of buying mac especially for RAVE support, what you can recommend which one […]
Show full quote

Hello, thanks for showing these things =) i thinking of buying mac especially for RAVE support, what you can recommend which one i should buy and which video cards support it? iMac g4 is capable? other mac models?
p.s. Sorry for offtop. i just need list of mac and list of cards =)

3d accelerators on other platforms not PC

i finding games apps that use RAVE , maybe you can capture video of them too =)?

I had a similar question on Youtube regarding the G4. I would say that a later model (slot-in) iMac G3 is best suited for classic Mac OS (8.x-9.x) and therefore QD3D RAVE. Rave was not ported to OSX and did not work correctly under the classic-subsystem in OSX. You would have the 'best' experience on a '99 iMac G3 with OS9.1 or preferably 8.6.

Applications would mostly use Quickdraw 3D without accessing the RAVE layer. Games had often already very optimised 3D engines that needed close hardware access (via RAVE). Quickdraw 3D has several layers and interfaces for software to access its functions. QD3D RAVE is a direct programming interface for 3D-functions more hardware oriented than high-level APIs like Open-GL. It can be compared to 3DFX Glide or one of the many vendor specific 3D-APIs. A 3D-accelerator vendor would have to supply a RAVE driver to allow QD3D to access the 3D-functions on the card. All higher QD3D-features would now be able to use the hardware acceleration. Applications would usually use the QD3D 'interactive renderer'-interface that offered transparent switching between hardware rendering and software rendering. You don't need a 3D-card for it to work and most features are available by the QD3D software-renderer as well. No need to program the 3D engine yourself.

QuickDraw 3D is a bit strange since it was an extremely capable 3D environment. The Apple QD3D card was strangely highly integrated into the QD3D system and did not use the later added RAVE-interface but a unique way of integration into QD3D. This means that only software that uses the high-level functions of QuickDraw 3D is capable of accessing the card(s). Features like the 'constructive solid geometry' (CSG) of the QD3D card are only accessible if boolean operators on objects are transferred to the card. The high-level QuickDraw 3D API is constructed so that implementation is easier and less complex but that has a lot of overhead and costs performance. It is a bit 'bloated' and can be slow compared to the slick high-speed 3D engines of FPS-games. Fast enough for casual games like bugdom or nanosaur, especially since the development of a custom 3D-engine can be cut down to the usage of QuickDraw 3D which saved money for small developers.

Reply 31 of 65, by RaVeN-05

User metadata
Rank Oldbie
Rank
Oldbie

indeed sounds and feel really strange, i never touched nor qd3d nor RAVE but what i see its complicated, even Amiga Scene (not touched also) at the times of Warp3D is feels faster and easier.
The PC Scene is most low level optimized, every Graphic API was fast , early ( 3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D) and S3 Savage MeTal API 3D Accelerated Games List and https://www.zeus-software.com/forum/viewtopic.php?f=10&t=672 ) or later like OpenGL, Direct3D, Metal API(on MAC OSX), Vulkan, Mantle etc...

Also wanted to ask is there any emulators with QD3D RAVE support? (and seems it nothing like this)

Thank you very much for research and posts =)

https://www.youtube.com/user/whitemagicraven
https://go.twitch.tv/whitemagicraventv

Reply 32 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie
RaVeN-05 wrote on 2021-11-07, 09:30:

Also wanted to ask is there any emulators with QD3D RAVE support? (and seems it nothing like this)

Not at the moment. There are some attempts to add a RAVE->OpenGL wrapper to SheepShaver but nothing has currently been developed.
<--->
The QD3D API died when Mac OS X was released. Apple had no intention to support it any further than Mac OS 9. Steve Jobs famously killed off some very prominent Apple-projects in 1997. It was mainly a cost saving measure as Apple was loosing money fast and may have gone bankrupt if things had gone as they were. A lot of know-how and many capable people left Apple in 1997 and went to other companies. The developers of the QD3D card partly went to 3Dfx and Nvidia. Some technology might have found its way into the later 3D cards of these companies.
QD3D was meant to be a high-level API with lots of functions and a way to easily add 3D support to applications. The whole 3D-environment was highly integrated into Mac OS and allowed cross-application transfer of data with full support of the OS. Apple was keen on supplying this ease of use and feature-rich API to other platforms. Apple completely underestimated the boost that games would add to the 3D development. The QD3D API is a semi-professional environment without any thought on games. DirectX and OpenGL made it nearly impossible for Apple to have direct support in graphics cores late on and most 3D drivers were mostly low-level wrappers for QD3D RAVE to access the DirextX optimized GPU-interfaces.
RAVE was a 'last minute' decision to allow more hardware-oriented access to the graphics hardware since there was no interface like that in the beginning. The problems some applications and games have with it are a testament to that. Even QD3D application can have problems with a QD3D-RAVE enabled card. Especially 3Dfx cards are notorious for having poor QD3D-Rave drivers and ATI-cards are known for their excellent QD3D-Rave support. Formac was very good at implementing RAVE drivers for various 3D GPUs that had sometimes even better feature support than DirectX on that specific card.

The S3 Virge for example (Formac ProMedia) was very well implemented in QD3D Rave and has no problems with less complex 3D-graphics in applications. It gets quickly overwhelmed with later RAVE-games and the lack of transparency is very detrimental to the visual representation.

The best RAVE card may very well be the ATI Rage 128 series. It has excellent QD3D- as well as OpenGl-support. OS9 has direct support in it and it it is well supported in early versions of OSX.

Weekend Warriors is a good game to test the QD3D-API (it used the high-level API for nearly everything 3D) and Unreal is a good game to test the low-level RAVE API.

Havoc is a special case since it has support QD3D but sometimes RAVE works, sometimes not. Different versions have different support.

Reply 33 of 65, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

Are there any complete lists anywhere of what cards had QuickDraw 3D RAVE drivers? (I realize that this is asking something like "is there a list anywhere of all cards that support Direct3D" so perhaps this isn't a thing...)

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 35 of 65, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
stynx wrote on 2021-11-10, 18:27:

Here is an incomplete list of early QD3D accelerators (1995-1997)
http://www.designcommunity.com/qd3d/cards.html

Thanks 😀

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 36 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

Here are some documents regarding programming with QD3D and some mentions about QD3D 2.0 that was never released.

Attachments

Reply 37 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

Sample and debugger code for QD3D

Attachments

Reply 38 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

Here is a very helpful site with Apple dev-tools and documentation:
https://staticky.com/dl/ftp.apple.com/develop … velopment_Kits/

Here are the QD3D 1.6 SDKs and installers for Mac and Windows
https://staticky.com/dl/ftp.apple.com/develop … s/QuickDraw_3D/
The Windows installer has a QD3D-Direct3D Wrapper that lets you use any D3D-HW accelerator with Windows QD3D Software.

Reply 39 of 65, by stynx

User metadata
Rank Newbie
Rank
Newbie

I have tested the polygon throughput of a QD3D accelerator card (single) and compared it with a S3 Virge on the same Computer.
QD3D is V1.6 on a MacOS 8.6 - The CPU is 200 Mmh 604e without cache and 320 Mb Ram in a Power Macintosh 7500.
I used "Sneak3view" from the QD3D SDK.

The S3 Virge had problems with textures in this test. The textures were displayed normal by the Virge in other programs.
The filtering on the Virge was set to fastest. The best filtering (bilinear) takes about 30%-50% performance

QD3D accelerator has trilinear filtering always enabled by hardware. It can not be switched off. No speed difference was seen in best or fastest filtering.
The Apple QuickDraw 3D accelerator does not support transparency in textures. But it seem to support some kind of 1bit texture map where black is rendered as transparent. This seems to be a special overlay mode, though.
---
25px Tris Gouraud shaded (320x240 window)
QD3D Accelerator: 141484 tris/s
QD3D x2: 169029 tris/s
S3 Virge (86c325): 158831 tris/s

50px Tris Gouraud shaded (320x240 window)
QD3D Accelerator: 103733 tris/s
QD3D x2: 140804 tris/s
S3 Virge (86c325): 150100 tris/s

1000px Tris Gouraud shaded (320x240 window)
QD3D Accelerator: 9467 tris/s
QD3D x2: 16478 tris/s
S3 Virge (86c325): 17802 tris/s
---
25px Tris textured (320x240 window)
QD3D Accelerator: 109886 tris/s
QD3D x2: 120349 tris/s
S3 Virge (86c325): 125100 tris/s

50px Tris textured (320x240 window)
QD3D Accelerator: 84123 tris/s
QD3D x2: 102447 tris/s
S3 Virge (86c325): 110500 tris/s

1000px Tris textured (320x240 window)
QD3D Accelerator: 9022 tris/s
QD3D x2: 15008 tris/s
S3 Virge (86c325): 7424 tris/s
---
25px Tris textured (640x480 window)
QD3D x2: 123721 tris/s
S3 Virge (86c325): 123818 tris/s

50px Tris textured (640x480 window)
QD3D x2: 115618 tris/s
S3 Virge (86c325): 87927 tris/s

1000px Tris textured (640x480 window)
QD3D x2: 18070 tris/s
S3 Virge (86c325): 6485 tris/s
-------------------
QD3D features:
ASCIINameLength: 10
ASCIIName: formac GA6 (S3 Virge 86c325)
VendorID: 1716347235
EngineID: 2
Revision: 1
FastFeatures:
Line
Gouraud
Texture
TextureHQ
OptionalFeatures:
Texture
TextureHQ

ASCIINameLength: 18
ASCIIName: Apple PCI Hardware
VendorID: 0
EngineID: -1
Revision: 1
FastFeatures:
Gouraud
Texture
TextureHQ
Blend
ZSorted
OptionalFeatures:
DeepZ
Texture
TextureHQ
Blend
BlendAlpha
ZSorted
NoClear

----
The S3 Virge (86c325) is comparable to the Quickdraw 3D accelerator. The polygon throughput is about equal with as light advantage towards the S3 Virge.
The release of the Apple QuickDraw 3D accelerator seems to be around December 1995.
The release date of the S3 Virge (86c325) seems to be around June 1996.
---
The two images show the rendering bugs that were encounter in the test program. These bugs are not seen in other programs, though.
The Testprogram is maybe a bit incompatible or it expects a more modern hardware since it is part of the QuickDraw 3D 1.6 (1999) DevKit.

-Jonas

Attachments

  • virge_game2.png
    Filename
    virge_game2.png
    File size
    62.91 KiB
    Views
    1728 views
    File license
    Public domain
  • QD3D_game2.png
    Filename
    QD3D_game2.png
    File size
    143.39 KiB
    Views
    1728 views
    File license
    Public domain