summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/formats.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa formats: add MESA_FORMAT_ABGR2101010_UINTJordan Justen2012-07-211-0/+15
| | | | | Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: add glformats integer type/format detection routinesJordan Justen2012-07-211-0/+13
| | | | | | | | | | | | _mesa_is_integer_format is moved to formats.c and renamed as _mesa_is_enum_format_integer. _mesa_is_format_unsigned, _mesa_is_type_integer, _mesa_is_type_unsigned, and _mesa_is_enum_format_or_type_integer are added. Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: remove assertions that do not allow compressed 2D_ARRAY texturesMarek Olšák2012-07-121-4/+2
| | | | | | NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Alex Deucher <[email protected]>
* mesa: Return 8 bits for GL_TEXTURE_RED_SIZE on RGTC formats.Kenneth Graunke2012-06-071-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | From the issues section of the GL_ARB_texture_compression_rgtc extension: 15) What should glGetTexLevelParameter return for GL_TEXTURE_GREEN_SIZE and GL_TEXTURE_BLUE_SIZE for the RGTC1 formats? What should glGetTexLevelParameter return for GL_TEXTURE_BLUE_SIZE for the RGTC2 formats? RESOLVED: Zero bits. These formats always return 0.0 for these respective components and have no bits devoted to these components. Returning 8 bits for red size of RGTC1 and the red and green sizes of RGTC2 makes sense because that's the maximum potential precision for the uncompressed texels. Thus, we need to return 8 bits for GL_TEXTURE_RED_SIZE on all RGTC formats and 8 bits for GL_TEXTURE_GREEN_SIZE on RGTC2 formats. BLUE should be 0. Fixes oglconform/rgtc/advanced.texture_fetch.tex_param. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: implement more cases in _mesa_format_matches_format_and_type()Brian Paul2012-01-271-2/+22
| | | | Reviewed-by: Ian Romanick <[email protected]>
* mesa: use swapBytes parameter in _mesa_format_matches_format_and_type()Brian Paul2012-01-271-38/+93
| | | | | | | | This will let us use memcpy in more situations. We can also remove the checks for byte spapping that happen before the calls to _mesa_format_matches_format_and_type(). Reviewed-by: Ian Romanick <[email protected]>
* mesa: added swapBytes parameter to _mesa_format_matches_format_and_type()Brian Paul2012-01-271-4/+6
| | | | | | Not actually used yet though. Reviewed-by: Ian Romanick <[email protected]>
* mesa: rewrite, simplify some of the logic in ↵Brian Paul2012-01-271-9/+28
| | | | | | | | _mesa_format_matches_format_and_type() In preparation for adding GL_PACK/UNPACK_SWAP_BYTES support. Reviewed-by: Ian Romanick <[email protected]>
* mesa: add BGR888 code in _mesa_format_matches_format_and_type()Brian Paul2012-01-271-1/+1
| | | | Reviewed-by: Ian Romanick <[email protected]>
* mesa: fix error in _mesa_format_matches_format_and_type() for RGB888Brian Paul2012-01-271-1/+1
| | | | Reviewed-by: Ian Romanick <[email protected]>
* mesa: use STATIC_ASSERT in a few more placesBrian Paul2012-01-101-1/+1
|
* mesa: add _mesa_get_format_max_bits()Brian Paul2011-12-241-0/+16
| | | | | | Returns max bits per channel for the given format. Reviewed-by: José Fonseca <[email protected]>
* mesa: add MAX_PIXEL_BYTES defineBrian Paul2011-12-081-0/+2
| | | | | | | | | In a few places we need to allocate space for some number of generic pixels. Use this new define instead of a magic number like 16 or 4 * sizeof(GLuint). Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: rename MESA_FORMAT_RG88_REV to MESA_FORMAT_RG88Brian Paul2011-12-021-4/+4
| | | | R is in the high byte, G in the low byte.
* mesa: rename MESA_FORMAT_RG88 to MESA_FORMAT_GR88Brian Paul2011-12-021-5/+5
| | | | | To better reflect the component ordering and be consistent with other format names.
* mesa: add support for GL_OES_compressed_ETC1_RGB8_textureChia-I Wu2011-12-021-0/+16
| | | | | | | | | | | Add support for GL_OES_compressed_ETC1_RGB8_texture to core mesa. There is no driver support yet. Unlike desktop GL compressed texture formats, GLES compressed texture formats usually can only be used with glCompressedTexImage2D. All other gl*Tex*Image* functions are updated to check for that. Reviewed-by: Brian Paul <[email protected]>
* mesa: fix MESA_FORMAT_RG88 format match testBrian Paul2011-11-301-1/+1
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: Fix the datatype of GL_DEPTH32F_STENCIL8's depth channel.Eric Anholt2011-11-291-1/+4
| | | | | | | | | | | | | | | | | Asking for the datatype of MESA_FORMAT_Z32_FLOAT_X24S8 is a bit funny -- there's a float depth channel, and a stencil channel that doesn't have a particular GLenum associated with its type, so what's the correct response? Because there is no query for stencil, just make this format's datatype be that of the depth channel. It fixes the depth query (and thus a failure in piglit gl-3.0-required-sized-formats), and none of the other consumers of the _mesa_get_format_datatype() API care. v2: Add a comment for why the DataType is this way for this format. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: update comments for _mesa_format_matches_format_and_type(), 80-column ↵Brian Paul2011-11-281-10/+9
| | | | wrapping
* mesa/format: add mesa MESA_FORMAT_ARGB2101010_UINT support.Dave Airlie2011-11-281-0/+17
| | | | | | | | | | | | | | This format is used in the ARB_texture_rgb10_a2ui spec. It adds core mesa support, texformat + texstore support, format_unpack and fbobject.c (all patches from list merged + fixed up). also fixes some whitespace issues. Parts were: Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* mesa: add MESA_FORMAT_RGBX8888 and MESA_FORMAT_RGBX8888_REVChia-I Wu2011-11-271-0/+24
| | | | | | | | | | | | | MESA_FORMAT_RGBX8888_REV is one of the opaque pixel formats used on Android. Thanks to texture-from-pixmap, drivers may actually see texture images with this format on Android. MESA_FORMAT_RGBX8888 is added only for completeness. Reviewed-by: Brian Paul <[email protected]> [olv: Move the new formats after MESA_FORMAT_ARGB8888_REV in gl_format. I accidentally moved them to the wrong place when preparing the patch.]
* mesa: Make formats.c "datatype" values match glGetTexLevelParameter return.Eric Anholt2011-11-221-6/+6
| | | | | | | | | | | | | | | | | The formats.c code's "datatype" value is "what does this value mean", i.e. unorm or snorm or float, and is the return value from the GL_TEXTURE_RED_TYPE class of queries. The depth formats were marked as GL_UNSIGNED_INT, which is what we use for integer, and not what we should be returning from the glGetTexLevelParameter. In texstore, we were inappropriately using it as an argument to _mesa_unpack_depth_span() that was expecting a value like GL_UNSIGNED_INT or GL_UNSIGNED_SHORT. Just hardcode _mesa_unpack_depth_span()'s arguments for now, though it looks like the consumers of that interface would be happier with using MESA_FORMAT. Reviewed-by: Brian Paul <[email protected]>
* mesa: Add a function for comparing gl_format to format/type.Eric Anholt2011-11-031-0/+318
| | | | | | | | | | This should be useful in making more generic fast paths in the pixel paths. v2: Add note about PACK_SWAP_BYTES, and fix up for endianness by synchronizing with memcpy_texture paths in texstore.c. Reviewed-by: Brian Paul <[email protected]>
* mesa: fix software mipmap generation code for packed Z/stencil formatsBrian Paul2011-10-071-4/+4
| | | | | | Fixes https://bugs.freedesktop.org/show_bug.cgi?id=32458 Reviewed-by: Chad Versace <[email protected]>
* mesa/formats: add rest of integer formats.Dave Airlie2011-10-051-2/+516
| | | | | | | | | | | | | | | | This is taken from reading EXT_texture_integer + EXT_texture_rg in combination, Comments on necessity of each format, naming of formats and bugs in the formats tables please. Is there any formats I've missed? Eric looked over this to make sure its consistent at least. As I've changed the ordering of things in the format table, the follow patches are required to avoid regression. Signed-off-by: Dave Airlie <[email protected]>
* mesa: added _mesa_get_uncompressed_format(), _mesa_format_num_components()Brian Paul2011-09-081-0/+64
|
* mesa: Remove API facing bits of EXT_paletted_texture and ↵Ian Romanick2011-09-061-1/+0
| | | | | | | | | | | | | | EXT_shared_texture_palette This was also discussed at XDS 2010. However, actually making the change was delayed because several drivers still exposed these extensions to significant benefit (e.g., tdfx). Now that those drivers have been removed, this code can be removed as well. v2: A lot of bits that were missed in the previous patch have been removed. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: fix comment typo: s/GL_SIGNED_NORMALED/GL_SIGNED_NORMALIZED/Brian Paul2011-08-311-1/+1
|
* mesa: Remove all mention of MESA_FORMAT_CI8Ian Romanick2011-08-291-16/+4
| | | | | | | | | | | Nothing in Mesa supports color-index textures, and most of the other infrastructure that could allow such support has already been removed. This puts the final nail in the coffin. Also clean out some GL_COLOR_INDEX comments in formats.c. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: add a comment in _mesa_test_formatsMarek Olšák2011-07-111-0/+1
|
* mesa: fix assertion failure in _mesa_test_formatsMarek Olšák2011-07-111-1/+2
| | | | Z32_FLOAT_X24S8 has DataType of GL_NONE.
* mesa: initial ARB_depth_buffer_float supportMarek Olšák2011-07-101-0/+29
| | | | | | | Using GL_NONE as DataType of Z32_FLOAT_X24S8, not sure what I should put there. The spec says the type is n/a. Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Fix return type of _mesa_get_format_bytes() (#37351)Adam Jackson2011-05-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | Despite that negative values aren't sensible here, making this unsigned is dangerous. Consider get_pointer_generic, which computes a value of the form: void *base + (int x * int stride + int y) * unsigned bpp The usual arithmetic conversions will coerce the (x*stride + y) subexpression to unsigned. Since stride can be negative, this is disastrous. Fixes at least the following piglit tests on Ironlake: fbo/fbo-blit-d24s8 spec/ARB_depth_texture/fbo-clear-formats spec/EXT_packed_depth_stencil/fbo-clear-formats NOTE: This is a candidate for the 7.10 branch. Reviewed-by: Chad Versace <[email protected]> Signed-off-by: Adam Jackson <[email protected]>
* mesa: implement EXT_packed_floatMarek Olšák2011-04-291-0/+14
| | | | | Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: implement EXT_texture_shared_exponentMarek Olšák2011-04-291-1/+15
| | | | | | | | | swrast support done. There is no renderbuffer support in swrast, because it's not required by the extension. Reviewed-by: Brian Paul <[email protected]>
* mesa: add R/RG floating-point formatsMarek Olšák2011-04-151-0/+40
|
* mesa: fix L16F and L32F format propertiesMarek Olšák2011-04-151-2/+2
|
* mesa: initial EXT_texture_snorm supportMarek Olšák2011-03-291-9/+91
| | | | | The component ordering of some formats has been been reversed to match Gallium types.
* mesa: add EXT_texture_compression_latcMarek Olšák2011-03-081-0/+40
| | | | | | | | | | | | | | | | | The encoding/decoding algorithms are shared with RGTC. Thanks to some magic with the base format, the RGTC texstore functions work for LATC too. swrast passes the related piglit tests besides two things: - The alpha channel is wrong (it's always 1), however the incorrect alpha channel makes some other tests fail too, so I guess it's unrelated to LATC. - Signed LATC fetches aren't correct yet (signed values are clamped to [0,1]), however RGTC has the same problem. Further testing (with other of my patches) shows that hardware drivers and softpipe work. BTW, ETQW uses this extension.
* mesa: Add RGTC texture store/fetch support.Dave Airlie2011-02-281-1/+41
| | | | | | | | | This adds support for the RGTC unsigned and signed texture storage and fetch methods. the code is a port of the DXT5 alpha compression code. Signed-off-by: Dave Airlie <[email protected]>
* mesa: fix mipmap generation for MESA_FORMAT_AL44Marek Olšák2011-02-161-1/+5
| | | | This was missed when implementing AL44.
* mesa: add comment for _mesa_get_srgb_format_linear()Brian Paul2011-01-151-0/+5
|
* mesa/swrast: implement EXT_texture_sRGB_decodeDave Airlie2011-01-161-0/+37
| | | | | | | This implements the extension by choosing a different set of texture fetch functions when the texture parameter changes. Signed-off-by: Dave Airlie <[email protected]>
* mesa: do a debug check of _mesa_format_to_type_and_comps()Brian Paul2011-01-111-1/+23
| | | | | | | Make sure that all formats are handled in this function. It's easy to miss this function when adding new pixel formats. See also http://bugs.freedesktop.org/show_bug.cgi?id=31544
* mesa: fix a few format table mistakes, assertionsBrian Paul2011-01-111-7/+8
| | | | | | | The BaseFormat field was incorrect for a few R and RG formats. Fix a couple assertions too. NOTE: This is a candidate for the 7.9 and 7.10 branches.
* mesa: Update comment about the list of BaseFormats for gl_formats.Eric Anholt2011-01-031-3/+4
|
* mesa: Assert format is not MESA_FORMAT_COUNT in _mesa_format_to_type_and_comps.Vinson Lee2010-12-231-1/+4
| | | | The case of format being MESA_FORMAT_COUNT should never occur.
* mesa: Fix #ifdef typo in _mesa_format_to_type_and_comps.Vinson Lee2010-12-231-1/+1
| | | | According to the comment, the warning should be for debug builds.
* mesa: implement new texture format I16Marek Olšák2010-12-231-0/+10
|
* mesa: implement new texture format L16Marek Olšák2010-12-231-0/+10
|