[Mesa-dev] new i965g pipe driver for Intel GEN6 (and later)

Marek Olšák maraeo at gmail.com
Wed Dec 12 16:58:41 PST 2012

If you want a piece of advice... it would be great to extend gallium
to allow the GLSL IR to be passed to drivers directly. Once that's
done, I think you can copy their shader codegen as-is with all
optimizations or even share it. Also, I don't think Intel will move to
Gallium if they can't use the GLSL IR.

I think Intel are afraid that Gallium adds additional CPU overhead. As
long as the constant state objects and resource views contain GPU
command buffers ready to be emitted, there is no state translation and
validation on the driver side.


On Wed, Dec 12, 2012 at 11:41 PM, Chia-I Wu <olvaffe at gmail.com> wrote:
> Hi list,
> I've been working on i965g, a new pipe driver for Intel GEN6 (and
> later), for a while now.  I would like to know if there is any
> interest in it and if it can be merged upstream.  The code is
> currently available here
>   https://github.com/olvaffe/mesa/tree/i965g
> The project was started for my own fun and for self-learning.  It was
> later sponsored by LunarG.  While it is still new, it does work for
> many of mesa-demos.  Right now it passes 6884 of 7547 piglit
> quick-driver.tests.  I also tried it with gnome-shell, OpenArena, and
> Nexuiz, and they all seem to work.
> The driver is written from scratch.  However, it follows classic i965
> driver for many of the design decisions.  It comes with its own toy
> compiler to translate TGSI tokens to GEN instructions.  The compiler
> still lacks several functions (register spilling and most TGSI
> indirections), but more importantly, almost no optimization is
> performed.  It thus generates much worse code comparing to that
> generated by classic i965.
> I rebased the code tonight and cleaned up the history.  The branch now
> has 24  new commits on top of master
>       winsys/intel: new winsys for intel
>       i965g: new pipe driver for Intel GEN6+
>       i965g: add debug flags settable through I965_DEBUG
>       i965g: hook up pipe_screen param and fence functions
>       i965g: add functions to translate pipe enums to HW enums
>       i965g: hook up pipe screen format functions
>       i965g: hook up pipe screen resource functions
>       i965g: add command parser
>       i965g: hook up pipe context flush function
>       i965g: add functions to manage shaders
>       i965g: hook up pipe context state functions
>       i965g: hook up pipe context blit functions
>       i965g: hook up pipe context transfer functions
>       i965g: hook up pipe context query functions
>       i965g: add GEN6 GPE
>       i965g: add GEN6 3D context
>       i965g: hook up pipe context 3D functions
>       i965g: add support for timer/occlusion/primitive queries
>       i965g: hook up pipe context video functions
>       i965g: hook up pipe context GPGPU functions
>       i965g: add a toy shader compiler
>       i965g: compile VS and FS with the toy compiler
>       i965g: support the new driver in various targets
>       i965g: add to --with-gallium-drivers
> It is quite self-contained.  If preferred, I can send the patches to the list.
> Oh, and my account on fdo is disabled because of my own mistake[1].  I
> contacted some of the developers in the thread but did not get any
> response.  Could anyone help me with that, or how do I have it
> re-enabled?
> [1] http://lists.freedesktop.org/archives/mesa-dev/2012-July/023901.html
> --
> olv at LunarG.com
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev

More information about the mesa-dev mailing list