r600g: Use LOOP_START_DX10 for loops
authorTom Stellard <thomas.stellard@amd.com>
Mon, 17 Sep 2012 14:33:56 +0000 (14:33 +0000)
committerAndreas Boll <andreas.boll.dev@gmail.com>
Sun, 20 Jan 2013 14:08:29 +0000 (15:08 +0100)
commit4cf2be408eeabd7ae8b0d3c3c81a6dc17e98e323
tree83e2b02c12e4842dee4fc2aa9d13f4de279ba475
parent7045f222cdd3a50f03e66ae2c184af17d9c32364
r600g: Use LOOP_START_DX10 for loops

LOOP_START_DX10 ignores the LOOP_CONFIG* registers, so it is not limited
to 4096 iterations like the other LOOP_* instructions.  Compute shaders
need to use this instruction, and since we aren't optimizing loops with
the LOOP_CONFIG* registers for pixel and vertex shaders, it seems like
we should just use it for everything.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
(cherry picked from commit 810345492eca34c2ad12728b5491a4691cc62ec2)

Fixes a hang on the following piglit test on my rv770
./bin/ext_timer_query-time-elapsed -auto -fbo
src/gallium/drivers/r600/eg_asm.c
src/gallium/drivers/r600/r600_asm.c
src/gallium/drivers/r600/r600_shader.c