[Mesa-dev] [PATCH] r600g: Fix UMAD on Cayman

Martin Andersson g02maran at gmail.com
Mon Apr 8 23:58:11 PDT 2013


On Tue, Apr 9, 2013 at 3:18 AM, Marek Olšák <maraeo at gmail.com> wrote:
> Pushed, thanks. The transform feedback test still doesn't pass, but at least
> the hardlocks are gone.

Thanks, I have looked into the other issue as well
http://lists.freedesktop.org/archives/mesa-dev/2013-March/036941.html

The problem arises when there are nested loops. If I rework the code
so there are
no nested loops the issue disappears. At least one pixel also needs to enter the
outer loop. The pixels that should enter the outer loop behaves
correctly. It is those
pixels that should not enter the outer loop that misbehaves. It does
not matter if they
also fails the test for the inner loop, they will still execute the
instruction inside. That
leads to the strange results for that test.

The strangeness is easier to see if the NUM_POINTS in the
ext_transform_feedback/
order.c are run with smaller values,like 3, 6 and 9. Disable the code
that fail the test
and print starting_x, shift_reg_final and iteration_count.

Marek, since you implemented transform feedback for r600, do you think the issue
is with the tranform feedback code or the shader compiler or some other thing?

//Martin


More information about the mesa-dev mailing list