[Mesa-dev] [PATCH] st/mesa: fix WPOS adjustment

Christoph Bumiller e0425955 at student.tuwien.ac.at
Wed Apr 20 08:33:45 PDT 2011


> On 04/19/2011 04:00 AM, Christoph Bumiller wrote:
>>   On 16.04.2011 18:50, Christoph Bumiller wrote:
>>> I hope the new version is correct, the commit message describes why I
>>> did the first change, and the second change is described in a comment.
>>>
>>> Note that the MAD for inversion uses Height - 1 instead of Height.
>>>
>>> With this, piglit glsl-arb-fragment-coord-conventions and
>>> fbo-depth-sample-compare pass on nvc0.
>>>
>>> I was assuming that integer pixel centers for size 100 range from 0 to
>>> 99 and half-integer pixel centers from 0.5 to 99.5.
>>>
>> Attached a better version of the patch, potentially saving an
>> instruction and avoiding precision issues with NEAREST filtering that
>> made piglit's blending-in-shader fail.
>>
>> The only other location I found STATE_FB_WPOS_Y_TRANSFORM used was
>> r600 classic, which should also work more correctly now since (at
>> least according to gallium caps) it uses half-integer pixel center,
>> and for H=100, 0.5 * -1 + 99 obviously isn't the desired 99.5.
>>
>> Please review.
>
Unfortunately I found another small error making a more precise piglit
test that draws to a float buffer instead of mangling the coordinate
like the original test does, which conceals errors.

Now there's a dependency again on whether inversion is actually done or
not, so I added a check on the inversion constant in the shader, but
maybe adding additional uniforms or even adjusting
STATE_FB_WPOS_Y_TRANSFORM dependent on the coordinat convention might be
nicer ?

Sorry for not noticing right away,
Christoph
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-mesa-st-mesa-fix-WPOS-adjustment.patch
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20110420/f3b7b01f/attachment.txt>


More information about the mesa-dev mailing list