r600g: Put shaders into immutable buffers.
Put the shader programs into an immutable buffer object. Also make sure that those object can be taken from the user space buffer object pool.
This commit is contained in:
parent
b0f1767d77
commit
2f0b44f981
|
@ -2258,7 +2258,7 @@ int r600_vertex_elements_build_fetch_shader(struct r600_pipe_context *rctx, stru
|
|||
ve->fs_size = bc.ndw*4;
|
||||
|
||||
/* use PIPE_BIND_VERTEX_BUFFER so we use the cache buffer manager */
|
||||
ve->fetch_shader = r600_bo(rctx->radeon, ve->fs_size, 256, PIPE_BIND_VERTEX_BUFFER, 0);
|
||||
ve->fetch_shader = r600_bo(rctx->radeon, ve->fs_size, 256, PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_IMMUTABLE);
|
||||
if (ve->fetch_shader == NULL) {
|
||||
r600_bc_clear(&bc);
|
||||
return -ENOMEM;
|
||||
|
|
|
@ -85,7 +85,8 @@ static int r600_pipe_shader(struct pipe_context *ctx, struct r600_pipe_shader *s
|
|||
|
||||
/* copy new shader */
|
||||
if (shader->bo == NULL) {
|
||||
shader->bo = r600_bo(rctx->radeon, rshader->bc.ndw * 4, 4096, 0, 0);
|
||||
/* use PIPE_BIND_VERTEX_BUFFER so we use the cache buffer manager */
|
||||
shader->bo = r600_bo(rctx->radeon, rshader->bc.ndw * 4, 4096, PIPE_BIND_VERTEX_BUFFER, PIPE_USAGE_IMMUTABLE);
|
||||
if (shader->bo == NULL) {
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue