[Mesa-dev] [Bug 84566] Unify the format conversion code

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Oct 10 00:40:56 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=84566

--- Comment #13 from Jason Ekstrand <jason at jlekstrand.net> ---
(In reply to Iago Toral from comment #12)
> (In reply to Jason Ekstrand from comment #11)
> > (In reply to Iago Toral from comment #10)
> > > (In reply to Iago Toral from comment #9)
> > > > Jason, piglit tests hit cases where they attempt to convert GL format and
> > > > data type combinations that do not match any of the existing mesa formats.
> > > > 
> > > > For example GL_RGB +  GL_UNSIGNED_BYTE_2_3_3_REV (BBGG GRRR). The Only mesa
> > > > format of this kind is MESA_FORMAT_B2G3R3_UNORM (RRRG GGBB).
> > > > 
> > > > This means that we don't have pack and unpack functions for these types,
> > > > which we need to use a master conversion function. I think the natural thing
> > > > to do would be to add new mesa_format types for these, together with their
> > > > format_pack.c and format_unpack.c functions (which should be auto-generated
> > > > too). I suppose it is okay to add new mesa_format enums, right?
> > > 
> > > BTW, as an added bonus, with this approach we will speed up conversion for
> > > some of these types too. For example, the way Mesa currently handles
> > > GL_UNSIGNED_BYTE_2_3_3_REV to GL_RGBA UBYTE involves two conversions
> > > (2_3_3_REV -> RGBA FLOAT -> RGBA_UBYTE), while we would be able to do that
> > > in one go via the auto-generated unpack function.
> > 
> > How many formats like this are there?  If it's only a few, then it probably
> > makes sense to add the few mesa_formats that we need.
> 
> I don't know yet. For that I would have enable the master convertion
> function for all code paths, then run all the piglit tests and then check
> the cases that hit the assertion I have one by one removing duplicate cases,
> so it would take some time.
> 
> In any case, even if these were a significant bunch: do we have a good
> alternative? If we don't create mesa_formats for these types we would have
> to handle them as exceptions to the process (and this kind of defeats the
> purpose of a master function). We would have to handle conversions from and
> to these types through different paths and write the conversions functions
> we need by hand...

You should know once you write a gl_format_and_type_to_mesa_format function.  I
don't think there will be many.  I think OpenGL only specifies about 8 packed
formats (plus swizzling) and we should already have most of them.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20141010/661be036/attachment.html>


More information about the mesa-dev mailing list