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

Roland Scheidegger sroland at vmware.com
Wed Dec 12 15:49:19 PST 2012

This is interesting, personally I'm fine with getting this merged.
That said, there was a i965g driver upstream before (though it never
worked right IIRC and was probably gen4 or maybe gen5 too only due to
its age), the problem is unless you manage to get the intel guys
interested you'll always end up with something which just isn't very
useful to most people, as you will always lag behind the non-gallium
driver in features, performance and conformance (with the primary
benefit of supporting other state trackers but most folks are just happy
with GL variants).
But if there's no interest we can always nuke it (again) in the future I
btw is there a specific reason why it's gen6+ only? I'm just curious as
I thought that despite some differences they still could share quite
some code.


Am 12.12.2012 23:41, schrieb Chia-I Wu:
> 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

More information about the mesa-dev mailing list