summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util
Commit message (Collapse)AuthorAgeFilesLines
* gallium: remove pipe_buffer from surfacesZack Rusin2009-02-021-18/+18
| | | | | | | this change disassociates, at least from the driver perspective, the surface from buffer. surfaces are technically now views on the textures so make it so by hiding the buffer in the internals of textures.
* util: List new file in sconscript.José Fonseca2009-02-011-0/+1
|
* gallium: initialize simple screen in driversZack Rusin2009-01-311-1/+1
|
* gallium: add a convience wrapper for simple screensZack Rusin2009-01-303-1/+192
| | | | forwards screen calls to the winsys
* gallium: make p_winsys internalZack Rusin2009-01-305-17/+14
| | | | | move it to pipe/internal/p_winsys_screen.h and start converting the state trackers to the screen usage
* Merge branch 'gallium-0.2' into gallium-winsys-privateJosé Fonseca2009-01-301-0/+4
|\
| * util: Define ffs for MinGW.José Fonseca2009-01-301-0/+4
| |
* | gallium: give the screen priority when it comes to buffer allocationsZack Rusin2009-01-291-12/+13
|/ | | | | | allows the driver to overwrite buffer allocation, first step on the way to making winsys interface internal to the drivers. state trackers and the code above it will go through the screen
* gallium: standardize api on the prefix "nr"Zack Rusin2009-01-272-3/+3
|
* gallium: standardize on stride instead of pitch in the interfaceZack Rusin2009-01-271-1/+1
|
* gallium: Remove the standalone surfaces.José Fonseca2009-01-201-38/+7
| | | | | | | | | | | | | | | | | | | | | | | | | This commit is mostly just a cosmetic change that cleans-up the interfaces, replacing pipe_winsys::surface_* calls by /** * Allocate storage for a display target surface. * * Often surfaces which are meant to be blitted to the front screen (i.e., * display targets) must be allocated with special characteristics, memory * pools, or obtained directly from the windowing system. * * This callback is invoked by the pipe_screenwhen creating a texture marked * with the PIPE_TEXTURE_USAGE_DISPLAY_TARGET flag to get the underlying * buffer storage. */ struct pipe_buffer *(*surface_buffer_create)(struct pipe_winsys *ws, unsigned width, unsigned height, enum pipe_format format, unsigned usage, unsigned *stride); Most drivers were updated but not all were tested. Use the softpipe pipe driver and the xlib winsys changes as a reference when fixing other drivers.
* util: add reduced prim helperKeith Whitwell2009-01-191-0/+16
|
* Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell2009-01-191-1/+1
|\
| * gallium: Disable memory debugging for Windows OGL.José Fonseca2009-01-141-1/+1
| | | | | | | | | | | | | | | | | | | | Unfortunately both Mesa and Gallium use the same defines for memory allocation (MALLOC, FREE, etc), and worse, some times memory is allocated with one set and freed with the other set, causing the homegrown memory debugger to trip on itself. In the future mesa and gallium should use different names, but for now, memory debugging on Windows will have to be carried with different tools..
* | debug: add noprefix version of debug_dump_enumKeith Whitwell2009-01-171-0/+26
|/
* util: List new file in SConscript.José Fonseca2008-12-311-0/+1
|
* gallium: Initialize var before use.José Fonseca2008-12-301-1/+1
|
* Merge commit 'origin/gallium-0.1' into gallium-0.2José Fonseca2008-12-227-1/+477
|\ | | | | | | | | | | Conflicts: src/gallium/auxiliary/util/Makefile
| * gallium: const correctness.José Fonseca2008-12-224-18/+18
| |
| * gallium: Fix typo in define name.José Fonseca2008-12-201-1/+1
| |
| * gallium: Simple and efficient cache.José Fonseca2008-12-196-0/+476
| | | | | | | | | | | | | | Fixed size hash table. Collisions are handled by simply destroying the previous entry. It hasn't received much testing yet.
| * gallium: replace #elif with #elseBrian Paul2008-12-191-1/+1
| |
| * Gallium: fix for conform testRobert Ellison2008-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following construction in util_surface_copy() in gallium/auxiliary/util/u_rect.c, introduced in commit d177c9ddda2c452cf7d6696d89cf4458ef986f98, incorrectly inverts the Y coordinate in the last parameter to pipe_copy_rect(). /* If do_flip, invert src_y position and pass negative src stride */ pipe_copy_rect(dst_map, &dst->block, dst->stride, dst_x, dst_y, w, h, src_map, do_flip ? -(int) src->stride : src->stride, src_x, do_flip ? w - src_y : src_y); The intention is to start at the last Y coordinate line and move backwards, in the case of a flip; in that case, the correct calculation is "src_y + h - 1", not "w - src_y". This fixes a Gallium assertion failure in the conformance tests: u_rect.c:65:pipe_copy_rect: Assertion `src_y >= 0' failed. debug_get_bool_option: GALLIUM_ABORT_ON_ASSERT = TRUE Trace/breakpoint trap
| * gallium: Enable memory debugging on all windows platforms.José Fonseca2008-12-181-1/+1
| |
| * gallium: fix memory corruption in u_gen_mipmap.cBrian Paul2008-12-171-10/+9
| | | | | | | | | | | | | | | | | | Remove the old/initial vbuf allocation in util_create_gen_mipmap(). We were allocating a small vbuf at this point so get_next_slot() didn't have as large of buffer as it expected. So all but the first set_vertex_data() was writing out of bounds. Also added some comments.
* | gallium: begin adapting Ian's 3D mipmap gen code to gallium utility libBrian Paul2008-12-191-6/+576
| | | | | | | | Unfinished, a big no-op for now.
* | gallium: Fix typeo in mipmap filter for GL_UNSIGNED_SHORT_1_5_5_5_REVBrian Paul2008-12-191-1/+1
| | | | | | | | This is copied from Ian's commit a330933bb75c38148668637cd22b90d75d39506f
* | gallium: replace #elif with #elseBrian Paul2008-12-191-1/+1
| |
* | Gallium: fix for conform testRobert Ellison2008-12-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following construction in util_surface_copy() in gallium/auxiliary/util/u_rect.c, introduced in commit d177c9ddda2c452cf7d6696d89cf4458ef986f98, incorrectly inverts the Y coordinate in the last parameter to pipe_copy_rect(). /* If do_flip, invert src_y position and pass negative src stride */ pipe_copy_rect(dst_map, &dst->block, dst->stride, dst_x, dst_y, w, h, src_map, do_flip ? -(int) src->stride : src->stride, src_x, do_flip ? w - src_y : src_y); The intention is to start at the last Y coordinate line and move backwards, in the case of a flip; in that case, the correct calculation is "src_y + h - 1", not "w - src_y". This fixes a Gallium assertion failure in the conformance tests: u_rect.c:65:pipe_copy_rect: Assertion `src_y >= 0' failed. debug_get_bool_option: GALLIUM_ABORT_ON_ASSERT = TRUE Trace/breakpoint trap
* | gallium: fix memory corruption in u_gen_mipmap.cBrian Paul2008-12-171-10/+9
| | | | | | | | | | | | | | | | | | Remove the old/initial vbuf allocation in util_create_gen_mipmap(). We were allocating a small vbuf at this point so get_next_slot() didn't have as large of buffer as it expected. So all but the first set_vertex_data() was writing out of bounds. Also added some comments.
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Alan Hourihane2008-12-156-35/+120
|\| | | | | | | | | | | Conflicts: src/gallium/winsys/gdi/SConscript
| * gallium: avoid mapping same vertex buffer in subsequent framesKeith Whitwell2008-12-126-35/+120
| | | | | | | | | | | | | | | | | | | | | | Quite a few util modules were maintaining a single vertex buffer over multiple frames, and potentially reusing it in subsequent frames. Unfortunately that would force us into syncrhonous rendering as the buffer manager would be forced to wait for the previous rendering to complete prior to allowing the map. This resolves that issue, but requires the state tracker to issue a few new flush() calls at the end of each frame.
* | gallium: fixes for srgb, new srgb formatsRoland Scheidegger2008-12-121-1/+10
| | | | | | | | | | | | | | | | add some more srgb texture formats, including compressed ones various fixes relating to srgb formats issues: the util code for generating mipmaps will not handle srgb formats correctly (would need to use a linear->srgb conversion shader)
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul2008-12-101-0/+122
|\|
| * util: new funcs for triming/validating primitivesKeith Whitwell2008-12-101-0/+122
| |
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Alan Hourihane2008-12-091-1/+1
|\|
| * gallium: Abort by default on windows user space.José Fonseca2008-12-091-1/+1
| |
* | util: Add generic tile and detile functionsJakob Bornecrantz2008-11-243-0/+130
| |
* | CELL: use variant-length fragment ops programsRobert Ellison2008-11-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a set of changes that optimizes the memory use of fragment operation programs (by using and transmitting only as much memory as is needed for the fragment ops programs, instead of maximal sizes), as well as eliminate the dependency on hard-coded maximal program sizes. State that is not dependent on fragment facing (i.e. that isn't using two-sided stenciling) will only save and transmit a single fragment operation program, instead of two identical programs. - Added the ability to emit a LNOP (No Operation (Load)) instruction. This is used to pad the generated fragment operations programs to a multiple of 8 bytes, which is necessary for proper operation of the dual instruction pipeline, and also required for proper SPU-side decoding. - Added the ability to allocate and manage a variant-length struct cell_command_fragment_ops. This structure now puts the generated function field at the end, where it can be as large as necessary. - On the PPU side, we now combine the generated front-facing and back-facing code into a single variant-length buffer (and only use one if the two sets of code are identical) for transmission to the SPU. - On the SPU side, we pull the correct sizes out of the buffer, allocate a new code buffer if the one we have isn't large enough, and save the code to that buffer. The buffer is deallocated when the SPU exits. - Commented out the emit_fetch() static function, which was not being used.
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell2008-11-191-6/+8
|\|
| * gallium: Use costum log2 for all windows builds.José Fonseca2008-11-171-6/+8
| |
| * gallium: State when there are no memory leaks detected.José Fonseca2008-11-171-0/+6
| |
| * gallium: Make handle_table reentrant.José Fonseca2008-11-171-8/+26
| | | | | | | | | | | | | | Ensure that the object has consistent state also when calling the destroy callback. Namely, ensure the object passed to the callback is removed from the table prior to calling the destroy callback to avoid a infinite loop or double free.
* | gallium: State when there are no memory leaks detected.José Fonseca2008-11-171-0/+6
| |
* | gallium: Make handle_table reentrant.José Fonseca2008-11-171-8/+26
| | | | | | | | | | | | | | Ensure that the object has consistent state also when calling the destroy callback. Namely, ensure the object passed to the callback is removed from the table prior to calling the destroy callback to avoid a infinite loop or double free.
* | Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell2008-11-152-6/+8
|\| | | | | | | | | | | Conflicts: src/mesa/drivers/dri/common/dri_util.c
| * gallium: increase table size for fast log/pow functionsBrian Paul2008-11-142-4/+6
| | | | | | | | The various conformance tests pass now.
| * util: Use OpenGL rasterization rules in blits and mipmap generation.Brian Paul2008-11-142-0/+2
| |
| * util: Optimise log2().Michal Krol2008-11-121-1/+2
| |
| * util: Add log2() definition for MSC.Michal Krol2008-11-121-0/+5
| |