gallium: change set_constant_buffer to be UBO-friendly

This commit is contained in:
Marek Olšák
2012-04-24 19:52:26 +02:00
parent 1b749dc34f
commit 507337864f
32 changed files with 139 additions and 97 deletions

View File

@@ -614,24 +614,23 @@ static void
rbug_set_constant_buffer(struct pipe_context *_pipe,
uint shader,
uint index,
struct pipe_resource *_resource)
struct pipe_constant_buffer *_cb)
{
struct rbug_context *rb_pipe = rbug_context(_pipe);
struct pipe_context *pipe = rb_pipe->pipe;
struct pipe_resource *unwrapped_resource;
struct pipe_resource *resource = NULL;
struct pipe_constant_buffer cb;
/* XXX hmm? unwrap the input state */
if (_resource) {
unwrapped_resource = rbug_resource_unwrap(_resource);
resource = unwrapped_resource;
if (_cb) {
cb = *_cb;
cb.buffer = rbug_resource_unwrap(_cb->buffer);
}
pipe_mutex_lock(rb_pipe->call_mutex);
pipe->set_constant_buffer(pipe,
shader,
index,
resource);
_cb ? &cb : NULL);
pipe_mutex_unlock(rb_pipe->call_mutex);
}