mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-18 22:08:53 +08:00
feature: additional checkers to enable feature
Resolves: NEO-13973 Signed-off-by: Damian Tomczak <damian.tomczak@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
4bc13fa0dc
commit
0243004907
@@ -6,7 +6,10 @@
|
||||
*/
|
||||
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
#include "shared/source/device/device.h"
|
||||
#include "shared/source/helpers/api_specific_config.h"
|
||||
#include "shared/source/helpers/compiler_product_helper.h"
|
||||
#include "shared/source/release_helper/release_helper.h"
|
||||
|
||||
#include "opencl/source/os_interface/ocl_reg_path.h"
|
||||
|
||||
@@ -25,6 +28,10 @@ bool ApiSpecificConfig::getGlobalBindlessHeapConfiguration(const ReleaseHelper *
|
||||
}
|
||||
|
||||
bool ApiSpecificConfig::getBindlessMode(const Device &device) {
|
||||
if (device.getCompilerProductHelper().isForceBindlessRequired()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (debugManager.flags.UseBindlessMode.get() != -1) {
|
||||
return debugManager.flags.UseBindlessMode.get();
|
||||
} else {
|
||||
|
||||
@@ -80,7 +80,7 @@ std::string Program::getInternalOptions() const {
|
||||
CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::greaterThan4gbBuffersRequired);
|
||||
}
|
||||
|
||||
if (debugManager.flags.UseBindlessMode.get() == 1) {
|
||||
if (NEO::ApiSpecificConfig::getBindlessMode(pClDevice->getDevice())) {
|
||||
CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::bindlessMode);
|
||||
}
|
||||
|
||||
|
||||
@@ -1653,7 +1653,7 @@ TEST_F(BuiltInTests, WhenBuiltinsLibIsCreatedThenAllStoragesSizeIsTwo) {
|
||||
|
||||
TEST_F(BuiltInTests, GivenTypeAnyWhenGettingBuiltinCodeThenCorrectBuiltinReturned) {
|
||||
auto builtinsLib = std::unique_ptr<BuiltinsLib>(new BuiltinsLib());
|
||||
BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::any, *pDevice);
|
||||
BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferToBuffer>(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::any, *pDevice);
|
||||
EXPECT_EQ(BuiltinCode::ECodeType::binary, code.type);
|
||||
EXPECT_NE(0u, code.resource.size());
|
||||
EXPECT_EQ(pDevice, code.targetDevice);
|
||||
@@ -1661,7 +1661,7 @@ TEST_F(BuiltInTests, GivenTypeAnyWhenGettingBuiltinCodeThenCorrectBuiltinReturne
|
||||
|
||||
TEST_F(BuiltInTests, GivenTypeBinaryWhenGettingBuiltinCodeThenCorrectBuiltinReturned) {
|
||||
auto builtinsLib = std::unique_ptr<BuiltinsLib>(new BuiltinsLib());
|
||||
BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::binary, *pDevice);
|
||||
BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferToBuffer>(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::binary, *pDevice);
|
||||
EXPECT_EQ(BuiltinCode::ECodeType::binary, code.type);
|
||||
EXPECT_NE(0u, code.resource.size());
|
||||
EXPECT_EQ(pDevice, code.targetDevice);
|
||||
@@ -1810,7 +1810,7 @@ TEST_F(BuiltInTests, GivenTypeIntermediateWhenCreatingProgramFromCodeThenNullPoi
|
||||
|
||||
TEST_F(BuiltInTests, GivenTypeBinaryWhenCreatingProgramFromCodeThenValidPointerIsReturned) {
|
||||
auto builtinsLib = std::unique_ptr<BuiltinsLib>(new BuiltinsLib());
|
||||
const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::binary, *pDevice);
|
||||
const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferToBuffer>(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::binary, *pDevice);
|
||||
EXPECT_NE(0u, bc.resource.size());
|
||||
auto program = std::unique_ptr<Program>(BuiltinDispatchInfoBuilder::createProgramFromCode(bc, toClDeviceVector(*pClDevice)));
|
||||
EXPECT_NE(nullptr, program.get());
|
||||
@@ -1898,7 +1898,7 @@ TEST_F(BuiltInTests, givenSipKernelWhenAllocationFailsThenItHasNullptrGraphicsAl
|
||||
TEST_F(BuiltInTests, givenDebugFlagForceUseSourceWhenArgIsBinaryThenReturnBuiltinCodeBinary) {
|
||||
debugManager.flags.RebuildPrecompiledKernels.set(true);
|
||||
auto builtinsLib = std::unique_ptr<BuiltinsLib>(new BuiltinsLib());
|
||||
BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::copyBufferToBuffer, BuiltinCode::ECodeType::binary, *pDevice);
|
||||
BuiltinCode code = builtinsLib->getBuiltinCode(EBuiltInOps::adjustBuiltinType<EBuiltInOps::copyBufferToBuffer>(false, pDevice->getCompilerProductHelper().isHeaplessModeEnabled()), BuiltinCode::ECodeType::binary, *pDevice);
|
||||
EXPECT_EQ(BuiltinCode::ECodeType::binary, code.type);
|
||||
EXPECT_NE(0u, code.resource.size());
|
||||
EXPECT_EQ(pDevice, code.targetDevice);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2018-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -22,6 +22,8 @@ struct CreateCommandStreamReceiverTest : public ::testing::TestWithParam<Command
|
||||
|
||||
HWTEST_P(CreateCommandStreamReceiverTest, givenCreateCommandStreamWhenCsrIsSetToValidTypeThenTheFuntionReturnsCommandStreamReceiver) {
|
||||
DebugManagerStateRestore stateRestorer;
|
||||
debugManager.flags.ForceL3FlushAfterPostSync.set(0);
|
||||
|
||||
HardwareInfo *hwInfo = nullptr;
|
||||
ExecutionEnvironment *executionEnvironment = getExecutionEnvironmentImpl(hwInfo, 1);
|
||||
ASSERT_NE(nullptr, executionEnvironment->memoryManager.get());
|
||||
|
||||
@@ -1680,20 +1680,17 @@ TEST_F(ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEn
|
||||
using namespace testing;
|
||||
DebugManagerStateRestore restorer;
|
||||
|
||||
{
|
||||
|
||||
if (!pDevice->getCompilerProductHelper().isHeaplessModeEnabled()) {
|
||||
debugManager.flags.UseBindlessMode.set(0);
|
||||
MockProgram programNoBindless(pContext, false, toClDeviceVector(*pClDevice));
|
||||
auto internalOptionsNoBindless = programNoBindless.getInternalOptions();
|
||||
EXPECT_FALSE(CompilerOptions::contains(internalOptionsNoBindless, CompilerOptions::bindlessMode)) << internalOptionsNoBindless;
|
||||
}
|
||||
{
|
||||
|
||||
debugManager.flags.UseBindlessMode.set(1);
|
||||
MockProgram programBindless(pContext, false, toClDeviceVector(*pClDevice));
|
||||
auto internalOptionsBindless = programBindless.getInternalOptions();
|
||||
EXPECT_TRUE(CompilerOptions::contains(internalOptionsBindless, CompilerOptions::bindlessMode)) << internalOptionsBindless;
|
||||
}
|
||||
debugManager.flags.UseBindlessMode.set(1);
|
||||
MockProgram programBindless(pContext, false, toClDeviceVector(*pClDevice));
|
||||
auto internalOptionsBindless = programBindless.getInternalOptions();
|
||||
EXPECT_TRUE(CompilerOptions::contains(internalOptionsBindless, CompilerOptions::bindlessMode)) << internalOptionsBindless;
|
||||
}
|
||||
|
||||
TEST_F(ProgramTests, GivenForce32BitAddressesWhenProgramIsCreatedThenGreaterThan4gbBuffersRequiredIsCorrectlySet) {
|
||||
|
||||
Reference in New Issue
Block a user