diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_pipe.h | 8 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_shader.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/r600/r600_state_common.c | 2 |
4 files changed, 10 insertions, 4 deletions
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c index b5280e32160..3a69eb23bf1 100644 --- a/src/gallium/drivers/r600/r600_pipe.c +++ b/src/gallium/drivers/r600/r600_pipe.c @@ -540,7 +540,7 @@ static int r600_get_shader_param(struct pipe_screen* pscreen, unsigned shader, e case PIPE_SHADER_CAP_MAX_CONSTS: return R600_MAX_CONST_BUFFER_SIZE; case PIPE_SHADER_CAP_MAX_CONST_BUFFERS: - return R600_MAX_CONST_BUFFERS-1; + return R600_MAX_USER_CONST_BUFFERS; case PIPE_SHADER_CAP_MAX_PREDS: return 0; /* nothing uses this */ case PIPE_SHADER_CAP_TGSI_CONT_SUPPORTED: diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index 7f1902564cc..2287d6371ff 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -36,7 +36,13 @@ #define R600_NUM_ATOMS 36 -#define R600_MAX_CONST_BUFFERS 2 +#define R600_MAX_USER_CONST_BUFFERS 1 +#define R600_MAX_DRIVER_CONST_BUFFERS 1 +#define R600_MAX_CONST_BUFFERS (R600_MAX_USER_CONST_BUFFERS + R600_MAX_DRIVER_CONST_BUFFERS) + +/* start driver buffers after user buffers */ +#define R600_UCP_CONST_BUFFER (R600_MAX_USER_CONST_BUFFERS) + #define R600_MAX_CONST_BUFFER_SIZE 4096 #ifdef PIPE_ARCH_BIG_ENDIAN diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c index 8862d0ee70b..782fa4c469c 100644 --- a/src/gallium/drivers/r600/r600_shader.c +++ b/src/gallium/drivers/r600/r600_shader.c @@ -1516,7 +1516,7 @@ static int r600_shader_from_tgsi(struct r600_screen *rscreen, alu.src[0].chan = j; alu.src[1].sel = 512 + i; - alu.src[1].kc_bank = 1; + alu.src[1].kc_bank = R600_UCP_CONST_BUFFER; alu.src[1].chan = j; alu.dst.sel = ctx.temp_reg + oreg; diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c index 7cd84bcac81..e7062c384a3 100644 --- a/src/gallium/drivers/r600/r600_state_common.c +++ b/src/gallium/drivers/r600/r600_state_common.c @@ -218,7 +218,7 @@ static void r600_set_clip_state(struct pipe_context *ctx, cb.user_buffer = state->ucp; cb.buffer_offset = 0; cb.buffer_size = 4*4*8; - ctx->set_constant_buffer(ctx, PIPE_SHADER_VERTEX, 1, &cb); + ctx->set_constant_buffer(ctx, PIPE_SHADER_VERTEX, R600_UCP_CONST_BUFFER, &cb); pipe_resource_reference(&cb.buffer, NULL); } |