mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 05:56:36 +08:00
feature: add programming heapless mode in SBA
Related-To: NEO-7621 Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
27751ac0cb
commit
982c2d665b
@@ -54,6 +54,7 @@ struct StateBaseAddressHelperArgs {
|
||||
bool overrideSurfaceStateBaseAddress = false;
|
||||
bool isDebuggerActive = false;
|
||||
bool doubleSbaWa = false;
|
||||
bool heaplessModeEnabled = false;
|
||||
};
|
||||
|
||||
template <typename GfxFamily>
|
||||
@@ -76,5 +77,7 @@ struct StateBaseAddressHelper {
|
||||
static void programBindingTableBaseAddress(LinearStream &commandStream, uint64_t baseAddress, uint32_t sizeInPages, GmmHelper *gmmHelper);
|
||||
|
||||
static uint32_t getMaxBindlessSurfaceStates();
|
||||
|
||||
static void programHeaplessStateBaseAddress(STATE_BASE_ADDRESS &sba);
|
||||
};
|
||||
} // namespace NEO
|
||||
|
||||
@@ -23,6 +23,10 @@ template <typename GfxFamily>
|
||||
void StateBaseAddressHelper<GfxFamily>::programStateBaseAddressIntoCommandStream(StateBaseAddressHelperArgs<GfxFamily> &args, NEO::LinearStream &commandStream) {
|
||||
StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(args);
|
||||
|
||||
if (args.heaplessModeEnabled) {
|
||||
programHeaplessStateBaseAddress(*args.stateBaseAddressCmd);
|
||||
}
|
||||
|
||||
auto cmdSpace = StateBaseAddressHelper<GfxFamily>::getSpaceForSbaCmd(commandStream);
|
||||
*cmdSpace = *args.stateBaseAddressCmd;
|
||||
|
||||
@@ -133,6 +137,10 @@ typename GfxFamily::STATE_BASE_ADDRESS *StateBaseAddressHelper<GfxFamily>::getSp
|
||||
return cmdStream.getSpaceForCmd<typename GfxFamily::STATE_BASE_ADDRESS>();
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
void StateBaseAddressHelper<GfxFamily>::programHeaplessStateBaseAddress(STATE_BASE_ADDRESS &sba) {
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
void StateBaseAddressHelper<GfxFamily>::programBindingTableBaseAddress(LinearStream &commandStream, const IndirectHeap &ssh, GmmHelper *gmmHelper) {
|
||||
StateBaseAddressHelper<GfxFamily>::programBindingTableBaseAddress(commandStream, ssh.getHeapGpuBase(), ssh.getHeapSizeInPages(), gmmHelper);
|
||||
|
||||
Reference in New Issue
Block a user