mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-26 15:03:02 +08:00
feature: force stateless for read and write buffer rect
Related-to: NEO-6075 Signed-off-by: Damian Tomczak <damian.tomczak@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
5e43ee905d
commit
b39c5c151a
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2018-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -54,9 +54,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadBufferRect(
|
||||
bool isCpuCopyAllowed = false;
|
||||
getContext().tryGetExistingHostPtrAllocation(ptr, hostPtrSize, rootDeviceIndex, mapAllocation, memoryType, isCpuCopyAllowed);
|
||||
|
||||
const bool useStateless = forceStateless(buffer->getSize());
|
||||
const bool isStateless = isForceStateless || forceStateless(buffer->getSize());
|
||||
const bool useHeapless = this->getHeaplessModeEnabled();
|
||||
auto builtInType = EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferRect>(useStateless, useHeapless);
|
||||
auto builtInType = EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferRect>(isStateless, useHeapless);
|
||||
|
||||
void *dstPtr = ptr;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2018-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -58,9 +58,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBufferRect(
|
||||
bool isCpuCopyAllowed = false;
|
||||
getContext().tryGetExistingHostPtrAllocation(ptr, hostPtrSize, rootDeviceIndex, mapAllocation, memoryType, isCpuCopyAllowed);
|
||||
|
||||
const bool useStateless = forceStateless(buffer->getSize());
|
||||
const bool isStateless = isForceStateless || forceStateless(buffer->getSize());
|
||||
const bool useHeapless = this->getHeaplessModeEnabled();
|
||||
auto builtInType = EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferRect>(useStateless, useHeapless);
|
||||
auto builtInType = EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferRect>(isStateless, useHeapless);
|
||||
|
||||
void *srcPtr = const_cast<void *>(ptr);
|
||||
|
||||
|
||||
@@ -314,7 +314,14 @@ HWTEST_F(BuiltinParamsCommandQueueHwTests, givenEnqueueReadImageCallWhenBuiltinP
|
||||
HWTEST_F(BuiltinParamsCommandQueueHwTests, givenEnqueueReadWriteBufferRectCallWhenBuiltinParamsArePassedThenCheckValuesCorectness) {
|
||||
|
||||
auto &compilerProductHelper = pDevice->getCompilerProductHelper();
|
||||
auto builtIn = compilerProductHelper.isHeaplessModeEnabled(*defaultHwInfo) ? EBuiltInOps::copyBufferRectStatelessHeapless : EBuiltInOps::copyBufferRect;
|
||||
|
||||
auto builtIn = EBuiltInOps::copyBufferRect;
|
||||
if (compilerProductHelper.isHeaplessModeEnabled(*defaultHwInfo)) {
|
||||
builtIn = EBuiltInOps::copyBufferRectStatelessHeapless;
|
||||
} else if (pCmdQ->getDevice().getCompilerProductHelper().isForceToStatelessRequired()) {
|
||||
builtIn = EBuiltInOps::copyBufferRectStateless;
|
||||
}
|
||||
|
||||
setUpImpl(builtIn);
|
||||
|
||||
BufferDefaults::context = context;
|
||||
|
||||
@@ -706,7 +706,7 @@ HWTEST_F(EnqueueReadBufferRectStatelessTest, WhenReadingBufferRectStatelessThenS
|
||||
|
||||
using EnqueueReadBufferRectStatefulTest = EnqueueReadBufferRectHw;
|
||||
|
||||
HWTEST_F(EnqueueReadBufferRectStatefulTest, WhenReadingBufferRectStatefulThenSuccessIsReturned) {
|
||||
HWTEST2_F(EnqueueReadBufferRectStatefulTest, WhenReadingBufferRectStatefulThenSuccessIsReturned, IsStatefulBufferPreferredForProduct) {
|
||||
|
||||
auto pCmdQ = std::make_unique<CommandQueueStateful<FamilyType>>(context.get(), device.get());
|
||||
if (pCmdQ->getHeaplessModeEnabled()) {
|
||||
|
||||
@@ -713,7 +713,7 @@ HWTEST_F(EnqueueWriteBufferRectStatelessTest, WhenWritingBufferRectStatelessThen
|
||||
|
||||
using EnqueueWriteBufferRectStatefulTest = EnqueueWriteBufferRectHw;
|
||||
|
||||
HWTEST_F(EnqueueWriteBufferRectStatefulTest, WhenWritingBufferRectStatefulThenSuccessIsReturned) {
|
||||
HWTEST2_F(EnqueueWriteBufferRectStatefulTest, WhenWritingBufferRectStatefulThenSuccessIsReturned, IsStatefulBufferPreferredForProduct) {
|
||||
|
||||
auto pCmdQ = std::make_unique<CommandQueueStateful<FamilyType>>(context.get(), device.get());
|
||||
if (pCmdQ->getHeaplessModeEnabled()) {
|
||||
|
||||
@@ -18,11 +18,9 @@ HWTEST_EXCLUDE_PRODUCT(CommandStreamReceiverHwTestDg2AndLater, givenGen12AndLate
|
||||
HWTEST_EXCLUDE_PRODUCT(CommandStreamReceiverHwTestDg2AndLater, givenGen12AndLaterWhenRayTracingEnabledButAlreadySentThenCommandIsNotAddedToBatchBuffer_MatcherIsRTCapable, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(DeviceGetCapsTest, givenDeviceWhenAskingForSubGroupSizesThenReturnCorrectValues, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(ClGfxCoreHelperTest, givenKernelInfoWhenCheckingRequiresAuxResolvesThenCorrectValuesAreReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(EnqueueReadBufferRectStatefulTest, WhenReadingBufferRectStatefulThenSuccessIsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(EnqueueSvmMemCopyHwTest, givenEnqueueSVMMemCopyWhenUsingCopyBufferToBufferStatefulBuilderThenSuccessIsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(EnqueueSvmMemFillHwTest, givenEnqueueSVMMemFillWhenUsingCopyBufferToLocalBufferStatefulBuilderThenSuccessIsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(EnqueueFillBufferStatefulTest, givenBuffersWhenFillingBufferStatefulThenSuccessIsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(EnqueueWriteBufferStatefulTest, WhenWritingBufferStatefulThenSuccessIsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(EnqueueReadBufferStatefulTest, WhenReadingBufferStatefulThenSuccessIsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(EnqueueWriteBufferRectStatefulTest, WhenWritingBufferRectStatefulThenSuccessIsReturned, IGFX_XE_HPC_CORE);
|
||||
HWTEST_EXCLUDE_PRODUCT(CommandStreamReceiverFlushTaskTests, givenOverrideThreadArbitrationPolicyDebugVariableSetWhenFlushingThenRequestRequiredMode, IGFX_XE_HPC_CORE);
|
||||
|
||||
Reference in New Issue
Block a user