Mesa (master): aco: set dlc/glc correctly for image loads
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Nov 26 16:05:16 UTC 2019
Module: Mesa
Branch: master
Commit: 46420dd294933ef191e8a8a705940c7236e44e5a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=46420dd294933ef191e8a8a705940c7236e44e5a
Author: Rhys Perry <pendingchaos02 at gmail.com>
Date: Fri Sep 20 12:08:19 2019 +0100
aco: set dlc/glc correctly for image loads
Signed-off-by: Rhys Perry <pendingchaos02 at gmail.com>
Reviewed-By: Timur Kristóf <timur.kristof at gmail.com>
---
src/amd/compiler/aco_instruction_selection.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index de46348c091..249a9d7b77b 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -4045,6 +4045,8 @@ void visit_image_load(isel_context *ctx, nir_intrinsic_instr *instr)
tmp = {ctx->program->allocateId(), RegClass(RegType::vgpr, num_channels)};
load->definitions[0] = Definition(tmp);
load->idxen = true;
+ load->glc = var->data.access & (ACCESS_VOLATILE | ACCESS_COHERENT);
+ load->dlc = load->glc && ctx->options->chip_class >= GFX10;
load->barrier = barrier_image;
ctx->block->instructions.emplace_back(std::move(load));
@@ -4068,6 +4070,7 @@ void visit_image_load(isel_context *ctx, nir_intrinsic_instr *instr)
load->operands[1] = Operand(resource);
load->definitions[0] = Definition(tmp);
load->glc = var->data.access & (ACCESS_VOLATILE | ACCESS_COHERENT) ? 1 : 0;
+ load->dlc = load->glc && ctx->options->chip_class >= GFX10;
load->dim = ac_get_image_dim(ctx->options->chip_class, dim, is_array);
load->dmask = dmask;
load->unrm = true;
More information about the mesa-commit
mailing list