summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_cb_fbo.c
AgeCommit message (Collapse)Author
2008-09-17gallium: new assertion on surface->textureBrian Paul
2008-07-04gallium: replace assertion with conditionalBrian Paul
2008-06-27gallium: handle msaaRoland Scheidegger
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.
2008-06-19gallium: remove unused varsBrian Paul
2008-05-26gallium: free renderbuffer's old texture in st_renderbuffer_alloc_storage()Brian Paul
2008-05-09gallium: depth textures have usage depth_stencil instead of render_targetRoland Scheidegger
2008-05-08gallium: re-enable call to init_renderbuffer_bits(), remove dead codeBrian Paul
2008-05-07gallium: fix some render to texture bugsBrian Paul
Before, we were sometimes rendering into a stale texture because st_finalize_texture() would discard the old texture and create a new one. Moved st_update_framebuffer atom after texture validation so that we can create a new renderbuffer surface if the texture changes. Also, split texture validation into two parts: finalize_textures and update_textures. Do finalize_textures first to avoid getting into the situtation where we're doing a pipe->surface_copy() mid-way through state validation. Some debug code still in place, but disabled...
2008-05-06gallium: create drawing surfaces as GPU_READ/WRITE onlyBrian Paul
Create different temporary surfaces for CPU_READ/WRITE when needed (such as for glReadPixels, glAccum, some glCopy/DrawPixels, glCopyTexSubImage, etc).
2008-05-06gallium: create renderbuffer surface w/out CPU_READ/WRITE flagsMichal Danzer
2008-05-02gallium: set template.target = PIPE_TEXTURE_2DBrian Paul
2008-05-02gallium: identify depth-stencil texturesKeith Whitwell
And don't use the display-target path to allocate them.
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: remove usage of winsys->surface_alloc_storage from state trackerKeith Whitwell
Allocate a texture containing storage instead. Also clean up ACCUM buffer allocation slightly -- drivers will need some changes to texture allocation logic to accomodate the concept of a texture that will only as image storage by the CPU, but it's cleaner than it was.
2008-05-01gallium: tex surface checkpointKeith Whitwell
2008-04-30gallium: use new buffer wrapper functions in p_inlines.hBrian Paul
This allows us to remove most of the direct references to winsys in the state tracker.
2008-04-29gallium: added some assertions to st_render_texture() to check surface formatBrian Paul
Make sure we can really render to the texture surface given its format.
2008-04-25gallium: Tell the driver the texture is updated when we finish rendering to it.Michel Dänzer
2008-04-24gallium: Initial support for pixel formats with unused storage components.Michel Dänzer
Also clarify that RGB formats with no (used) alpha component are treated as having alpha = 1.0.
2008-04-07gallium: accum buffer fixesBrian Paul
If the driver can't create a PIPE_FORMAT_R16G16B16A16_SNORM surface, create an accum surface using a shallower format and taller height. Since only the accum buffer code accesses the surface the actual format doesn't really matter, just that there's enough memory.
2008-04-07gallium: clean-up in st_renderbuffer_alloc_storage()Brian Paul
2008-03-26gallium: Change pipe->flush() interface to optionally return a fence.Michel Dänzer
The cell driver still uses an internal CELL_FLUSH_WAIT flag, in the long run proper fencing should be implemented for it.
2008-02-27gallium: remove pipe_context->texture_create/release/get_tex_surface()Brian
These functions are now per-screen, not per-context.
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-01-25gallium: rename pipe_buffer_handle to pipe_buffer, rework pipebuffer/ codeKeith Whitwell
Provide an actual definition of the pipe_buffer struct, containing the parameters used to create the buffer, and its refcount. Shift refcounting buffers out of the winsys interface, similar to surfaces & textures. Rework pipebuffer/ to reflect the fact these changes, and also Michel's reworking of the buffer interface.
2008-01-17Back-port miscellaneous fixes from internal branch (mostly portability fixes).José Fonseca
These are changes that are in our internal branch, but somehow were skipped so far. It was done using visual comparison of the branches -- it is likely that changes are being carried on the wrong way
2008-01-14Remove mapping fields from struct pipe_surface.Michel Dänzer
It's now the responsibility of surface users to keep track of their mappings.
2007-12-20gallium: make state tracker explictly ask for rendercache flushesKeith Whitwell
2007-12-13add missing code for PIPE_FORMAT_S8_UNORM renderbufferBrian
2007-12-12Re-org of st_create_framebuffer() and renderbuffer format selection.Brian
st_create_framebuffer() now takes pipe_formats for the color, depth, stencil buffers. This avoids a round-about chain of calls to pipe->is_format_supported() for window renderbuffers (their format never changes). Renderbuffer format selection code in st_format.c is simpler now too.
2007-12-11Add surface storage allocation function to winsys interface.José Fonseca
2007-12-10XXX comments about some hard-coded values that need to be fixedBrian
2007-12-10Add 'type' parameter to is_format_supported() to specify texture vs. drawing ↵Brian
surface, etc. Additional types may be added in the future.
2007-12-10Fix up some confusion wrt winsys->buffer_create alignment / flags parameters.Michel Dänzer
intel_winsys works again.
2007-12-09Adapt for winsys interface changes.José Fonseca
2007-12-07Define PIPE_FORMAT_ tokens as an enum set, rather than #defines.Brian
This makes debugging a _lot_ easier. In gdb, "print format" used to display 613570600, now you see PIPE_FORMAT_A8R8G8B8_UNORM.
2007-12-07move surface pitch calculation so it always gets updatedBrian
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.
2007-11-29Move dimensions from struct pipe_region to struct pipe_surface.Michel Dänzer
2007-11-08new init_renderbuffer_bits() helperBrian
2007-11-07Add winsys->surface_release() to complement winsys->surface_alloc().Brian
pipe_surface now has a pointer to the winsys which create/owns the surface. This allows clean surface deallocation w/out a rendering context.
2007-11-06realloc surface if format changes, remove dead codeBrian
2007-10-29Make it compile under linux.Michal Krol
Move pipe_region/surface_reference functions to pipe/p_inlines.h. Remove #include "p_util.h" from pipe/p_context.h.
2007-10-27Use PIPE_FORMAT in state tracker.michal
Fix PIPE_FORMAT field encoding. Re-implement st_get_format_info.
2007-10-26surface_alloc() is now a winsys function.Brian
This allows surfaces to be allocated without a rendering context. A few loose ends to resolve, but in working condition.
2007-10-25Move region_alloc() and region_release() to pipe_winsys.Brian
This allows regions to be allocated w/out a rendering context.
2007-10-23Don't pad renderbuffers to multiple of two pixels anymore.Brian
This was only needed to avoid out-of-bounds memory accesses with the 2x2 quad_read/write() functions which no longer exist.
2007-10-20unmap regions when reallocating renderbuffer storageBrian