From e0d63bd000bd677d7476169b189c5df457362438 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 4 Apr 2022 20:21:36 -0700 Subject: [PATCH] ircd::cl: Use acq_rel as invalidate semantic. --- ircd/cl.cc | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/ircd/cl.cc b/ircd/cl.cc index 34121dc6d..5cf75fd65 100644 --- a/ircd/cl.cc +++ b/ircd/cl.cc @@ -958,17 +958,16 @@ try write = true; break; - case std::memory_order_acq_rel: - read = true; - write = true; - break; - case std::memory_order_seq_cst: read = true; write = true; blocking = true; break; + case std::memory_order_acq_rel: + invalidate = true; + break; + case std::memory_order_release: break; } @@ -983,6 +982,10 @@ try if(!flags && !data.mapped) return; + assert(flags || data.mapped); + assert(!this->object); + this->object = &data; + auto &q { queue[0][0] @@ -993,12 +996,8 @@ try make_deps(this, opts) }; - assert(!this->object); - this->object = &data; - int err {CL_SUCCESS}; assert(!this->handle); - assert(flags || data.mapped); if(flags) data.mapped = clEnqueueMapBuffer (