summaryrefslogtreecommitdiffstats
path: root/src/mesa/swrast
Commit message (Collapse)AuthorAgeFilesLines
* swrast: Use MapRenderbuffer for glReadPixels(GL_DEPTH_COMPONENT) fast-paths.Eric Anholt2011-11-011-68/+63
| | | | | | | | This fixes issues with the code playing fast and loose with types of buffers, and as a bonus avoids the wrappers that were previously used to pull bits out of packed depth/stencil buffers. Reviewed-by: Brian Paul <[email protected]>
* Add MapRenderbuffer implementations for software drivers.Eric Anholt2011-11-011-0/+1
| | | | | | | | | | Mesa core's is generic for things like osmesa. For swrast_dri.so, we have to do Y flipping. The front-buffer path isn't actually tested, though, because both before and after it fails with a BadMatch in XGetImage. Reviewed-by: Brian Paul <[email protected]>
* swrast: implement GL_ARB_texture_storageBrian Paul2011-10-312-0/+39
|
* swrast: Fix memory leak in out-of-memory path.Vinson Lee2011-10-251-0/+1
| | | | | | Fixes Coverity resource leak defect. Reviewed-by: Brian Paul <[email protected]>
* swrast: use _mesa_ffs() instead of ffs()Brian Paul2011-10-251-2/+2
| | | | Fixes MSVC build.
* swrast: fix comment typo (s/texure/texture/)Brian Paul2011-10-231-1/+1
|
* swrast: update renderbuffer format assertionBrian Paul2011-10-231-1/+4
| | | | Failed when exercising i965 swrast fallback rendering.
* mesa: add swrast_texture_image::BufferBrian Paul2011-10-234-23/+211
| | | | | | | | | | | | | | | In the past, swrast_texture_image::Data has been overloaded. It could either point to malloc'd memory storing texture data, or it could point to a current mapping of GPU memory. Now, Buffer always points to malloc'd memory (if we're not using GPU memory) and Data always points to mapped memory. The next step would be to rename Data -> Map. This change also involves adding swrast functions for mapping textures and renderbuffers prior to rendering to setup the Data pointer. Plus, corresponding functions to unmap texures and renderbuffers. This is very much like similar code in the dri drivers.
* mesa: move gl_texture_image::Data, RowStride, ImageOffsets to swrastBrian Paul2011-10-236-32/+58
| | | | | | Only swrast and the drivers that fall back to swrast need these fields now. This removes the last of the fields related to software rendering from gl_texture_image.
* swrast: fix float->uint conversion of gl_FragDepthBrian Paul2011-10-191-1/+2
| | | | | | | | | Using IROUND() to convert a float depth value to a 32-bit uint Z value. didn't work (it returns a signed value). Just use a cast instead Fixes piglit fbo-depth-array failure with swrast. Note: this is a candidate for the 7.11 branch.
* swrast: Fix fastpaths for glRead/WritePixels(GL_DEPTH_STENCIL)Chad Versace2011-10-182-0/+4
| | | | | | | | | | | | | | | | | | | In some cases, Intel hardware requires that depth and stencil buffers be separate. To accommodate swrast, i965 resorts to hackery that causes a segfault in the fastpaths of draw_depth_stencil_pixels() and read_depth_stencil_pixels(). The hack is that i965 sets framebuffer->Attachment[BUFFER_DEPTH].Renderbuffer and framebuffer->Attachment[BUFFER_STENCIL].Renderbuffer to a dummy renderbuffer for which the GetRow accessors and friends are null. The real buffers are located at framebuffer->_DepthBuffer and framebuffer->_Stencilbuffer. To fix the segault, this patch skips the fastpath if framebuffer->Attachment[BUFFER_DEPTH].Renderbuffer->GetRow is null. Note: This is a candidate for the 7.11 branch. Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* swrast: Remove redundant term in logic expressionChad Versace2011-10-152-2/+0
| | | | | | | | Fix is in {read,draw}_depth_stencil_pixels(). If depthRb == stencilRb, then it is redundant to check depthRb->x *and* stencilRb->x. Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* swrast: Fix fastpaths in glRead/WritePixels(GL_DEPTH_STENCIL)Chad Versace2011-10-152-0/+4
| | | | | | | | | | | | | | | | | | | | For glReadPixels, the user supplied pixels have format GL_UNSIGNED_INT_24_8. But, when the depthstencil buffer's format was MESA_FORMAT_S8_Z24, the fastpath read from the buffer without reordering the depth and stencil bits. To fix this, this patch just skips the fastpath when the format is not MESA_FORMAT_Z24_S8. The problem and fix for glWritePixels is analagous. Fixes the Piglit tests below on i965/gen6 and causes no regressions. general/depthstencil-default_fb-drawpixels-24_8 general/depthstencil-default_fb-readpixels-24_8 EXT_packed_depth_stencil/fbo-depthstencil-GL_DEPTH24_STENCIL8-drawpixels-24_8 EXT_packed_depth_stencil/fbo-depthstencil-GL_DEPTH24_STENCIL8-readpixels-24_8 Note: This is a candidate for the stable branches. Reviewed-by: Brian Paul <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* swrast: be a bit smarter in clip_span()Brian Paul2011-10-131-1/+4
| | | | If no pixels pass the clip test, return false.
* swrast: s/FetchTexelf/FetchTexel/Brian Paul2011-10-075-68/+68
|
* swrast: silence unused var warnings in non-debug buildsBrian Paul2011-10-071-0/+2
|
* swrast: remove unused swrast_texture_image::FetchTexelc methodBrian Paul2011-10-072-69/+2
| | | | We only use the float-valued function now.
* swrast: update texfetch_funcs table for new int/uint formatsBrian Paul2011-10-051-0/+325
| | | | | This only adds dummy entries to the table to fix failed assertions. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=41491
* swrast: fix delayed texel buffer allocation regressionBrian Paul2011-10-031-20/+20
| | | | | | | | Commit 617cdcd4c7b1cffb584c829c35bdf9c9bf04627b delayed the texel buffer allocation until texture_combine() is called. But the texel buffer is needed sooner in _swrast_texture_span() at line 649. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=41433
* swrast: When asked to map a slice of a 1D array, give back that slice.Eric Anholt2011-10-031-0/+7
| | | | | | | | | Until now, we've been treating 1D arrays as a single slice, and each array slice is actually just a row of the 2D texture. While swrast still stores them this way, hardware drivers think that 1D arrays have actual separate slices not stored as contiguous rows. Reviewed-by: Brian Paul <[email protected]>
* mesa: Delay s_texcombine.c memory allocation until it's used.Eric Anholt2011-10-012-11/+20
| | | | | | Generally we're using fragment programs in all our drivers, so wasting 4MB for code that's never called is pretty lame. Reduces i965 memory allocation for a short shader program from 21,932,128B to 17,737,816B.
* mesa: s/INLINE/inline/Brian Paul2011-10-0114-69/+69
| | | | | | | INLINE is still seen in some files (some generated files, etc) but this is a good start. Acked-by: Kenneth Graunke <[email protected]>
* swrast: always call _swrast_choose_texture_sample_func()Brian Paul2011-09-261-1/+1
| | | | | | _swrast_choose_texture_sample_func() handles null texture object pointers and will return the "null" sampler function which returns (0,0,0,1). This fixes a minor regression from ce82914f5ad4bb9148370826099925590e9798fd
* mesa: remove support for GL_APPLE_client_storage extensionBrian Paul2011-09-221-1/+1
| | | | | | | AFAIK, there are few users of this extension and I can see a couple reasons why this is probably broken in Mesa anyway. Reviewed-by: Ian Romanick <[email protected]>
* mesa: move gl_texture_image::Width/Height/DepthScale fields to swrastBrian Paul2011-09-225-9/+30
| | | | | | | These fields were only used for swrast so move them into swrast_texture_image. Reviewed-by: Ian Romanick <[email protected]>
* mesa: move gl_texture_image::_IsPowerOfTwo into swrastBrian Paul2011-09-224-11/+32
| | | | | | It's only used by swrast. Reviewed-by: Ian Romanick <[email protected]>
* swrast: s/GLubyte/GLchan/ in a castBrian Paul2011-09-201-1/+1
|
* mesa: move last bits of GLchan stuff into swrastBrian Paul2011-09-203-0/+122
| | | | | This removes the last remnants of the GLchan datatype and associated macros out of core Mesa and into swrast.
* mesa: Use ColorLogicOpEnabled instead of _LogicOpEnabledIan Romanick2011-09-193-3/+3
| | | | | | | | | | Since GL_EXT_blend_logic_op is removed, _LogicOpEnabled and ColorLogicOpEnabled always have the same value. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* swrast: fix more store_texel() bugsBrian Paul2011-09-181-4/+4
| | | | Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40412 on swrast.
* swrast: add Alloc/FreeTextureImageBuffer() driver functionsBrian Paul2011-09-172-0/+48
| | | | | Not called yet. These will replace the core Mesa functions for allocating and freeing malloc'd texture memory.
* mesa: move gl_texture_image::FetchTexel fields to swrastBrian Paul2011-09-176-252/+304
| | | | | This also involves passing swrast_texture_image instead of gl_texture_image into all the fetch functions.
* swrast: introduce new swrast_texture_image structBrian Paul2011-09-173-0/+63
| | | | | No subclass fields yet. Subsequent patches will add the fields related to software rendering that are currently in gl_texture_image.
* mesa: move software texel fetch code into swrastBrian Paul2011-09-175-2/+3448
| | | | It's only used by swrast now so move it out of core Mesa.
* mesa: move _mesa_update_fetch_functions() calls into swrastBrian Paul2011-09-171-2/+6
| | | | | | Do it during swrast state validation since the FetchTexel() functions are only called from swrast now and not core Mesa. Remove assertions in mipmap.c since they're no longer appropriate.
* mesa/colormac: introduce inline helper for 4 unclamped float to ubyte.Dave Airlie2011-09-142-14/+4
| | | | | | | | | This introduces an UNCLAMPED_FLOAT_TO_UBYTE x 4 inline function, as suggested by Brian. It uses it in a few places I noticed from previous color changes, and also some core mesa places. I haven't updated other places yet. Signed-off-by: Dave Airlie <[email protected]>
* mesa: introduce a clear color union to be used for int/unsigned buffersDave Airlie2011-09-141-21/+26
| | | | | | | | | | This introduces a new gl_color_union union and moves the current ClearColorUnclamped to use it, it removes current ClearColor completely and renames CCU to CC, then all drivers are modified to expected unclamped floats instead. also fixes st to use translated color in one place it wasn't. Signed-off-by: Dave Airlie <[email protected]>
* swrast: Silence many "warning: unused parameter ‘ctx’"Ian Romanick2011-09-091-0/+7
| | | | | Not all drivers use ctx in LOCAL_VARS, so '(void) ctx;' is added to all the function templates to make GCC happy.
* swrast: Use GL_STENCIL_INDEX for address calculationsIan Romanick2011-09-061-1/+1
| | | | | | | | | GL_COLOR_INDEX produced the same result (because GL_BITMAP is always used for stencil glDrawPixels), but it was confusing to read. I spent about 15 minutes wondering, "WTF?" Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* swrast: Remove GL_COLOR_INDEX from assertionsIan Romanick2011-09-061-4/+0
| | | | | | | | These sampling functions don't work on color-index textures, but there is no such thing as a color-index texture anymore. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* swrast: get rid of needless do/whileBrian Paul2011-08-311-2/+2
|
* swrast: initialize program native limitsBrian Paul2011-08-311-0/+22
| | | | Reviewed-by: Ian Romanick <[email protected]>
* swrast: Add implementation of MapTextureImage/UnmapTextureImage.Brian Paul2011-08-292-0/+123
| | | | Reviewed-by: Brian Paul <[email protected]>
* swrast: Remove swrast eject/validate texture image code.Brian Paul2011-08-241-79/+0
| | | | | | | No driver used the eject function, or set the validate hook that made that function do anything. Reviewed-by: Ian Romanick <[email protected]>
* swrast: don't try to do depth testing if there's no depth bufferBrian Paul2011-08-111-1/+2
| | | | | | | Fixes piglit hiz-depth-stencil-test-fbo-d0-s8 crash. See http://bugs.freedesktop.org/show_bug.cgi?id=37907 NOTE: This is a candidate for the 7.11 branch.
* swrast: initial multi-threaded span renderingAndreas Fänger2011-08-113-36/+66
| | | | | | | | Optional parallel rendering of spans using OpenMP. Initial implementation for aa triangles. A new option for scons is also provided to activate the openmp support (off by default). Signed-off-by: Brian Paul <[email protected]>
* swrast: silence unused var warningsFabio Pedretti2011-08-091-1/+1
| | | | Signed-off-by: Brian Paul <[email protected]>
* swrast: remove an unused-but-set variableMarek Olšák2011-07-151-11/+0
|
* mesa: implement packing of DEPTH_STENCIL & FLOAT_32_UNSIGNED_INT_24_8_REV comboMarek Olšák2011-07-111-1/+1
| | | | Tested with the new piglit fbo-depthstencil test.
* swrast: fix depth/stencil blits when there's no colorbufferMarek Olšák2011-07-101-3/+0
| | | | NOTE: This is a candidate for the 7.10 and 7.11 branches.