mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-01 21:08:11 +02:00
radeonsi: move clip plane constant buffer to RW buffers
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
698821bda3
commit
860b658b97
4 changed files with 12 additions and 14 deletions
|
|
@ -783,9 +783,9 @@ void si_upload_const_buffer(struct si_context *sctx, struct r600_resource **rbuf
|
|||
util_memcpy_cpu_to_le32(tmp, ptr, size);
|
||||
}
|
||||
|
||||
static void si_set_constant_buffer(struct si_context *sctx,
|
||||
struct si_buffer_resources *buffers,
|
||||
uint slot, struct pipe_constant_buffer *input)
|
||||
void si_set_constant_buffer(struct si_context *sctx,
|
||||
struct si_buffer_resources *buffers,
|
||||
uint slot, struct pipe_constant_buffer *input)
|
||||
{
|
||||
assert(slot < buffers->desc.num_elements);
|
||||
pipe_resource_reference(&buffers->buffers[slot], NULL);
|
||||
|
|
@ -1413,14 +1413,6 @@ void si_emit_graphics_shader_userdata(struct si_context *sctx,
|
|||
unsigned i;
|
||||
uint32_t *sh_base = sctx->shader_userdata.sh_base;
|
||||
|
||||
if (sctx->gs_shader.cso) {
|
||||
/* The VS copy shader needs this for clipping. */
|
||||
unsigned vs_base = R_00B130_SPI_SHADER_USER_DATA_VS_0;
|
||||
unsigned i = PIPE_SHADER_VERTEX;
|
||||
|
||||
si_emit_shader_pointer(sctx, &sctx->const_buffers[i].desc, vs_base, true);
|
||||
}
|
||||
|
||||
if (sctx->rw_buffers.desc.pointer_dirty) {
|
||||
si_emit_shader_pointer(sctx, &sctx->rw_buffers.desc,
|
||||
R_00B030_SPI_SHADER_USER_DATA_PS_0, true);
|
||||
|
|
|
|||
|
|
@ -1690,8 +1690,9 @@ static void si_llvm_emit_clipvertex(struct lp_build_tgsi_context *bld_base,
|
|||
unsigned chan;
|
||||
unsigned const_chan;
|
||||
LLVMValueRef base_elt;
|
||||
LLVMValueRef ptr = LLVMGetParam(ctx->radeon_bld.main_fn, SI_PARAM_CONST_BUFFERS);
|
||||
LLVMValueRef constbuf_index = lp_build_const_int32(base->gallivm, SI_DRIVER_STATE_CONST_BUF);
|
||||
LLVMValueRef ptr = LLVMGetParam(ctx->radeon_bld.main_fn, SI_PARAM_RW_BUFFERS);
|
||||
LLVMValueRef constbuf_index = lp_build_const_int32(base->gallivm,
|
||||
SI_VS_CONST_CLIP_PLANES);
|
||||
LLVMValueRef const_resource = build_indexed_load_const(ctx, ptr, constbuf_index);
|
||||
|
||||
for (reg_index = 0; reg_index < 2; reg_index ++) {
|
||||
|
|
|
|||
|
|
@ -771,7 +771,8 @@ static void si_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, SI_DRIVER_STATE_CONST_BUF, &cb);
|
||||
si_set_constant_buffer(sctx, &sctx->rw_buffers,
|
||||
SI_VS_CONST_CLIP_PLANES, &cb);
|
||||
pipe_resource_reference(&cb.buffer, NULL);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ enum {
|
|||
SI_VS_STREAMOUT_BUF2,
|
||||
SI_VS_STREAMOUT_BUF3,
|
||||
|
||||
SI_VS_CONST_CLIP_PLANES,
|
||||
SI_PS_CONST_POLY_STIPPLE,
|
||||
|
||||
SI_NUM_RW_BUFFERS,
|
||||
|
|
@ -273,6 +274,9 @@ void si_update_compressed_colortex_masks(struct si_context *sctx);
|
|||
void si_emit_graphics_shader_userdata(struct si_context *sctx,
|
||||
struct r600_atom *atom);
|
||||
void si_emit_compute_shader_userdata(struct si_context *sctx);
|
||||
void si_set_constant_buffer(struct si_context *sctx,
|
||||
struct si_buffer_resources *buffers,
|
||||
uint slot, struct pipe_constant_buffer *input);
|
||||
|
||||
/* si_state.c */
|
||||
struct si_shader_selector;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue