Pārlūkot izejas kodu

mesa/formats: add more MESA_FORMAT_LAYOUTs

Add the classes of compressed formats as layouts. This allows the detection
of compressed formats belonging to a certain category of compressed formats.

v2. simplify layout name construction (Ilia).

Reviewed-by: Chad Versace <chad.versace@intel.com>
Signed-off-by: Nanley Chery <nanley.g.chery@intel.com>
tags/11.0-branchpoint
Nanley Chery pirms 10 gadiem
vecāks
revīzija
0872b042b1

+ 1
- 9
src/mesa/main/format_info.py Parādīt failu

@@ -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))


+ 6
- 0
src/mesa/main/formats.c Parādīt failu

@@ -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

+ 6
- 0
src/mesa/main/formats.h Parādīt failu

@@ -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,
};


+ 6
- 24
src/mesa/main/texcompress.c Parādīt failu

@@ -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;

Notiek ielāde…
Atcelt
Saglabāt