2019-09-18 19:32:33 +02:00
|
|
|
/*
|
2022-04-27 10:20:10 +00:00
|
|
|
* Copyright (C) 2019-2022 Intel Corporation
|
2019-09-18 19:32:33 +02:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2021-12-14 17:40:08 +00:00
|
|
|
#include "shared/test/common/test_macros/test.h"
|
|
|
|
|
2020-02-22 22:50:57 +01:00
|
|
|
#include "opencl/source/helpers/hardware_commands_helper.h"
|
2020-05-28 14:05:12 +02:00
|
|
|
#include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
|
2020-10-09 12:27:32 +02:00
|
|
|
#include "opencl/test/unit_test/mocks/mock_buffer.h"
|
2020-02-23 15:20:22 +01:00
|
|
|
#include "opencl/test/unit_test/mocks/mock_kernel.h"
|
2019-09-18 19:32:33 +02:00
|
|
|
|
|
|
|
using namespace NEO;
|
|
|
|
|
2022-08-16 14:51:17 +00:00
|
|
|
using Gen12LpKernelTest = Test<ClDeviceFixture>;
|
2021-06-21 15:25:03 +00:00
|
|
|
GEN12LPTEST_F(Gen12LpKernelTest, givenKernelWhenCanTransformImagesIsCalledThenReturnsFalse) {
|
2020-01-14 14:32:11 +01:00
|
|
|
MockKernelWithInternals mockKernel(*pClDevice);
|
2019-09-18 19:32:33 +02:00
|
|
|
auto retVal = mockKernel.mockKernel->Kernel::canTransformImages();
|
2019-10-23 11:47:19 +02:00
|
|
|
EXPECT_FALSE(retVal);
|
2019-09-18 19:32:33 +02:00
|
|
|
}
|
2020-10-09 12:27:32 +02:00
|
|
|
|
|
|
|
GEN12LPTEST_F(Gen12LpKernelTest, GivenKernelWhenNotUsingSharedObjArgsThenWaDisableRccRhwoOptimizationIsNotRequired) {
|
|
|
|
MockKernelWithInternals kernel(*pClDevice);
|
2021-03-22 15:26:03 +00:00
|
|
|
EXPECT_FALSE(kernel.mockKernel->requiresWaDisableRccRhwoOptimization());
|
2020-10-09 12:27:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
GEN12LPTEST_F(Gen12LpKernelTest, GivenKernelWhenAtLeastOneArgIsMediaCompressedThenWaDisableRccRhwoOptimizationIsRequired) {
|
|
|
|
MockKernelWithInternals kernel(*pClDevice);
|
2021-04-08 11:05:45 +02:00
|
|
|
kernel.kernelInfo.kernelDescriptor.payloadMappings.explicitArgs.resize(3);
|
|
|
|
kernel.kernelInfo.addArgBuffer(0);
|
|
|
|
kernel.kernelInfo.addArgImmediate(1);
|
|
|
|
kernel.kernelInfo.addArgBuffer(2);
|
|
|
|
|
2020-10-09 12:27:32 +02:00
|
|
|
kernel.mockKernel->initialize();
|
|
|
|
|
|
|
|
MockBuffer buffer;
|
|
|
|
auto allocation = buffer.getGraphicsAllocation(pClDevice->getRootDeviceIndex());
|
2022-04-27 10:20:10 +00:00
|
|
|
auto gmm1 = new MockGmm(pDevice->getGmmHelper());
|
2021-12-02 16:47:05 +00:00
|
|
|
allocation->setGmm(gmm1, 0);
|
2020-10-09 12:27:32 +02:00
|
|
|
|
|
|
|
cl_mem clMem = &buffer;
|
|
|
|
kernel.mockKernel->setArgBuffer(0, sizeof(cl_mem *), &clMem);
|
|
|
|
|
|
|
|
uint32_t immediateArg = 0;
|
|
|
|
kernel.mockKernel->setArgImmediate(1, sizeof(uint32_t), &immediateArg);
|
|
|
|
|
|
|
|
MockBuffer bufferMediaCompressed;
|
|
|
|
bufferMediaCompressed.setSharingHandler(new SharingHandler());
|
|
|
|
allocation = bufferMediaCompressed.getGraphicsAllocation(pClDevice->getRootDeviceIndex());
|
2022-04-27 10:20:10 +00:00
|
|
|
auto gmm2 = new MockGmm(pDevice->getGmmHelper());
|
2021-12-02 16:47:05 +00:00
|
|
|
allocation->setGmm(gmm2, 0);
|
2020-10-09 12:27:32 +02:00
|
|
|
allocation->getGmm(0)->gmmResourceInfo->getResourceFlags()->Info.MediaCompressed = 1;
|
|
|
|
cl_mem clMem2 = &bufferMediaCompressed;
|
|
|
|
kernel.mockKernel->setArgBuffer(2, sizeof(cl_mem *), &clMem2);
|
|
|
|
|
2021-03-22 15:26:03 +00:00
|
|
|
EXPECT_TRUE(kernel.mockKernel->requiresWaDisableRccRhwoOptimization());
|
2020-10-09 12:27:32 +02:00
|
|
|
}
|