diff --git a/unified-runtime/source/adapters/cuda/enqueue.cpp b/unified-runtime/source/adapters/cuda/enqueue.cpp index 8be4046708a59..8eb00ccab2ca1 100644 --- a/unified-runtime/source/adapters/cuda/enqueue.cpp +++ b/unified-runtime/source/adapters/cuda/enqueue.cpp @@ -1384,7 +1384,9 @@ UR_APIEXPORT ur_result_t UR_APICALL urEnqueueMemUnmap( BufferImpl.MemAllocMode == BufferMem::AllocMode::AllocHostPtr; ur_result_t Result = UR_RESULT_SUCCESS; - if (!IsPinned && (Map->getMapFlags() & UR_MAP_FLAG_WRITE)) { + if (!IsPinned && + (Map->getMapFlags() & + (UR_MAP_FLAG_WRITE | UR_MAP_FLAG_WRITE_INVALIDATE_REGION))) { // Pinned host memory is only on host so it doesn't need to be written to. Result = urEnqueueMemBufferWrite( hQueue, hMem, true, Map->getMapOffset(), Map->getMapSize(), pMappedPtr, diff --git a/unified-runtime/test/conformance/enqueue/urEnqueueMemBufferMap.cpp b/unified-runtime/test/conformance/enqueue/urEnqueueMemBufferMap.cpp index 3ba7515c2e8a9..c2a1079d4b70e 100644 --- a/unified-runtime/test/conformance/enqueue/urEnqueueMemBufferMap.cpp +++ b/unified-runtime/test/conformance/enqueue/urEnqueueMemBufferMap.cpp @@ -50,10 +50,6 @@ UUR_DEVICE_TEST_SUITE_WITH_PARAM( TEST_P(urEnqueueMemBufferMapTestWithWriteFlagParam, SuccessWrite) { UUR_KNOWN_FAILURE_ON(uur::LevelZero{}); - if (getParam().map_flag == UR_MAP_FLAG_WRITE_INVALIDATE_REGION) { - UUR_KNOWN_FAILURE_ON(uur::CUDA{}); - } - const std::vector input(count, 0); ASSERT_SUCCESS(urEnqueueMemBufferWrite(queue, buffer, true, 0, size, input.data(), 0, nullptr, nullptr));