summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/softpipe/sp_texture.c
AgeCommit message (Collapse)Author
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-21softpipe: added region assertions in softpipe_get_tex_transfer()Brian Paul
2010-01-20softpipe: Remove unnecessary headers.Vinson Lee
2010-01-19softpipe: remove redundant assignmentsBrian Paul
We initialized width/height/depth from pt->width0/height0/depth0 above.
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-04softpipe: fix double-minify in texture layoutKeith Whitwell
2009-12-03Move pf_get_block() 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-11-19gallium: don't use arrays for texture width,height,depthKeith Whitwell
2009-10-07softpipe: new commentsBrian Paul
2009-10-02gallium: Preparations for adding more PIPE_TRANSFER_* usage flags.Michel Dänzer
Always test for PIPE_TRANSFER_READ/WRITE using the bit-wise and operator, and add a pipe_transfer_buffer_flags() helper for getting the buffer usage flags corresponding to them.
2009-09-27g3dvl: Formatting and cleanups.Younes Manton
2009-09-27g3dvl: pipe_video_context interface, softpipe impl, auxiliary libsYounes Manton
2009-09-23Merge branch 'softpipe-opt'Keith Whitwell
Conflicts: progs/demos/cubemap.c src/gallium/drivers/softpipe/sp_tex_sample.c src/gallium/drivers/softpipe/sp_texture.c
2009-09-10softpipe: remove no-op softpipe_init_texture_funcs() functionBrian Paul
2009-09-10softpipe: remove unused #includes, move commentBrian Paul
2009-09-10softpipe: reformatting, clean-ups, commentsBrian Paul
2009-08-21softpipe: rework texture sampling codeKeith Whitwell
Split into component pieces, stitch together at runtime using function pointers. Make it possible to utilize the existing fastpaths as image-level filters for generic mip-filtering routines. Remove special case for rectangle filtering, as it can now be handled by the 2d path. As most of the mesa demo texturing was already covered by fast paths, its harder to find examples of speedups, but tunnel gets a boost as mip-nearest filtering is now able to access the img_2d_linear_wrap_POT functions for sampling within a mipmap level.
2009-08-11gallium: Add texture usage information to surface_buffer_createJakob Bornecrantz
We need aditional meta data about the usage of the surface in softpipe because we need to be able tell the diffrence between PRIMARY and DISPLAY_TARGET surfaces.
2009-08-07gallium: Move minify() to u_math.Corbin Simpson
minify() is usually used in mipmap size calculation. Strangely enough, we all defined it as MAX2(1, d >> 1); imagine that. :3
2009-08-05softpipe: Also defere primary textures to backendJakob Bornecrantz
2009-07-30softpipe: Mark texture dirty when unmapped.Chia-I Wu
When a texutre transfer is mapped for writing, mark the texture dirty when unmapped. This was done in surface creation, and this commit moves it to happen in texture unmapping. This fixes subtex test in progs/tests/. Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
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-05-27softpipe: include sp_winsys.h to silence warning (unprototyped function)Brian Paul
2009-04-23gallium/intel/gem: Use softpipe rather than i915simple if INTEL_SOFTPIPE is set.Michel Dänzer
2009-04-07softpipe: minor debug-help changes in softpipe_transfer_map()Brian Paul
2009-03-23gallium: Remove remnants of reference counting internals outside of p_refcnt.h.Michel Dänzer
2009-03-16softpipe: Use p_atomic_read, not atomic_read.Michal Krol
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: 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-24softpipe: minor code simplification for face/zslice offset calculationBrian Paul
2009-02-24softpipe: minor code movement in softpipe_get_tex_transfer()Brian Paul
2009-02-16Merge branch 'master' into gallium-texture-transferKeith Whitwell
Conflicts: src/mesa/state_tracker/st_cb_accum.c src/mesa/state_tracker/st_cb_drawpixels.c
2009-02-07softpipe: simplify an assertionBrian Paul
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.
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-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-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.
2008-12-22softpipe: Don't fill surfaces's winsys fields.José Fonseca
This is sometimes checked to distinguish between texture views and (deprecated) standalone surfaces.
2008-12-22softpipe: Call surface_alloc_storage to get the pipebuffer for display targets.José Fonseca
Otherwise blitting from display target surfaces to front screen fails in several platforms.
2008-12-22softpipe: initialize refcount and winsysJerome Glisse
2008-12-22softpipe: convert to use texture instead of surfaceJerome Glisse
2008-09-04softpipe: Use pipe_buffer_* inlines as much as possible.José Fonseca
2008-09-03gallium: Have pipe_buffer_* receive a pipe_screen instead of a pipe_context.José Fonseca
We want to use the pipe_buffer_* inlines everywhere, but a pipe context is not always available nor is it needed.
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-07-05softpipe: Compute block size for display targets.José Fonseca
2008-07-05softpipe: Implement texture blankets.José Fonseca
2008-06-27gallium: Drop pipe_texture->cpp and pipe_surface->cpp.José Fonseca
The chars-per-pixel concept falls apart with compressed and yuv images, where more than one pixel are coded in a single data block.