diff options
author | Rhys Perry <pendingchaos02@gmail.com> | 2019-10-10 12:12:29 +0100 |
---|---|---|
committer | Rhys Perry <pendingchaos02@gmail.com> | 2019-10-10 20:02:36 +0000 |
commit | de0748c42ee0b9e2db734341fd21a7891ab814ae (patch) | |
tree | 352dc7293c33305c078b5b2b1390c11bf6c5753e /src/amd/compiler/aco_instruction_selection.cpp | |
parent | ba71be228fc063b27ad292d206f8c1cac631a73a (diff) |
aco/gfx10: fix inline uniform blocks
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-By: Timur Kristóf <timur.kristof@gmail.com>
Diffstat (limited to 'src/amd/compiler/aco_instruction_selection.cpp')
-rw-r--r-- | src/amd/compiler/aco_instruction_selection.cpp | 12 |
1 files 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), |