blob: 8ba6f28ac3980911d653059e3beb0549e635eaf0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
== Glide ==
A 3D API developed by the 3dfx company. Glide only works with Voodoo based 3D
cards and in many ways it is very similar to OpenGL. You can write an entire 3D
application using Glide and it should (in theory) run on any Voodoo based 3D
card. Glide is now open source.
=== What's the relationship between Glide and DRI? ===
Right now the picture looks like this:
{{{
Client -> OpenGL / GLX -> Glide as HAL (DRI) -> hardware
}}}
In this layout the Glide (DRI) is really a hardware abstraction layer. The only
API exposed it OpenGL and Glide (DRI) only works with OpenGL. It isn't useful by
itself.
There are a few Glide only games. 3dfx would like to see those work. So the
current solution, shown above, doesn't work since the Glide API isn't
available. Instead we need:
{{{
Client -> Glide as API (DRI) -> hw
}}}
Right now Mesa does a bunch of the DRI work, and then hands that data down to
Glide. Also Mesa does all the locking of the hardware. If we're going to remove
Mesa, then Glide now has to do the DRI work, and we have to do something about
the locking.
The solution is actually a bit more complicated. Glide wants to use all the
memory as well. We don't want the X server to draw at all. Glide will turn off
drawing in the X server and grab the lock and never let it go. That way no
other 3D client can start up and the X server can still process keyboard events
and such for you. When the Glide app goes away we just force a big refresh
event for the whole screen.
I hope that explains it. We're really not trying to encourage people to use the
Glide API, it is just to allow those existing games to run. We really want
people to use OpenGL directly.
Another interesting project that a few people have discussed is removing Glide
from the picture at all. Just let Mesa send the actual commands to the
hardware. That's the way most of our drivers were written. It would simplify
the install process (you don't need Glide separately) and it might improve
performance a bit, and since we're only doing this for one type of hardware
(Voodoo3+) Glide isn't doing that much as a hardware abstraction layer. It's
some work. There's about 50 calls from Glide we use and those aren't simple,
but it might be a good project for a few people to tackle.
----
CategoryGlossary, CategoryFaq
|