On Sat, Nov 10, 2012 at 12:39 PM, Eric Anholt <e...@anholt.net> wrote: > Anuj Phogat <anuj.pho...@gmail.com> writes: > >> Formats supported are: >> GL_COMPRESSED_RGB8_ETC2 >> GL_COMPRESSED_SRGB8_ETC2 >> GL_COMPRESSED_RGBA8_ETC2_EAC >> GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC >> GL_COMPRESSED_R11_EAC >> GL_COMPRESSED_RG11_EAC >> GL_COMPRESSED_SIGNED_R11_EAC >> GL_COMPRESSED_SIGNED_RG11_EAC >> GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 >> GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 > > This commit message could be nicer. Listing the mesa formats isn't > interesting, but explaining why the choice was made to support > uncompressed and which exact contexts will expose support for ETC2 would > be useful. (If I'm reading this right, no context exposes etc2 support > as of this commit) > I'll update the message. only gles3 (gles2 context with version = 3) exposes etc2 and that too on gles3 branch at the moment.
>> + switch(format) { > > missing space > >> + case MESA_FORMAT_ETC1_RGB8: >> wraps_etc1 = true; >> + format = MESA_FORMAT_RGBX8888_REV; >> + break; >> + case MESA_FORMAT_ETC2_RGB8: >> + etc2_format = format; >> + wraps_etc2 = true; >> + format = MESA_FORMAT_RGBX8888_REV; >> + break; >> + case MESA_FORMAT_ETC2_SRGB8: >> + case MESA_FORMAT_ETC2_SRGB8_ALPHA8_EAC: >> + case MESA_FORMAT_ETC2_SRGB8_PUNCHTHROUGH_ALPHA1: >> + etc2_format = format; >> + wraps_etc2 = true; >> + format = MESA_FORMAT_SARGB8; >> + break; >> + case MESA_FORMAT_ETC2_RGBA8_EAC: >> + case MESA_FORMAT_ETC2_RGB8_PUNCHTHROUGH_ALPHA1: >> + etc2_format = format; >> + wraps_etc2 = true; >> + format = MESA_FORMAT_RGBA8888_REV; >> + break; >> + case MESA_FORMAT_ETC2_R11_EAC: >> + case MESA_FORMAT_ETC2_SIGNED_R11_EAC: >> + etc2_format = format; >> + wraps_etc2 = true; >> + format = MESA_FORMAT_R16; >> + break; >> + case MESA_FORMAT_ETC2_RG11_EAC: >> + case MESA_FORMAT_ETC2_SIGNED_RG11_EAC: >> + etc2_format = format; >> + wraps_etc2 = true; >> + format = MESA_FORMAT_RG1616; >> + break; >> + default: >> + /* Non ETC1 / ETC2 format */ >> + break; > >> static void >> +intel_miptree_map_etc2(struct intel_context *intel, >> + struct intel_mipmap_tree *mt, >> + struct intel_miptree_map *map, >> + unsigned int level, >> + unsigned int slice) >> +{ >> + /* For justification of these invariants, >> + * see intel_mipmap_tree:wraps_etc2. >> + */ >> + assert(mt->wraps_etc2); >> + >> + /* intel_miptree_map_etc2() can be called from glCompressedTexImage2D >> + * and CompressedTexSubImage2D. Hence the assertions below hold. >> + */ >> + assert(map->mode & GL_MAP_WRITE_BIT); >> + assert(map->mode & GL_MAP_INVALIDATE_RANGE_BIT); > > It seems like the paths for wraps_etc1 and wraps_etc2 in the case > statement above and here in the map function are basically identical > except for _mesa_etc1_unpack vs _mesa_etc2_unpack. Maybe merge those > two flags and just test at unmap to decide which to call? _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev