From de0748c42ee0b9e2db734341fd21a7891ab814ae Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Thu, 10 Oct 2019 12:12:29 +0100 Subject: [PATCH] aco/gfx10: fix inline uniform blocks MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Rhys Perry Reviewed-by: Bas Nieuwenhuizen Reviewed-By: Timur Kristóf --- src/amd/compiler/aco_instruction_selection.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index f200588f714..d16873f9af3 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -3140,9 +3140,15 @@ void visit_load_ubo(isel_context *ctx, nir_intrinsic_instr *instr) uint32_t desc_type = S_008F0C_DST_SEL_X(V_008F0C_SQ_SEL_X) | S_008F0C_DST_SEL_Y(V_008F0C_SQ_SEL_Y) | S_008F0C_DST_SEL_Z(V_008F0C_SQ_SEL_Z) | - S_008F0C_DST_SEL_W(V_008F0C_SQ_SEL_W) | - S_008F0C_NUM_FORMAT(V_008F0C_BUF_NUM_FORMAT_FLOAT) | - S_008F0C_DATA_FORMAT(V_008F0C_BUF_DATA_FORMAT_32); + S_008F0C_DST_SEL_W(V_008F0C_SQ_SEL_W); + if (ctx->options->chip_class >= GFX10) { + desc_type |= S_008F0C_FORMAT(V_008F0C_IMG_FORMAT_32_FLOAT) | + S_008F0C_OOB_SELECT(3) | + S_008F0C_RESOURCE_LEVEL(1); + } else { + desc_type |= S_008F0C_NUM_FORMAT(V_008F0C_BUF_NUM_FORMAT_FLOAT) | + S_008F0C_DATA_FORMAT(V_008F0C_BUF_DATA_FORMAT_32); + } Temp upper_dwords = bld.pseudo(aco_opcode::p_create_vector, bld.def(s3), Operand(S_008F04_BASE_ADDRESS_HI(ctx->options->address32_hi)), Operand(0xFFFFFFFFu), -- 2.30.2