compute-runtime/opencl/test/unit_test/gen12lp/kernel_tests_gen12lp.inl

59 lines
2.2 KiB
C++

/*
* Copyright (C) 2019-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "opencl/source/helpers/hardware_commands_helper.h"
#include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
#include "opencl/test/unit_test/mocks/mock_buffer.h"
#include "opencl/test/unit_test/mocks/mock_kernel.h"
#include "test.h"
using namespace NEO;
using Gen12LpKernelTest = Test<ClDeviceFixture>;
GEN12LPTEST_F(Gen12LpKernelTest, givenKernelWhenCanTransformImagesIsCalledThenReturnsFalse) {
MockKernelWithInternals mockKernel(*pClDevice);
auto retVal = mockKernel.mockKernel->Kernel::canTransformImages();
EXPECT_FALSE(retVal);
}
GEN12LPTEST_F(Gen12LpKernelTest, GivenKernelWhenNotUsingSharedObjArgsThenWaDisableRccRhwoOptimizationIsNotRequired) {
MockKernelWithInternals kernel(*pClDevice);
EXPECT_FALSE(kernel.mockKernel->requiresWaDisableRccRhwoOptimization());
}
GEN12LPTEST_F(Gen12LpKernelTest, GivenKernelWhenAtLeastOneArgIsMediaCompressedThenWaDisableRccRhwoOptimizationIsRequired) {
MockKernelWithInternals kernel(*pClDevice);
kernel.kernelInfo.kernelDescriptor.payloadMappings.explicitArgs.resize(3);
kernel.kernelInfo.addArgBuffer(0);
kernel.kernelInfo.addArgImmediate(1);
kernel.kernelInfo.addArgBuffer(2);
kernel.mockKernel->initialize();
MockBuffer buffer;
auto allocation = buffer.getGraphicsAllocation(pClDevice->getRootDeviceIndex());
MockGmm gmm1(pDevice->getGmmClientContext());
allocation->setGmm(&gmm1, 0);
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());
MockGmm gmm2(pDevice->getGmmClientContext());
allocation->setGmm(&gmm2, 0);
allocation->getGmm(0)->gmmResourceInfo->getResourceFlags()->Info.MediaCompressed = 1;
cl_mem clMem2 = &bufferMediaCompressed;
kernel.mockKernel->setArgBuffer(2, sizeof(cl_mem *), &clMem2);
EXPECT_TRUE(kernel.mockKernel->requiresWaDisableRccRhwoOptimization());
}