Add acquire/release (#1899)

Add acquire/release commands where appropriate. This is related to 1886.
This commit is contained in:
joshqti
2024-05-21 08:45:41 -07:00
committed by GitHub
parent fb39357911
commit 4fceb78b93
3 changed files with 178 additions and 7 deletions

View File

@@ -644,7 +644,18 @@ int run_test_with_two_queue(
err, CLEANUP,
"Error: Failed to set arg values \n");
// clVk2CLExternalSemaphore->wait(cmd_queue1);
err = clEnqueueAcquireExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image1, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to acquire images");
err = clEnqueueAcquireExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image2, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to acquire images");
size_t global_work_size[3] = { width, height,
1 };
cl_event first_launch;
@@ -656,6 +667,30 @@ int run_test_with_two_queue(
err, CLEANUP,
"Failed to enqueue updateKernelCQ1\n");
err = clEnqueueReleaseExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image1, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to release images");
err = clEnqueueReleaseExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image2, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to release images");
err = clEnqueueAcquireExternalMemObjectsKHRptr(
cmd_queue2, num2DImages,
external_mem_image1, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to acquire images");
err = clEnqueueAcquireExternalMemObjectsKHRptr(
cmd_queue2, num2DImages,
external_mem_image2, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to acquire images");
err = clEnqueueNDRangeKernel(
cmd_queue2, updateKernelCQ2, 2, NULL,
global_work_size, NULL, 1, &first_launch,
@@ -664,6 +699,18 @@ int run_test_with_two_queue(
err, CLEANUP,
"Failed to enqueue updateKernelCQ2\n");
err = clEnqueueReleaseExternalMemObjectsKHRptr(
cmd_queue2, num2DImages,
external_mem_image1, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to release images");
err = clEnqueueReleaseExternalMemObjectsKHRptr(
cmd_queue2, num2DImages,
external_mem_image2, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to release images");
clFinish(cmd_queue2);
err = clCl2VkExternalSemaphore->signal(
cmd_queue2);
@@ -1182,6 +1229,18 @@ int run_test_with_one_queue(
"Error: Failed to set arg "
"values for kernel-1\n");
err = clEnqueueAcquireExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image1, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to acquire images");
err = clEnqueueAcquireExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image2, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to acquire images");
size_t global_work_size[3] = { width, height,
1 };
err = clEnqueueNDRangeKernel(
@@ -1191,6 +1250,18 @@ int run_test_with_one_queue(
err, CLEANUP,
"Failed to enqueue updateKernelCQ1\n");
err = clEnqueueReleaseExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image1, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to release images");
err = clEnqueueReleaseExternalMemObjectsKHRptr(
cmd_queue1, num2DImages,
external_mem_image2, 0, nullptr, nullptr);
test_error_and_cleanup(
err, CLEANUP, "Failed to release images");
err = clCl2VkExternalSemaphore->signal(
cmd_queue1);
test_error_and_cleanup(
@@ -1538,4 +1609,4 @@ CLEANUP:
if (devices) free(devices);
return err;
}
}