diff --git a/opencl/source/command_queue/command_queue.cpp b/opencl/source/command_queue/command_queue.cpp index 9c58f00f42..4a89b7f6f4 100644 --- a/opencl/source/command_queue/command_queue.cpp +++ b/opencl/source/command_queue/command_queue.cpp @@ -998,6 +998,8 @@ bool CommandQueue::isTextureCacheFlushNeeded(uint32_t commandType) const { case CL_COMMAND_COPY_IMAGE: case CL_COMMAND_WRITE_IMAGE: case CL_COMMAND_FILL_IMAGE: + case CL_COMMAND_READ_IMAGE: + case CL_COMMAND_COPY_IMAGE_TO_BUFFER: return getGpgpuCommandStreamReceiver().isDirectSubmissionEnabled(); default: return false; diff --git a/opencl/test/unit_test/command_queue/command_queue_tests.cpp b/opencl/test/unit_test/command_queue/command_queue_tests.cpp index 2e11cad792..09cf6a99fb 100644 --- a/opencl/test/unit_test/command_queue/command_queue_tests.cpp +++ b/opencl/test/unit_test/command_queue/command_queue_tests.cpp @@ -449,10 +449,10 @@ HWTEST_F(CommandQueueCommandStreamTest, WhenCheckIsTextureCacheFlushNeededThenRe MockCommandQueue cmdQ(&context, mockDevice.get(), 0, false); auto &commandStreamReceiver = mockDevice->getUltCommandStreamReceiver(); - EXPECT_FALSE(cmdQ.isTextureCacheFlushNeeded(CL_COMMAND_COPY_BUFFER_RECT)); - + std::set typesToFlush = {CL_COMMAND_COPY_IMAGE, CL_COMMAND_WRITE_IMAGE, CL_COMMAND_FILL_IMAGE, + CL_COMMAND_READ_IMAGE, CL_COMMAND_COPY_IMAGE_TO_BUFFER}; for (auto i = CL_COMMAND_NDRANGE_KERNEL; i < CL_COMMAND_SVM_MIGRATE_MEM; i++) { - if (i == CL_COMMAND_COPY_IMAGE || i == CL_COMMAND_WRITE_IMAGE || i == CL_COMMAND_FILL_IMAGE) { + if (typesToFlush.find(i) != typesToFlush.end()) { commandStreamReceiver.directSubmissionAvailable = true; EXPECT_TRUE(cmdQ.isTextureCacheFlushNeeded(i)); commandStreamReceiver.directSubmissionAvailable = false;