summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/readpix.c
Commit message (Collapse)AuthorAgeFilesLines
* mesa: add a couple fast-paths to fast_read_rgba_pixels_memcpy()Brian Paul2012-04-171-7/+55
| | | | | | | | | | | | Accelerates a few glReadPixels cases for WebGL. See https://bugs.freedesktop.org/show_bug.cgi?id=48545 v2: Per Jose, use bit twiddling for the swizzle case instead of ubyte arrays (it's about 44% faster). Note: This is a candidate for the 8.0 branch. Reviewed-by: José Fonseca <[email protected]>
* mesa: use _mesa_rebase_rgba_float/uint() in glReadPixels codeBrian Paul2012-03-081-0/+4
| | | | | | | | | See the comments for _mesa_rebase_rgba_float() for details. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=46679 NOTE: This is a candidate for the 8.0 branch. Reviewed-by: José Fonseca <[email protected]>
* mesa: Don't disable fast path for normalized typesNeil Roberts2012-02-281-7/+15
| | | | | | | | | | | | | | | | | | Mesa has a fast path for the generic fallback when using glReadPixels for RGBA data which uses memcpy. However it was really difficult to hit this case because it would not be used if any transferOps are enabled. Any type apart from floating point or non-normalized integer types (so any of the common types) would force enabling clamping so the fast path could not be used. This patch makes it ignore clamping when determining whether to use the fast path if the data type of the buffer is an unsigned normalized type because in that case clamping will not have any effect anyway. https://bugs.freedesktop.org/show_bug.cgi?id=46631 NOTE: This is a candidate for the 8.0 branch. Signed-off-by: Brian Paul <[email protected]>
* mesa: stop using MAX_WIDTH in glReadPixels codeBrian Paul2012-02-241-45/+75
| | | | Reviewed-by: José Fonseca <[email protected]>
* mesa: remove unused _mesa_error_check_format_type() functionBrian Paul2012-02-071-117/+0
| | | | | | | This was only used by glReadPixels and glDrawPixels. Now those functions do the corresponding error checks. Signed-off-by: Brian Paul <[email protected]>
* mesa: stop using _mesa_error_check_format_type() in glReadPixelsBrian Paul2012-02-071-2/+7
| | | | | | | | Basically the same story as the previous commit. But we were already calling _mesa_source_buffer_exists() in ReadPixels(). Yeah, we were calling it twice. Signed-off-by: Brian Paul <[email protected]>
* mesa: remove redundant format/type checks in glReadPixels()Brian Paul2012-02-071-35/+0
| | | | | | These are done in _mesa_error_check_format_and_type(). Signed-off-by: Brian Paul <[email protected]>
* mesa: new _mesa_error_check_format_and_type() functionBrian Paul2012-02-071-4/+5
| | | | | | | | | | | | | | | | | | | | 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: remove byteswap check in fast_read_rgba_pixels_memcpy()Brian Paul2012-01-271-5/+0
| | | | | | It's handled by _mesa_format_matches_format_and_type() now. Reviewed-by: Ian Romanick <[email protected]>
* mesa: added swapBytes parameter to _mesa_format_matches_format_and_type()Brian Paul2012-01-271-1/+2
| | | | | | Not actually used yet though. Reviewed-by: Ian Romanick <[email protected]>
* mesa: remove LSB-first pixel packing check in glReadPixelsBrian Paul2012-01-271-2/+1
| | | | | | GL_UNPACK_LSB_FIRST only applies to bitmap data, not glReadPixels. Reviewed-by: Ian Romanick <[email protected]>
* mesa: Throw the required error for glReadPixels() from a multisampled FBO.Eric Anholt2012-01-121-0/+5
| | | | | | | Fixes piglit EXT_framebuffer_multisample-negative-readpixels. Reviewed-by: Brian Paul <[email protected]> NOTE: This is a candidate for the 8.0 branch.
* mesa: rename _mesa_unpack_int_rgba_row() to _mesa_unpack_uint_rgba_row()Brian Paul2012-01-091-1/+1
| | | | | | Since it returns uint values, not int. Reviewed-by: Eric Anholt <[email protected]>
* mesa: use malloc instead of MAX_WIDTH array in glReadPixels()Brian Paul2011-12-081-9/+14
| | | | | Reviewed-by: Jose Fonseca <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* mesa: Make formats.c "datatype" values match glGetTexLevelParameter return.Eric Anholt2011-11-221-2/+2
| | | | | | | | | | | | | | | | | 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: handle MapRenderbuffer() failures in glReadPixelsBrian Paul2011-11-191-0/+45
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* mesa: make slow_read_rgba_pixels() a void functionBrian Paul2011-11-191-3/+1
| | | | | | The boolean return value was ignored by the caller. Reviewed-by: Kenneth Graunke <[email protected]>
* Revert "read_rgba_pixels: Don't force clamping if the renderbuffer is ↵Michel Dänzer2011-11-171-2/+1
| | | | | | | | normalized." This reverts commit b11c16752a18ef8dfb96d9f0ead6ecb62bde6773. Breaks at least luminance destination formats.
* read_rgba_pixels: Don't force clamping if the renderbuffer is normalized.Michel Dänzer2011-11-171-1/+2
| | | | | Signed-off-by: Michel Dänzer <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* mesa: initialize stencilMap, Stride if stencilRb==depthRbBrian Paul2011-11-161-0/+4
|
* mesa: don't map depth+stencil buffer twice in glReadPixels()Brian Paul2011-11-161-3/+11
| | | | | | | | | | | In slow_read_depth_stencil_pixels_separate() we might have separate depth and stencil buffers or a combined buffer. In the later case, don't map the buffer twice. This function is used when the depth scale/bias pixel transfer values are not the defaults. Fixes http://bugs.freedesktop.org/show_bug.cgi?id=42963 Reviewed-by: José Fonseca <[email protected]>
* mesa: move swrast ReadPixels code into core MesaBrian Paul2011-11-151-0/+484
| | | | | | | | The swrast ReadPixels code has no dependencies on swrast since moving to Map/UnmapRenderbuffer(). We'll be able to remove s_readpix.c and remove the state tracker's glReadPixels code next. Acked-by: Eric Anholt <[email protected]>
* mesa: initial ARB_depth_buffer_float supportMarek Olšák2011-07-101-4/+25
| | | | | | | 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]>
* Squashed commit of the following:Brian Paul2011-04-261-12/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
* mesa: 80-column wrappingBrian Paul2011-03-191-2/+2
|
* mesa: move PBO-related functions into a new fileBrian Paul2011-02-281-0/+1
|
* mesa: MESA_VERBOSE logging for glRead/Draw/CopyPixels, glBlitFramebufferBrian Paul2011-02-181-0/+8
|
* mesa: Include mtypes.h in files that use gl_context struct.Vinson Lee2011-01-051-0/+1
| | | | | | Directly include mtypes.h if a file uses a gl_context struct. This allows future removal of headers that are not strictly necessary but indirectly include mtypes.h for a file.
* mesa: rename function to _mesa_is_format_integer_color()Brian Paul2010-10-261-1/+1
| | | | Be a bit more clear about its operation.
* mesa: additional glReadPixels error checks for GL_EXT_texture_integerBrian Paul2010-10-251-0/+15
|
* mesa: added cases for GL_EXT_texture_integerBrian Paul2010-10-231-0/+10
|
* Drop GLcontext typedef and use struct gl_context insteadKristian Høgsberg2010-10-131-1/+1
|
* ARB_texture_rg: Add R8, R16, RG88, and RG1616 internal formatsIan Romanick2010-10-011-0/+1
|
* mesa: raise GL_INVALID_OPERATION for glReadPixels(GL_COLOR_INDEX)Brian Paul2010-04-201-0/+6
| | | | We no longer support CI-mode color buffers so this is always an error.
* mesa: Remove checks of Visual.rgbModeIan Romanick2010-03-031-12/+4
| | | | | | This must always be true now, so there is no reason to check it. Ever. Signed-off-by: Ian Romanick <[email protected]>
* mesa: use _mesa_is_bufferobj()Brian Paul2009-08-121-1/+1
|
* mesa: use _mesa_bufferobj_mapped()Brian Paul2009-08-071-1/+1
|
* mesa: fix some incorrect error checks in _mesa_error_check_format_type()Brian Paul2009-08-071-17/+34
| | | | Plus, simplify the code a bit.
* mesa: don't call ctx->Driver.ReadPixels() if width or height is zeroBrian Paul2009-04-021-0/+3
|
* mesa: refactor: move glReadPixels code into new readpix.c fileBrian Paul2008-09-211-0/+190