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

Chia-I Wu olvaffe at gmail.com
Wed Dec 12 14:41:59 PST 2012


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


More information about the mesa-dev mailing list