summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary/pipebuffer
AgeCommit message (Collapse)Author
2010-03-21gallium: cached bufmgr add map busy checkDave Airlie
Suggested by Jose on the list, probably not perfect but will let me get past this for now, testing with a fenced bufmgr on top of this, was slower, Also this doesn't let you do the busy early exit optimisation either from what I can see. Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-02-23pipebuffer: slab: if size < alignment, use alignment to find bucketLuca Barbieri
If the size is lower than the alignment, we must use the alignment to select the bucket. Otherwise, the selected bucket won't be able to satisfy our request and will fail. Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-02-23pipebuffer: fix inverted signalled checkingLuca Barbieri
A return of 0 means the fence is signalled. Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-02-23pipebuffer: avoid assert due to increasing a zeroed refcntLuca Barbieri
The cache manager stores buffers with a reference count that dropped to 0. pipe_reference asserts in this case on debug builds, so use pipe_reference_init instead. Signed-off-by: José Fonseca <jfonseca@vmware.com>
2010-02-22pipebuffer: Don't synchronize when checking for buffer overflows.José Fonseca
To avoid masking synchronization issues in debug builds.
2010-02-10gallium: cast to silence waringBrian Paul
2010-02-10gallium: use os_time.h in pb_bufmgr_cache.cBrian Paul
Untested, but seems straightforward.
2010-02-02gallium: Move p_thread.h and p_atomic.h out of gallium interfaces.José Fonseca
Into os/os_thread.h and util/u_atomic.h respectively.
2010-02-02gallium: pipe/p_inlines.h -> util/u_inlines.hJosé Fonseca
2010-01-25pipebuffer: Reapply the mesa_7_7_branch's changes.José Fonseca
After the last mesa_7_7_branch merge the old master code remained, instead of the newer mesa_7_7_branch's code. This commit makes both branches match, modulo interface changes. Note: future mesa_7_7_branch -> master merges will most likely hit conflicts in these files. Unless otherwise stated, the mesa_7_7_branch is the reference.
2010-01-22gallium/aux: re-add pb_buffer_fenced.[ch] accidentally remove during mergeBrian Paul
2010-01-22Merge branch 'mesa_7_7_branch'Brian Paul
Conflicts: src/gallium/auxiliary/draw/draw_context.c src/gallium/auxiliary/draw/draw_pt_fetch_shade_pipeline.c src/gallium/auxiliary/pipebuffer/Makefile src/gallium/auxiliary/pipebuffer/SConscript src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/auxiliary/tgsi/tgsi_scan.c src/gallium/drivers/i915/i915_surface.c src/gallium/drivers/i915/i915_texture.c src/gallium/drivers/llvmpipe/lp_setup.c src/gallium/drivers/llvmpipe/lp_tex_sample_c.c src/gallium/drivers/llvmpipe/lp_texture.c src/gallium/drivers/softpipe/sp_prim_vbuf.c src/gallium/state_trackers/xorg/xorg_dri2.c src/gallium/winsys/drm/intel/gem/intel_drm_api.c src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c src/gallium/winsys/drm/radeon/core/radeon_drm.c src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c src/mesa/state_tracker/st_cb_clear.c
2010-01-21pipebuffer: Remove unnecessary header.Vinson Lee
2010-01-21pipebuffer: Release the lock during map wait. Cleanups.José Fonseca
2010-01-21pipebuffer: Swap buffers out to system memory when running out of memory.José Fonseca
2010-01-18pipebuffer: Ensure buffer size/alignment is not zero.José Fonseca
2010-01-14Merge branch 'mesa_7_7_branch'Jakob Bornecrantz
Conflicts: src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/auxiliary/util/Makefile src/gallium/drivers/r300/r300_state_derived.c
2010-01-07Revert "pipebuffer: Multi-threading fixes for fencing."Jakob Bornecrantz
This reverts commit 5b64d94390e4805e1634f0c8b5e3156e12b8b872.
2010-01-06Merge remote branch 'origin/mesa_7_7_branch'José Fonseca
Conflicts: configs/default src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/mesa/main/version.h
2010-01-06pipebuffer: Multi-threading fixes for fencing.José Fonseca
I had this patch on my hard drive for long time. It doesn't fully address SVGA multi-threading issues, but causes no regressions, so decided to commit while it still applies cleanly. Attention: merging this into master will cause issues due to recent changes in reference counting to fix strict aliasing rules violation.
2010-01-01gallium: Generate a single library for auxiliaries with Make too.José Fonseca
2010-01-01scons: Aggregate all tiny libraries in a single library.José Fonseca
Makes integration of gallium into out of tree components much easier. No pratical change for components in this tree,
2009-12-03gallium: fix ref counting bug in pb_bufmgrJosé Fonseca
This was discovered by the pipe_reference api change.
2009-12-03gallium: fix reference counting functions to be strict-aliasing compliantRoland Scheidegger
Historically, parts of mesa code are not strict-aliasing safe, hence -fno-strict-aliasing is needed to compile (this got forgotten for scons builds for gallium, which indeed not only caused compiler warnings but also unexplicable crashes in non-debug builds). However, we should try to eliminate code not complying with strict-aliasing code at least for gallium. Hence change pipe_reference functions to make them strict-aliasing compliant. This adds a bit more complexity (especially for derived classes) but is the right thing to do, and it does in fact fix a segfault.
2009-11-19pb: Make fenced buffers threadsafe.José Fonseca
2009-11-02gallium/util: add casts to silence warningsBrian Paul
2009-10-25gallium: Move enum pipe_error into p_defines.h.José Fonseca
It's really just another define. No need for its own header.
2009-10-05Merge branch 'mesa_7_6_branch'Brian Paul
Conflicts: src/gallium/auxiliary/util/u_cpu_detect.c
2009-10-02gallium: replace // comments with /* */Brian Paul
2009-09-24pipebuffer: fix printf warningsKeith Whitwell
2009-09-24pipebuffer: fix warningsKeith Whitwell
2009-07-06pipebuffer: handle possible null pointer dereferenceZack Rusin
reported by clang static analyzer
2009-06-18pipebuffer: Use a type consistently for sizes/offsets.José Fonseca
Avoids warnings on 64bit builds. Use regular unsigned since that's what gallium expects, but use a typedef to facilitate possible changes in the future.
2009-06-08pipebuffer: Silence out of heap space debug printJakob Bornecrantz
2009-05-08pb: Save the stack backtrace when creating/mapping a debug buffer.José Fonseca
2009-05-08pb: Dump the fenced buffer sizes.José Fonseca
2009-04-24pipebuffer: don't fail when validating mapped buffersKeith Whitwell
This can be almost impossible to avoid - hopefully we won't encounter a situation where this is a true requirement. Would probably require drivers to flush between hardware and software vertex processing.
2009-03-25Add #ifdefs needed to compile Gallium on Solaris with gcc or Sun ccAlan Coopersmith
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-03-23gallium: Remove remnants of reference counting internals outside of p_refcnt.h.Michel Dänzer
2009-03-16gallium: Use struct pipe_atomic for pipe refcounts.Thomas Hellstrom
Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-03-04gallium: Remove some superfluous instances of #include "p_inlines.h".Michel Dänzer
2009-03-04gallium: Unify reference counting.Michel Dänzer
The core reference counting code is centralized in p_refcnt.h. This has some consequences related to struct pipe_buffer: * The screen member of struct pipe_buffer must be initialized, or pipe_buffer_reference() will crash trying to destroy a buffer with reference count 0. u_simple_screen takes care of this, but I may have missed some of the drivers not using it. * Except for rare exceptions deep in winsys code, buffers must always be allocated via pipe_buffer_create() or via screen->*buffer_create() rather than via winsys->*buffer_create().
2009-03-03Merge commit 'origin/gallium-0.1'José Fonseca
Conflicts: src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
2009-03-03pipebuffer: Cleanup merge.José Fonseca
2009-03-03pb: fix up merge mistakesKeith Whitwell
2009-03-03pipebuffer: Fix copy'n'paste typo.José Fonseca
2009-03-03Merge commit 'origin/gallium-0.1'Keith Whitwell
Conflicts: scons/gallium.py src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c src/gallium/include/pipe/p_defines.h src/mesa/vbo/vbo_exec_api.c src/mesa/vbo/vbo_exec_draw.c
2009-03-02pipebuffer: Cleanup code & comments.José Fonseca
2009-03-02pipebuffer: Handle PIPE_BUFFER_USAGE_DONTBLOCK flag.José Fonseca
Conflicts: src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
2009-03-02pipebuffer: Wait for the GPU to finish reading too.José Fonseca
No real change, as we're not tracking relocations read/write access yet.