<div dir="ltr">Hi list,<br><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 13, 2012 at 6:41 AM, Chia-I Wu <span dir="ltr"><<a href="mailto:olvaffe@gmail.com" target="_blank">olvaffe@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi list,<br>
<br>
I've been working on i965g, a new pipe driver for Intel GEN6 (and<br>
later), for a while now. I would like to know if there is any<br>
interest in it and if it can be merged upstream. The code is<br>
currently available here<br>
<br>
<a href="https://github.com/olvaffe/mesa/tree/i965g" target="_blank">https://github.com/olvaffe/mesa/tree/i965g</a><br>
<br>
The project was started for my own fun and for self-learning. It was<br>
later sponsored by LunarG. While it is still new, it does work for<br>
many of mesa-demos. Right now it passes 6884 of 7547 piglit<br>
quick-driver.tests. I also tried it with gnome-shell, OpenArena, and<br>
Nexuiz, and they all seem to work.<br></blockquote><div>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.<br>
<br></div><div>I force-updated the branch for the latest code, and cleaned the history up today. The branch has 24 commits on top of master<br><br>Chia-I Wu (24):<br> winsys/intel: new winsys for intel<br> i965g: new pipe driver for Intel GEN6+<br>
i965g: add debug flags settable through I965_DEBUG<br> i965g: hook up pipe_screen param and fence functions<br> i965g: hook up pipe screen format functions<br> i965g: hook up pipe screen resource functions<br>
i965g: add command parser<br> i965g: hook up pipe context flush function<br> i965g: add functions to manage shaders<br> i965g: hook up pipe context state functions<br> i965g: hook up pipe context blit functions<br>
i965g: hook up pipe context transfer functions<br> i965g: hook up pipe context query functions<br> i965g: add GEN6 GPE<br> i965g: add GEN7 GPE<br> i965g: add 3D pipeline for GEN6<br> i965g: add GEN7 support for 3D pipeline<br>
i965g: hook up pipe context 3D functions<br> i965g: add support for time/occlusion/primitive queries<br> i965g: hook up pipe context video functions<br> i965g: hook up pipe context GPGPU functions<br>
i965g: add a toy shader compiler<br> i965g: compile VS/GS/FS with the toy compiler<br> i965g: add the driver to the build system<br><br>If you are interested in the complete history, you can take a look at i965g-next branch.<br>
<br></div><div>Changes since the announcement are:<br></div><div> - GEN7 support (stencil buffer support is still missing)<br></div><div> - fixed tons of bugs, with piglit passing 7999 of 8428 tests<br></div><div><br></div>
<div>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.<br>
</div><div><br></div><div>If there is no objection, I'd like to merge it in a day or two.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
The driver is written from scratch. However, it follows classic i965<br>
driver for many of the design decisions. It comes with its own toy<br>
compiler to translate TGSI tokens to GEN instructions. The compiler<br>
still lacks several functions (register spilling and most TGSI<br>
indirections), but more importantly, almost no optimization is<br>
performed. It thus generates much worse code comparing to that<br>
generated by classic i965.<br>
<br>
I rebased the code tonight and cleaned up the history. The branch now<br>
has 24 new commits on top of master<br>
<br>
winsys/intel: new winsys for intel<br>
i965g: new pipe driver for Intel GEN6+<br>
i965g: add debug flags settable through I965_DEBUG<br>
i965g: hook up pipe_screen param and fence functions<br>
i965g: add functions to translate pipe enums to HW enums<br>
i965g: hook up pipe screen format functions<br>
i965g: hook up pipe screen resource functions<br>
i965g: add command parser<br>
i965g: hook up pipe context flush function<br>
i965g: add functions to manage shaders<br>
i965g: hook up pipe context state functions<br>
i965g: hook up pipe context blit functions<br>
i965g: hook up pipe context transfer functions<br>
i965g: hook up pipe context query functions<br>
i965g: add GEN6 GPE<br>
i965g: add GEN6 3D context<br>
i965g: hook up pipe context 3D functions<br>
i965g: add support for timer/occlusion/primitive queries<br>
i965g: hook up pipe context video functions<br>
i965g: hook up pipe context GPGPU functions<br>
i965g: add a toy shader compiler<br>
i965g: compile VS and FS with the toy compiler<br>
i965g: support the new driver in various targets<br>
i965g: add to --with-gallium-drivers<br>
<br>
It is quite self-contained. If preferred, I can send the patches to the list.<br>
<br>
Oh, and my account on fdo is disabled because of my own mistake[1]. I<br>
contacted some of the developers in the thread but did not get any<br>
response. Could anyone help me with that, or how do I have it<br>
re-enabled?<br>
<br>
[1] <a href="http://lists.freedesktop.org/archives/mesa-dev/2012-July/023901.html" target="_blank">http://lists.freedesktop.org/archives/mesa-dev/2012-July/023901.html</a><br>
<span class=""><font color="#888888"><br>
--<br>
olv@LunarG.com<br>
</font></span></blockquote></div><br><br clear="all"><br>-- <br>olv@LunarG.com
</div></div></div>