[Mesa-dev] [PATCH 2/2] intel: add ANGLE_texture_compression_dxt extension support.
Andreas Boll
andreas.boll.dev at gmail.com
Mon Sep 17 08:09:51 PDT 2012
2012/9/4 Brian Paul <brianp at vmware.com>:
> On 09/04/2012 05:53 AM, Oliver McFadden wrote:
>>
>> From: Oliver McFadden<oliver.mcfadden at intel.com>
>>
>>
>> http://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_texture_compression_dxt.txt
>>
>> Signed-off-by: Oliver McFadden<oliver.mcfadden at intel.com>
>> ---
>> src/glx/glxextensions.h | 1 +
>> src/mapi/glapi/gen/es_EXT.xml | 6 ++++++
>> src/mesa/drivers/dri/intel/intel_extensions.c | 5 +++++
>> src/mesa/main/APIspec.xml | 3 +++
>> src/mesa/main/extensions.c | 12 ++++++++++++
>> src/mesa/main/formats.c | 2 ++
>> src/mesa/main/glformats.c | 11 +++++++++--
>> src/mesa/main/glheader.h | 10 ++++++++++
>> src/mesa/main/mfeatures.h | 1 +
>> src/mesa/main/mtypes.h | 1 +
>> src/mesa/main/texcompress.c | 6 ++++++
>> src/mesa/main/texcompress_s3tc.c | 4 ++--
>> src/mesa/main/texcompress_s3tc.h | 6 +++---
>> src/mesa/main/texformat.c | 22
>> +++++++++++++++-------
>> src/mesa/main/teximage.c | 12 ++++++++++++
>> src/mesa/state_tracker/st_format.c | 4 ++++
>> 16 files changed, 92 insertions(+), 14 deletions(-)
>>
>> diff --git a/src/glx/glxextensions.h b/src/glx/glxextensions.h
>> index 90c27a7..2cbd8d4 100644
>> --- a/src/glx/glxextensions.h
>> +++ b/src/glx/glxextensions.h
>> @@ -132,6 +132,7 @@ enum
>> GL_EXT_texture_bit,
>> GL_EXT_texture3D_bit,
>> GL_EXT_texture_compression_dxt1_bit,
>> + GL_ANGLE_texture_compression_dxt_bit,
>
>
> We generally try to keep lists of names like this in alphabetical order.
> There's a few more instances of this below.
>
>
>> GL_EXT_texture_compression_s3tc_bit,
>> GL_EXT_texture_edge_clamp_bit,
>> GL_EXT_texture_env_combine_bit,
>> diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml
>> index fc2ec62..2698110 100644
>> --- a/src/mapi/glapi/gen/es_EXT.xml
>> +++ b/src/mapi/glapi/gen/es_EXT.xml
>> @@ -731,4 +731,10 @@
>> <enum name="RG8_EXT"
>> value="0x822B"/>
>> </category>
>>
>> +<!-- 111. GL_ANGLE_texture_compression_dxt -->
>> +<category name="ANGLE_texture_compression_dxt" number="111">
>> +<enum name="COMPRESSED_RGBA_S3TC_DXT3_ANGLE" value="0x83F2"/>
>> +<enum name="COMPRESSED_RGBA_S3TC_DXT5_ANGLE" value="0x83F3"/>
>> +</category>
>> +
>> </OpenGLAPI>
>> diff --git a/src/mesa/drivers/dri/intel/intel_extensions.c
>> b/src/mesa/drivers/dri/intel/intel_extensions.c
>> index 885e8a4..b8cf933 100755
>> --- a/src/mesa/drivers/dri/intel/intel_extensions.c
>> +++ b/src/mesa/drivers/dri/intel/intel_extensions.c
>> @@ -184,6 +184,11 @@ intelInitExtensions(struct gl_context *ctx)
>> }
>>
>> if (intel->ctx.Mesa_DXTn) {
>> + /* Does not require compression, but still needs the library for
>> + * decompression! */
>> + ctx->Extensions.ANGLE_texture_compression_dxt = true;
>> +
>> + /* Requires both compression and decompression functions. */
>> ctx->Extensions.EXT_texture_compression_s3tc = true;
>> ctx->Extensions.S3_s3tc = true;
>> }
>> diff --git a/src/mesa/main/APIspec.xml b/src/mesa/main/APIspec.xml
>> index a65c5c5..c396952 100644
>> --- a/src/mesa/main/APIspec.xml
>> +++ b/src/mesa/main/APIspec.xml
>> @@ -2172,6 +2172,9 @@
>> <category name="NV_draw_buffers"/>
>> <category name="NV_read_buffer"/>
>>
>> + <!-- GL_ANGLE_texture_compression_dxt -->
>> + <category name="ANGLE_texture_compression_dxt"/>
>> +
>> <function name="DrawBuffersNV" template="DrawBuffers"/>
>> <function name="ReadBufferNV" template="ReadBuffer"/>
>>
>> diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
>> index 7e116bd..0469beb 100644
>> --- a/src/mesa/main/extensions.c
>> +++ b/src/mesa/main/extensions.c
>> @@ -195,6 +195,8 @@ static const struct extension extension_table[] = {
>> { "GL_EXT_texture3D", o(EXT_texture3D),
>> GLL, 1996 },
>> { "GL_EXT_texture_array", o(EXT_texture_array),
>> GL, 2006 },
>> { "GL_EXT_texture_compression_dxt1",
>> o(EXT_texture_compression_s3tc), GL | ES1 | ES2, 2004 },
>> + { "GL_ANGLE_texture_compression_dxt3",
>> o(ANGLE_texture_compression_dxt), ES2, 2011 },
>> + { "GL_ANGLE_texture_compression_dxt5",
>> o(ANGLE_texture_compression_dxt), ES2, 2011 },
>> { "GL_EXT_texture_compression_latc",
>> o(EXT_texture_compression_latc), GL, 2006 },
>> { "GL_EXT_texture_compression_rgtc",
>> o(ARB_texture_compression_rgtc), GL, 2004 },
>> { "GL_EXT_texture_compression_s3tc",
>> o(EXT_texture_compression_s3tc), GL, 2000 },
>> @@ -531,6 +533,16 @@ _mesa_enable_sw_extensions(struct gl_context *ctx)
>> if (ctx->Mesa_DXTn) {
>> _mesa_enable_extension(ctx, "GL_EXT_texture_compression_s3tc");
>> _mesa_enable_extension(ctx, "GL_S3_s3tc");
>> +
>> + /* If we can support S3TC texture compression, then we can also
>> support
>> + * ANGLE texture compression. However the
>> ANGLE_texture_compression_dxt
>> + * spec says:
>> + *
>> + * The extension is written against the OpenGL ES 2.0
>> specification.
>> + */
>> + if (ctx->API == API_OPENGLES2) {
>> + ctx->Extensions.ANGLE_texture_compression_dxt = GL_TRUE;
>> + }
>> }
>> #endif
>> }
>> diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
>> index 1fa641c..b22672e 100644
>> --- a/src/mesa/main/formats.c
>> +++ b/src/mesa/main/formats.c
>> @@ -2269,9 +2269,11 @@ _mesa_format_to_type_and_comps(gl_format format,
>> case MESA_FORMAT_RGB_FXT1:
>> case MESA_FORMAT_RGBA_FXT1:
>> #endif
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> #if FEATURE_texture_s3tc
>> case MESA_FORMAT_RGB_DXT1:
>> case MESA_FORMAT_RGBA_DXT1:
>> +#endif
>> case MESA_FORMAT_RGBA_DXT3:
>> case MESA_FORMAT_RGBA_DXT5:
>> #if FEATURE_EXT_texture_sRGB
>> diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c
>> index 2d06cb7..01a67d6 100644
>> --- a/src/mesa/main/glformats.c
>> +++ b/src/mesa/main/glformats.c
>> @@ -793,8 +793,15 @@ _mesa_is_compressed_format(struct gl_context *ctx,
>> GLenum format)
>> return ctx->Extensions.EXT_texture_compression_s3tc;
>> case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
>> case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
>> - return _mesa_is_desktop_gl(ctx)
>> -&& ctx->Extensions.EXT_texture_compression_s3tc;
>>
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: (duplicate case value) */
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: (duplicate case value) */
>> + return
>> +#if FEATURE_ANGLE_texture_compression_dxt
>> + (_mesa_is_gles2(ctx)
>> +&& ctx->Extensions.ANGLE_texture_compression_dxt) ||
>> +#endif
>> + (_mesa_is_desktop_gl(ctx)
>> +&& ctx->Extensions.EXT_texture_compression_s3tc);
>>
>> case GL_RGB_S3TC:
>> case GL_RGB4_S3TC:
>> case GL_RGBA_S3TC:
>> diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h
>> index 3152323..2c2182e 100644
>> --- a/src/mesa/main/glheader.h
>> +++ b/src/mesa/main/glheader.h
>> @@ -143,6 +143,16 @@ typedef void *GLeglImageOES;
>> #define GL_ETC1_RGB8_OES 0x8D64
>> #endif
>>
>> +/* GL_ANGLE_texture_compression_dxt3 */
>> +#ifndef GL_ANGLE_texture_compression_dxt3
>> +#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83F2
>> +#endif
>> +
>> +/* GL_ANGLE_texture_compression_dxt5 */
>> +#ifndef GL_ANGLE_texture_compression_dxt5
>> +#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83F3
>> +#endif
>> +
>>
>> /**
>> * Internal token to represent a GLSL shader program (a collection of
>> diff --git a/src/mesa/main/mfeatures.h b/src/mesa/main/mfeatures.h
>> index b67f046..38325e8 100644
>> --- a/src/mesa/main/mfeatures.h
>> +++ b/src/mesa/main/mfeatures.h
>> @@ -105,6 +105,7 @@
>> #define FEATURE_rastpos FEATURE_GL
>> #define FEATURE_texture_fxt1 FEATURE_GL
>> #define FEATURE_texture_s3tc FEATURE_GL
>> +#define FEATURE_ANGLE_texture_compression_dxt
>> FEATURE_ES2
>>
>> #define FEATURE_extra_context_init FEATURE_ES
>> #define FEATURE_point_size_array FEATURE_ES
>> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
>> index ba43e57..1cf41da 100644
>> --- a/src/mesa/main/mtypes.h
>> +++ b/src/mesa/main/mtypes.h
>> @@ -3035,6 +3035,7 @@ struct gl_extensions
>> GLboolean EXT_texture_array;
>> GLboolean EXT_texture_compression_latc;
>> GLboolean EXT_texture_compression_s3tc;
>> + GLboolean ANGLE_texture_compression_dxt;
>> GLboolean EXT_texture_env_dot3;
>> GLboolean EXT_texture_filter_anisotropic;
>> GLboolean EXT_texture_integer;
>> diff --git a/src/mesa/main/texcompress.c b/src/mesa/main/texcompress.c
>> index 846d4bb..3321b15 100644
>> --- a/src/mesa/main/texcompress.c
>> +++ b/src/mesa/main/texcompress.c
>> @@ -102,7 +102,9 @@ _mesa_gl_compressed_format_base_format(GLenum format)
>> case GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB:
>> case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
>> case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: (duplicate case value) */
>> case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: (duplicate case value) */
>> case GL_COMPRESSED_RGBA_FXT1_3DFX:
>> case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
>> case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
>> @@ -318,9 +320,11 @@ _mesa_glenum_to_compressed_format(GLenum format)
>> case GL_RGB4_S3TC:
>> return MESA_FORMAT_RGBA_DXT1;
>> case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: (duplicate case value) */
>> case GL_RGBA_S3TC:
>> return MESA_FORMAT_RGBA_DXT3;
>> case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: (duplicate case value) */
>> case GL_RGBA4_S3TC:
>> return MESA_FORMAT_RGBA_DXT5;
>>
>> @@ -381,11 +385,13 @@ _mesa_compressed_format_to_glenum(struct gl_context
>> *ctx, gl_format mesaFormat)
>> case MESA_FORMAT_RGBA_FXT1:
>> return GL_COMPRESSED_RGBA_FXT1_3DFX;
>> #endif
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> #if FEATURE_texture_s3tc
>> case MESA_FORMAT_RGB_DXT1:
>> return GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
>> case MESA_FORMAT_RGBA_DXT1:
>> return GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
>> +#endif
>> case MESA_FORMAT_RGBA_DXT3:
>> return GL_COMPRESSED_RGBA_S3TC_DXT3_EXT;
>> case MESA_FORMAT_RGBA_DXT5:
>> diff --git a/src/mesa/main/texcompress_s3tc.c
>> b/src/mesa/main/texcompress_s3tc.c
>> index 8736e20..e0c8478 100644
>> --- a/src/mesa/main/texcompress_s3tc.c
>> +++ b/src/mesa/main/texcompress_s3tc.c
>> @@ -47,7 +47,7 @@
>> #include "swrast/s_context.h"
>>
>>
>> -#if FEATURE_texture_s3tc
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>>
>>
>> #if defined(_WIN32) || defined(WIN32)
>> @@ -533,4 +533,4 @@ _mesa_fetch_texel_srgba_dxt5(const struct
>> swrast_texture_image *texImage,
>> #endif /* FEATURE_EXT_texture_sRGB */
>>
>>
>> -#endif /* FEATURE_texture_s3tc */
>> +#endif /* FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> */
>> diff --git a/src/mesa/main/texcompress_s3tc.h
>> b/src/mesa/main/texcompress_s3tc.h
>> index 2c06e50..f3c42f6 100644
>> --- a/src/mesa/main/texcompress_s3tc.h
>> +++ b/src/mesa/main/texcompress_s3tc.h
>> @@ -33,7 +33,7 @@
>> struct gl_context;
>> struct swrast_texture_image;
>>
>> -#if FEATURE_texture_s3tc
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>>
>> extern GLboolean
>> _mesa_texstore_rgb_dxt1(TEXSTORE_PARAMS);
>> @@ -82,7 +82,7 @@ _mesa_fetch_texel_srgba_dxt5(const struct
>> swrast_texture_image *texImage,
>> extern void
>> _mesa_init_texture_s3tc(struct gl_context *ctx);
>>
>> -#else /* FEATURE_texture_s3tc */
>> +#else /* FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt */
>>
>> /* these are used only in texstore_funcs[] */
>> #define _mesa_texstore_rgb_dxt1 NULL
>> @@ -105,6 +105,6 @@ _mesa_init_texture_s3tc(struct gl_context *ctx)
>> {
>> }
>>
>> -#endif /* FEATURE_texture_s3tc */
>> +#endif /* FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> */
>>
>> #endif /* TEXCOMPRESS_S3TC_H */
>> diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
>> index 1a318ab..38584f2 100644
>> --- a/src/mesa/main/texformat.c
>> +++ b/src/mesa/main/texformat.c
>> @@ -304,19 +304,24 @@ _mesa_choose_tex_format(struct gl_context *ctx,
>> GLenum target,
>> }
>> #endif
>>
>> -#if FEATURE_texture_s3tc
>> - if (ctx->Extensions.EXT_texture_compression_s3tc) {
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> + if (ctx->Extensions.EXT_texture_compression_s3tc ||
>> + ctx->Extensions.ANGLE_texture_compression_dxt) {
>> switch (internalFormat) {
>> +#if FEATURE_texture_s3tc
>> case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
>> RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_DXT1);
>> break;
>> case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
>> RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT1);
>> break;
>> +#endif
>> case GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE: (duplicate case
>> value) */
>> RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT3);
>> break;
>> case GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:
>> + /* case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE: (duplicate case
>> value) */
>> RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_DXT5);
>> break;
>> default:
>> @@ -595,14 +600,15 @@ _mesa_choose_tex_format(struct gl_context *ctx,
>> GLenum target,
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
>> break;
>> case GL_COMPRESSED_SRGB_ALPHA_EXT:
>> -#if FEATURE_texture_s3tc
>> - if (ctx->Extensions.EXT_texture_compression_s3tc)
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> + if (ctx->Extensions.EXT_texture_compression_s3tc ||
>> + ctx->Extensions.ANGLE_texture_compression_dxt)
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT3); /* Not
>> srgba_dxt1, see spec */
>> #endif
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA8);
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
>> break;
>> -#if FEATURE_texture_s3tc
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
>> if (ctx->Extensions.EXT_texture_compression_s3tc)
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SRGB_DXT1);
>> @@ -614,12 +620,14 @@ _mesa_choose_tex_format(struct gl_context *ctx,
>> GLenum target,
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
>> break;
>> case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
>> - if (ctx->Extensions.EXT_texture_compression_s3tc)
>> + if (ctx->Extensions.EXT_texture_compression_s3tc ||
>> + ctx->Extensions.ANGLE_texture_compression_dxt)
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT3);
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
>> break;
>> case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
>> - if (ctx->Extensions.EXT_texture_compression_s3tc)
>> + if (ctx->Extensions.EXT_texture_compression_s3tc ||
>> + ctx->Extensions.ANGLE_texture_compression_dxt)
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SRGBA_DXT5);
>> RETURN_IF_SUPPORTED(MESA_FORMAT_SARGB8);
>> break;
>> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
>> index cdb0905..9f6a08c 100644
>> --- a/src/mesa/main/teximage.c
>> +++ b/src/mesa/main/teximage.c
>> @@ -209,6 +209,18 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint
>> internalFormat )
>> }
>> }
>>
>> +#if FEATURE_ANGLE_texture_compression_dxt
>> + if (ctx->Extensions.ANGLE_texture_compression_dxt) {
>> + switch (internalFormat) {
>> + case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
>> + case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
>> + return GL_RGBA;
>> + default:
>> + ; /* fallthrough */
>
>
> The 'default' doesn't seem to be indented properly.
>
>
>
>> + }
>> + }
>> +#endif
>> +
>> if (ctx->Extensions.S3_s3tc) {
>> switch (internalFormat) {
>> case GL_RGB_S3TC:
>> diff --git a/src/mesa/state_tracker/st_format.c
>> b/src/mesa/state_tracker/st_format.c
>> index 302b58c..3dfb98a 100644
>> --- a/src/mesa/state_tracker/st_format.c
>> +++ b/src/mesa/state_tracker/st_format.c
>> @@ -119,11 +119,13 @@ st_mesa_format_to_pipe_format(gl_format mesaFormat)
>> return PIPE_FORMAT_Z32_FLOAT_S8X24_UINT;
>> case MESA_FORMAT_YCBCR:
>> return PIPE_FORMAT_UYVY;
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> #if FEATURE_texture_s3tc
>> case MESA_FORMAT_RGB_DXT1:
>> return PIPE_FORMAT_DXT1_RGB;
>> case MESA_FORMAT_RGBA_DXT1:
>> return PIPE_FORMAT_DXT1_RGBA;
>> +#endif
>> case MESA_FORMAT_RGBA_DXT3:
>> return PIPE_FORMAT_DXT3_RGBA;
>> case MESA_FORMAT_RGBA_DXT5:
>> @@ -449,11 +451,13 @@ st_pipe_format_to_mesa_format(enum pipe_format
>> format)
>> case PIPE_FORMAT_YUYV:
>> return MESA_FORMAT_YCBCR_REV;
>>
>> +#if FEATURE_texture_s3tc || FEATURE_ANGLE_texture_compression_dxt
>> #if FEATURE_texture_s3tc
>> case PIPE_FORMAT_DXT1_RGB:
>> return MESA_FORMAT_RGB_DXT1;
>> case PIPE_FORMAT_DXT1_RGBA:
>> return MESA_FORMAT_RGBA_DXT1;
>> +#endif
>> case PIPE_FORMAT_DXT3_RGBA:
>> return MESA_FORMAT_RGBA_DXT3;
>> case PIPE_FORMAT_DXT5_RGBA:
>
>
>
> Most of the patch is 'FEATURE_x' changes. I've been tempted to rip out all
> that stuff.
>
> The original idea was to make it easy for people to build smaller Mesa
> subsets (and the ES subset) by running the code through the preprocessor
> with all the FEATURE_x flags set on/off as needed. In the past some people
> were really concerned about code size for static analysis and to minimize
> binary sizes. I haven't heard any concerns about that in a long time. If
> someone's really determined to make a tighter subset, they'd have to go
> above and beyond turning off FEATURE_x flags anyway.
>
> And now, we're building one library that supports runtime selection of full
> OpenGL profiles, core profiles and ES profiles. The FEATURE stuff doesn't
> add any value for that and seems more trouble than it's worth.
>
> Any other opinions?
>
> -Brian
>
Does this mean that docs/subset.html and docs/subset-A.html are obsolete now and
could be removed?
Andreas.
More information about the mesa-dev
mailing list