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

Chia-I Wu olvaffe at gmail.com
Tue Apr 16 09:45:39 PDT 2013


Hi list,

On Thu, Dec 13, 2012 at 6:41 AM, 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.
>
It has been a while since the announcement.  At first, I was waiting for my
account to be re-opened.  Then I got an Ivy Bridge laptop and was busy
enabling GEN7 on the driver until now.

I force-updated the branch for the latest code, and cleaned the history up
today.  The branch has 24 commits on top of master

Chia-I Wu (24):
      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: 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 GEN7 GPE
      i965g: add 3D pipeline for GEN6
      i965g: add GEN7 support for 3D pipeline
      i965g: hook up pipe context 3D functions
      i965g: add support for time/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/GS/FS with the toy compiler
      i965g: add the driver to the build system

If you are interested in the complete history, you can take a look at
i965g-next branch.

Changes since the announcement are:
 - GEN7 support (stencil buffer support is still missing)
 - fixed tons of bugs, with piglit passing 7999 of 8428 tests

The state of the TGSI->GEN compiler remains the same: messy, missing some
features, and non-optimizing.  As my focus is still on features, the
performance should remain about the same.  I will see if I can improve the
situations over the next few months.

If there is no objection, I'd like to merge it in a day or two.


> 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
>



-- 
olv at LunarG.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130417/d572e45c/attachment-0001.html>


More information about the mesa-dev mailing list