----- Original Message ----- > On 12/13/2011 12:26 PM, Bryan Cain wrote: > > On 12/13/2011 02:11 PM, Jose Fonseca wrote: > >> ----- Original Message ----- > >>> This is an updated version of the patch set I sent to the list a > >>> few > >>> hours > >>> ago. > >>> There is now a TGSI property called > >>> TGSI_PROPERTY_NUM_CLIP_DISTANCES > >>> that drivers can use to determine how many of the 8 available > >>> clip > >>> distances > >>> are actually used by a shader. > >> Can't the info in TGSI_PROPERTY_NUM_CLIP_DISTANCES be easily > >> derived from the shader, and queried through > >> src/gallium/auxiliary/tgsi/tgsi_scan.h ? > > > > No. The clip distances can be indirectly addressed (there are up > > to 2 > > of them in vec4 form for a total of 8 floats), which makes it > > impossible > > to determine which ones are used by analyzing the shader. > > The description is almost complete. :) The issue is that the shader > may > declare > > out float gl_ClipDistance[4]; > > the use non-constant addressing of the array. The compiler knows > that > gl_ClipDistance has at most 4 elements, but post-hoc analysis would > not > be able to determine that. Often the fixed-function hardware (see > below) needs to know which clip distance values are actually written.
But don't all the clip distances written by the shader need to be declared? E.g.: DCL OUT[0], CLIPDIST[0] DCL OUT[1], CLIPDIST[1] DCL OUT[2], CLIPDIST[2] DCL OUT[3], CLIPDIST[3] therefore a trivial analysis of the declarations convey that? > >> Could you also elaborate on why TGSI_SEMANTIC_CLIPDIST is useful > >> for the drivers? I personally don't have nothing against it, but > >> just like to understand why it makes a difference. > >> > >> Jose > > > > Unless my understanding of clip distances is wrong, the GPU uses > > clip > > distances to decide whether a vertex should be clipped, and thus > > needs > > to know which of the vertex shader outputs are clip distances. > > Right. Clip distance is generally written to a special register that > some fixed-function hardware uses to do clipping. Right. Don't know what I was thinking... Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev