On 31.12.2012 22:55, Vadim Girlin wrote:
On 12/31/2012 05:34 AM, Vadim Girlin wrote:
Optimize it for better performance.

Signed-off-by: Vadim Girlin <vadimgir...@gmail.com>
---

I did some benchmarking for this patch together with the patch that introduces ISA tables, using the texCombine test (IIRC it builds hundreds of shaders) and making the driver build each shader 5000 times, total time of the test was reduced from 45 to 25 seconds, the time spent in check_and_set_bank_swizzle
is about 8 times less according to the oprofile, the time of
r600_shader_from_tgsi is reduced by half.

You can also find the patch in this branch:

http://cgit.freedesktop.org/~vadimg/mesa/log/?h=r600-disasm

After some other benchmarks I think that texCombine benchmark that I used is close to the worst possible case (when most of the inst groups do not use default swizzles, so we have to perform a lot of iterations to find the correct swizzles). Now with other tests I see that in some cases (where most of the alu groups just use default swizzles) this patch might even have slightly worse performance due to additional overhead. I'm going to improve the handling of the default case and gather some stats over the popular apps, and then update the patch to make it more efficient in every case.

Hi Vadim,

I spend quite some time trying to understand the different restrictions and implementing them in an usable algorithm before I gave up and just hacked the code how it is currently looks like. So please be aware that you're dealing with a quite complicated topic and improving it probably won't be done with a first shot.

Additional to that it would be great if you could remove the forced bank swizzle and just have a single algorithm that handles the whole problem at just one point in the code generation path.

Christian.


Vadim

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to