Mesa (gallium-map-range): gallium: Unify reference counting.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Wed Mar 4 15:45:00 UTC 2009
Module: Mesa
Branch: gallium-map-range
Commit: 5e27cd46c04a9e7b5904cc014bffd0f4daae31fe
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e27cd46c04a9e7b5904cc014bffd0f4daae31fe
Author: Michel Dänzer <daenzer at vmware.com>
Date: Wed Mar 4 11:58:48 2009 +0100
gallium: Unify reference counting.
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().
---
src/gallium/auxiliary/draw/draw_pipe_aaline.c | 4 +-
src/gallium/auxiliary/draw/draw_pipe_pstipple.c | 4 +-
src/gallium/auxiliary/pipebuffer/pb_buffer.h | 25 +---
.../auxiliary/pipebuffer/pb_buffer_fenced.c | 16 ++--
.../auxiliary/pipebuffer/pb_buffer_malloc.c | 2 +-
src/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c | 11 +-
src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c | 8 +-
src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c | 6 +-
.../auxiliary/pipebuffer/pb_bufmgr_ondemand.c | 2 +-
src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c | 8 +-
src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c | 6 +-
src/gallium/auxiliary/sct/sct.c | 2 +-
src/gallium/auxiliary/util/u_blit.c | 17 ++--
src/gallium/auxiliary/util/u_debug.c | 4 +-
src/gallium/auxiliary/util/u_draw_quad.c | 2 +-
src/gallium/auxiliary/util/u_gen_mipmap.c | 17 ++--
src/gallium/auxiliary/util/u_rect.c | 6 +-
src/gallium/auxiliary/util/u_simple_screen.c | 28 ++++-
src/gallium/auxiliary/util/u_timed_winsys.c | 7 +-
src/gallium/drivers/cell/ppu/cell_fence.c | 6 +-
src/gallium/drivers/cell/ppu/cell_texture.c | 65 ++++-------
src/gallium/drivers/failover/fo_context.c | 2 +-
src/gallium/drivers/i915simple/i915_prim_vbuf.c | 2 +-
src/gallium/drivers/i915simple/i915_screen.c | 16 +--
src/gallium/drivers/i915simple/i915_texture.c | 72 ++++--------
src/gallium/drivers/i965simple/brw_tex_layout.c | 38 ++----
.../drivers/i965simple/brw_wm_surface_state.c | 2 +-
src/gallium/drivers/nouveau/nouveau_stateobj.h | 12 +--
src/gallium/drivers/nv04/nv04_miptree.c | 33 ++----
src/gallium/drivers/nv04/nv04_transfer.c | 11 +--
src/gallium/drivers/nv10/nv10_miptree.c | 43 +++----
src/gallium/drivers/nv10/nv10_prim_vbuf.c | 6 +-
src/gallium/drivers/nv10/nv10_transfer.c | 11 +--
src/gallium/drivers/nv20/nv20_miptree.c | 46 +++-----
src/gallium/drivers/nv20/nv20_prim_vbuf.c | 6 +-
src/gallium/drivers/nv20/nv20_transfer.c | 11 +--
src/gallium/drivers/nv30/nv30_fragprog.c | 3 +-
src/gallium/drivers/nv30/nv30_miptree.c | 33 ++----
src/gallium/drivers/nv30/nv30_transfer.c | 11 +--
src/gallium/drivers/nv40/nv40_fragprog.c | 3 +-
src/gallium/drivers/nv40/nv40_miptree.c | 33 ++----
src/gallium/drivers/nv40/nv40_transfer.c | 11 +--
src/gallium/drivers/nv50/nv50_miptree.c | 41 +++-----
src/gallium/drivers/nv50/nv50_program.c | 6 +-
src/gallium/drivers/nv50/nv50_query.c | 6 +-
src/gallium/drivers/nv50/nv50_screen.c | 6 +-
src/gallium/drivers/nv50/nv50_transfer.c | 13 +--
src/gallium/drivers/r300/r300_screen.c | 16 +--
src/gallium/drivers/r300/r300_swtcl_emit.c | 5 +-
src/gallium/drivers/r300/r300_texture.c | 48 +++------
src/gallium/drivers/softpipe/sp_context.c | 3 +-
src/gallium/drivers/softpipe/sp_state_fs.c | 4 +-
src/gallium/drivers/softpipe/sp_texture.c | 76 +++++--------
src/gallium/drivers/softpipe/sp_tile_cache.c | 14 +-
src/gallium/drivers/trace/tr_screen.c | 122 ++++++--------------
src/gallium/drivers/trace/tr_state.c | 12 ++-
src/gallium/drivers/trace/tr_texture.c | 4 +-
src/gallium/drivers/trace/tr_winsys.c | 8 +-
.../include/pipe/internal/p_winsys_screen.h | 3 +-
src/gallium/include/pipe/p_inlines.h | 113 ------------------
src/gallium/include/pipe/p_refcnt.h | 84 ++++++++++++++
src/gallium/include/pipe/p_screen.h | 16 +--
src/gallium/include/pipe/p_state.h | 47 ++++++--
src/gallium/state_trackers/dri2/dri_drawable.c | 2 +-
src/gallium/state_trackers/egl/egl_surface.c | 6 +-
src/gallium/state_trackers/g3dvl/vl_basic_csc.c | 6 +-
.../state_trackers/g3dvl/vl_r16snorm_mc_buf.c | 8 +-
src/gallium/state_trackers/python/st_device.c | 24 +++--
src/gallium/state_trackers/python/st_device.h | 6 +-
.../state_trackers/python/st_softpipe_winsys.c | 4 +-
src/gallium/state_trackers/xorg/xorg_crtc.c | 4 +-
src/gallium/state_trackers/xorg/xorg_dri2.c | 2 +-
src/gallium/state_trackers/xorg/xorg_exa.c | 12 +-
.../winsys/drm/intel/gem/intel_be_batchbuffer.c | 4 +-
src/gallium/winsys/drm/intel/gem/intel_be_device.c | 19 +---
src/gallium/winsys/drm/intel/gem/intel_be_fence.h | 18 +--
.../winsys/drm/nouveau/common/nouveau_context.c | 7 +-
.../winsys/drm/nouveau/common/nouveau_context.h | 2 +-
.../drm/nouveau/common/nouveau_winsys_pipe.c | 6 +-
src/gallium/winsys/drm/radeon/radeon_buffer.c | 10 +-
src/gallium/winsys/drm/radeon/radeon_drm.c | 3 +-
src/gallium/winsys/egl_xlib/sw_winsys.c | 6 +-
src/gallium/winsys/g3dvl/xsp_winsys.c | 4 +-
src/gallium/winsys/gdi/gdi_softpipe_winsys.c | 7 +-
src/gallium/winsys/xlib/xlib_brw_screen.c | 7 +-
src/gallium/winsys/xlib/xlib_cell.c | 4 +-
src/gallium/winsys/xlib/xlib_softpipe.c | 7 +-
src/mesa/state_tracker/st_atom_constbuf.c | 2 +-
src/mesa/state_tracker/st_atom_pixeltransfer.c | 2 +-
src/mesa/state_tracker/st_cb_accum.c | 18 ++--
src/mesa/state_tracker/st_cb_bitmap.c | 16 ++--
src/mesa/state_tracker/st_cb_bufferobjects.c | 5 +-
src/mesa/state_tracker/st_cb_clear.c | 8 +-
src/mesa/state_tracker/st_cb_drawpixels.c | 12 +-
src/mesa/state_tracker/st_cb_fbo.c | 3 +-
src/mesa/state_tracker/st_cb_readpixels.c | 8 +-
src/mesa/state_tracker/st_cb_texture.c | 16 ++--
src/mesa/state_tracker/st_context.c | 2 +-
src/mesa/state_tracker/st_draw.c | 10 +-
src/mesa/state_tracker/st_draw_feedback.c | 4 +-
src/mesa/state_tracker/st_gen_mipmap.c | 4 +-
src/mesa/state_tracker/st_texture.c | 10 +-
102 files changed, 653 insertions(+), 943 deletions(-)
Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=5e27cd46c04a9e7b5904cc014bffd0f4daae31fe
More information about the mesa-commit
mailing list