My comment about making ASTC format detection simpler is a little subjective. I'm planning to remove it from the final patch if it's accepted. What this change allows in general is detecting compressed formats belonging to a certain category of compressed formats.
Regards, Nanley On Tue, Aug 11, 2015 at 4:53 PM, Nanley Chery <nanleych...@gmail.com> wrote: > From: Nanley Chery <nanley.g.ch...@intel.com> > > Add the classes of compressed formats as layouts. This will make > determining if > a texture is an ASTC format simpler. > > v2. simplify layout name construction (Ilia). > > Cc: Jason Ekstrand <jason.ekstr...@intel.com> > Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> > --- > src/mesa/main/format_info.py | 10 +--------- > src/mesa/main/formats.c | 6 ++++++ > src/mesa/main/formats.h | 6 ++++++ > src/mesa/main/texcompress.c | 30 ++++++------------------------ > 4 files changed, 19 insertions(+), 33 deletions(-) > > diff --git a/src/mesa/main/format_info.py b/src/mesa/main/format_info.py > index 3bae57e..c249e73 100644 > --- a/src/mesa/main/format_info.py > +++ b/src/mesa/main/format_info.py > @@ -98,14 +98,6 @@ def get_gl_data_type(fmat): > else: > assert False > > -def get_mesa_layout(fmat): > - if fmat.layout == 'array': > - return 'MESA_FORMAT_LAYOUT_ARRAY' > - elif fmat.layout == 'packed': > - return 'MESA_FORMAT_LAYOUT_PACKED' > - else: > - return 'MESA_FORMAT_LAYOUT_OTHER' > - > def get_channel_bits(fmat, chan_name): > if fmat.is_compressed(): > # These values are pretty-much bogus, but OpenGL requires that we > @@ -179,7 +171,7 @@ for fmat in formats: > print ' {' > print ' {0},'.format(fmat.name) > print ' "{0}",'.format(fmat.name) > - print ' {0},'.format(get_mesa_layout(fmat)) > + print ' {0},'.format('MESA_FORMAT_LAYOUT_' + fmat.layout.upper()) > print ' {0},'.format(get_gl_base_format(fmat)) > print ' {0},'.format(get_gl_data_type(fmat)) > > diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c > index 90fa75b..cb5ad21 100644 > --- a/src/mesa/main/formats.c > +++ b/src/mesa/main/formats.c > @@ -188,6 +188,12 @@ _mesa_get_format_max_bits(mesa_format format) > * The return value will be one of: > * MESA_FORMAT_LAYOUT_ARRAY > * MESA_FORMAT_LAYOUT_PACKED > + * MESA_FORMAT_LAYOUT_S3TC > + * MESA_FORMAT_LAYOUT_RGTC > + * MESA_FORMAT_LAYOUT_FXT1 > + * MESA_FORMAT_LAYOUT_ETC1 > + * MESA_FORMAT_LAYOUT_ETC2 > + * MESA_FORMAT_LAYOUT_BPTC > * MESA_FORMAT_LAYOUT_OTHER > */ > extern enum mesa_format_layout > diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h > index e08247e..2fdd9bf 100644 > --- a/src/mesa/main/formats.h > +++ b/src/mesa/main/formats.h > @@ -64,6 +64,12 @@ extern "C" { > enum mesa_format_layout { > MESA_FORMAT_LAYOUT_ARRAY, > MESA_FORMAT_LAYOUT_PACKED, > + MESA_FORMAT_LAYOUT_S3TC, > + MESA_FORMAT_LAYOUT_RGTC, > + MESA_FORMAT_LAYOUT_FXT1, > + MESA_FORMAT_LAYOUT_ETC1, > + MESA_FORMAT_LAYOUT_ETC2, > + MESA_FORMAT_LAYOUT_BPTC, > MESA_FORMAT_LAYOUT_OTHER, > }; > > diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c > index 0fd1a36..edfb036 100644 > --- a/src/mesa/main/texcompress.c > +++ b/src/mesa/main/texcompress.c > @@ -586,34 +586,16 @@ _mesa_compressed_image_address(GLint col, GLint row, > GLint img, > compressed_fetch_func > _mesa_get_compressed_fetch_func(mesa_format format) > { > - switch (format) { > - case MESA_FORMAT_RGB_DXT1: > - case MESA_FORMAT_RGBA_DXT1: > - case MESA_FORMAT_RGBA_DXT3: > - case MESA_FORMAT_RGBA_DXT5: > - case MESA_FORMAT_SRGB_DXT1: > - case MESA_FORMAT_SRGBA_DXT1: > - case MESA_FORMAT_SRGBA_DXT3: > - case MESA_FORMAT_SRGBA_DXT5: > + switch (_mesa_get_format_layout(format)) { > + case MESA_FORMAT_LAYOUT_S3TC: > return _mesa_get_dxt_fetch_func(format); > - case MESA_FORMAT_RGB_FXT1: > - case MESA_FORMAT_RGBA_FXT1: > + case MESA_FORMAT_LAYOUT_FXT1: > return _mesa_get_fxt_fetch_func(format); > - case MESA_FORMAT_R_RGTC1_UNORM: > - case MESA_FORMAT_L_LATC1_UNORM: > - case MESA_FORMAT_R_RGTC1_SNORM: > - case MESA_FORMAT_L_LATC1_SNORM: > - case MESA_FORMAT_RG_RGTC2_UNORM: > - case MESA_FORMAT_LA_LATC2_UNORM: > - case MESA_FORMAT_RG_RGTC2_SNORM: > - case MESA_FORMAT_LA_LATC2_SNORM: > + case MESA_FORMAT_LAYOUT_RGTC: > return _mesa_get_compressed_rgtc_func(format); > - case MESA_FORMAT_ETC1_RGB8: > + case MESA_FORMAT_LAYOUT_ETC1: > return _mesa_get_etc_fetch_func(format); > - case MESA_FORMAT_BPTC_RGBA_UNORM: > - case MESA_FORMAT_BPTC_SRGB_ALPHA_UNORM: > - case MESA_FORMAT_BPTC_RGB_SIGNED_FLOAT: > - case MESA_FORMAT_BPTC_RGB_UNSIGNED_FLOAT: > + case MESA_FORMAT_LAYOUT_BPTC: > return _mesa_get_bptc_fetch_func(format); > default: > return NULL; > -- > 2.5.0 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev