mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-07 12:42:54 +08:00
Refactor: dont use global gfxCoreHelper getter in ocl files 3/n
Related-To: NEO-6853 Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
a55680e82e
commit
fe63f2a1c6
@@ -24,8 +24,7 @@ namespace NEO {
|
||||
void AUBCommandStreamFixture::setUp(CommandQueue *pCmdQ) {
|
||||
ASSERT_NE(pCmdQ, nullptr);
|
||||
auto &device = reinterpret_cast<MockDevice &>(pCmdQ->getDevice());
|
||||
const auto &hwInfo = device.getHardwareInfo();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = device.getGfxCoreHelper();
|
||||
|
||||
const ::testing::TestInfo *const testInfo = ::testing::UnitTest::GetInstance()->current_test_info();
|
||||
std::stringstream strfilename;
|
||||
|
||||
@@ -88,7 +88,8 @@ HWTEST_F(AubMemDumpTests, GivenReserveMaxAddressThenExpectationsAreMet) {
|
||||
auto gAddress = static_cast<uintptr_t>(-1) - 4096;
|
||||
auto pAddress = static_cast<uint64_t>(gAddress) & 0xFFFFFFFF;
|
||||
|
||||
auto enableLocalMemory = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily).getEnableLocalMemory(hwInfo);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
auto enableLocalMemory = gfxCoreHelper.getEnableLocalMemory(hwInfo);
|
||||
NEO::AubHelperHw<FamilyType> aubHelperHw(enableLocalMemory);
|
||||
AUB::reserveAddressPPGTT(aubFile, gAddress, 4096, pAddress, 7, aubHelperHw);
|
||||
|
||||
|
||||
@@ -57,7 +57,13 @@ class AUBFixture : public CommandQueueHwFixture {
|
||||
void setUp(const HardwareInfo *hardwareInfo) {
|
||||
const HardwareInfo &hwInfo = hardwareInfo ? *hardwareInfo : *defaultHwInfo;
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
executionEnvironment = platform()->peekExecutionEnvironment();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1u);
|
||||
executionEnvironment->rootDeviceEnvironments[0]->setHwInfo(&hwInfo);
|
||||
executionEnvironment->rootDeviceEnvironments[0]->initGmm();
|
||||
executionEnvironment->rootDeviceEnvironments[0]->memoryOperationsInterface = std::make_unique<MockMemoryOperationsHandler>();
|
||||
|
||||
auto &gfxCoreHelper = executionEnvironment->rootDeviceEnvironments[0]->getHelper<GfxCoreHelper>();
|
||||
auto engineType = getChosenEngineType(hwInfo);
|
||||
|
||||
const ::testing::TestInfo *const testInfo = ::testing::UnitTest::GetInstance()->current_test_info();
|
||||
@@ -65,12 +71,6 @@ class AUBFixture : public CommandQueueHwFixture {
|
||||
strfilename << ApiSpecificConfig::getAubPrefixForSpecificApi();
|
||||
strfilename << testInfo->test_case_name() << "_" << testInfo->name() << "_" << gfxCoreHelper.getCsTraits(engineType).name;
|
||||
|
||||
executionEnvironment = platform()->peekExecutionEnvironment();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1u);
|
||||
executionEnvironment->rootDeviceEnvironments[0]->setHwInfo(&hwInfo);
|
||||
executionEnvironment->rootDeviceEnvironments[0]->initGmm();
|
||||
executionEnvironment->rootDeviceEnvironments[0]->memoryOperationsInterface = std::make_unique<MockMemoryOperationsHandler>();
|
||||
|
||||
auto pDevice = MockDevice::create<MockDevice>(executionEnvironment, rootDeviceIndex);
|
||||
device = std::make_unique<MockClDevice>(pDevice);
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ extern GFXCORE_FAMILY renderCoreFamily;
|
||||
using namespace NEO;
|
||||
|
||||
static const unsigned int testImageDimensions = 17;
|
||||
auto const elementSize = 4; //sizeof CL_RGBA * CL_UNORM_INT8
|
||||
auto const elementSize = 4; // sizeof CL_RGBA * CL_UNORM_INT8
|
||||
|
||||
struct AUBCreateImage
|
||||
: public CommandDeviceFixture,
|
||||
@@ -81,7 +81,7 @@ struct AUBCreateImageArray : public AUBCreateImage,
|
||||
};
|
||||
|
||||
HWTEST_F(AUBCreateImageArray, Given1DImageArrayThenExpectationsMet) {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
imageDesc.image_type = CL_MEM_OBJECT_IMAGE1D_ARRAY;
|
||||
imageDesc.image_height = 1;
|
||||
cl_mem_flags flags = CL_MEM_COPY_HOST_PTR;
|
||||
@@ -91,7 +91,7 @@ HWTEST_F(AUBCreateImageArray, Given1DImageArrayThenExpectationsMet) {
|
||||
imgInfo.linearStorage = gfxCoreHelper.isLinearStoragePreferred(false, Image::isImage1d(imageDesc), false);
|
||||
auto queryGmm = MockGmm::queryImgParams(pDevice->getGmmHelper(), imgInfo, false);
|
||||
|
||||
//allocate host_ptr
|
||||
// allocate host_ptr
|
||||
auto pixelSize = 4;
|
||||
auto storageSize = imageDesc.image_array_size * pixelSize * imageDesc.image_width * imageDesc.image_height;
|
||||
|
||||
@@ -160,7 +160,7 @@ HWTEST_F(AUBCreateImageArray, Given1DImageArrayThenExpectationsMet) {
|
||||
}
|
||||
|
||||
HWTEST_F(AUBCreateImageArray, Given2DImageArrayThenExpectationsMet) {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
imageDesc.image_type = CL_MEM_OBJECT_IMAGE2D_ARRAY;
|
||||
|
||||
cl_mem_flags flags = CL_MEM_COPY_HOST_PTR;
|
||||
@@ -170,7 +170,7 @@ HWTEST_F(AUBCreateImageArray, Given2DImageArrayThenExpectationsMet) {
|
||||
imgInfo.linearStorage = gfxCoreHelper.isLinearStoragePreferred(false, Image::isImage1d(imageDesc), false);
|
||||
auto queryGmm = MockGmm::queryImgParams(pDevice->getGmmHelper(), imgInfo, false);
|
||||
|
||||
//allocate host_ptr
|
||||
// allocate host_ptr
|
||||
auto pixelSize = 4;
|
||||
auto storageSize = imageDesc.image_array_size * pixelSize * imageDesc.image_width * imageDesc.image_height;
|
||||
|
||||
@@ -319,7 +319,7 @@ HWTEST_P(CopyHostPtrTest, GivenImageWithDoubledRowPitchWhenCreatedWithCopyHostPt
|
||||
EXPECT_EQ(image->getQPitch(), imgInfo.qPitch);
|
||||
EXPECT_EQ(image->getCubeFaceIndex(), static_cast<uint32_t>(__GMM_NO_CUBE_MAP));
|
||||
|
||||
//now check if data is properly propagated to image
|
||||
// now check if data is properly propagated to image
|
||||
|
||||
heightToCopy = imageDesc.image_height;
|
||||
auto imageStorage = static_cast<uint8_t *>(image->getCpuAddress());
|
||||
@@ -388,7 +388,7 @@ HWTEST_P(UseHostPtrTest, GivenImageWithRowPitchWhenCreatedWithUseHostPtrFlagThen
|
||||
retVal));
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
//now check if data is properly propagated to image
|
||||
// now check if data is properly propagated to image
|
||||
auto mapFlags = CL_MAP_READ;
|
||||
const size_t origin[3] = {0, 0, 0};
|
||||
const size_t region[3] = {imageDesc.image_width, imageDesc.image_height, 1};
|
||||
|
||||
@@ -155,8 +155,8 @@ TEST(CommandQueue, givenEnableTimestampWaitWhenCheckIsTimestampWaitEnabledThenRe
|
||||
|
||||
{
|
||||
DebugManager.flags.EnableTimestampWaitForQueues.set(-1);
|
||||
const auto &gfxCoreHelper = GfxCoreHelper::get(mockDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
const auto &productHelper = *ProductHelper::get(mockDevice->getHardwareInfo().platform.eProductFamily);
|
||||
const auto &gfxCoreHelper = mockDevice->getGfxCoreHelper();
|
||||
const auto &productHelper = mockDevice->getProductHelper();
|
||||
EXPECT_EQ(cmdQ.isWaitForTimestampsEnabled(), gfxCoreHelper.isTimestampWaitSupportedForQueues() && !productHelper.isDcFlushAllowed());
|
||||
}
|
||||
|
||||
@@ -321,8 +321,8 @@ TEST(CommandQueue, whenCommandQueueWithInternalUsageIsCreatedThenInternalBcsEngi
|
||||
hwInfo.capabilityTable.blitterOperationsSupported = true;
|
||||
REQUIRE_FULL_BLITTER_OR_SKIP(&hwInfo);
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&hwInfo));
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
auto internalUsage = true;
|
||||
auto expectedEngineType = EngineHelpers::linkCopyEnginesSupported(device->getRootDeviceEnvironment(), device->getDeviceBitfield())
|
||||
? aub_stream::EngineType::ENGINE_BCS2
|
||||
@@ -1489,7 +1489,7 @@ HWTEST_F(CommandQueueCommandStreamTest, givenDebugKernelWhenSetupDebugSurfaceIsC
|
||||
auto &commandStreamReceiver = cmdQ.getGpgpuCommandStreamReceiver();
|
||||
|
||||
auto &hwInfo = *NEO::defaultHwInfo.get();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pClDevice->getGfxCoreHelper();
|
||||
cmdQ.getGpgpuCommandStreamReceiver().allocateDebugSurface(gfxCoreHelper.getSipKernelMaxDbgSurfaceSize(hwInfo));
|
||||
cmdQ.setupDebugSurface(kernel.get());
|
||||
|
||||
@@ -1510,7 +1510,7 @@ HWTEST_F(CommandQueueCommandStreamTest, givenCsrWithDebugSurfaceAllocatedWhenSet
|
||||
kernel->setSshLocal(nullptr, sizeof(RENDER_SURFACE_STATE) + systemThreadSurfaceAddress);
|
||||
auto &commandStreamReceiver = cmdQ.getGpgpuCommandStreamReceiver();
|
||||
auto hwInfo = *NEO::defaultHwInfo.get();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pClDevice->getGfxCoreHelper();
|
||||
commandStreamReceiver.allocateDebugSurface(gfxCoreHelper.getSipKernelMaxDbgSurfaceSize(hwInfo));
|
||||
auto debugSurface = commandStreamReceiver.getDebugSurfaceAllocation();
|
||||
ASSERT_NE(nullptr, debugSurface);
|
||||
|
||||
@@ -131,7 +131,7 @@ HWTEST_F(EnqueueCopyBufferRectTest, GivenGpuHangAndBlockingCallAndValidParameter
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueCopyBufferRectTest, WhenCopyingBufferRect2DThenTaskCountIsAlignedWithCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -261,7 +261,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, When2DEnqueueIsDoneThenSt
|
||||
enqueueCopyBufferRect2D<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
@@ -386,7 +386,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, When3DEnqueueIsDoneThenSt
|
||||
enqueueCopyBufferRect3D<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -125,7 +125,7 @@ HWTEST_F(EnqueueCopyBufferTest, GivenInvalidMemoryLocationWhenCopyingBufferThenC
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenTaskCountIsAlignedWithCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -272,7 +272,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferTest, WhenEnqueueIsDoneThenStateBas
|
||||
enqueueCopyBufferAndParse<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -60,7 +60,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferToImageTest, WhenCopyingBufferToIma
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueCopyBufferToImageTest, WhenCopyingBufferToImageThenTaskCountIsAlignedWithCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -104,7 +104,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferToImageTest, WhenEnqueueIsDoneThenS
|
||||
enqueueCopyBufferToImage<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -117,7 +117,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyImageTest, WhenEnqueueIsDoneThenStateBase
|
||||
enqueueCopyImage<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -60,7 +60,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyImageToBufferTest, WhenCopyingImageToBuff
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueCopyImageToBufferTest, WhenCopyingImageToBufferThenTaskCountIsAlignedWithCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -104,7 +104,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyImageToBufferTest, WhenEnqueueIsDoneThenS
|
||||
enqueueCopyImageToBuffer<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -159,7 +159,7 @@ HWTEST_F(EnqueueDebugKernelSimpleTest, givenKernelFromProgramWithDebugEnabledWhe
|
||||
kernel->initialize();
|
||||
std::unique_ptr<MockCommandQueueHwSetupDebugSurface<FamilyType>> mockCmdQ(new MockCommandQueueHwSetupDebugSurface<FamilyType>(context, pClDevice, 0));
|
||||
auto hwInfo = *NEO::defaultHwInfo.get();
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pClDevice->getGfxCoreHelper();
|
||||
mockCmdQ->getGpgpuCommandStreamReceiver().allocateDebugSurface(gfxCoreHelper.getSipKernelMaxDbgSurfaceSize(hwInfo));
|
||||
mockCmdQ->setupDebugSurfaceParamsPassed.clear();
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ using namespace NEO;
|
||||
typedef Test<EnqueueFillBufferFixture> EnqueueFillBufferCmdTests;
|
||||
|
||||
HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenTaskCountIsAlignedWithCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -216,7 +216,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueFillBufferCmdTests, WhenEnqueueIsDoneThenStat
|
||||
enqueueFillBuffer<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -35,7 +35,7 @@ class EnqueueFillImageTest : public EnqueueFillImageTestFixture,
|
||||
};
|
||||
|
||||
HWTEST_F(EnqueueFillImageTest, WhenFillingImageThenTaskCountIsAlignedWithCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -129,7 +129,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueFillImageTest, WhenEnqueueIsDoneThenStateBase
|
||||
enqueueFillImage<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -189,8 +189,7 @@ HWCMDTEST_P(IGFX_GEN8_CORE, EnqueueWorkItemTestsWithLimitedParamSet, WhenEnquein
|
||||
HWCMDTEST_P(IGFX_GEN8_CORE, EnqueueWorkItemTestsWithLimitedParamSet, WhenEnqueueIsDoneThenStateBaseAddressIsProperlyProgrammed) {
|
||||
enqueueKernel<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -130,7 +130,7 @@ HWTEST_F(EnqueueReadBufferRectTest, GivenGpuHangAndBlockingCallAndValidParamsWhe
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueReadBufferRectTest, GivenBlockingEnqueueWhenReadingBufferThenTaskLevelIsNotIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -142,7 +142,7 @@ HWTEST_F(EnqueueReadBufferRectTest, GivenBlockingEnqueueWhenReadingBufferThenTas
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueReadBufferRectTest, GivenNonBlockingEnqueueWhenReadingBufferThenTaskLevelIsIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -243,8 +243,7 @@ HWTEST_F(EnqueueReadBufferRectTest, WhenReadingBufferThenL3ProgrammingIsCorrect)
|
||||
HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueReadBufferRectTest, When2DEnqueueIsDoneThenStateBaseAddressIsProperlyProgrammed) {
|
||||
enqueueReadBufferRect2D<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -118,7 +118,7 @@ HWTEST_F(EnqueueReadBufferTypeTest, GivenGpuHangAndBlockingCallWhenReadingBuffer
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueReadBufferTypeTest, GivenBlockingWhenReadingBufferThenAlignedToCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -131,7 +131,7 @@ HWTEST_F(EnqueueReadBufferTypeTest, GivenBlockingWhenReadingBufferThenAlignedToC
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueReadBufferTypeTest, GivenNonBlockingWhenReadingBufferThenAlignedToCsr) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -191,8 +191,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueReadBufferTypeTest, WhenEnqueueIsDoneThenStat
|
||||
srcBuffer->forceDisallowCPUCopy = true;
|
||||
enqueueReadBuffer<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -57,7 +57,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueReadImageTest, WhenReadingImageThenGpgpuWalke
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueReadImageTest, GivenBlockingEnqueueWhenReadingImageThenTaskLevelIsNotIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -531,7 +531,7 @@ HWTEST_F(EnqueueReadImageTest, givenImageFromBufferThatRequiresMigrationWhenEnqu
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueReadImageTest, GivenNonBlockingEnqueueWhenReadingImageThenTaskLevelIsIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -574,8 +574,7 @@ HWTEST_F(EnqueueReadImageTest, WhenReadingImageThenL3ProgrammingIsCorrect) {
|
||||
HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueReadImageTest, WhenEnqueueIsDoneThenStateBaseAddressIsProperlyProgrammed) {
|
||||
enqueueReadImage<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -106,7 +106,7 @@ HWTEST_F(EnqueueWriteBufferRectTest, GivenGpuHangAndBlockingCallAndValidParamsWh
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueWriteBufferRectTest, GivenBlockingEnqueueWhenWritingBufferThenTaskLevelIsNotIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -118,7 +118,7 @@ HWTEST_F(EnqueueWriteBufferRectTest, GivenBlockingEnqueueWhenWritingBufferThenTa
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueWriteBufferRectTest, GivenNonBlockingEnqueueWhenWritingBufferThenTaskLevelIsIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -218,8 +218,7 @@ HWTEST_F(EnqueueWriteBufferRectTest, WhenWritingBufferThenL3ProgrammingIsCorrect
|
||||
HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueWriteBufferRectTest, When2DEnqueueIsDoneThenStateBaseAddressIsProperlyProgrammed) {
|
||||
enqueueWriteBufferRect2D<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -60,7 +60,7 @@ HWTEST_F(EnqueueWriteBufferTypeTest, GivenNullUserPointerWhenWritingBufferThenIn
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueWriteBufferTypeTest, GivenBlockingEnqueueWhenWritingBufferThenTaskLevelIsNotIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -87,7 +87,7 @@ HWTEST_F(EnqueueWriteBufferTypeTest, GivenGpuHangAndBlockingEnqueueWhenWritingBu
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueWriteBufferTypeTest, GivenNonBlockingEnqueueWhenWritingBufferThenTaskLevelIsIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -189,8 +189,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueWriteBufferTypeTest, WhenEnqueueIsDoneThenSta
|
||||
srcBuffer->forceDisallowCPUCopy = true;
|
||||
enqueueWriteBuffer<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -60,7 +60,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueWriteImageTest, WhenWritingImageThenCommandsA
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueWriteImageTest, GivenBlockingEnqueueWhenWritingImageThenTaskLevelIsNotIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -85,7 +85,7 @@ HWTEST_F(EnqueueWriteImageTest, GivenGpuHangAndBlockingEnqueueWhenWritingImageTh
|
||||
}
|
||||
|
||||
HWTEST_F(EnqueueWriteImageTest, GivenNonBlockingEnqueueWhenWritingImageThenTaskLevelIsIncremented) {
|
||||
//this test case assumes IOQ
|
||||
// this test case assumes IOQ
|
||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
csr.taskCount = pCmdQ->taskCount + 100;
|
||||
csr.taskLevel = pCmdQ->taskLevel + 50;
|
||||
@@ -128,8 +128,7 @@ HWTEST_F(EnqueueWriteImageTest, WhenWritingImageThenL3ProgrammingIsCorrect) {
|
||||
HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueWriteImageTest, WhenEnqueueIsDoneThenStateBaseAddressIsProperlyProgrammed) {
|
||||
enqueueWriteImage<FamilyType>();
|
||||
auto &ultCsr = this->pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
|
||||
validateStateBaseAddress<FamilyType>(ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, pIOH->getGraphicsAllocation()->isAllocatedInLocalMemoryPool()),
|
||||
ultCsr.getMemoryManager()->getInternalHeapBaseAddress(ultCsr.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo())),
|
||||
|
||||
@@ -133,7 +133,7 @@ TEST_F(GetCommandQueueFamilyInfoTests, givenQueueFamilyNotSelectedWhenGettingFam
|
||||
cl_int retVal{};
|
||||
|
||||
const auto &hwInfo = context.getDevice(0)->getHardwareInfo();
|
||||
const auto &gfxCoreHelper = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
|
||||
const auto &gfxCoreHelper = context.getDevice(0)->getGfxCoreHelper();
|
||||
const auto engineGroupType = gfxCoreHelper.getEngineGroupType(context.getDevice(0)->getDefaultEngine().getEngineType(),
|
||||
context.getDevice(0)->getDefaultEngine().getEngineUsage(), hwInfo);
|
||||
const auto expectedFamilyIndex = context.getDevice(0)->getDevice().getEngineGroupIndexFromEngineGroupType(engineGroupType);
|
||||
|
||||
@@ -98,7 +98,7 @@ class SyncBufferHandlerTest : public SyncBufferEnqueueHandlerTest {
|
||||
}
|
||||
|
||||
bool isCooperativeDispatchSupported() {
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(hardwareInfo.platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
auto engineGroupType = gfxCoreHelper.getEngineGroupType(commandQueue->getGpgpuEngine().getEngineType(),
|
||||
commandQueue->getGpgpuEngine().getEngineUsage(), hardwareInfo);
|
||||
return gfxCoreHelper.isCooperativeDispatchSupported(engineGroupType, pDevice->getHardwareInfo());
|
||||
|
||||
@@ -550,7 +550,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, CommandStreamReceiverFlushTaskTests, WhenFlushingTas
|
||||
ASSERT_NE(nullptr, cmdStateBaseAddress);
|
||||
auto &cmd = *reinterpret_cast<STATE_BASE_ADDRESS *>(cmdStateBaseAddress);
|
||||
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
auto instructionHeapBaseAddress = commandStreamReceiver.getMemoryManager()->getInternalHeapBaseAddress(commandStreamReceiver.rootDeviceIndex, !gfxCoreHelper.useSystemMemoryPlacementForISA(pDevice->getHardwareInfo()));
|
||||
|
||||
EXPECT_EQ(dsh.getCpuBase(), reinterpret_cast<void *>(cmd.getDynamicStateBaseAddress()));
|
||||
|
||||
@@ -741,7 +741,7 @@ struct PreambleThreadArbitrationMatcher {
|
||||
|
||||
HWTEST2_F(CommandStreamReceiverFlushTaskTests, givenPolicyValueChangedWhenFlushingTaskThenProgramThreadArbitrationPolicy, PreambleThreadArbitrationMatcher) {
|
||||
using MI_LOAD_REGISTER_IMM = typename FamilyType::MI_LOAD_REGISTER_IMM;
|
||||
auto &gfxCoreHelper = GfxCoreHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily);
|
||||
auto &gfxCoreHelper = pDevice->getGfxCoreHelper();
|
||||
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
commandStreamReceiver.isPreambleSent = true;
|
||||
|
||||
|
||||
@@ -693,7 +693,9 @@ HWTEST2_F(PerformanceHintTest, given64bitCompressedBufferWhenItsCreatedThenPrope
|
||||
Buffer::create(context.get(), ClMemoryPropertiesHelper::createMemoryProperties(0, 0, 0, &context->getDevice(0)->getDevice()),
|
||||
0, 0, size, static_cast<void *>(NULL), retVal));
|
||||
snprintf(expectedHint, DriverDiagnostics::maxHintStringSize, DriverDiagnostics::hintFormat[BUFFER_IS_COMPRESSED], buffer.get());
|
||||
auto compressionSupported = GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily).isBufferSizeSuitableForCompression(size, hwInfo) &&
|
||||
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
auto compressionSupported = gfxCoreHelper.isBufferSizeSuitableForCompression(size, hwInfo) &&
|
||||
GfxCoreHelper::compressedBuffersSupported(hwInfo);
|
||||
if (compressionSupported) {
|
||||
EXPECT_TRUE(containsHint(expectedHint, userData));
|
||||
@@ -720,11 +722,14 @@ TEST_F(PerformanceHintTest, givenUncompressedBufferWhenItsCreatedThenProperPerfo
|
||||
auto context = std::unique_ptr<MockContext>(Context::create<NEO::MockContext>(validProperties, ClDeviceVector(&deviceId, 1), callbackFunction, static_cast<void *>(userData), retVal));
|
||||
std::unique_ptr<Buffer> buffer;
|
||||
bool isCompressed = true;
|
||||
|
||||
auto &gfxCoreHelper = device->getGfxCoreHelper();
|
||||
|
||||
if (context->getMemoryManager()) {
|
||||
isCompressed = MemObjHelper::isSuitableForCompression(
|
||||
GfxCoreHelper::compressedBuffersSupported(hwInfo),
|
||||
memoryProperties, *context,
|
||||
GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily).isBufferSizeSuitableForCompression(size, hwInfo)) &&
|
||||
gfxCoreHelper.isBufferSizeSuitableForCompression(size, hwInfo)) &&
|
||||
!is32bit && !context->isSharedContext &&
|
||||
(!memoryProperties.flags.useHostPtr || context->getMemoryManager()->isLocalMemorySupported(device->getRootDeviceIndex())) &&
|
||||
!memoryProperties.flags.forceHostMemory;
|
||||
|
||||
Reference in New Issue
Block a user