summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/texgetimage.c
Commit message (Collapse)AuthorAgeFilesLines
* Don't cast the return value of malloc/reallocMatt Turner2012-09-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch has been generated by the following Coccinelle semantic patch: // Don't cast the return value of malloc/realloc. // // Casting the return value of malloc/realloc only stands to hide // errors. @@ type T; expression E1, E2; @@ - (T) ( _mesa_align_calloc(E1, E2) | _mesa_align_malloc(E1, E2) | calloc(E1, E2) | malloc(E1) | realloc(E1, E2) )
* mesa: Add explicit target checking to Get[Compressed]TexImage().Kenneth Graunke2012-08-171-10/+35
| | | | | | | | | | | | | | | | Previously, they relied on _mesa_max_texture_levels() for texture target error checking. This was somewhat dodgy, as _mesa_max_texture_levels() is called in seven diferent places, not all of which necessarily accept the same list of targets. I copied the list of legal targets from _mesa_max_texture_levels() but removed the proxy targets, as both functions explicitly rejected those targets. This changes the order in which we check errors, which could change whether we return INVALID_VALUE or INVALID_ENUM. However, it shouldn't change the list of accepted targets. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa GetTexImage: handle signed/unsigned integer clampingJordan Justen2012-08-141-4/+12
| | | | | Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa pack: handle uint and int clamping properlyJordan Justen2012-08-141-2/+2
| | | | | | | | | | | Rename _mesa_pack_rgba_span_int to _mesa_pack_rgba_span_from_uints. Add _mesa_pack_rgba_span_from_ints. These separate routines allow the integer clamping to be handled properly for signed versus unsigned integers. Signed-off-by: Jordan Justen <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: move some format helper functions to glformats.cBrian Paul2012-07-241-0/+1
|
* mesa: fix GL_LUMINANCE handling in glGetTexImageBrian Paul2012-03-091-2/+28
| | | | | | | | | | | | | | There are several cases in which we need to explicity "rebase" colors (ex: set G=B=0) when getting GL_LUMINANCE textures: 1. If the luminance texture is actually stored as rgba 2. If getting a luminance texture, but returning rgba 3. If getting an rgba texture, but returning luminance Fixes https://bugs.freedesktop.org/show_bug.cgi?id=46679 Also fixes the new piglit getteximage-luminance test. Reviewed-by: José Fonseca <[email protected]>
* mesa: use _mesa_rebase_rgba_float/uint() in glGetTexImage codeBrian Paul2012-03-081-73/+4
| | | | | | NOTE: This is a candidate for the 8.0 branch. Reviewed-by: José Fonseca <[email protected]>
* mesa: fix error handling in get_tex_rgba_compressed()Brian Paul2012-02-101-0/+2
|
* mesa: use _mesa_format_matches_format_and_type() in get_tex_memcpy()Brian Paul2012-02-101-41/+6
|
* mesa: push row stride adjustment down into _mesa_decompress_image()Brian Paul2012-02-101-11/+0
| | | | | | | There's a mismatch in row strides for compressed textures between what Driver.MapTextureImage() returns and what the software fetch-texel functions use. Move it down a layer. The next step would be to fix this in the fetch-texel functions.
* mesa: remove redundant format/type checks in glGetTexImage()Brian Paul2012-02-071-34/+0
| | | | | | | The _mesa_error_check_format_and_type() function will catch all those cases now. Signed-off-by: Brian Paul <[email protected]>
* mesa: new _mesa_error_check_format_and_type() functionBrian Paul2012-02-071-9/+7
| | | | | | | | | | | | | | | | | | | | This replaces the _mesa_is_legal_format_and_type() function. According to the spec, some invalid format/type combinations to glDrawPixels, ReadPixels and glTexImage should generate GL_INVALID_ENUM but others should generate GL_INVALID_OPERATION. With the old function we didn't make that distinction and generated GL_INVALID_ENUM errors instead of GL_INVALID_OPERATION. The new function returns one of those errors or GL_NO_ERROR. This will also let us remove some redundant format/type checks in follow-on commit. v2: add more checks for ARB_texture_rgb10_a2ui at the top of _mesa_error_check_format_and_type() per Ian. Signed-off-by: Brian Paul <[email protected]>
* mesa: set clamp bit in glGetTexImage for GL_UNSIGNED_NORMALIZEDAnuj Phogat2012-01-271-0/+9
| | | | | | | | | | | | | Color clamping should be enabled in glGetTexImage if texture dataType is GL_UNSIGNED_NORMALIZED and format is GL_LUMINANCE or GL_LUMINANCE_ALPHA Fixes 2 Intel oglconform test cases: pxconv-gettex and pxtrans-gettex https://bugs.freedesktop.org/show_bug.cgi?id=40864 NOTE: This is a candidate for the 8.0 branch Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: Add support for glGetTexImage on GL_TEXTURE_1D_ARRAYEric Anholt2012-01-241-2/+7
| | | | | | | | | | | Similarly to how we handle this in texstore, we have to remap height to depth so that we MapTextureImage each image layer individually. Fixes part of Intel oglconform's int-textures advanced.fbo.rtt NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Brian Paul <[email protected]>
* mesa: s/GLuint col/GLint col/ to avoid signed/unsigned comparison warnings.Eric Anholt2012-01-241-8/+8
| | | | Suggested-by: Brian Paul <[email protected]>
* mesa: Add support for glGetTexImage() from integer textures.Eric Anholt2012-01-241-38/+80
| | | | | | | | | This is a step toward fixing Intel oglconform's int-textures advanced.fbo.rtt. NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Brian Paul <[email protected]>
* mesa: Add condition in glGetTexImage for zero size texturesAnuj Phogat2012-01-171-0/+6
| | | | | | | | | | | | | | | | | | | | TestMipMaps() function in src/OGLconform/textureNPOT.c calls glTexImage2D() with width = 0. Texture with zero size skips miptree allocation due to a condition in function _mesa_store_teximage3d(). While calling glGetTexImage() it results in assertion failure in intel_map_texture_image() due to null mt pointer. This patch fixes the issue by detecting the zero size texture early in glGetTexImage and glGetCompressedTexImage functions. In such a case function simply returns doing nothing. Verified that below mentioned bug is fixed by this patch. https://bugs.freedesktop.org/show_bug.cgi?id=42334 NOTE: This is a candidate for stable branches Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: simplify Driver.GetCompressedTexImage() parametersBrian Paul2011-12-301-6/+4
| | | | | Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: split get_tex_rgba() into compressed/uncompressed versionsBrian Paul2011-12-241-145/+175
| | | | | | | This just splits one big function into two smaller ones for better readability. Reviewed-by: José Fonseca <[email protected]>
* mesa: fix comments in getteximage_error_check()Brian Paul2011-12-241-2/+2
|
* mesa: move the format and type check before select_tex_image()Jian Zhao2011-12-241-6/+6
| | | | | | | | | | Move the format and type check before select_tex_image, or it will fail to report the mismatch error if the teximage is null. Reported-by: Anuj Phogat <[email protected]> Signed-off-by: Jian Zhao <[email protected]> Reviewed-by: Yuanhan Liu <[email protected]> Signed-off-by: Brian Paul <[email protected]>
* Add mismatch check for glGetTexImage or it will return -1 and may lead to ↵Jian Zhao2011-12-141-0/+8
| | | | | | segment fault. Reviewed-by: Brian Paul <[email protected]>
* mesa: handle MapTextureImage() failures in glGetTexImage codeBrian Paul2011-11-281-114/+153
| | | | Reviewed-by: Eric Anholt <[email protected]>
* mesa: define, use _mesa_is_cube_face() in several placesBrian Paul2011-11-191-5/+4
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* texgetimage: add missing return on errornobled2011-11-031-0/+1
| | | | | | | | | | Missed this back in the arb_robustness branch <6b329b9274b18c50f4177eef7ee087d50ebc1525>. NOTE: This is a candidate for the 7.11 branch. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: Don't do [0, 1] clamping on glGetTexImage() of packed float formats.Eric Anholt2011-10-281-4/+6
| | | | | | | | | | | | | | | | | | | | From the GL_EXT_packed_float spec: For an RGBA color, if <type> is not one of FLOAT, UNSIGNED_INT_5_9_9_9_REV_EXT, or UNSIGNED_INT_10F_11F_11F_REV_EXT, or if the CLAMP_READ_COLOR_ARB is TRUE, or CLAMP_READ_COLOR_ARB is FIXED_ONLY_ARB and the selected color (or texture) buffer is a fixed-point buffer, each component is first clamped to [0,1]. Then the appropriate conversion formula from table 4.7 is applied the component." (but we previously resolved that the CLAMP_READ_COLOR bit is not relevant to glGetTexImage()) This fixes most of the cases in piglit GL_EXT_packed_float/pack. Reviewed-by: Marek Ol ák <[email protected]> Reviewed-by: Ian Romanick <[email protected]>
* mesa: fix inverted pbo test error at _mesa_GetnCompressedTexImageARBYuanhan Liu2011-10-191-1/+1
| | | | | | | It seems like a typo. Signed-off-by: Yuanhan Liu <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: s/INLINE/inline/Brian Paul2011-10-011-1/+1
| | | | | | | INLINE is still seen in some files (some generated files, etc) but this is a good start. Acked-by: Kenneth Graunke <[email protected]>
* mesa: simplify parameters to GetTexImage() driver hookBrian Paul2011-09-301-12/+10
| | | | | | | The target, level and texObj can be obtained through the texImage parameter. We could make similar changes for the TexImage() hooks too. Reviewed-by: Eric Anholt <[email protected]>
* mesa: Finally, convert RGBA glGetTexImage() to using MapTextureImage().Brian Paul2011-09-271-6/+38
| | | | | | | v2: Changes by Brian to MapTexImage in the decompression path. v3: Changes by anholt to fix srcRowStride for decompression of NPOT. Tested-by: Brian Paul <[email protected]> (v2)
* mesa: Convert depth glGetTexImage() to using MapTextureImage().Brian Paul2011-09-271-7/+12
| | | | Tested-by: Brian Paul <[email protected]>
* mesa: Convert depth/stencil glGetTexImage() to using MapTextureImage().Brian Paul2011-09-271-5/+13
| | | | | | | Note that the implementation before and after appears to be broken in its handling of Z24_S8 vs S8_Z24. Tested-by: Brian Paul <[email protected]>
* mesa: Switch ycbcr glGetTexImage() to using MapTextureImage().Brian Paul2011-09-271-5/+12
| | | | Tested-by: Brian Paul <[email protected]>
* mesa: Switch memcpy fast-path of glGetTexImage() to using MapTextureImage().Brian Paul2011-09-271-9/+15
| | | | Tested-by: Brian Paul <[email protected]>
* mesa: Update comments/assertions about buffer mapping for glGetTexImage().Brian Paul2011-09-271-4/+3
| | | | | | This code is about to stop needing ->Data and using MapTextureImage(). Tested-by: Brian Paul <[email protected]>
* mesa: Convert GetCompressedTexImage to using MapTextureImage().Brian Paul2011-09-271-7/+14
| | | | | | | This changes drivers to not map the texture on their own before calling _mesa_get_compressed_teximage(). Tested-by: Brian Paul <[email protected]>
* mesa: remove unneeded #include of texfetch.hBrian Paul2011-09-081-1/+0
|
* mesa: use _mesa_unpack_float_z_row in get_tex_depth()Brian Paul2011-09-081-5/+7
| | | | Removes another use of the gl_texture_image::FetchTexelf() function.
* mesa: handle compressed images in get_tex_rgba()Brian Paul2011-09-081-58/+106
| | | | | | Uses the new _mesa_decompress_image() function. Unlike the meta path that uses textured quad rendering to do decompression, this works with signed formats as well.
* mesa: Remove all mention of GL_COLOR_INDEX*_EXTIan Romanick2011-09-061-6/+2
| | | | | | | | These enums were only valid with the paletted texture extensions. This allows a couple other trivial clean-ups. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: Remove API facing bits of EXT_paletted_texture and ↵Ian Romanick2011-09-061-62/+3
| | | | | | | | | | | | | | 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: Eliminate dd_function_table::MapBufferIan Romanick2011-08-231-2/+4
| | | | | | | | | | Replace all calls to dd_function_table::MapBuffer with appropriate calls to dd_function_table::MapBufferRange, then remove all the cruft. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]> Acked-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Remove target parameter from dd_function_table::MapBufferIan Romanick2011-08-231-4/+2
| | | | | | | | | | No driver used that parameter, and most drivers ended up with a bunch of unused-parameter warnings because it was there. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]> Acked-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Remove target parameter from dd_function_table::UnmapBufferIan Romanick2011-08-231-4/+2
| | | | | | | | | | No driver used that parameter, and most drivers ended up with a bunch of unused-parameter warnings because it was there. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: move invariant code out of loop in get_tex_rgba()Brian Paul2011-06-131-14/+14
|
* mesa: fix glGetTexImage for cases when srgb decode is skippedMike Kaplinskiy2011-05-241-101/+19
| | | | | | See http://bugs.freedesktop.org/show_bug.cgi?id=37150 Signed-off-by: Brian Paul <[email protected]>
* mesa: handle some srgb cases in the fast path in _mesa_get_teximageRoland Scheidegger2011-05-201-4/+7
| | | | | | | | | | Previously, always did unorm8->float/nonlinear-to-linear conversion (using lookup table), then convert back to nonlinear (using the expensive math func pow among others), and finally convert back to int (assuming caller wants unorm8), because the float texture fetch function is used for getting the actual texel values. This should probably all be changed at some point, but for now simply enable the memcpy path also for srgb formats (but if for instance swizzling is required, still the whole conversion will be done).
* Squashed commit of the following:Brian Paul2011-04-261-28/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 864fe253b04105b7469e5f7b064dc37637b944f8 Author: Brian Paul <[email protected]> Date: Thu Apr 21 20:13:07 2011 -0600 mesa: s/exec/disp/ in _mesa_init_histogram_dispatch() This function isn't normally compiled (FEATURE_histogram). commit f4bf45e2b94b582cacd19cdca873c5be627e4250 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:58 2011 -0600 mesa: hook up GL_ARB_robustness dispatch functions ...and advertise the extension. Signed-off-by: Brian Paul <[email protected]> commit 2b89e38e5f572dc40cebc06381ae7c5d04386998 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:58 2011 -0600 mesa: regenerated API files for GL_ARB_robustness Signed-off-by: Brian Paul <[email protected]> commit 5d5ebfb7135cec9d833adef86cbf4d0f3d9beca8 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 glapi: add ARB_robustness xml Signed-off-by: Brian Paul <[email protected]> commit 0159d1d6d99f4bbc18381dc2081c20d3aff17ac9 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 mesa: implement GL_ARB_robustness functions Signed-off-by: Brian Paul <[email protected]> commit 938fd71f4c4742f274922d53492a7290ab8d9c9b Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 mesa: add context fields for GL_ARB_robustness Signed-off-by: Brian Paul <[email protected]> commit 72075137bc79e65be03dac7e97b6dba93c3a86a4 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 mesa: standardize more bounds-checking error messages Signed-off-by: Brian Paul <[email protected]> commit 32a3fc23746db49da903fbc08afa0135af3007d2 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 mesa: standardize some bounds-checking error messages Signed-off-by: Brian Paul <[email protected]> commit cecbf1f4d164207de373dec0cadee2e84e1f9656 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 mesa: add more bounds-checking support for client memory buffers Signed-off-by: Brian Paul <[email protected]> commit edc895b52383d5bd274422db56adead1d81daf5f Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 mesa: add bounds-checking support for client memory buffers Signed-off-by: Brian Paul <[email protected]> commit 3a96ef28a538f158a219b406cd090dee70470c85 Author: nobled <[email protected]> Date: Thu Apr 21 07:53:57 2011 -0600 mesa: use is_bufferobj() helper function Signed-off-by: Brian Paul <[email protected]>
* Use row stride instead of width when getting colour index texels.Michel Dänzer2011-03-301-2/+3
| | | | Untested, noticed while working on the depth/stencil fix.
* Use proper source row stride when getting depth/stencil texels.Michel Dänzer2011-03-301-1/+2
|