From: Rhys Perry Date: Thu, 10 Oct 2019 11:12:29 +0000 (+0100) Subject: aco/gfx10: fix inline uniform blocks X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=de0748c42ee0b9e2db734341fd21a7891ab814ae;p=mesa.git aco/gfx10: fix inline uniform blocks Signed-off-by: Rhys Perry Reviewed-by: Bas Nieuwenhuizen Reviewed-By: Timur Kristóf --- 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),