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
					
					10 年之前
						Nanley Chery
					
					10 年之前
				| @@ -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)) | |||
| @@ -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 | |||
| @@ -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, | |||
| }; | |||
| @@ -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; | |||