Keith Whitwell wrote:
> On Wed, 2010-01-27 at 09:09 -0800, José Fonseca wrote:
>> On Wed, 2010-01-27 at 08:49 -0800, Brian Paul wrote:
>>> Luca Barbieri wrote:
>>>> Changes in v2:
>>>> - Caps are added in a separate, subsequent patch
>>>>
>>>> This adds two TGSI fragment program properties that indicate the
>>>> fragment coord conventions.
>>>>
>>>> The properties behave as described in the extension spec for
>>>> GL_ARB_fragment_coord_conventions, but the default origin in
>>>> upper left instead of lower left as in OpenGL.
>>>>
>>>> The syntax is:
>>>> PROPERTY FS_COORD_ORIGIN [UPPER_LEFT|LOWER_LEFT]
>>>> PROPERTY FS_COORD_PIXEL_CENTER [HALF_INTEGER|INTEGER]
>>>>
>>>> The names have been chosen for consistency with the GS properties
>>>> and the OpenGL extension spec.
>>>>
>>>> The defaults are of course the previously assumed conventions:
>>>> UPPER_LEFT and HALF_INTEGER.
>>> Sorry for the slow reply on this.
>>>
>>> It looks like you've solved the fragcoord problems in a clean/logical
>>> way.  I haven't seen any objections, so I think we can move forward
>>> with this.
>> Didn't Keith had objections on this, on another thread? Luca re-sent the
>> patch but I don't see the remark being addressed.
> 
> I don't think my concerns are fatal to this approach, I just need to
> understand the issues a bit better before signing off on it.

I meant I didn't see objections to Luca's latest patch series.

After studying the issues for a while I think Luca's on the right 
track.  I'll try to summarize.


Re: coord origin upper/lower-left:

A GPU may natively implement lower-left origin or upper-left origin 
(or both).  With GL_ARB_fragment_coord_conventions, the user may want 
to use either of those origins.  By asking the driver what it supports 
we can avoid extra Y-inversion code in the shader.  Drivers don't have 
to do anything special other than tell the state tracker (via new cap 
bits) what it can do.


Re: pixel center integer:

Again, depending on what the GPU implements we may need to 
add/subtract a 0.5 bias to the fragment coord register in a fragment 
shader.  This is orthogonal to pipe_rasterizer_state:: 
gl_rasterization_rules.

With Luca's patch we query what the GPU can support and submit TGSI 
shaders which either tell the driver which convention to use, or 
submit shaders that implement the bias themselves.

The new TGSI shader properties are needed because the origin/center 
state can change per-shader (it's not per-context) and for the sake of 
drivers that can support both conventions.


I too was concerned whether this was all really needed but I think it is.

-Brian

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to