summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_atom_constbuf.c
AgeCommit message (Collapse)Author
2009-04-22st: also check _NEW_PROGRAM flag for vertex shader constant buffersBrian Paul
This is a follow-on to commit c1a3b852807fb160f0cd246c1364b7336b4b947e. Note that (at this time) wherever _NEW_PROGRAM_CONSTANTS is set we're still setting _NEW_PROGRAM so this won't really make any difference (for now).
2009-04-21st: play it safe for now and check _NEW_PROGRAM for shader const buffer atomBrian Paul
When a new program is bound but no constants are updated we still need to update the Gallium const buffer.
2009-04-21st: do away with dynamic state atom for const buffersBrian Paul
Just use the new _NEW_PROGRAM_CONSTANTS flag instead.
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-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-24gallium: Add pipe_buffer_write/read inlines.José Fonseca
Saves code, and will simplify future interface changes.
2009-01-27gallium: remove redundant size from the constant bufferZack Rusin
reuse the size of the actual buffer
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-14mesa: Don't use alignments < 4.José Fonseca
2008-05-02revert mode change back to 644Alan Hourihane
2008-05-02Some changed for non-C99 compilersAlan Hourihane
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-04gallium: Always allocate new const buffers instead of modifying existing ones.Michel Dänzer
2008-03-21gallium: fix const buffer update bugBrian
If only glUniform is called between two renderings, the const buffers weren't getting updated. Need to set the _NEW_PROGRAM flag in st_upload_constants() as that's the dirty flag set by glUniform. Fixes glean tapi2 test.
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-25gallium: Simplify winsys buffer interface.Michel Dänzer
The properties of a buffer represented by struct pipe_buffer_handle are now basically constant over its lifetime. The state tracker gets to deal with any more complex buffer semantics it may need to provide.
2007-12-09add fence interfaces and buffer create flags to pipe_winsyskeithw
2007-11-06Supply buffer usage hints to winsys.José Fonseca
Winsys driver needs some hints in order to allocate the appropriate kind of memory for the buffer.
2007-10-30make st_upload_constants() publicBrian
2007-09-28remove old debug code, fix warningBrian
2007-09-26better debuggingBrian
2007-09-25better debug outputBrian
2007-09-17silence warningBrian
2007-08-25add missing fileskeithw