summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/softpipe/sp_tile_cache.c
AgeCommit message (Collapse)Author
2010-02-02gallium: pipe/p_inlines.h -> util/u_inlines.hJosé Fonseca
2009-12-17Move the remaining format pf_get_* functions to u_format.h.Michal Krol
Previously they depended on format blocks, but after removing those they started depending on format encoding.
2009-12-17Merge branch 'master' into pipe-format-simplifyMichal Krol
Conflicts: src/gallium/auxiliary/draw/draw_pipe_aaline.c src/gallium/auxiliary/draw/draw_pipe_pstipple.c src/gallium/auxiliary/util/u_blit.c src/gallium/auxiliary/util/u_gen_mipmap.c src/gallium/auxiliary/util/u_surface.c src/gallium/auxiliary/vl/vl_mpeg12_mc_renderer.c src/gallium/drivers/cell/ppu/cell_texture.c src/gallium/drivers/llvmpipe/lp_texture.c src/gallium/drivers/r300/r300_emit.c src/gallium/drivers/r300/r300_texture.c src/gallium/drivers/softpipe/sp_texture.c src/gallium/drivers/softpipe/sp_tile_cache.c src/gallium/drivers/svga/svga_state_vs.c src/gallium/include/pipe/p_format.h src/gallium/state_trackers/dri/dri_drawable.c src/gallium/state_trackers/egl/egl_surface.c src/gallium/state_trackers/python/p_device.i src/gallium/state_trackers/python/st_softpipe_winsys.c src/gallium/state_trackers/vega/api_filters.c src/gallium/state_trackers/vega/image.c src/gallium/state_trackers/vega/mask.c src/gallium/state_trackers/vega/paint.c src/gallium/state_trackers/vega/renderer.c src/gallium/state_trackers/vega/vg_tracker.c src/gallium/state_trackers/xorg/xorg_crtc.c src/gallium/state_trackers/xorg/xorg_dri2.c src/gallium/state_trackers/xorg/xorg_exa.c src/gallium/state_trackers/xorg/xorg_renderer.c src/gallium/state_trackers/xorg/xorg_xv.c src/gallium/state_trackers/xorg/xvmc/surface.c src/gallium/winsys/drm/nouveau/drm/nouveau_drm_api.c src/gallium/winsys/drm/radeon/core/radeon_buffer.c src/gallium/winsys/egl_xlib/sw_winsys.c src/gallium/winsys/g3dvl/xlib/xsp_winsys.c src/gallium/winsys/gdi/gdi_llvmpipe_winsys.c src/gallium/winsys/gdi/gdi_softpipe_winsys.c src/gallium/winsys/xlib/xlib_cell.c src/gallium/winsys/xlib/xlib_llvmpipe.c src/gallium/winsys/xlib/xlib_softpipe.c src/mesa/state_tracker/st_cb_fbo.c src/mesa/state_tracker/st_cb_texture.c src/mesa/state_tracker/st_texture.c
2009-12-03Move pf_get_bits/size() to u_format auxiliary module.Michal Krol
2009-11-30gallium: interface cleanups, remove nblocksx/y from pipe_texture and moreRoland Scheidegger
This patch removes nblocksx, nblocksy arrays from pipe_texture (can be recalculated if needed). Furthermore, pipe_format_block struct is gone completely (again, contains just derived state). nblocksx, nblocksy, block are also removed from pipe_transfer, together with the format enum (can be obtained from the texture associated with the transfer).
2009-10-10Merge branch 'mesa_7_6_branch'Brian Paul
2009-10-10softpipe: revert 564df9dc5f6335eb8dc68f3c69cf054d2142663cBrian Paul
This change silenced valgrind warnings but broke progs/tests/drawbuffers. The problem is we don't know the surface's state when we start caching it (it may or may not be initialized/cleared/etc). So "clearing" it here was presumptuous. Leaving the code in place (but disabled) for reference and when using valgrind. Fixes bug 24401
2009-09-29Merge branch 'mesa_7_6_branch'Brian Paul
Conflicts: Makefile configs/default docs/relnotes.html src/gallium/drivers/softpipe/sp_context.c src/gallium/drivers/softpipe/sp_tile_cache.c src/mesa/main/version.h
2009-09-29softpipe: initialize the clear_flags bitvector in sp_create_tile_cache()Brian Paul
This silences tons of valgrind warnings in programs that don't call glClear(), such as progs/demos/gamma.
2009-09-23Merge branch 'mesa_7_6_branch'Brian Paul
Conflicts: src/gallium/drivers/softpipe/sp_tile_cache.c
2009-09-23softpipe: added max texture/surface size sanity checkBrian Paul
2009-09-23softpipe: increase MAX_WIDTH/HEIGTH 4096 to match max texture sizeBrian Paul
2009-08-23Merge branch 'tex-tilecache' into softpipe-optKeith Whitwell
Conflicts: src/gallium/drivers/softpipe/sp_state_derived.c src/gallium/drivers/softpipe/sp_state_sampler.c src/gallium/drivers/softpipe/sp_tex_sample.c src/gallium/drivers/softpipe/sp_tex_sample.h src/gallium/drivers/softpipe/sp_tile_cache.c
2009-08-21softpipe: minor code refactoring to remove softpipe/tile cache dependenciesBrian Paul
The tile cache code now has no hard dependencies on softpipe.
2009-08-18softpipe: fix typo in clear_tileKeith Whitwell
2009-08-18softpipe: split texture and surface tile cachesKeith Whitwell
These do similar jobs but with largely disjoint code. Will want to evolve them separately going forward.
2009-07-23softpipe: also shortcircuit non-texture tile lookupsKeith Whitwell
2009-07-22softpipe: shortcircuit repeated lookups of the same tileKeith Whitwell
The sp_tile_cache is often called repeatedly to look up the same tile. Add a cache (to the cache) of the single tile most recently retreived and make a quick inline check to see if this matches the subsequent request. Add a tile_address bitfield struct to make this check easier.
2009-07-22softpipe: make some small steps to flush texture cache less frequentlyKeith Whitwell
No performance gain yet, but the code is a bit cleaner.
2009-07-22softpipe: remove backwards dependency from tilecache to softpipeKeith Whitwell
The tile cache is a utility, it shouldn't know anything about the entity which is making use of it (ie softpipe). Remove softpipe parameter to all the tilecache function calls, and also remove the need to keep a softpipe pointer in the sampler structs.
2009-04-06softpipe: clean up the buffer clear and tile cache code a littleBrian Paul
2009-04-03softpipe: add additional surface formats in tile cache codeBrian Paul
2009-03-18softpipe: more texture transfer fixes.Brian Paul
Need to null-out pointers after freeing transfer objects. Fix mix-ups between tc->transfer and tc->tex_trans fields.
2009-03-18softpipe: need to set tc->transfer=NULL after destroying the transfer objectBrian Paul
This fixes a number of crashes/regressions in programs such as lodbias.c, mipmap_limits.c, etc.
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-02-18Merge branch 'gallium-texture-transfer'Michel Dänzer
Conflicts: src/gallium/drivers/softpipe/sp_tile_cache.c
2009-02-16softpipe: some improvements to texture tile cacheBrian Paul
Use a somewhat better function in tex_cache_pos() to get better caching. Increase number of cache entries to 50. Also fix a texture invalidation bug. If texture is marked as modified, invalidate all texture tiles.
2009-02-12gallium: Fix a couple of potential NULL pointer dereferences.Michel Dänzer
A lot more test programs work.
2009-02-12softpipe: Unbreak keeping track of cached surface.Michel Dänzer
glxgears works.
2009-02-12Cosmetic: Rename struct pipe_transfer pointers from 'ps' to 'pt'.Michel Dänzer
Missed these for the initial gallium-texture-transfer commit.
2009-02-05gallium: No longer allow CPU mapping surfaces directly.Michel Dänzer
Instead, a new pipe_transfer object has to be created and mapped for transferring data between the CPU and a texture. This gives the driver more flexibility for textures in address spaces that aren't CPU accessible. This is a first pass; softpipe/xlib builds and runs glxgears, but it only shows a black window. Looks like something's off related to the Z buffer, so the depth test always fails.
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.
2008-11-23softpipe: remove old/unneeded dependencies between TGSI exec and softpipeBrian
Use tgsi_sampler struct as a base class. Softpipe subclasses it and adds the fields it needs.
2008-08-24gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul
Also, rename p_tile.[ch] to u_tile.[ch]
2008-08-07softpipe: add support for PIPE_FORMAT_X8Z24_UNORM, PIPE_FORMAT_Z24X8_UNORMBrian Paul
2008-07-24softpipe: Remove unused variables.José Fonseca
2008-07-13util: Eliminate pipe from the arguments to pipe_get/put_tile_xxx functions.José Fonseca
You don't need a pipe_context * for this, and all other necessary info is already inside pipe_surface.
2008-06-20gallium: fix some surface usage bugsBrian Paul
When a surface is created with GPU_WRITE that really means "GPU render" and that can involve reads (blending). Set surface usage to PIPE_BUFFER_USAGE_CPU_READ + WRITE. Fixes progs/demos/lodbias demo. Also, mark texture as 'modified' when mapped for writing so that the tile cache can know when to freshen a cached tile. Fixes glTexSubImage2D().
2008-05-30gallium: fix some PIPE_FORMAT_Z24S8_UNORM bugs in softpipe driverBrian Paul
2008-05-06Merge commit 'origin/gallium-0.1' into gallium-tex-surfacesKeith Whitwell
Conflicts: src/mesa/state_tracker/st_atom_sampler.c src/mesa/state_tracker/st_cb_texture.c
2008-05-02gallium: fix typos, comments, whitespaceBrian Paul
2008-05-01softpipe: use CPU flags for mappingKeith Whitwell
But when creating surfaces, adjust incoming flags from GPU->CPU usage.
2008-05-01gallium: tex surface checkpointKeith Whitwell
2008-04-30gallium: replace old PIPE_FORMAT_U_S8 with PIPE_FORMAT_S8_UNORMBrian Paul
2008-04-22softpipe: make NUM_ENTRIES 32 so that div/mods are easierKeith Whitwell
2008-03-19gallium: set tc->surface_map = NULL after unmappingBrian
2008-02-27gallium: remove pipe_context->texture_create/release/get_tex_surface()Brian
These functions are now per-screen, not per-context.
2008-02-26gallium: remove pipe parameter from pipe_texture_reference()Brian
Added pipe field to pipe_texture (temporary, see comments). First step toward context-less texture creation...
2008-02-20gallium: new pipe->texture_update() functionBrian
Called whenever texture data is changed (glTexImage, glTexSubImage, glCopyTexSubImage, etc).
2008-02-20gallium: use pipe_texture_reference() in sp_tile_cache_set_texture()Brian