[Mesa-dev] new i965g pipe driver for Intel GEN6 (and later)
Chia-I Wu
olvaffe at gmail.com
Wed Dec 12 21:37:53 PST 2012
Hi Marek,
On Thu, Dec 13, 2012 at 8:58 AM, Marek Olšák <maraeo at gmail.com> wrote:
> 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.
The toy compiler in the driver will remain a toy. It may be still
years away, but I always want to work on an LLVM backend for GEN, and
move everything to LLVM IR. Now that Intel is also considering an
LLVM-based compiler, it may happen sooner.
> 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.
I have not done any profiling or optimization so far. But this is
definitely one of the things that needs to be fixed.
> Marek
>
> 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
--
olv at LunarG.com
More information about the mesa-dev
mailing list