Enable transforming image 3d to image 2d array

Change-Id: I8fdc6899780481bdebeaf858a330e9dea822bda3
This commit is contained in:
Mateusz Jablonski
2018-03-27 14:30:05 +02:00
parent 0a97dfbb2f
commit 79a0e3253e
24 changed files with 867 additions and 6 deletions

View File

@@ -34,7 +34,7 @@
#include "unit_tests/helpers/memory_management.h"
#include "unit_tests/mocks/mock_context.h"
#include "unit_tests/mocks/mock_memory_manager.h"
#include "gtest/gtest.h"
#include "unit_tests/gen_common/test.h"
using namespace OCLRT;
@@ -1107,3 +1107,32 @@ INSTANTIATE_TEST_CASE_P(HasSlices,
std::make_pair(CL_MEM_OBJECT_IMAGE3D, true),
std::make_pair(CL_MEM_OBJECT_BUFFER, false),
std::make_pair(CL_MEM_OBJECT_PIPE, false)));
typedef ::testing::Test ImageTransformTest;
HWTEST_F(ImageTransformTest, givenSurfaceStateWhenTransformImage3dTo2dArrayIsCalledThenSurface2dArrayIsSet) {
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
using SURFACE_TYPE = typename RENDER_SURFACE_STATE::SURFACE_TYPE;
MockContext context;
auto image = std::unique_ptr<Image>(ImageHelper<Image3dDefaults>::create(&context));
auto surfaceState = RENDER_SURFACE_STATE::sInit();
auto imageHw = static_cast<ImageHw<FamilyType> *>(image.get());
surfaceState.setSurfaceType(SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_3D);
surfaceState.setSurfaceArray(false);
imageHw->transformImage3dTo2dArray(reinterpret_cast<void *>(&surfaceState));
EXPECT_EQ(SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_2D, surfaceState.getSurfaceType());
EXPECT_TRUE(surfaceState.getSurfaceArray());
}
HWTEST_F(ImageTransformTest, givenSurfaceStateWhenTransformImage2dArrayTo3dIsCalledThenSurface3dIsSet) {
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
using SURFACE_TYPE = typename RENDER_SURFACE_STATE::SURFACE_TYPE;
MockContext context;
auto image = std::unique_ptr<Image>(ImageHelper<Image3dDefaults>::create(&context));
auto surfaceState = RENDER_SURFACE_STATE::sInit();
auto imageHw = static_cast<ImageHw<FamilyType> *>(image.get());
surfaceState.setSurfaceType(SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_2D);
surfaceState.setSurfaceArray(true);
imageHw->transformImage2dArrayTo3d(reinterpret_cast<void *>(&surfaceState));
EXPECT_EQ(SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_3D, surfaceState.getSurfaceType());
EXPECT_FALSE(surfaceState.getSurfaceArray());
}