diff options
author | Mark Mueller <MarkKMueller@gmail.com> | 2013-11-08 19:32:02 -0800 |
---|---|---|
committer | Mark Mueller <MarkKMueller@gmail.com> | 2013-11-08 19:32:02 -0800 |
commit | 25c326d340b28135ec630bb1d1bce16061245958 (patch) | |
tree | 22a847447902e7715b5591d9d73582a6a9810895 | |
parent | f58ce7e06f0908005393a673a64d46fbb2db8fa5 (diff) |
smurf commit on new gl_formats, maybe.
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 73 | ||||
-rw-r--r-- | src/mesa/main/formats.c | 390 | ||||
-rw-r--r-- | src/mesa/main/formats.h | 69 | ||||
-rw-r--r-- | src/mesa/main/texformat.h | 2 |
4 files changed, 371 insertions, 163 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp index ccf82530de..5bb9888ac2 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp @@ -370,10 +370,16 @@ brw_blorp_GPUcopytexsubimage(struct brw_context *brw, return false; } + if (!brw->ctx.Driver.AllocTextureImageBuffer(&brw->ctx, dst_image)) { + DBG("%s: AllocTextureImageBuffer failed\n", __FUNCTION__); + return false; + } + /* get pointer to src pixels (may be in a pbo which we'll map here) */ const GLvoid *src = _mesa_validate_pbo_teximage(&brw->ctx, dims, width, height, 1, format, type, src_pixels, packing, "glTexImage"); + if (!src) { return true; } @@ -389,10 +395,11 @@ brw_blorp_GPUcopytexsubimage(struct brw_context *brw, /* * Come up with a close match to the source format for the texture cache */ - gl_format cacheTexFormat = _mesa_choose_cached_tex_format(&brw->ctx, dst_image->TexObject->Target, format, type); + gl_format cacheTexFormat = _mesa_choose_cached_tex_format(&brw->ctx, format, type); - _mesa_debug(&brw->ctx, "%s: Cache Texture Format: %s, Target Format: %s\n", - __FUNCTION__, _mesa_get_format_name(cacheTexFormat), _mesa_get_format_name(dst_image->TexFormat)); + _mesa_debug(&brw->ctx, "%s: Cache Texture Format: %s, Target Format: %s, Internal Format: 0x%x\n", + __FUNCTION__, _mesa_get_format_name(cacheTexFormat), _mesa_get_format_name(dst_image->TexFormat), + dst_image->InternalFormat); if (MESA_FORMAT_NONE == cacheTexFormat || MESA_FORMAT_COUNT <= cacheTexFormat) { _mesa_debug(&brw->ctx, "%s: Blorp doesn't support source format.\n", __FUNCTION__); @@ -410,15 +417,52 @@ brw_blorp_GPUcopytexsubimage(struct brw_context *brw, // return false; // } -// GLenum baseCachedFormat = _mesa_get_format_base_format(cacheTexFormat); -// GLenum baseTargetFormat = _mesa_get_format_base_format(dst_image->TexFormat); -// if (!(GL_RGBA == baseCachedFormat && GL_RGB == baseTargetFormat) && -// !(GL_LUMINANCE_ALPHA == baseCachedFormat && GL_LUMINANCE == baseTargetFormat) && -// baseTargetFormat != baseCachedFormat) { -// _mesa_debug(&brw->ctx, "%s: Target base format %s doesn't match cached base: %s\n", -// __FUNCTION__, _mesa_lookup_enum_by_nr(baseTargetFormat), _mesa_lookup_enum_by_nr(baseCachedFormat)); -// return false; -// } + GLenum baseCachedFormat = _mesa_get_format_base_format(cacheTexFormat); + GLenum baseTargetFormat = _mesa_get_format_base_format(dst_image->TexFormat); + switch (baseCachedFormat) { + case GL_RED: + case GL_RG: + case GL_RGB: + case GL_RGBA: + switch (baseTargetFormat) { + case GL_RED: + case GL_RG: + case GL_RGB: + case GL_RGBA: + case GL_ALPHA: + break; + default: + _mesa_debug(&brw->ctx, "%s: Target base format %s doesn't match cached base: %s\n", + __FUNCTION__, _mesa_lookup_enum_by_nr(baseTargetFormat), _mesa_lookup_enum_by_nr(baseCachedFormat)); + return false; + } + break; + case GL_LUMINANCE: + case GL_LUMINANCE_ALPHA: + if (GL_LUMINANCE == baseTargetFormat || GL_LUMINANCE_ALPHA == baseTargetFormat || + GL_ALPHA == baseTargetFormat) { + break; + } + _mesa_debug(&brw->ctx, "%s: Target base format %s doesn't match cached base: %s\n", + __FUNCTION__, _mesa_lookup_enum_by_nr(baseTargetFormat), _mesa_lookup_enum_by_nr(baseCachedFormat)); + return false; + case GL_DEPTH_COMPONENT: + if (GL_DEPTH_COMPONENT == baseTargetFormat) { + break; + } + _mesa_debug(&brw->ctx, "%s: Target base format %s doesn't match cached base: %s\n", + __FUNCTION__, _mesa_lookup_enum_by_nr(baseTargetFormat), _mesa_lookup_enum_by_nr(baseCachedFormat)); + return false; + case GL_STENCIL_INDEX: + case GL_DEPTH_STENCIL: + if (GL_DEPTH_STENCIL == baseTargetFormat || GL_STENCIL_INDEX == baseTargetFormat) { + break; + } + default: + _mesa_debug(&brw->ctx, "%s: Target base format %s doesn't match cached base: %s\n", + __FUNCTION__, _mesa_lookup_enum_by_nr(baseTargetFormat), _mesa_lookup_enum_by_nr(baseCachedFormat)); + return false; + } // if (_mesa_is_enum_format_unsigned_int(format) && GL_UNSIGNED_INT != _mesa_get_format_datatype(cacheTexFormat)) { // _mesa_debug(&brw->ctx, "%s: Cache format is not unsigned int\n", __FUNCTION__); @@ -566,11 +610,6 @@ brw_blorp_GPUcopytexsubimage(struct brw_context *brw, // return false; // } - if (!brw->ctx.Driver.AllocTextureImageBuffer(&brw->ctx, dst_image)) { - DBG("%s: AllocTextureImageBuffer failed\n", __FUNCTION__); - return false; - } - GLuint numSlices = 1, sliceOffset = 0; GLint srcImageStride = 0; GLint depth = 1; diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c index c5a5bec5d7..9668905c1c 100644 --- a/src/mesa/main/formats.c +++ b/src/mesa/main/formats.c @@ -1769,148 +1769,241 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = * textures. These formats are required only for caching of an unaltered copy of * the application texture prior to passing them to the GPU for processing to the final * internalFormat and miptree location. Because these apply to temporary surfaces, - * non-normalized format requests are not relavent. + * non-normalized format requests are not relavent. Based on the order presented + * in the spec. */ + /* Red Solo - !cup */ { - MESA_FORMAT_BGRA_FLOAT32, - "MESA_FORMAT_BGRA_FLOAT32", - GL_BGRA, - GL_FLOAT, - 32, 32, 32, 32, + MESA_FORMAT_R32, + "MESA_FORMAT_R32", + GL_RED, + GL_UNSIGNED_NORMALIZED, + 16, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 16 + 1, 1, 2 }, { - MESA_FORMAT_BGRA_FLOAT16, - "MESA_FORMAT_BGRA_FLOAT16", - GL_BGRA, - GL_FLOAT, - 16, 16, 16, 16, + MESA_FORMAT_SIGNED_R32, + "MESA_FORMAT_SIGNED_R32", + GL_RED, + GL_SIGNED_NORMALIZED, + 32, 0, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 4 + }, + + /* Red Green - !show */ + { + MESA_FORMAT_SIGNED_RG88, + "MESA_FORMAT_SIGNED_RG88", + GL_RG, + GL_SIGNED_NORMALIZED, + 8, 8, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 2 + }, + { + MESA_FORMAT_SIGNED_RG1616, + "MESA_FORMAT_SIGNED_RG1616", + GL_RG, + GL_SIGNED_NORMALIZED, + 16, 16, 0, 0, + 0, 0, 0, 0, 0, + 1, 1, 4 + }, + { + MESA_FORMAT_RG3232, + "MESA_FORMAT_RG3232", + GL_RG, + GL_UNSIGNED_NORMALIZED, + 32, 32, 0, 0, 0, 0, 0, 0, 0, 1, 1, 8 }, + + /* Red Green Blue */ { - MESA_FORMAT_BGR_FLOAT32, - "MESA_FORMAT_BGR_FLOAT32", - GL_BGR, - GL_FLOAT, - 32, 32, 32, 0, + MESA_FORMAT_SIGNED_RG3232, + "MESA_FORMAT_SIGNED_RG3232", + GL_RG, + GL_SIGNED_NORMALIZED, + 32, 32, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 12 + 1, 1, 8 }, + + /* Red Green Blue */ { - MESA_FORMAT_BGR_FLOAT16, - "MESA_FORMAT_BGR_FLOAT16", - GL_BGR, - GL_FLOAT, - 16, 16, 16, 0, + MESA_FORMAT_SIGNED_RGB888, + "MESA_FORMAT_SIGNED_RGB888", + GL_RGB, + GL_SIGNED_NORMALIZED, + 8, 8, 8, 0, 0, 0, 0, 0, 0, - 1, 1, 6 + 1, 1, 3 }, { - MESA_FORMAT_BGR_INT8, - "MESA_FORMAT_BGR_INT8", - GL_BGR, - GL_INT, - 8, 8, 8, 0, - 0, 0, 0, 0, 0, - 1, 1, 3 + MESA_FORMAT_RGB161616, + "MESA_FORMAT_RG161616", + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 16, 16, 16, 0, + 0, 0, 0, 0, 0, + 1, 1, 6 }, { - MESA_FORMAT_BGR_INT16, - "MESA_FORMAT_BGR_INT16", + MESA_FORMAT_SIGNED_RGB161616, + "MESA_FORMAT_SIGNED_RGB161616", GL_RGB, - GL_INT, + GL_SIGNED_NORMALIZED, 16, 16, 16, 0, 0, 0, 0, 0, 0, 1, 1, 6 }, { - MESA_FORMAT_BGR_INT32, - "MESA_FORMAT_BGR_INT32", - GL_BGR, - GL_INT, + MESA_FORMAT_RGB323232, + "MESA_FORMAT_RGB323232", + GL_RGB, + GL_UNSIGNED_NORMALIZED, 32, 32, 32, 0, 0, 0, 0, 0, 0, 1, 1, 12 }, { - MESA_FORMAT_BGRA_INT8, - "MESA_FORMAT_BGRAA_INT8", - GL_BGRA, - GL_INT, - 8, 8, 8, 8, + MESA_FORMAT_SIGNED_RGB323232, + "MESA_FORMAT_SIGNED_RGB323232", + GL_RGB, + GL_SIGNED_NORMALIZED, + 32, 32, 32, 0, 0, 0, 0, 0, 0, - 1, 1, 4 + 1, 1, 12 }, { - MESA_FORMAT_BGRA_INT16, - "MESA_FORMAT_BGRA_INT16", - GL_BGRA, - GL_INT, - 16, 16, 16, 16, + MESA_FORMAT_RGB233_REV, + "MESA_FORMAT_RGB233_REV", + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 3, 3, 2, 0, 0, 0, 0, 0, 0, - 1, 1, 8 + 1, 1, 1 }, { - MESA_FORMAT_BGRA_INT32, - "MESA_FORMAT_BGRA_INT32", - GL_BGRA, - GL_INT, - 32, 32, 32, 32, + MESA_FORMAT_RGB101111_REV, + "MESA_FORMAT_RGB101111_REV", + GL_RGB, + GL_UNSIGNED_NORMALIZED, + 11, 11, 10, 0, 0, 0, 0, 0, 0, - 1, 1, 16 + 1, 1, 4 }, + + /* Blue Green Red */ { - MESA_FORMAT_BGR_UINT8, - "MESA_FORMAT_BGR_UINT8", - GL_BGR, - GL_UNSIGNED_INT, + MESA_FORMAT_BGR888, + "MESA_FORMAT_BGR888", + GL_RGB, + GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 0, 0, 0, 1, 1, 3 }, { - MESA_FORMAT_BGR_UINT16, - "MESA_FORMAT_BGR_UINT16", - GL_BGR, - GL_UNSIGNED_INT, + MESA_FORMAT_SIGNED_BGR888, + "MESA_FORMAT_SIGNED_BGR888", + GL_RGB, + GL_SIGNED_NORMALIZED, + 8, 8, 8, 0, + 0, 0, 0, 0, 0, + 1, 1, 3 + }, + { + MESA_FORMAT_BGR161616, + "MESA_FORMAT_BGR161616", + GL_RGB, + GL_UNSIGNED_NORMALIZED, 16, 16, 16, 0, 0, 0, 0, 0, 0, 1, 1, 6 }, { - MESA_FORMAT_BGR_UINT32, - "MESA_FORMAT_BGR_UINT32", - GL_BGR, - GL_UNSIGNED_INT, + MESA_FORMAT_SIGNED_BGR161616, + "MESA_FORMAT_SIGNED_BGR161616", + GL_RGB, + GL_SIGNED_NORMALIZED, + 16, 16, 16, 0, + 0, 0, 0, 0, 0, + 1, 1, 6 + }, + { + MESA_FORMAT_BGR_FLOAT16, + "MESA_FORMAT_BGR_FLOAT16", + GL_RGB, + GL_FLOAT, + 16, 16, 16, 0, + 0, 0, 0, 0, 0, + 1, 1, 6 + }, + { + MESA_FORMAT_BGR323232, + "MESA_FORMAT_BGR323232", + GL_RGB, + GL_UNSIGNED_NORMALIZED, 32, 32, 32, 0, 0, 0, 0, 0, 0, 1, 1, 12 }, { - MESA_FORMAT_BGRA_UINT8, - "MESA_FORMAT_BGRA_UINT8", - GL_BGRA, - GL_UNSIGNED_INT, - 8, 8, 8, 8, + MESA_FORMAT_SIGNED_BGR323232, + "MESA_FORMAT_SIGNED_BGR323232", + GL_RGB, + GL_SIGNED_NORMALIZED, + 32, 32, 32, 0, 0, 0, 0, 0, 0, - 1, 1, 4 + 1, 1, 12 }, { - MESA_FORMAT_BGRA_UINT16, - "MESA_FORMAT_BGRA_UINT16", - GL_BGRA, - GL_UNSIGNED_INT, + MESA_FORMAT_BGR_FLOAT32, + "MESA_FORMAT_BGR_FLOAT32", + GL_RGB, + GL_FLOAT, + 32, 32, 32, 0, + 0, 0, 0, 0, 0, + 1, 1, 12 + }, + + /* Red Green Blue Alpha */ + { + MESA_FORMAT_RGBA16161616, + "MESA_FORMAT_RGBA161616", + GL_RGBA, + GL_UNSIGNED_NORMALIZED, 16, 16, 16, 16, 0, 0, 0, 0, 0, 1, 1, 8 }, { - MESA_FORMAT_BGRA_UINT32, - "MESA_FORMAT_BGRA_UINT32", - GL_BGRA, - GL_UNSIGNED_INT, + MESA_FORMAT_SIGNED_RGBA16161616, + "MESA_FORMAT_SIGNED_RGBA161616", + GL_RGBA, + GL_SIGNED_NORMALIZED, + 16, 16, 16, 16, + 0, 0, 0, 0, 0, + 1, 1, 8 + }, + { + MESA_FORMAT_RGBA32323232, + "MESA_FORMAT_RGBA323232", + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 32, 32, 32, 32, + 0, 0, 0, 0, 0, + 1, 1, 16 + }, + { + MESA_FORMAT_SIGNED_RGBA32323232, + "MESA_FORMAT_SIGNED_RGBA323232", + GL_RGBA, + GL_SIGNED_NORMALIZED, 32, 32, 32, 32, 0, 0, 0, 0, 0, 1, 1, 16 @@ -1943,24 +2036,6 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = 1, 1, 4 }, { - MESA_FORMAT_RGB233_REV, - "MESA_FORMAT_RGB233_REV", - GL_RGB, - GL_UNSIGNED_NORMALIZED, - 3, 3, 2, 0, - 0, 0, 0, 0, 0, - 1, 1, 1 - }, - { - MESA_FORMAT_RGB101111_REV, - "MESA_FORMAT_RGB101111_REV", - GL_RGB, - GL_UNSIGNED_NORMALIZED, - 3, 3, 2, 0, - 0, 0, 0, 0, 0, - 1, 1, 1 - }, - { MESA_FORMAT_RGBA4444, /* Name */ "MESA_FORMAT_RGBA4444", /* StrName */ GL_RGBA, /* BaseFormat */ @@ -1987,10 +2062,93 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 1, 1, 2 /* BlockWidth/Height,Bytes */ }, + + /* Blue Green Red Alpha */ + { + MESA_FORMAT_BGRA8888, /* Name */ + "MESA_FORMAT_BGRA8888", /* StrName */ + GL_RGBA, /* BaseFormat */ + GL_UNSIGNED_NORMALIZED, /* DataType */ + 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ + 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ + 1, 1, 4 /* BlockWidth/Height,Bytes */ + }, + { + MESA_FORMAT_BGRA8888_REV, /* Name */ + "MESA_FORMAT_BGRA8888", /* StrName */ + GL_RGBA, /* BaseFormat */ + GL_UNSIGNED_NORMALIZED, /* DataType */ + 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ + 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ + 1, 1, 4 /* BlockWidth/Height,Bytes */ + }, + { + MESA_FORMAT_SIGNED_BGRA8888, + "MESA_FORMAT_SIGNED_BGRA8888", + GL_RGBA, + GL_SIGNED_NORMALIZED, + 8, 8, 8, 8, + 0, 0, 0, 0, 0, + 1, 1, 4 + }, + { + MESA_FORMAT_BGRA16161616, + "MESA_FORMAT_BGRA16161616", + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 16, 16, 16, 16, + 0, 0, 0, 0, 0, + 1, 1, 8 + }, + { + MESA_FORMAT_SIGNED_BGRA16161616, + "MESA_FORMAT_SIGNED_BGRA16161616", + GL_RGBA, + GL_SIGNED_NORMALIZED, + 16, 16, 16, 16, + 0, 0, 0, 0, 0, + 1, 1, 8 + }, + { + MESA_FORMAT_BGRA_FLOAT16, + "MESA_FORMAT_BGRA_FLOAT16", + GL_RGBA, + GL_FLOAT, + 16, 16, 16, 16, + 0, 0, 0, 0, 0, + 1, 1, 8 + }, + { + MESA_FORMAT_BGRA32323232, + "MESA_FORMAT_BGRA32323232", + GL_RGBA, + GL_UNSIGNED_NORMALIZED, + 32, 32, 32, 32, + 0, 0, 0, 0, 0, + 1, 1, 16 + }, + { + MESA_FORMAT_SIGNED_BGRA32323232, + "MESA_FORMAT_SIGNED_BGRA32323232", + GL_RGBA, + GL_SIGNED_NORMALIZED, + 32, 32, 32, 32, + 0, 0, 0, 0, 0, + 1, 1, 16 + }, + { + MESA_FORMAT_BGRA_FLOAT32, + "MESA_FORMAT_BGRA_FLOAT32", + GL_RGBA, + GL_FLOAT, + 32, 32, 32, 32, + 0, 0, 0, 0, 0, + 1, 1, 16 + }, { MESA_FORMAT_BGRA4444, /* Name */ "MESA_FORMAT_BGRA4444", /* StrName */ - GL_BGRA, /* BaseFormat */ + GL_RGBA, /* BaseFormat */ GL_UNSIGNED_NORMALIZED, /* DataType */ 4, 4, 4, 4, /* Red/Green/Blue/AlphaBits */ 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ @@ -1999,7 +2157,7 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = { MESA_FORMAT_BGRA4444_REV, /* Name */ "MESA_FORMAT_BGRA4444_REV", /* StrName */ - GL_BGRA, /* BaseFormat */ + GL_RGBA, /* BaseFormat */ GL_UNSIGNED_NORMALIZED, /* DataType */ 4, 4, 4, 4, /* Red/Green/Blue/AlphaBits */ 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ @@ -2008,7 +2166,7 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = { MESA_FORMAT_BGRA5551, /* Name */ "MESA_FORMAT_BGRA5551", /* StrName */ - GL_BGRA, /* BaseFormat */ + GL_RGBA, /* BaseFormat */ GL_UNSIGNED_NORMALIZED, /* DataType */ 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ @@ -2017,34 +2175,16 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = { MESA_FORMAT_BGRA1555_REV, /* Name */ "MESA_FORMAT_BGRA1555_REV", /* StrName */ - GL_BGRA, /* BaseFormat */ + GL_RGBA, /* BaseFormat */ GL_UNSIGNED_NORMALIZED, /* DataType */ 5, 5, 5, 1, /* Red/Green/Blue/AlphaBits */ 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ 1, 1, 2 /* BlockWidth/Height,Bytes */ }, { - MESA_FORMAT_BGRA8888, /* Name */ - "MESA_FORMAT_BGRA8888", /* StrName */ - GL_BGRA, /* BaseFormat */ - GL_UNSIGNED_NORMALIZED, /* DataType */ - 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ - 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ - 1, 1, 4 /* BlockWidth/Height,Bytes */ - }, - { - MESA_FORMAT_BGRA8888_REV, /* Name */ - "MESA_FORMAT_BGRA8888", /* StrName */ - GL_BGRA, /* BaseFormat */ - GL_UNSIGNED_NORMALIZED, /* DataType */ - 8, 8, 8, 8, /* Red/Green/Blue/AlphaBits */ - 0, 0, 0, 0, 0, /* Lum/Int/Index/Depth/StencilBits */ - 1, 1, 4 /* BlockWidth/Height,Bytes */ - }, - { MESA_FORMAT_BGRA1010102, "MESA_FORMAT_BGRA1010102", - GL_BGRA, + GL_RGBA, GL_UNSIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 0, 0, 0, @@ -2053,7 +2193,7 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = { MESA_FORMAT_BGRA2101010_REV, "MESA_FORMAT_BGRA2101010_REV", - GL_BGRA, + GL_RGBA, GL_UNSIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 0, 0, 0, @@ -2062,7 +2202,7 @@ static struct gl_format_info format_info[MESA_PRIVATE_FORMAT_COUNT] = { MESA_FORMAT_BGRA5999_REV, "MESA_FORMAT_BGRA5999_REV", - GL_BGRA, + GL_RGBA, GL_UNSIGNED_NORMALIZED, 9, 9, 9, 5, 0, 0, 0, 0, 0, diff --git a/src/mesa/main/formats.h b/src/mesa/main/formats.h index 9f083b51dc..0cfdf4c5a3 100644 --- a/src/mesa/main/formats.h +++ b/src/mesa/main/formats.h @@ -308,38 +308,67 @@ typedef enum /* * Formats to exactly represent format/type combinations for application provided - * textures. + * textures. These formats are required only for caching of an unaltered copy of + * the application texture prior to passing them to the GPU for processing to the final + * internalFormat and miptree location. Because these apply to temporary surfaces, + * non-normalized format requests are not relavent. Based on the order presented + * in the spec. */ - MESA_FORMAT_BGRA_FLOAT32 = MESA_FORMAT_COUNT, - MESA_FORMAT_BGRA_FLOAT16, - MESA_FORMAT_BGR_FLOAT32, + /* Red Solo - !cup */ + MESA_FORMAT_R32 = MESA_FORMAT_COUNT, + MESA_FORMAT_SIGNED_R32, + + /* Red Green - !show */ + MESA_FORMAT_SIGNED_RG88, + MESA_FORMAT_SIGNED_RG1616, + MESA_FORMAT_RG3232, + MESA_FORMAT_SIGNED_RG3232, + + /* Red Green Blue */ + MESA_FORMAT_SIGNED_RGB888, + MESA_FORMAT_RGB161616, + MESA_FORMAT_SIGNED_RGB161616, + MESA_FORMAT_RGB323232, + MESA_FORMAT_SIGNED_RGB323232, + MESA_FORMAT_RGB233_REV, + MESA_FORMAT_RGB101111_REV, + + /* Blue Green Red */ + MESA_FORMAT_BGR88, + MESA_FORMAT_SIGNED_BGR888, + MESA_FORMAT_BGR161616, + MESA_FORMAT_SIGNED_BGR161616, MESA_FORMAT_BGR_FLOAT16, - MESA_FORMAT_BGR_INT8, - MESA_FORMAT_BGR_INT16, - MESA_FORMAT_BGR_INT32, - MESA_FORMAT_BGRA_INT8, - MESA_FORMAT_BGRA_INT16, - MESA_FORMAT_BGRA_INT32, - MESA_FORMAT_BGR_UINT8, - MESA_FORMAT_BGR_UINT16, - MESA_FORMAT_BGR_UINT32, - MESA_FORMAT_BGRA_UINT8, - MESA_FORMAT_BGRA_UINT16, - MESA_FORMAT_BGRA_UINT32, + MESA_FORMAT_BGR323232, + MESA_FORMAT_SIGNED_BGR323232, + MESA_FORMAT_BGR_FLOAT32, + + /* Red Green Blue Alpha */ + MESA_FORMAT_RGBA16161616, + MESA_FORMAT_SIGNED_RGBA16161616, + MESA_FORMAT_RGBA32323232, + MESA_FORMAT_SIGNED_RGBA32323232, MESA_FORMAT_RGBA1010102, MESA_FORMAT_RGBA2101010_REV, MESA_FORMAT_RGBA5999_REV, - MESA_FORMAT_RGB233_REV, - MESA_FORMAT_RGB101111_REV, MESA_FORMAT_RGBA4444, MESA_FORMAT_RGBA4444_REV, MESA_FORMAT_RGBA1555_REV, + + /* Blue Green Red Alpha */ + MESA_FORMAT_BGRA8888, + MESA_FORMAT_BGRA8888_REV, + MESA_FORMAT_SIGNED_BGRA8888, + MESA_FORMAT_BGRA16161616, + MESA_FORMAT_SIGNED_BGRA16161616, + MESA_FORMAT_BGRA_FLOAT16, + MESA_FORMAT_BGRA32323232, + MESA_FORMAT_SIGNED_BGRA32323232, + MESA_FORMAT_BGRA_FLOAT32, MESA_FORMAT_BGRA4444, MESA_FORMAT_BGRA4444_REV, MESA_FORMAT_BGRA5551, MESA_FORMAT_BGRA1555_REV, - MESA_FORMAT_BGRA8888, - MESA_FORMAT_BGRA8888_REV, MESA_FORMAT_BGRA1010102, MESA_FORMAT_BGRA2101010_REV, MESA_FORMAT_BGRA5999_REV, diff --git a/src/mesa/main/texformat.h b/src/mesa/main/texformat.h index b94ecb131f..66d50b381c 100644 --- a/src/mesa/main/texformat.h +++ b/src/mesa/main/texformat.h @@ -37,7 +37,7 @@ extern "C" { struct gl_context; extern gl_format -_mesa_choose_cached_tex_format(struct gl_context *ctx, GLenum target, GLenum format, GLenum type); +_mesa_choose_cached_tex_format(struct gl_context *ctx, GLenum format, GLenum type); extern gl_format _mesa_choose_tex_format(struct gl_context *ctx, GLenum target, GLint internalFormat, GLenum format, GLenum type); |