Hi Marek, On Thu, Dec 13, 2012 at 8:58 AM, Marek Olšák <mar...@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 <olva...@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 >> >> -- >> o...@lunarg.com >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-- o...@lunarg.com _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev