1/* 2 * Copyright (C) 2018-2020 Intel Corporation 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 */ 7 8#include "opencl/source/device_queue/device_queue.h" 9#include "opencl/test/unit_test/fixtures/device_host_queue_fixture.h" 10#include "opencl/test/unit_test/mocks/mock_device_queue.h" 11 12#include <memory> 13 14template <typename GfxFamily> 15void SchedulerSourceTest::givenDeviceQueueWhenCommandsSizeIsCalculatedThenItEqualsSpaceForEachEnqueueInSchedulerKernelCodeTest() { 16 auto devQueueHw = std::unique_ptr<MockDeviceQueueHw<GfxFamily>>(new MockDeviceQueueHw<GfxFamily>(&context, pDevice, DeviceHostQueue::deviceQueueProperties::minimumProperties[0])); 17 18 auto singleEnqueueSpace = devQueueHw->getMinimumSlbSize() + devQueueHw->getWaCommandsSize(); 19 EXPECT_EQ(singleEnqueueSpace, SECOND_LEVEL_BUFFER_SPACE_FOR_EACH_ENQUEUE); 20} 21 22template <typename GfxFamily> 23void SchedulerSourceTest::givenDeviceQueueWhenSlbDummyCommandsAreBuildThenSizeUsedIsCorrectTest() { 24 auto devQueueHw = std::unique_ptr<MockDeviceQueueHw<GfxFamily>>(new MockDeviceQueueHw<GfxFamily>(&context, pDevice, DeviceHostQueue::deviceQueueProperties::minimumProperties[0])); 25 devQueueHw->buildSlbDummyCommands(); 26 27 auto slbCS = devQueueHw->getSlbCS(); 28 auto usedSpace = slbCS->getUsed(); 29 30 auto spaceRequiredForEnqueuesAndBBStart = SECOND_LEVEL_BUFFER_SPACE_FOR_EACH_ENQUEUE * SECOND_LEVEL_BUFFER_NUMBER_OF_ENQUEUES + sizeof(typename GfxFamily::MI_BATCH_BUFFER_START); 31 EXPECT_EQ(usedSpace, spaceRequiredForEnqueuesAndBBStart); 32} 33 34template <typename GfxFamily> 35void SchedulerSourceTest::givenDeviceQueueThenNumberOfEnqueuesEqualsNumberOfEnqueuesInSchedulerKernelCodeTest() { 36 EXPECT_EQ(DeviceQueue::numberOfDeviceEnqueues, static_cast<uint32_t>(SECOND_LEVEL_BUFFER_NUMBER_OF_ENQUEUES)); 37} 38