<div dir="ltr">Ideally we find a way to also do it for buffers, but for this series<div><br></div><div>Reviewed-by: Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl">bas@basnieuwenhuizen.nl</a>></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 22, 2018 at 10:25 AM, Samuel Pitoiset <span dir="ltr"><<a href="mailto:samuel.pitoiset@gmail.com" target="_blank">samuel.pitoiset@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This disables persistence accross wavefronts.<br>
<br>
F1 2017 and Wolfenstein 2 appear to use some coherent images<br>
but this patch doesn't seem to change anything.<br>
<br>
Signed-off-by: Samuel Pitoiset <<a href="mailto:samuel.pitoiset@gmail.com">samuel.pitoiset@gmail.com</a>><br>
---<br>
 src/amd/common/ac_nir_to_llvm.<wbr>c | 7 ++++---<br>
 1 file changed, 4 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/src/amd/common/ac_nir_to_<wbr>llvm.c b/src/amd/common/ac_nir_to_<wbr>llvm.c<br>
index 213306322d..99a3471305 100644<br>
--- a/src/amd/common/ac_nir_to_<wbr>llvm.c<br>
+++ b/src/amd/common/ac_nir_to_<wbr>llvm.c<br>
@@ -3657,13 +3657,13 @@ static LLVMValueRef visit_image_load(struct ac_nir_context *ctx,<br>
                res = ac_to_integer(&ctx->ac, res);<br>
        } else {<br>
                LLVMValueRef da = glsl_is_array_image(type) ? ctx->ac.i1true : ctx->ac.i1false;<br>
-               LLVMValueRef glc = ctx->ac.i1false;<br>
                LLVMValueRef slc = ctx->ac.i1false;<br>
<br>
                params[0] = get_image_coords(ctx, instr);<br>
                params[1] = get_sampler_desc(ctx, instr->variables[0], AC_DESC_IMAGE, NULL, true, false);<br>
                params[2] = LLVMConstInt(ctx->ac.i32, 15, false); /* dmask */<br>
-               params[3] = glc;<br>
+               params[3] = (var->data.image._volatile || var->data.image.coherent) ?<br>
+                           ctx->ac.i1true : ctx->ac.i1false;<br>
                params[4] = slc;<br>
                params[5] = ctx->ac.i1false;<br>
                params[6] = da;<br>
@@ -3711,7 +3711,8 @@ static void visit_image_store(struct ac_nir_context *ctx,<br>
                params[1] = get_image_coords(ctx, instr); /* coords */<br>
                params[2] = get_sampler_desc(ctx, instr->variables[0], AC_DESC_IMAGE, NULL, true, true);<br>
                params[3] = LLVMConstInt(ctx->ac.i32, 15, false); /* dmask */<br>
-               params[4] = glc;<br>
+               params[4] = (force_glc || var->data.image._volatile || var->data.image.coherent) ?<br>
+                           ctx->ac.i1true : ctx->ac.i1false;<br>
                params[5] = slc;<br>
                params[6] = ctx->ac.i1false;<br>
                params[7] = da;<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.16.2<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>