https://bugs.freedesktop.org/show_bug.cgi?id=34156
--- Comment #5 from Dave Witbrodt dawitbro@sbcglobal.net 2011-02-18 11:21:39 PST --- In comment 3, I made two naive attempts to revert the problem commit. Both failed, but I am only able to work on this stuff in my spare time -- and I have not been able to look at this more carefully until today.
I discovered that several commits following the problem commit touch the same code in 'src/gallium/drivers/r600/r600_shader.c', so today I decided to create a branch from Mesa master at the last of those commits, revert them in reverse order, then merge master onto the branch. I expected to have the benefits of code added since Feb. 7 without the performance regression identified in this bug.
The commits involved were:
$ git log a77e813d^..HEAD src/gallium/drivers/r600/r600_shader.c
commit 077c448d184799e0d9ec962013ec784c6a5c1807 Author: Henri Verbeet hverbeet@gmail.com Date: Mon Feb 7 15:22:08 2011 +0100
r600g: Add support for relative addressing on constant buffers.
commit 7687eabaa0470261e059a2d6502628fffd209345 Author: Henri Verbeet hverbeet@gmail.com Date: Mon Feb 7 15:22:07 2011 +0100
r600g: Split constants in r600_shader_from_tgsi().
commit 1fa95c7f9e7f1b63364b1f9c6289690418cf6313 Author: Henri Verbeet hverbeet@gmail.com Date: Mon Feb 7 15:22:07 2011 +0100
r600g: Do the tgsi_full_src_register to r600_shader_src conversion in r600_s
commit a77e813de32643ae2dfffd7ad12abed596172cab Author: Henri Verbeet hverbeet@gmail.com Date: Mon Feb 7 15:22:07 2011 +0100
r600g: Split r600_bc_alu_src.
I branched from 077c448d, reverted each of these, then merged master onto the branch. It merged cleanly.
Unfortunately, this did not restore performance. From that, I am concluding that later code changes introduced at least one other regression. I will be busy with other tasks for the rest of the day, but tomorrow I will try some more involved attempts to find out what is going on.