On Wed, 2010-01-27 at 10:05 -0800, Brian Paul wrote: > José Fonseca wrote: > > On Wed, 2010-01-27 at 09:24 -0800, Brian Paul wrote: > >> 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. > > > > It appears everybody was in agreement after all. > > > > I really don't have an opinion on this, as I don't understand the > > different rules. From what I could gather it seems that even in the most > > limited hardware it is always possible to expose this new functionality > > either by tweaking shaders or flushing contexts before switching > > hardware global device settings. > > Right. We ask the driver what it can do and the state tracker emits > extra instructions to invert/bias the fragcoord as needed. > > > > I'm a bit confused what will > > pipe_rasterizer_state::gl_rasterization_rules mean at the end of the > > day. Is it still necessary? > > Yes, it's still needed. gl_rasterization_rules controls which pixels > are hits/written when rasterizing a triangle regardless of the shader. > > The pixel_center_integer controls what value the fragment shader gets > when it reads gl_FragCoord (either x.0 or x.5).
Ah OK. Thanks for the explanation! Jose ------------------------------------------------------------------------------ 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