mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
Don't override global bindless heap base
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
d79611d2ff
commit
9290637a8e
@@ -74,7 +74,7 @@ void StateBaseAddressHelper<BDWFamily>::programStateBaseAddress(
|
||||
|
||||
stateBaseAddress->setStatelessDataPortAccessMemoryObjectControlState(statelessMocsIndex);
|
||||
|
||||
appendStateBaseAddressParameters(stateBaseAddress, ssh, setGeneralStateBaseAddress, indirectObjectHeapBaseAddress, gmmHelper, isMultiOsContextCapable, memoryCompressionState);
|
||||
appendStateBaseAddressParameters(stateBaseAddress, ssh, setGeneralStateBaseAddress, indirectObjectHeapBaseAddress, gmmHelper, isMultiOsContextCapable, memoryCompressionState, true);
|
||||
}
|
||||
template struct StateBaseAddressHelper<BDWFamily>;
|
||||
} // namespace NEO
|
||||
|
||||
@@ -45,7 +45,8 @@ struct StateBaseAddressHelper {
|
||||
uint64_t indirectObjectHeapBaseAddress,
|
||||
GmmHelper *gmmHelper,
|
||||
bool isMultiOsContextCapable,
|
||||
MemoryCompressionState memoryCompressionState);
|
||||
MemoryCompressionState memoryCompressionState,
|
||||
bool overrideBindlessSurfaceStateBase);
|
||||
|
||||
static void appendExtraCacheSettings(STATE_BASE_ADDRESS *stateBaseAddress, GmmHelper *gmmHelper);
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
|
||||
MemoryCompressionState memoryCompressionState) {
|
||||
|
||||
*stateBaseAddress = GfxFamily::cmdInitStateBaseAddress;
|
||||
|
||||
bool overrideBindlessSurfaceStateBase = true;
|
||||
if (useGlobalHeapsBaseAddress) {
|
||||
stateBaseAddress->setDynamicStateBaseAddressModifyEnable(true);
|
||||
stateBaseAddress->setDynamicStateBufferSizeModifyEnable(true);
|
||||
@@ -52,6 +52,8 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
|
||||
stateBaseAddress->setBindlessSurfaceStateBaseAddressModifyEnable(true);
|
||||
stateBaseAddress->setBindlessSurfaceStateBaseAddress(globalHeapsBaseAddress);
|
||||
stateBaseAddress->setBindlessSurfaceStateSize(MemoryConstants::sizeOf4GBinPageEntities);
|
||||
|
||||
overrideBindlessSurfaceStateBase = false;
|
||||
} else {
|
||||
if (dsh) {
|
||||
stateBaseAddress->setDynamicStateBaseAddressModifyEnable(true);
|
||||
@@ -97,7 +99,7 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
|
||||
|
||||
stateBaseAddress->setStatelessDataPortAccessMemoryObjectControlState(statelessMocsIndex);
|
||||
|
||||
appendStateBaseAddressParameters(stateBaseAddress, ssh, setGeneralStateBaseAddress, indirectObjectHeapBaseAddress, gmmHelper, isMultiOsContextCapable, memoryCompressionState);
|
||||
appendStateBaseAddressParameters(stateBaseAddress, ssh, setGeneralStateBaseAddress, indirectObjectHeapBaseAddress, gmmHelper, isMultiOsContextCapable, memoryCompressionState, overrideBindlessSurfaceStateBase);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
* Copyright (C) 2020-2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -17,7 +17,8 @@ void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
|
||||
uint64_t indirectObjectHeapBaseAddress,
|
||||
GmmHelper *gmmHelper,
|
||||
bool isMultiOsContextCapable,
|
||||
MemoryCompressionState memoryCompressionState) {
|
||||
MemoryCompressionState memoryCompressionState,
|
||||
bool overrideBindlessSurfaceStateBase) {
|
||||
appendExtraCacheSettings(stateBaseAddress, gmmHelper);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020 Intel Corporation
|
||||
* Copyright (C) 2020-2021 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -17,9 +17,10 @@ void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
|
||||
uint64_t indirectObjectHeapBaseAddress,
|
||||
GmmHelper *gmmHelper,
|
||||
bool isMultiOsContextCapable,
|
||||
MemoryCompressionState memoryCompressionState) {
|
||||
MemoryCompressionState memoryCompressionState,
|
||||
bool overrideBindlessSurfaceStateBase) {
|
||||
|
||||
if (ssh) {
|
||||
if (overrideBindlessSurfaceStateBase && ssh) {
|
||||
stateBaseAddress->setBindlessSurfaceStateBaseAddressModifyEnable(true);
|
||||
stateBaseAddress->setBindlessSurfaceStateBaseAddress(ssh->getHeapGpuBase());
|
||||
uint32_t size = uint32_t(ssh->getMaxAvailableSpace() / 64) - 1;
|
||||
|
||||
Reference in New Issue
Block a user