aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util/u_blit.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' into pipe-format-simplifyMichal Krol2009-12-171-3/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * util: add new fragment shaders to simple_shadersMarek Olšák2009-12-151-2/+5
| | | | | | | | | | | | | | | | | | | | New shaders: * Fragment shader which writes depth sampled from a texture * Fragment shader which copies COLOR[0] to multiple render targets Additional improvements: * The fragment 'tex' shaders now take a sampler type (TGSI_TEXTURE_*) so that they can sample from any type of texture, not only from a 2D one.
| * gallium: interface cleanups, remove nblocksx/y from pipe_texture and moreRoland Scheidegger2009-11-301-1/+0
| | | | | | | | | | | | | | | | 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).
* | Move pf_get_block() to u_format auxiliary module.Michal Krol2009-12-031-1/+2
|/
* gallium: don't use arrays for texture width,height,depthKeith Whitwell2009-11-191-13/+13
|
* gallium: Permit surface_copy and surface_fill to be NULL.Corbin Simpson2009-10-171-5/+14
| | | | | | | | | | | | | Uf. Lots of files touched. Would people with working vega, xorg, dri1, etc. please make sure you are not broken, and fix yourself up if you are. There were only two or three places where the code did not have painful fallbacks, so I would advise st maintainers to find less painful workarounds, or consider overhauling util_surface_copy and util_surface_fill. Per ymanton, darktama, and Dr_Jakob's suggestions, clear has been left as-is. I will not add PIPE_CAP_BLITTER unless it is deemed necessary.
* util: do some more util_blit_pixels cases without temporariesKeith Whitwell2009-10-071-90/+73
| | | | | | When the source surface is pointing at a 2d texture with only one mipmap level, use that directly rather than creating a temporary. Probably want to cover more cases, but this is a start.
* util: add version of u_blit_pixels which takes a writemaskKeith Whitwell2009-09-031-13/+42
| | | | Values outside the writemask are set in the destination to {0,0,0,1}
* util: fix incorrect assertionBrian Paul2009-08-071-1/+1
| | | | Check that the dest surface/format is renderable.
* util: include u_surface.h, added commentBrian Paul2009-08-071-0/+2
|
* util: use util_same_surface() to compare surface pointersBrian Paul2009-08-071-3/+3
|
* util: added comment/question about blit clippingBrian Paul2009-08-051-0/+1
|
* util: added util_blit_pixels() overlap testBrian Paul2009-08-051-2/+34
| | | | A comment alluded to this. Now it's checked.
* util: fix util_blit_pixels() test for surface_copy() pathBrian Paul2009-08-051-16/+24
| | | | | | For the surface_copy() path require same format, no flipping and no stretching. Fixes progs/tests/copypixrate -blit
* util: reformatting and commentsBrian Paul2009-08-051-3/+10
|
* util: don't set unused blend stateKeith Whitwell2009-04-201-4/+0
| | | | Try to avoid creating multiple blend atoms.
* gallium: remove unneeded compressed=0 assignmentBrian Paul2009-04-091-1/+0
|
* gallium: consolidate bypass_vs and bypass_clipping flagsKeith Whitwell2009-03-131-19/+5
| | | | | | | | | The draw module provides a similar interface to the driver which is retained as various bits of hardware may be able to take on incremental parts of the vertex pipeline. However, there's no need to advertise all this complexity to the state tracker. There are basically two modes now - normal and passthrough/screen-coords.
* gallium: no need to keep a copy of shader tokens in state trackerKeith Whitwell2009-03-131-8/+2
| | | | | | | | Any driver who needs a copy of the shader tokens must organize to do so itself. This has been the case for a long time, but there was still defensive code in the state tracker, which is now removed. Any bugs resulting from this need to be fixed in the offending driver...
* gallium: Remove do_flip argument from surface_copyJakob Bornecrantz2009-03-131-2/+2
| | | | | | | I should have gotten most uses and implementation correctly fixed, but things might break. Feel free to blame me.
* gallium: Unify reference counting.Michel Dänzer2009-03-041-8/+9
| | | | | | | | | | | | | | 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().
* gallium: Add pipe_buffer_write/read inlines.José Fonseca2009-02-241-14/+4
| | | | Saves code, and will simplify future interface changes.
* util: Move p_debug.h into util module.José Fonseca2009-02-181-1/+1
| | | | | The debug functions depend on several util function for os abstractions, and these depend on debug functions, so a seperate module is not possible.
* gallium: make p_winsys internalZack Rusin2009-01-301-1/+0
| | | | | move it to pipe/internal/p_winsys_screen.h and start converting the state trackers to the screen usage
* gallium: standardize api on the prefix "nr"Zack Rusin2009-01-271-2/+2
|
* gallium: avoid mapping same vertex buffer in subsequent framesKeith Whitwell2008-12-121-26/+62
| | | | | | | | | | | 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.
* util: Use OpenGL rasterization rules in blits and mipmap generation.Brian Paul2008-11-141-0/+1
|
* gallium: Use pipe_buffer_* inlines as much as possible.José Fonseca2008-09-041-11/+11
|
* gallium: refactor/replace p_util.h with util/u_memory.h and util/u_math.hBrian Paul2008-08-241-2/+3
| | | | Also, rename p_tile.[ch] to u_tile.[ch]
* gallium: Finer grained is_format_supported.José Fonseca2008-07-191-4/+8
|
* gallium: Don't forget to get overllaping blits working again.José Fonseca2008-07-031-0/+1
|
* gallium: Use surface_copy for 1:1 blits.José Fonseca2008-07-031-0/+10
|
* gallium: Drop pipe_texture->cpp and pipe_surface->cpp.José Fonseca2008-06-271-1/+1
| | | | | The chars-per-pixel concept falls apart with compressed and yuv images, where more than one pixel are coded in a single data block.
* gallium: Fix whole source being used in u_blitJakob Bornecrantz2008-06-241-16/+54
|
* util: Blit can now copy from texture to surfaceJakob Bornecrantz2008-06-231-0/+101
|
* util: Use pf_get_size().Michal Krol2008-06-141-1/+1
|
* gallium: fix build after mergeKeith Whitwell2008-05-021-3/+3
|
* Merge branch 'gallium-0.1' into gallium-tex-surfacesKeith Whitwell2008-05-021-0/+2
|\
| * gallium: Notify driver of texture updates in util_blit_pixels().Michel Dänzer2008-05-011-0/+2
| |
* | gallium: tex surface checkpointKeith Whitwell2008-05-011-1/+2
|/
* gallium: added some assertions to be sure the blit's surface formats are ↵Brian Paul2008-04-291-0/+3
| | | | suitable
* gallium: setup an identity viewportBrian Paul2008-04-221-4/+6
| | | | This fixes broken blits.
* use cso fs/vs handle functionsKeith Whitwell2008-04-211-2/+2
|
* gallium: Set all state via cso_context in blit/gen_mipmap utils.José Fonseca2008-04-211-3/+7
| | | | | | | | cso_restore_* functions are implemented on top of cso_set_*, therefore they require full knowledge of the current pipe state to work correctly. Directly calling pipe's set_*_state functions will lead to undefined state. Also save and restore shaders.
* gallium: return pipe_shader_state from the simple shader functionsBrian2008-03-271-2/+8
| | | | Allows us to fix a mem leak (tokens array).
* gallium: fix incorrect types for shadersBrian2008-03-271-3/+2
|
* gallium: set fb.width/heightBrian2008-03-201-0/+2
|
* gallium: create one vertex buffer and re-useBrian2008-03-201-5/+75
|
* gallium: explict float castsKeith Whitwell2008-03-191-1/+5
|
* gallium: implement CSO save/restore functions for use by meta operations ↵Brian2008-03-191-65/+60
| | | | | | | (blit, gen-mipmaps, quad-clear, etc) Also, additional cso_set_*() functions for viewport, framebuffer, blend color, etc. state.