----- Original Message -----
> On Mon, Jun 25, 2012 at 11:40:08AM -0700, Jose Fonseca wrote:
> > My thoughts too.
> >
> > Brilinear filtering provides a significant boost, and I don't see
> > why skip the optimization for explicit lod over implicit lods.
>
> Warning: code misread :-)
>
> Explicit lod does not need brilinear filtering because explicit lod
> is
> post log2. Brilinear is only about a faster log2, nothing else.
> Explicit lod only needs the integer/fractional part separation.
>
> The whole code is:
> if (mip_filter == PIPE_TEX_MIPFILTER_LINEAR) {
> if (!explicit_lod && !(gallivm_debug &
> GALLIVM_DEBUG_NO_BRILINEAR)) {
> lp_build_brilinear_lod(float_bld, lod, BRILINEAR_FACTOR,
> out_lod_ipart, out_lod_fpart);
> }
> else {
> lp_build_ifloor_fract(float_bld, lod, out_lod_ipart,
> out_lod_fpart);
> }
>
> lp_build_name(*out_lod_fpart, "lod_fpart");
> }
> else {
> *out_lod_ipart = lp_build_iround(float_bld, lod);
> }
>
> and you're not going to tell me that lp_build_brilinear_lod is faster
> than lp_build_ifloor_fract (especially since it includes it ;-)
Indeed lp_build_brilinear_lod is not faster than lp_build_ifloor_fract, but
brilinear is faster, not because log is a faster approximation, but because it
increases the odds that fract part is zero, which means that we can sample from
a single mip level, instead of lerping between two mip levels.
I think you have a good point here -- lp_build_brilinear_lod is a log2
approximation which is wrong here and that's a great catch, -- but I have a
point too: lp_build_ifloor_fract will slow down texture sampling.
Just like log2 and brilinear log2, we need a variant of ifloor_fract, that
increases the probability of fract part being zero, essentially by applying a
stair case transformation like:
____/
/
____/
/
____/
Jose
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev