summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_texture.h
AgeCommit message (Collapse)Author
2009-04-17gallium: Create OGL state tracker wrappers for various CPU access operations.Thomas Hellstrom
There are two usage types of buffer CPU accesses: One where we try to use the buffer contents for multiple draw commands in a batch. (batch := sequence of commands that are flushed together), like incrementally adding bitmaps to a bitmap texture that is reallocated on flush. And one where we assume we can safely overwrite the old buffer contexts, like glTexSubImage. In this case we need to make sure all old drawing commands referencing the buffer are flushed before we map the buffer. This is easily forgotten. Add wrappers for the most common of these operations. The first type is prefixed with "st_no_flush" and the second type is prefixed with "st_cond_flush", where "cond" indicates that we attmpt to only flush if there is indeed unflushed draw commands referencing the buffer. Prefixed functions are screen::get_tex_transfer pipe_buffer_write pipe_buffer_read pipe_buffer_map Please use the wrappers whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-15gallium: Make sure we flush before some texture / buffer operations.Thomas Hellstrom
Also implement context member functions to optimize away those flushes whenever possible. Signed-off-by: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
2009-04-09st: remove comp_byte parameter to st_texture_create()Brian Paul
We can determine if the texture is compressed by checking the format.
2009-03-31gallium: Move pf_is_depth_stencil to p_format.h.José Fonseca
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.
2008-09-01gallium: move st_texture_image() cast wrapper to header fileBrian Paul
2008-05-09gallium: depth textures have usage depth_stencil instead of render_targetRoland Scheidegger
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: Add texture usage flags, special-case allocation of display targetsKeith Whitwell
For many envirionments it's necessary to allocate display targets in a window-system friendly manner. Add facilities so that a driver can tell if a texture is likely to be used to generate a display surface and if use special allocation paths if necessary. Hook up softpipe to call into the winsys->surface_alloc_storage() routine in this case, though we probably want to change that interface slightly also.
2008-05-02gallium: Reallocate pipe_texture in st_TexImage if the texture object was used.Michel Dänzer
Fixes problems with interleaved glTexImage and rendering calls.
2008-05-01gallium: tex surface checkpointKeith Whitwell
2008-03-19gallium: add face, dirtyLevels params to pipe->texture_update()Brian Paul
This provides better information about which images in texture object have changed. Also, call texture_update() from more places previously missed.
2008-02-20gallium: state tracker didn't always notify drivers of texobj data changesBrian
Calling glTexSubImage() or glTexImage() to replace texture data didn't reliably cause pipe->set_sampler_texture() to get called so drivers didn't always get notified of new texture data. The st_texture_object->pt pointer doesn't always indicate changed data so added a dirtyData field.
2008-02-12gallium: remove unused first_level param from st_texture_create()Brian
2008-02-12gallium: clean-up, simplification of mipmapped texturesBrian
Remove pipe_texture->first_level (always implicitly zero). This means there's never any unused mipmap levels at the top. In the state tracker, we no longer re-layout mipmapped textures if the MinLod/MaxLod texture parameters change. It's up to the driver to obey the pipe_sampler->min/max_lod clamps.
2008-02-06comments, clean-ups, constsBrian
2008-01-04gallium: Make texture target an enum for better debuggability.Michel Dänzer
Also make enum pipe_format used in a couple more places.
2007-12-11Remove internal_format field from struct pipe_texture.Michel Dänzer
It's state tracker specific / not really necessary anyway.
2007-12-10Remove stray references to struct pipe_region.Michel Dänzer
2007-12-07Eliminate struct pipe_region.Michel Dänzer
Directly use struct pipe_buffer_handle for storage and struct pipe_surface for (un)mapping.
2007-12-06Hide texture layout details from the state tracker.Michel Dänzer
pipe->get_tex_surface() has to be used for access to texture image data.