2017-12-21 07:45:38 +08:00
|
|
|
/*
|
2019-02-27 18:39:32 +08:00
|
|
|
* Copyright (C) 2017-2019 Intel Corporation
|
2017-12-21 07:45:38 +08:00
|
|
|
*
|
2018-09-18 15:11:08 +08:00
|
|
|
* SPDX-License-Identifier: MIT
|
2017-12-21 07:45:38 +08:00
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
2019-05-29 10:09:40 +08:00
|
|
|
#include "core/helpers/ptr_math.h"
|
2017-12-21 07:45:38 +08:00
|
|
|
#include "unit_tests/command_queue/command_enqueue_fixture.h"
|
2019-02-27 18:39:32 +08:00
|
|
|
#include "unit_tests/command_queue/enqueue_fixture.h"
|
2017-12-21 07:45:38 +08:00
|
|
|
#include "unit_tests/fixtures/image_fixture.h"
|
|
|
|
#include "unit_tests/mocks/mock_context.h"
|
|
|
|
|
2019-02-27 18:39:32 +08:00
|
|
|
#include "gtest/gtest.h"
|
|
|
|
|
2019-03-26 18:59:46 +08:00
|
|
|
namespace NEO {
|
2017-12-21 07:45:38 +08:00
|
|
|
|
|
|
|
struct EnqueueReadImageTest : public CommandEnqueueFixture,
|
|
|
|
public ::testing::Test {
|
|
|
|
typedef CommandQueueHwFixture CommandQueueFixture;
|
|
|
|
using CommandQueueHwFixture::pCmdQ;
|
|
|
|
|
|
|
|
EnqueueReadImageTest() : dstPtr(nullptr),
|
|
|
|
srcImage(nullptr) {
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void SetUp(void) override {
|
|
|
|
CommandEnqueueFixture::SetUp();
|
|
|
|
|
|
|
|
context = new MockContext(pDevice);
|
|
|
|
srcImage = Image2dHelper<>::create(context);
|
|
|
|
const auto &imageDesc = srcImage->getImageDesc();
|
|
|
|
dstPtr = new float[imageDesc.image_width * imageDesc.image_height];
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual void TearDown(void) override {
|
|
|
|
delete srcImage;
|
|
|
|
delete[] dstPtr;
|
2018-05-28 22:16:06 +08:00
|
|
|
delete context;
|
2017-12-21 07:45:38 +08:00
|
|
|
CommandEnqueueFixture::TearDown();
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
template <typename FamilyType>
|
|
|
|
void enqueueReadImage(cl_bool blocking = EnqueueReadImageTraits::blocking) {
|
|
|
|
auto retVal = EnqueueReadImageHelper<>::enqueueReadImage(pCmdQ,
|
|
|
|
srcImage,
|
|
|
|
blocking);
|
|
|
|
EXPECT_EQ(CL_SUCCESS, retVal);
|
|
|
|
parseCommands<FamilyType>(*pCmdQ);
|
|
|
|
}
|
|
|
|
|
|
|
|
float *dstPtr;
|
|
|
|
Image *srcImage;
|
|
|
|
MockContext *context;
|
|
|
|
};
|
2018-03-12 23:32:08 +08:00
|
|
|
|
|
|
|
struct EnqueueReadImageMipMapTest : public EnqueueReadImageTest,
|
|
|
|
public ::testing::WithParamInterface<uint32_t> {
|
|
|
|
};
|
2019-03-26 18:59:46 +08:00
|
|
|
} // namespace NEO
|