<div dir="ltr">Just compare/swap, not all the image atomics. From a quick grep it looks like the CTS doesn't have any tests for compare/swap, but does for the other atomics.<div><br></div><div>Alex</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 30 June 2017 at 16:45, Jason Ekstrand <span dir="ltr"><<a href="mailto:jason@jlekstrand.net" target="_blank">jason@jlekstrand.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Does this mean that image atomics are broken and radv passes the CTS anyway?  If so, someone should fine a bug against the CTS so we can keep track of the coverage hole.<div><div class="h5"><br>
<br>
<br>
On June 30, 2017 3:15:57 AM Alex Smith <<a href="mailto:asmith@feralinteractive.com" target="_blank">asmith@feralinteractive.com</a>> wrote:<br>
<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
The NIR parameters are ordered "compare, data", matching GLSL, but both<br>
the image and buffer LLVM intrinsics take them the other way around.<br>
This is already handled correctly for SSBO atomics.<br>
<br>
Signed-off-by: Alex Smith <<a href="mailto:asmith@feralinteractive.com" target="_blank">asmith@feralinteractive.com</a>><br>
---<br>
 src/amd/common/ac_nir_to_<wbr>llvm.c | 2 +-<br>
 1 file changed, 1 insertion(+), 1 deletion(-)<br>
<br>
diff --git a/src/amd/common/ac_nir_to_llv<wbr>m.c b/src/amd/common/ac_nir_to_llv<wbr>m.c<br>
index 6845df8..89b7103 100644<br>
--- a/src/amd/common/ac_nir_to_llv<wbr>m.c<br>
+++ b/src/amd/common/ac_nir_to_llv<wbr>m.c<br>
@@ -3442,9 +3442,9 @@ static LLVMValueRef visit_image_atomic(struct nir_to_llvm_context *ctx,<br>
                abort();<br>
        }<br>
<br>
-       params[param_count++] = get_src(ctx, instr->src[2]);<br>
        if (instr->intrinsic == nir_intrinsic_image_atomic_com<wbr>p_swap)<br>
                params[param_count++] = get_src(ctx, instr->src[3]);<br>
+       params[param_count++] = get_src(ctx, instr->src[2]);<br>
<br>
        if (glsl_get_sampler_dim(type) == GLSL_SAMPLER_DIM_BUF) {<br>
                params[param_count++] = get_sampler_desc(ctx, instr->variables[0],  DESC_BUFFER);<br>
--<br>
2.9.4<br>
<br></div></div>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">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>
</blockquote>
<br>
<br>
</blockquote></div><br></div>