[Mesa-dev] [PATCH 2/2] r600g: fix lockup when hyperz & alpha test are enabled together. v2

Marek Olšák maraeo at gmail.com
Mon Feb 11 18:07:40 PST 2013


On Tue, Feb 12, 2013 at 12:50 AM, Jerome Glisse <j.glisse at gmail.com> wrote:
> On Mon, Feb 11, 2013 at 6:45 PM,  <j.glisse at gmail.com> wrote:
>> From: Jerome Glisse <jglisse at redhat.com>
>>
>> Seems that alpha test being enabled confuse the GPU on the order in
>> which it should perform the Z testing. So force the order programmed
>> throught db shader control.
>>
>> v2: Only force z order when alpha test is enabled
>>
>> Signed-off-by: Jerome Glisse <jglisse at redhat.com>
>> Reviewed-by: Marek Olšák <maraeo at gmail.com>
>
> This one does not regress piglit (redwood or rv770) and still fix
> lockup afaict. If no objection i will push tomorrow.

It would be better if you always waited for somebody to review your
patches, even if it takes a lot more days, because you tend to make a
lot of mistakes and this patch is no exception.

What's happening here is that the DB misc state newly depends on the
alpha test state, but the DB misc state isn't updated when the alpha
test is. So the user can turn the alpha test on and off and the DB
registers won't be updated unless somebody changes the framebuffer or
the pixel shader at the same time.

The correct fix is to call *_update_db_shader_control in
r600_bind_dsa_state where the alpha test state is changed.

You should also always drop all Reviewed-by tags from other people if
you amend your patch.

Marek


More information about the mesa-dev mailing list