mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
r600g/llvm: fix txq for texture buffer
This commit is contained in:
parent
848c0e72f3
commit
9f183eb7de
3 changed files with 9 additions and 2 deletions
|
|
@ -23,6 +23,8 @@
|
|||
#define CONSTANT_BUFFER_0_ADDR_SPACE 8
|
||||
#define CONSTANT_BUFFER_1_ADDR_SPACE (CONSTANT_BUFFER_0_ADDR_SPACE + R600_UCP_CONST_BUFFER)
|
||||
#define CONSTANT_TXQ_BUFFER (CONSTANT_BUFFER_0_ADDR_SPACE + R600_TXQ_CONST_BUFFER)
|
||||
#define LLVM_R600_BUFFER_INFO_CONST_BUFFER \
|
||||
(CONSTANT_BUFFER_0_ADDR_SPACE + R600_BUFFER_INFO_CONST_BUFFER)
|
||||
|
||||
static LLVMValueRef llvm_load_const_buffer(
|
||||
struct lp_build_tgsi_context * bld_base,
|
||||
|
|
@ -410,8 +412,11 @@ static void llvm_emit_tex(
|
|||
if (emit_data->inst->Texture.Texture == TGSI_TEXTURE_BUFFER) {
|
||||
switch (emit_data->inst->Instruction.Opcode) {
|
||||
case TGSI_OPCODE_TXQ: {
|
||||
LLVMValueRef offset = lp_build_const_int32(bld_base->base.gallivm, 1);
|
||||
LLVMValueRef cvecval = llvm_load_const_buffer(bld_base, offset, R600_BUFFER_INFO_CONST_BUFFER);
|
||||
struct radeon_llvm_context * ctx = radeon_llvm_context(bld_base);
|
||||
ctx->uses_tex_buffers = true;
|
||||
LLVMValueRef offset = lp_build_const_int32(bld_base->base.gallivm, 0);
|
||||
LLVMValueRef cvecval = llvm_load_const_buffer(bld_base, offset,
|
||||
LLVM_R600_BUFFER_INFO_CONST_BUFFER);
|
||||
emit_data->output[0] = cvecval;
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1112,6 +1112,7 @@ static int r600_shader_from_tgsi(struct r600_screen *rscreen,
|
|||
radeon_llvm_ctx.alpha_to_one = key.alpha_to_one;
|
||||
mod = r600_tgsi_llvm(&radeon_llvm_ctx, tokens);
|
||||
ctx.shader->has_txq_cube_array_z_comp = radeon_llvm_ctx.has_txq_cube_array_z_comp;
|
||||
ctx.shader->uses_tex_buffers = radeon_llvm_ctx.uses_tex_buffers;
|
||||
|
||||
if (r600_llvm_compile(mod, rscreen->b.family, ctx.bc, &use_kill, dump)) {
|
||||
radeon_llvm_dispose(&radeon_llvm_ctx);
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ struct radeon_llvm_context {
|
|||
unsigned fs_color_all;
|
||||
unsigned alpha_to_one;
|
||||
unsigned has_txq_cube_array_z_comp;
|
||||
unsigned uses_tex_buffers;
|
||||
|
||||
/*=== Front end configuration ===*/
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue