On Thu, Nov 20, 2014 at 11:33 PM, Iago Toral <ito...@igalia.com> wrote:
> On Thu, 2014-11-20 at 10:40 -0800, Jason Ekstrand wrote: > > > > > > On Wed, Nov 19, 2014 at 11:24 PM, Iago Toral <ito...@igalia.com> > > wrote: > > Hi Jason, > > > > we discussed this some weeks ago actually, the detailed > > explanation is > > here: > > https://bugs.freedesktop.org/show_bug.cgi?id=84566#c5 > > > > the short answer is that this is necessary because there is a > > normalized > > parameter to _mesa_swizzle_and_convert, and when we deal with > > float > > types we want to set this to true. > > > > > > I went back and looked at that and I thought the result of the > > discussion was to fix the assert in mesa_format_convert and compute > > the normalized parameter correctly. After that, I thought this > > shouldn't be strictly needed. It may still be a good idea for > > consistency, but I want to make sure we're doing the right thing in > > mesa_format_convert > > With this patch, in mesa_format_convert we simply take the "normalized" > value for mesa_swizzle_and_convert from the normalized field of the > array format, since we make sure that all float array formats will have > this set to 1. > > Without this patch we would have to do something like this (pseudocode) > in mesa_format_convert: > > normalized = array_format.normalized || array_format.type == FLOAT || > array_format.type == HALF_FLOAT; > > We can do it either way, I just think that the latter is a bit > inconsistent because: > > a) why would we want to generate array formats with a normalized setting > of 0 if we then want to set normalized to true when they are involved?. > > b) Other parts of Mesa check if a format is normalized by doing > normalized = !_mesa_is_enum_format_integer(srcFormat), which will make > float types normalized. > > Iago > That's fine. I just wanted to make sure that this wasn't hiding some fundamental breakage of the mesa_format_convert function. --Jason > > > Iago > > > > On Wed, 2014-11-19 at 11:31 -0800, Jason Ekstrand wrote: > > > I'm not sure what I think about this. Does it make a > > functional > > > change other than consistancy? > > > > > > --Jason > > > > > > > > > On Tue, Nov 18, 2014 at 1:23 AM, Iago Toral Quiroga > > > <ito...@igalia.com> wrote: > > > In order to check if a format is normalized Mesa > > does > > > something like this: > > > normalized = ! > > _mesa_is_enum_format_integer(srcFormat); > > > > > > So all float types will set normalized to true. > > Since our > > > mesa_array_format > > > includes a normalized flag for each type we want to > > make it > > > consistent with > > > this. > > > --- > > > src/mesa/main/format_info.py | 3 ++- > > > src/mesa/main/format_utils.c | 2 +- > > > 2 files changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/src/mesa/main/format_info.py > > > b/src/mesa/main/format_info.py > > > index 315767d..d4bc276 100644 > > > --- a/src/mesa/main/format_info.py > > > +++ b/src/mesa/main/format_info.py > > > @@ -220,9 +220,10 @@ for fmat in formats: > > > print ' {{ {0} }},'.format(', > > '.join(map(str, > > > fmat.swizzle))) > > > if fmat.is_array() and fmat.colorspace in > > ('rgb', 'srgb'): > > > chan = fmat.array_element() > > > + norm = chan.norm or chan.type == parser.FLOAT > > > print ' {{{{ {0} }}}},'.format(', > > '.join([ > > > get_array_format_datatype(chan), > > > - str(int(chan.norm)), > > > + str(int(norm)), > > > str(len(fmat.channels)), > > > str(fmat.swizzle[0]), > > > str(fmat.swizzle[1]), > > > diff --git a/src/mesa/main/format_utils.c > > > b/src/mesa/main/format_utils.c > > > index c3815cb..1d65f2b 100644 > > > --- a/src/mesa/main/format_utils.c > > > +++ b/src/mesa/main/format_utils.c > > > @@ -30,7 +30,7 @@ > > > > > > mesa_array_format RGBA8888_FLOAT = {{ > > > MESA_ARRAY_FORMAT_TYPE_FLOAT, > > > - 0, > > > + 1, > > > 4, > > > 0, 1, 2, 3, > > > 0, 1 > > > -- > > > 1.9.1 > > > > > > _______________________________________________ > > > mesa-dev mailing list > > > mesa-dev@lists.freedesktop.org > > > > > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > > > > > > > > > > > > > > > > > > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev