From 9d048fce4138d128d0dd9f4e18ba1986802f8088 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 23 Mar 2021 13:48:55 -0400 Subject: [PATCH] gpu: fix clEnqueueReleaseGLObjects call with no wait list The spec prohibits calling clEnqueueReleaseGLObjects with 0 for num_events_in_wait_list but a non-null event_wait_list. Special case passing a null wait list when there are no compute events to wait for. --- .../net/runelite/client/plugins/gpu/OpenCLManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/OpenCLManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/OpenCLManager.java index 77c2f9b575..21e9224fe5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/gpu/OpenCLManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/gpu/OpenCLManager.java @@ -511,7 +511,14 @@ class OpenCLManager new long[]{(long) largeModels * (LARGE_SIZE / largeFaceCount)}, new long[]{LARGE_SIZE / largeFaceCount}, 1, new cl_event[]{acquireGLBuffers}, computeEvents[numComputeEvents++]); } - clEnqueueReleaseGLObjects(commandQueue, glBuffers.length, glBuffers, numComputeEvents, computeEvents, null); + if (numComputeEvents == 0) + { + clEnqueueReleaseGLObjects(commandQueue, glBuffers.length, glBuffers, 0, null, null); + } + else + { + clEnqueueReleaseGLObjects(commandQueue, glBuffers.length, glBuffers, numComputeEvents, computeEvents, null); + } } void finish()