From 33e6dfc805d6b4c4e8a9dbd40c5f7bd4a6cda8af Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Sat, 17 Oct 2026 09:59:02 +0200 Subject: [PATCH] Test appending a batch to an idle stream after host syncs When a batch is appended to an in-order immediate list with nothing pending, NEO dispatches the regular list's own command buffer as the batch buffer. NEO 26.35 then wrote a pending UC tag update into that full buffer and aborted in LinearStream::getSpace (intel/compute-runtime#1027), which crashed the test suite sporadically since launches are batched. Fixed in NEO_jll 26.35.39758+2. --- test/execution.jl | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/execution.jl b/test/execution.jl index 28a674bda..78bec081b 100644 --- a/test/execution.jl +++ b/test/execution.jl @@ -1011,6 +1011,21 @@ end end @test Array(y) == fill(2f0 * 41 + 40, 1024) + # a batch appended to an idle stream is dispatched from its own command buffer, which + # NEO 26.35 overflowed with a pending tag update after recycling its ring buffer + # (intel/compute-runtime#1027) + x = oneArray(zeros(Float32, 1024)) + y = similar(x) + for _ in 1:2000 + copyto!(y, x) + oneAPI.mkl_boundary!() + for _ in 1:4 + x .+= 1 + end + oneAPI.mkl_boundary!() + end + @test Array(x) == fill(8000f0, 1024) + # a failed submission is reported until the stream is synchronized @test fetch(@async begin a = oneArray(Int64[0])