From 011701ee5ee19d55ff6fefacda508f26f4a673f7 Mon Sep 17 00:00:00 2001 From: Kamil Kopryk Date: Wed, 6 Nov 2019 10:01:37 +0100 Subject: [PATCH] Fix for forceStateless check Change-Id: Ic1d4787c3d8c7bdd70f13451d703bbc9958af7c7 Signed-off-by: Kamil Kopryk Related-To: NEO-3314 --- runtime/command_queue/enqueue_copy_buffer.h | 2 +- .../command_queue/enqueue_copy_buffer_rect.h | 7 +- runtime/command_queue/enqueue_fill_buffer.h | 2 +- runtime/command_queue/enqueue_read_buffer.h | 2 +- runtime/command_queue/enqueue_write_buffer.h | 2 +- .../command_queue/command_enqueue_fixture.h | 8 -- .../command_queue/command_queue_hw_tests.cpp | 18 ++++ .../enqueue_copy_buffer_rect_tests.cpp | 84 +++++++++---------- .../enqueue_copy_buffer_tests.cpp | 26 +++--- .../enqueue_fill_buffer_tests.cpp | 26 +++--- .../enqueue_read_buffer_tests.cpp | 12 ++- .../enqueue_write_buffer_tests.cpp | 12 ++- unit_tests/mocks/mock_buffer.h | 1 + 13 files changed, 102 insertions(+), 100 deletions(-) diff --git a/runtime/command_queue/enqueue_copy_buffer.h b/runtime/command_queue/enqueue_copy_buffer.h index 9bdeba526e..af4a01047e 100644 --- a/runtime/command_queue/enqueue_copy_buffer.h +++ b/runtime/command_queue/enqueue_copy_buffer.h @@ -34,7 +34,7 @@ cl_int CommandQueueHw::enqueueCopyBuffer( MultiDispatchInfo dispatchInfo; auto eBuiltInOpsType = EBuiltInOps::CopyBufferToBuffer; - if (forceStateless(size)) { + if (forceStateless(std::max(srcBuffer->getSize(), dstBuffer->getSize()))) { eBuiltInOpsType = EBuiltInOps::CopyBufferToBufferStateless; } diff --git a/runtime/command_queue/enqueue_copy_buffer_rect.h b/runtime/command_queue/enqueue_copy_buffer_rect.h index f9f9e2cdab..6e030126ee 100644 --- a/runtime/command_queue/enqueue_copy_buffer_rect.h +++ b/runtime/command_queue/enqueue_copy_buffer_rect.h @@ -32,11 +32,8 @@ cl_int CommandQueueHw::enqueueCopyBufferRect( const cl_event *eventWaitList, cl_event *event) { - MultiDispatchInfo dispatchInfo; - auto eBuiltInOps = EBuiltInOps::CopyBufferRect; - auto size = region[0] * region[1] * region[2]; - if (forceStateless(size)) { + if (forceStateless(std::max(srcBuffer->getSize(), dstBuffer->getSize()))) { eBuiltInOps = EBuiltInOps::CopyBufferRectStateless; } @@ -59,6 +56,8 @@ cl_int CommandQueueHw::enqueueCopyBufferRect( dc.srcSlicePitch = srcSlicePitch; dc.dstRowPitch = dstRowPitch; dc.dstSlicePitch = dstSlicePitch; + + MultiDispatchInfo dispatchInfo; builder.buildDispatchInfos(dispatchInfo, dc); enqueueHandler( diff --git a/runtime/command_queue/enqueue_fill_buffer.h b/runtime/command_queue/enqueue_fill_buffer.h index 97f71e97d9..019c841862 100644 --- a/runtime/command_queue/enqueue_fill_buffer.h +++ b/runtime/command_queue/enqueue_fill_buffer.h @@ -47,7 +47,7 @@ cl_int CommandQueueHw::enqueueFillBuffer( } auto eBuiltInOps = EBuiltInOps::FillBuffer; - if (forceStateless(size)) { + if (forceStateless(buffer->getSize())) { eBuiltInOps = EBuiltInOps::FillBufferStateless; } diff --git a/runtime/command_queue/enqueue_read_buffer.h b/runtime/command_queue/enqueue_read_buffer.h index 00e1deb39b..726f02be85 100644 --- a/runtime/command_queue/enqueue_read_buffer.h +++ b/runtime/command_queue/enqueue_read_buffer.h @@ -56,7 +56,7 @@ cl_int CommandQueueHw::enqueueReadBuffer( } auto eBuiltInOps = EBuiltInOps::CopyBufferToBuffer; - if (forceStateless(size)) { + if (forceStateless(buffer->getSize())) { eBuiltInOps = EBuiltInOps::CopyBufferToBufferStateless; } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, diff --git a/runtime/command_queue/enqueue_write_buffer.h b/runtime/command_queue/enqueue_write_buffer.h index 5ec9650769..e4f8f145d9 100644 --- a/runtime/command_queue/enqueue_write_buffer.h +++ b/runtime/command_queue/enqueue_write_buffer.h @@ -51,7 +51,7 @@ cl_int CommandQueueHw::enqueueWriteBuffer( } auto eBuiltInOps = EBuiltInOps::CopyBufferToBuffer; - if (forceStateless(size)) { + if (forceStateless(buffer->getSize())) { eBuiltInOps = EBuiltInOps::CopyBufferToBufferStateless; } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, diff --git a/unit_tests/command_queue/command_enqueue_fixture.h b/unit_tests/command_queue/command_enqueue_fixture.h index 1e61748ce9..aca4a167b5 100644 --- a/unit_tests/command_queue/command_enqueue_fixture.h +++ b/unit_tests/command_queue/command_enqueue_fixture.h @@ -97,10 +97,6 @@ template struct CommandQueueStateless : public CommandQueueHw { CommandQueueStateless(Context *context, Device *device) : CommandQueueHw(context, device, nullptr){}; - bool forceStateless(size_t size) override { - return true; - } - void enqueueHandlerHook(const unsigned int commandType, const MultiDispatchInfo &dispatchInfo) override { auto kernel = dispatchInfo.begin()->getKernel(); EXPECT_TRUE(kernel->getKernelInfo().patchInfo.executionEnvironment->CompiledForGreaterThan4GBBuffers); @@ -112,10 +108,6 @@ template struct CommandQueueStateful : public CommandQueueHw { CommandQueueStateful(Context *context, Device *device) : CommandQueueHw(context, device, nullptr){}; - bool forceStateless(size_t size) override { - return false; - } - void enqueueHandlerHook(const unsigned int commandType, const MultiDispatchInfo &dispatchInfo) override { auto kernel = dispatchInfo.begin()->getKernel(); auto &device = kernel->getDevice(); diff --git a/unit_tests/command_queue/command_queue_hw_tests.cpp b/unit_tests/command_queue/command_queue_hw_tests.cpp index e53df70d15..ff12686e76 100644 --- a/unit_tests/command_queue/command_queue_hw_tests.cpp +++ b/unit_tests/command_queue/command_queue_hw_tests.cpp @@ -1254,3 +1254,21 @@ HWTEST_F(CommandQueueHwTest, givenKernelSplitEnqueueReadBufferWhenBlockedThenEnq HWTEST_F(CommandQueueHwTest, givenDefaultHwCommandQueueThenCacheFlushAfterWalkerIsNotNeeded) { EXPECT_FALSE(pCmdQ->getRequiresCacheFlushAfterWalker()); } + +HWTEST_F(CommandQueueHwTest, givenSizeWhenForceStatelessIsCalledThenCorrectValueIsReturned) { + + if (is32bit) { + GTEST_SKIP(); + } + + struct MockCommandQueueHw : public CommandQueueHw { + using CommandQueueHw::forceStateless; + }; + + MockCommandQueueHw *pCmdQHw = reinterpret_cast(pCmdQ); + uint64_t bigSize = 4ull * MemoryConstants::gigaByte; + EXPECT_TRUE(pCmdQHw->forceStateless(static_cast(bigSize))); + + uint64_t smallSize = bigSize - 1; + EXPECT_FALSE(pCmdQHw->forceStateless(static_cast(smallSize))); +} diff --git a/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp b/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp index e3c231bb1d..e2b24ed986 100644 --- a/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp +++ b/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp @@ -12,6 +12,7 @@ #include "test.h" #include "unit_tests/command_queue/enqueue_copy_buffer_rect_fixture.h" #include "unit_tests/gen_common/gen_commands_common_validation.h" +#include "unit_tests/mocks/mock_buffer.h" #include "reg_configs_common.h" @@ -184,6 +185,34 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, WhenCopyingBufferRect2DTh } } +HWTEST_F(EnqueueCopyBufferRectTest, WhenCopyingBufferRectStatelessThenStatelessKernelIsUsed) { + + auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRectStateless, + pCmdQ->getContext(), + pCmdQ->getDevice()); + ASSERT_NE(nullptr, &builder); + + BuiltinOpParams dc; + dc.srcMemObj = srcBuffer; + dc.dstMemObj = dstBuffer; + dc.srcOffset = {0, 0, 0}; + dc.dstOffset = {0, 0, 0}; + dc.size = {50, 50, 1}; + dc.srcRowPitch = rowPitch; + dc.srcSlicePitch = slicePitch; + dc.dstRowPitch = rowPitch; + dc.dstSlicePitch = slicePitch; + + MultiDispatchInfo multiDispatchInfo; + builder.buildDispatchInfos(multiDispatchInfo, dc); + EXPECT_NE(0u, multiDispatchInfo.size()); + + auto kernel = multiDispatchInfo.begin()->getKernel(); + ASSERT_NE(nullptr, kernel); + EXPECT_TRUE(kernel->getKernelInfo().patchInfo.executionEnvironment->CompiledForGreaterThan4GBBuffers); + EXPECT_FALSE(kernel->getKernelInfo().kernelArgInfo[0].pureStatefulBufferAccess); +} + HWTEST_F(EnqueueCopyBufferRectTest, WhenCopyingBufferRect2DThenL3ProgrammingIsCorrect) { enqueueCopyBufferRect2D(); validateL3Programming(cmdList, itorWalker); @@ -373,22 +402,25 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, WhenCopyingBufferRect3DTh struct EnqueueCopyBufferRectHw : public ::testing::Test { void SetUp() override { + if (is32bit) { + GTEST_SKIP(); + } device.reset(MockDevice::createWithNewExecutionEnvironment(*platformDevices)); context.reset(new MockContext(device.get())); - srcBuffer = std::unique_ptr(BufferHelper::create(context.get())); dstBuffer = std::unique_ptr(BufferHelper::create(context.get())); } std::unique_ptr device; std::unique_ptr context; - std::unique_ptr srcBuffer; + MockBuffer srcBuffer; std::unique_ptr dstBuffer; const size_t rowPitch = 100; const size_t slicePitch = 100 * 100; - std::array srcOrigin = {{0, 0, 0}}; std::array dstOrigin = {{0, 0, 0}}; std::array region = {{50, 50, 1}}; + uint64_t bigSize = 4ull * MemoryConstants::gigaByte; + uint64_t smallSize = 4ull * MemoryConstants::gigaByte - 1; protected: template @@ -398,7 +430,7 @@ struct EnqueueCopyBufferRectHw : public ::testing::Test { retVal = clEnqueueCopyBufferRect( cmdQ, - srcBuffer.get(), + &srcBuffer, dstBuffer.get(), srcOrigin.data(), dstOrigin.data(), @@ -419,14 +451,9 @@ using EnqueueCopyBufferRectStateless = EnqueueCopyBufferRectHw; HWTEST_F(EnqueueCopyBufferRectStateless, GivenValidParametersWhenCopyingBufferRectStatelessThenSuccessIsReturned) { - if (is32bit) { - GTEST_SKIP(); - } - std::unique_ptr> cmdQ(new CommandQueueStateless(context.get(), device.get())); - + srcBuffer.size = static_cast(bigSize); auto retVal = enqueueCopyBufferRectHw(cmdQ.get()); - EXPECT_EQ(CL_SUCCESS, retVal); } @@ -435,42 +462,7 @@ using EnqueueCopyBufferRectStateful = EnqueueCopyBufferRectHw; HWTEST_F(EnqueueCopyBufferRectStateful, GivenValidParametersWhenCopyingBufferRectStatefulThenSuccessIsReturned) { std::unique_ptr> cmdQ(new CommandQueueStateful(context.get(), device.get())); - + srcBuffer.size = static_cast(smallSize); auto retVal = enqueueCopyBufferRectHw(cmdQ.get()); - EXPECT_EQ(CL_SUCCESS, retVal); } - -HWTEST_F(EnqueueCopyBufferRectStateless, WhenCopyingBufferRectStatelessThenStatelessKernelIsUsed) { - - if (is32bit) { - GTEST_SKIP(); - } - - std::unique_ptr> cmdQ(new CommandQueueStateless(context.get(), device.get())); - - // Extract the kernel used - MultiDispatchInfo multiDispatchInfo; - auto &builder = cmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRectStateless, - cmdQ->getContext(), - cmdQ->getDevice()); - ASSERT_NE(nullptr, &builder); - - BuiltinOpParams dc; - dc.srcMemObj = srcBuffer.get(); - dc.dstMemObj = dstBuffer.get(); - dc.srcOffset = srcOrigin.data(); - dc.dstOffset = dstOrigin.data(); - dc.size = region.data(); - dc.srcRowPitch = rowPitch; - dc.srcSlicePitch = slicePitch; - dc.dstRowPitch = rowPitch; - dc.dstSlicePitch = slicePitch; - builder.buildDispatchInfos(multiDispatchInfo, dc); - EXPECT_NE(0u, multiDispatchInfo.size()); - - auto kernel = multiDispatchInfo.begin()->getKernel(); - ASSERT_NE(nullptr, kernel); - EXPECT_TRUE(kernel->getKernelInfo().patchInfo.executionEnvironment->CompiledForGreaterThan4GBBuffers); - EXPECT_FALSE(kernel->getKernelInfo().kernelArgInfo[0].pureStatefulBufferAccess); -} diff --git a/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp b/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp index cda78a12c9..389ffd288b 100644 --- a/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp @@ -16,6 +16,7 @@ #include "unit_tests/command_queue/enqueue_fixture.h" #include "unit_tests/gen_common/gen_commands_common_validation.h" #include "unit_tests/helpers/unit_test_helper.h" +#include "unit_tests/mocks/mock_buffer.h" #include "reg_configs_common.h" @@ -303,30 +304,29 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenArgumentOneMatchesDestinati struct EnqueueCopyBufferHw : public ::testing::Test { void SetUp() override { + if (is32bit) { + GTEST_SKIP(); + } device.reset(MockDevice::createWithNewExecutionEnvironment(*platformDevices)); context.reset(new MockContext(device.get())); - - srcBuffer = std::unique_ptr(BufferHelper<>::create(context.get())); dstBuffer = std::unique_ptr(BufferHelper<>::create(context.get())); } std::unique_ptr device; std::unique_ptr context; - std::unique_ptr srcBuffer; std::unique_ptr dstBuffer; + MockBuffer srcBuffer; + uint64_t bigSize = 4ull * MemoryConstants::gigaByte; + uint64_t smallSize = 4ull * MemoryConstants::gigaByte - 1; }; using EnqueueCopyBufferStatelessTest = EnqueueCopyBufferHw; HWTEST_F(EnqueueCopyBufferStatelessTest, givenBuffersWhenCopyingBufferStatelessThenSuccessIsReturned) { - - if (is32bit) { - GTEST_SKIP(); - } - auto cmdQ = std::make_unique>(context.get(), device.get()); + srcBuffer.size = static_cast(bigSize); auto retVal = cmdQ->enqueueCopyBuffer( - srcBuffer.get(), + &srcBuffer, dstBuffer.get(), 0, 0, @@ -341,14 +341,10 @@ HWTEST_F(EnqueueCopyBufferStatelessTest, givenBuffersWhenCopyingBufferStatelessT using EnqueueCopyBufferStatefulTest = EnqueueCopyBufferHw; HWTEST_F(EnqueueCopyBufferStatefulTest, givenBuffersWhenCopyingBufferStatefulThenSuccessIsReturned) { - - if (is32bit) { - GTEST_SKIP(); - } - auto cmdQ = std::make_unique>(context.get(), device.get()); + srcBuffer.size = static_cast(smallSize); auto retVal = cmdQ->enqueueCopyBuffer( - srcBuffer.get(), + &srcBuffer, dstBuffer.get(), 0, 0, diff --git a/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp b/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp index 2ead19737e..a489c57463 100644 --- a/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp @@ -20,6 +20,7 @@ #include "unit_tests/command_queue/enqueue_fixture.h" #include "unit_tests/gen_common/gen_commands_common_validation.h" #include "unit_tests/helpers/unit_test_helper.h" +#include "unit_tests/mocks/mock_buffer.h" #include "reg_configs_common.h" @@ -539,32 +540,31 @@ HWTEST_F(EnqueueFillBufferCmdTests, givenEnqueueFillBufferWhenPatternAllocationI struct EnqueueFillBufferHw : public ::testing::Test { void SetUp() override { + if (is32bit) { + GTEST_SKIP(); + } device.reset(MockDevice::createWithNewExecutionEnvironment(*platformDevices)); context.reset(new MockContext(device.get())); - - dstBuffer = std::unique_ptr(BufferHelper<>::create(context.get())); } std::unique_ptr device; std::unique_ptr context; - std::unique_ptr dstBuffer; const uint8_t pattern[1] = {0x55}; const size_t patternSize = sizeof(pattern); const size_t offset = 0; const size_t size = patternSize; + MockBuffer dstBuffer; + uint64_t bigSize = 4ull * MemoryConstants::gigaByte; + uint64_t smallSize = 4ull * MemoryConstants::gigaByte - 1; }; using EnqeueFillBufferStatelessTest = EnqueueFillBufferHw; HWTEST_F(EnqeueFillBufferStatelessTest, givenBuffersWhenFillingBufferStatelessThenSuccessIsReturned) { - - if (is32bit) { - GTEST_SKIP(); - } - auto pCmdQ = std::make_unique>(context.get(), device.get()); + dstBuffer.size = static_cast(bigSize); auto retVal = pCmdQ->enqueueFillBuffer( - dstBuffer.get(), + &dstBuffer, pattern, patternSize, offset, @@ -579,14 +579,10 @@ HWTEST_F(EnqeueFillBufferStatelessTest, givenBuffersWhenFillingBufferStatelessTh using EnqeueFillBufferStatefullTest = EnqueueFillBufferHw; HWTEST_F(EnqeueFillBufferStatefullTest, givenBuffersWhenFillingBufferStatefullThenSuccessIsReturned) { - - if (is32bit) { - GTEST_SKIP(); - } - auto pCmdQ = std::make_unique>(context.get(), device.get()); + dstBuffer.size = static_cast(smallSize); auto retVal = pCmdQ->enqueueFillBuffer( - dstBuffer.get(), + &dstBuffer, pattern, patternSize, offset, diff --git a/unit_tests/command_queue/enqueue_read_buffer_tests.cpp b/unit_tests/command_queue/enqueue_read_buffer_tests.cpp index 54e695b8a9..abb4a065b5 100644 --- a/unit_tests/command_queue/enqueue_read_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_read_buffer_tests.cpp @@ -16,6 +16,7 @@ #include "unit_tests/command_queue/enqueue_read_buffer_fixture.h" #include "unit_tests/gen_common/gen_commands_common_validation.h" #include "unit_tests/helpers/unit_test_helper.h" +#include "unit_tests/mocks/mock_buffer.h" #include "unit_tests/mocks/mock_command_queue.h" #include "unit_tests/mocks/mock_execution_environment.h" @@ -689,12 +690,13 @@ struct EnqueueReadBufferHw : public ::testing::Test { } device.reset(MockDevice::createWithNewExecutionEnvironment(*platformDevices)); context.reset(new MockContext(device.get())); - srcBuffer.reset(BufferHelper<>::create(context.get())); } std::unique_ptr device; std::unique_ptr context; - std::unique_ptr srcBuffer; + MockBuffer srcBuffer; + uint64_t bigSize = 4ull * MemoryConstants::gigaByte; + uint64_t smallSize = 4ull * MemoryConstants::gigaByte - 1; }; using EnqeueReadBufferStatelessTest = EnqueueReadBufferHw; @@ -703,7 +705,8 @@ HWTEST_F(EnqeueReadBufferStatelessTest, WhenReadingBufferStatelessThenSuccessIsR auto pCmdQ = std::make_unique>(context.get(), device.get()); void *missAlignedPtr = reinterpret_cast(0x1041); - auto retVal = pCmdQ->enqueueReadBuffer(srcBuffer.get(), + srcBuffer.size = static_cast(bigSize); + auto retVal = pCmdQ->enqueueReadBuffer(&srcBuffer, CL_FALSE, 0, MemoryConstants::cacheLineSize, @@ -722,7 +725,8 @@ HWTEST_F(EnqeueReadBufferStatefulTest, WhenReadingBufferStatefulThenSuccessIsRet auto pCmdQ = std::make_unique>(context.get(), device.get()); void *missAlignedPtr = reinterpret_cast(0x1041); - auto retVal = pCmdQ->enqueueReadBuffer(srcBuffer.get(), + srcBuffer.size = static_cast(smallSize); + auto retVal = pCmdQ->enqueueReadBuffer(&srcBuffer, CL_FALSE, 0, MemoryConstants::cacheLineSize, diff --git a/unit_tests/command_queue/enqueue_write_buffer_tests.cpp b/unit_tests/command_queue/enqueue_write_buffer_tests.cpp index 50dd8a0ba2..8b2b18f29e 100644 --- a/unit_tests/command_queue/enqueue_write_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_write_buffer_tests.cpp @@ -15,6 +15,7 @@ #include "unit_tests/command_queue/enqueue_fixture.h" #include "unit_tests/gen_common/gen_commands_common_validation.h" #include "unit_tests/helpers/unit_test_helper.h" +#include "unit_tests/mocks/mock_buffer.h" #include "unit_tests/mocks/mock_command_queue.h" #include "unit_tests/mocks/mock_execution_environment.h" @@ -497,12 +498,13 @@ struct EnqueueWriteBufferHw : public ::testing::Test { } device.reset(MockDevice::createWithNewExecutionEnvironment(*platformDevices)); context.reset(new MockContext(device.get())); - srcBuffer.reset(BufferHelper<>::create(context.get())); } std::unique_ptr device; std::unique_ptr context; - std::unique_ptr srcBuffer; + MockBuffer srcBuffer; + uint64_t bigSize = 4ull * MemoryConstants::gigaByte; + uint64_t smallSize = 4ull * MemoryConstants::gigaByte - 1; }; using EnqeueReadWriteStatelessTest = EnqueueWriteBufferHw; @@ -511,7 +513,8 @@ HWTEST_F(EnqeueReadWriteStatelessTest, WhenWritingBufferStatelessThenSuccessIsRe auto pCmdQ = std::make_unique>(context.get(), device.get()); void *missAlignedPtr = reinterpret_cast(0x1041); - auto retVal = pCmdQ->enqueueWriteBuffer(srcBuffer.get(), + srcBuffer.size = static_cast(bigSize); + auto retVal = pCmdQ->enqueueWriteBuffer(&srcBuffer, CL_FALSE, 0, MemoryConstants::cacheLineSize, @@ -530,7 +533,8 @@ HWTEST_F(EnqeueWriteBufferStatefulTest, WhenWritingBufferStatefulThenSuccessIsRe auto pCmdQ = std::make_unique>(context.get(), device.get()); void *missAlignedPtr = reinterpret_cast(0x1041); - auto retVal = pCmdQ->enqueueWriteBuffer(srcBuffer.get(), + srcBuffer.size = static_cast(smallSize); + auto retVal = pCmdQ->enqueueWriteBuffer(&srcBuffer, CL_FALSE, 0, MemoryConstants::cacheLineSize, diff --git a/unit_tests/mocks/mock_buffer.h b/unit_tests/mocks/mock_buffer.h index 9cab087748..c58b26d7b3 100644 --- a/unit_tests/mocks/mock_buffer.h +++ b/unit_tests/mocks/mock_buffer.h @@ -30,6 +30,7 @@ class MockBuffer : public MockBufferStorage, public Buffer { public: using Buffer::magic; using Buffer::offset; + using Buffer::size; using MemObj::isZeroCopy; using MockBufferStorage::device;