nvfx,nv50: pipe_reference the constant buffers
This commit is contained in:
@@ -721,17 +721,16 @@ nv50_set_constant_buffer(struct pipe_context *pipe, uint shader, uint index,
|
||||
struct nv50_context *nv50 = nv50_context(pipe);
|
||||
|
||||
if (shader == PIPE_SHADER_VERTEX) {
|
||||
nv50->constbuf[PIPE_SHADER_VERTEX] = buf;
|
||||
nv50->dirty |= NV50_NEW_VERTPROG_CB;
|
||||
} else
|
||||
if (shader == PIPE_SHADER_FRAGMENT) {
|
||||
nv50->constbuf[PIPE_SHADER_FRAGMENT] = buf;
|
||||
nv50->dirty |= NV50_NEW_FRAGPROG_CB;
|
||||
} else
|
||||
if (shader == PIPE_SHADER_GEOMETRY) {
|
||||
nv50->constbuf[PIPE_SHADER_GEOMETRY] = buf;
|
||||
} else {
|
||||
assert(shader == PIPE_SHADER_GEOMETRY);
|
||||
nv50->dirty |= NV50_NEW_GEOMPROG_CB;
|
||||
}
|
||||
|
||||
pipe_resource_reference(&nv50->constbuf[shader], buf);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -304,7 +304,7 @@ nvfx_set_constant_buffer(struct pipe_context *pipe, uint shader, uint index,
|
||||
{
|
||||
struct nvfx_context *nvfx = nvfx_context(pipe);
|
||||
|
||||
nvfx->constbuf[shader] = buf;
|
||||
pipe_resource_reference(&nvfx->constbuf[shader], buf);
|
||||
nvfx->constbuf_nr[shader] = buf ? (buf->width0 / (4 * sizeof(float))) : 0;
|
||||
|
||||
if (shader == PIPE_SHADER_VERTEX) {
|
||||
|
||||
Reference in New Issue
Block a user