summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/util
AgeCommit message (Collapse)Author
2009-02-11gallium: const-correctness for u_linear.c functionsBrian Paul
2009-02-11gallium: silence warnings about void ptr arithmeticBrian Paul
2009-02-02gallium: remove pipe_buffer from surfacesZack Rusin
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.
2009-02-01util: List new file in sconscript.José Fonseca
2009-01-31gallium: initialize simple screen in driversZack Rusin
2009-01-30gallium: add a convience wrapper for simple screensZack Rusin
forwards screen calls to the winsys
2009-01-30gallium: make p_winsys internalZack Rusin
move it to pipe/internal/p_winsys_screen.h and start converting the state trackers to the screen usage
2009-01-30Merge branch 'gallium-0.2' into gallium-winsys-privateJosé Fonseca
2009-01-30util: Define ffs for MinGW.José Fonseca
2009-01-29gallium: give the screen priority when it comes to buffer allocationsZack Rusin
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
2009-01-27gallium: standardize api on the prefix "nr"Zack Rusin
2009-01-27gallium: standardize on stride instead of pitch in the interfaceZack Rusin
2009-01-20gallium: Remove the standalone surfaces.José Fonseca
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.
2009-01-19util: add reduced prim helperKeith Whitwell
2009-01-19Merge commit 'origin/gallium-0.2' into gallium-xlib-reworkKeith Whitwell
2009-01-17debug: add noprefix version of debug_dump_enumKeith Whitwell
2009-01-14gallium: Disable memory debugging for Windows OGL.José Fonseca
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..
2008-12-31util: List new file in SConscript.José Fonseca
2008-12-30gallium: Initialize var before use.José Fonseca
2008-12-22Merge commit 'origin/gallium-0.1' into gallium-0.2José Fonseca
Conflicts: src/gallium/auxiliary/util/Makefile
2008-12-22gallium: const correctness.José Fonseca
2008-12-20gallium: Fix typo in define name.José Fonseca
2008-12-19gallium: begin adapting Ian's 3D mipmap gen code to gallium utility libBrian Paul
Unfinished, a big no-op for now.
2008-12-19gallium: Fix typeo in mipmap filter for GL_UNSIGNED_SHORT_1_5_5_5_REVBrian Paul
This is copied from Ian's commit a330933bb75c38148668637cd22b90d75d39506f
2008-12-19gallium: Simple and efficient cache.José Fonseca
Fixed size hash table. Collisions are handled by simply destroying the previous entry. It hasn't received much testing yet.
2008-12-19gallium: replace #elif with #elseBrian Paul
2008-12-19gallium: replace #elif with #elseBrian Paul
2008-12-18Gallium: fix for conform testRobert Ellison
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
2008-12-18Gallium: fix for conform testRobert Ellison
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
2008-12-18gallium: Enable memory debugging on all windows platforms.José Fonseca
2008-12-17gallium: fix memory corruption in u_gen_mipmap.cBrian Paul
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.
2008-12-17gallium: fix memory corruption in u_gen_mipmap.cBrian Paul
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.
2008-12-15Merge commit 'origin/gallium-0.1' into gallium-0.2Alan Hourihane
Conflicts: src/gallium/winsys/gdi/SConscript
2008-12-12gallium: avoid mapping same vertex buffer in subsequent framesKeith Whitwell
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.
2008-12-12gallium: fixes for srgb, new srgb formatsRoland Scheidegger
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)
2008-12-10Merge commit 'origin/gallium-0.1' into gallium-0.2Brian Paul
2008-12-10util: new funcs for triming/validating primitivesKeith Whitwell
2008-12-09Merge commit 'origin/gallium-0.1' into gallium-0.2Alan Hourihane
2008-12-09gallium: Abort by default on windows user space.José Fonseca
2008-11-24util: Add generic tile and detile functionsJakob Bornecrantz
2008-11-21CELL: use variant-length fragment ops programsRobert Ellison
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.
2008-11-19Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell
2008-11-17gallium: Use costum log2 for all windows builds.José Fonseca
2008-11-17gallium: State when there are no memory leaks detected.José Fonseca
2008-11-17gallium: Make handle_table reentrant.José Fonseca
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.
2008-11-17gallium: State when there are no memory leaks detected.José Fonseca
2008-11-17gallium: Make handle_table reentrant.José Fonseca
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.
2008-11-15Merge commit 'origin/gallium-0.1' into gallium-0.2Keith Whitwell
Conflicts: src/mesa/drivers/dri/common/dri_util.c
2008-11-14gallium: increase table size for fast log/pow functionsBrian Paul
The various conformance tests pass now.
2008-11-14util: Use OpenGL rasterization rules in blits and mipmap generation.Brian Paul