Right now, in order to create a driver, you need to combine three pieces.

The pipe is the core of acceleration for a given chipset. It contains
all of the code necessary to accelerate things, and exposes two generic
structs in the Gallium API: pipe_screen, which is information about the
current chipset and buffer/memory setup, and pipe_context, which has
methods for rendering things. You probably never need to touch this
unless you're adding new chipsets to Gallium.

The winsys is a series of bindings that connects a pipe to a windowing
system or similar framework. It does this by exposing whatever APIs are
needed. At first, DRI was the only API, but now we have a drm_api which
can be used to generically and directly set up buffers and pipes for
DRM-based drivers.

The state tracker is just a library that internally uses a winsys,
through drm_api or similar, to set up and use pipes. The external API
that the state tracker exposes can be nearly anything; right now, we
have state trackers for Xorg, DRI2, GLX, EGL, XvMC, and Python (SWIG).

These can be mix'n'matched to come up with the actual driver binaries;
for example, Xorg + radeon + r300 = Radeon r300 Xorg driver, EGL + intel
+ i915 = Intel i915 EGL driver, DRI2 + GLX + nouveau + nv50 = nVidia
NV50 DRI2 driver.

Obviously, non-DRM-based drivers will need winsys work for Syllable. I
don't exactly know how Syllable's userland and kernel communicate; I
assume there's some API that they use to talk to each other. You'd
probably need to augment or invent winsys that can talk to Syllable's
kernel. Then, you'd need a state tracker for Syllable's windowing
system. You shouldn't have to touch any of the pipes.

Hopefully this answers some questions. (And hopefully I don't have to
get corrected by the more knowledgeable guys!)

~ C.

------------------------------------------------------------------------------
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to