On Mon, Jun 27, 2011 at 9:32 AM, Jerome Glisse <j.gli...@gmail.com> wrote: > On Mon, Jun 27, 2011 at 8:38 AM, Roland Scheidegger <srol...@vmware.com> > wrote: >> Am 25.06.2011 00:22, schrieb Vadim Girlin: >>> On 06/24/2011 11:38 PM, Jerome Glisse wrote: >>>> On Fri, Jun 24, 2011 at 12:29 PM, Vadim Girlin<vadimgir...@gmail.com> >>>> wrote: >>>>> Fixes https://bugs.freedesktop.org/show_bug.cgi?id=38440 >>>>> >>>>> Signed-off-by: Vadim Girlin<vadimgir...@gmail.com> >>>> >>>> As discussed previously, there is better to handle this. I think best >>>> solution is to always add the instruction and to conditionally execute >>>> them thanks to the boolean constant. If this reveal to have a too big >>>> impact on shader, other solution i see is adding a cf block with those >>>> instructions and to enable or disable that block (cf_nop) and reupload >>>> shader that would avoid a rebuild. >>> >>> I know its not optimal to do a full rebuild, but rebuild is needed only >>> when the application will use the same shader in different clamping >>> states. It won't be a problem if the application doesn't change clamping >>> state or if it changes the state but uses each shader in one state only. >>> So assuming that typical app will not use one shader in both states, it >>> shouldn't be a problem. Is this assumption wrong? I'm not really sure >>> because I have no much experience in this. But if it's wrong then it's >>> probably better for performance to build and cache both versions. >> I tend to think you're right apps probably don't want to use the same >> shader both with and without clamping. > > Well if boolean block (see COND field set to SQ_CF_COND_BOOL in > SQ_CF_WORD1) are free from perf point of view then i think it's best > to have one shader with the clamp instruction inside the boolean > enabled block. Only benchmark can tell.
We could also cache recently used shaders rather than recompiling every time. Alex _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev