refactor: Unify bindless surface state base programming

- program BSSBA in one place when sbaProperties used

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe 2023-07-04 14:54:56 +00:00 committed by Compute-Runtime-Automation
parent 1fba2a162e
commit 0cc8330a1a
4 changed files with 8 additions and 21 deletions

View File

@ -50,6 +50,13 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
args.stateBaseAddressCmd->setSurfaceStateBaseAddressModifyEnable(true);
args.stateBaseAddressCmd->setSurfaceStateBaseAddress(static_cast<uint64_t>(args.sbaProperties->surfaceStateBaseAddress.value));
}
if (args.sbaProperties->surfaceStateBaseAddress.value != StreamProperty64::initValue) {
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddressModifyEnable(true);
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddress(static_cast<uint64_t>(args.sbaProperties->surfaceStateBaseAddress.value));
args.stateBaseAddressCmd->setBindlessSurfaceStateSize(static_cast<uint32_t>(args.sbaProperties->surfaceStateSize.value));
}
if (args.sbaProperties->statelessMocs.value != StreamProperty::initValue) {
args.statelessMocsIndex = static_cast<uint32_t>(args.sbaProperties->statelessMocs.value);
}

View File

@ -14,14 +14,6 @@ template <typename GfxFamily>
void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
StateBaseAddressHelperArgs<GfxFamily> &args) {
if (args.sbaProperties) {
if (args.sbaProperties->surfaceStateBaseAddress.value != StreamProperty64::initValue) {
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddressModifyEnable(true);
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddress(static_cast<uint64_t>(args.sbaProperties->surfaceStateBaseAddress.value));
args.stateBaseAddressCmd->setBindlessSurfaceStateSize(static_cast<uint32_t>(args.sbaProperties->surfaceStateSize.value));
}
}
if (!args.useGlobalHeapsBaseAddress && args.ssh) {
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddressModifyEnable(true);
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddress(args.ssh->getHeapGpuBase());

View File

@ -13,14 +13,6 @@ template <typename GfxFamily>
void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
StateBaseAddressHelperArgs<GfxFamily> &args) {
if (args.sbaProperties) {
if (args.sbaProperties->surfaceStateBaseAddress.value != StreamProperty64::initValue) {
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddressModifyEnable(true);
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddress(static_cast<uint64_t>(args.sbaProperties->surfaceStateBaseAddress.value));
args.stateBaseAddressCmd->setBindlessSurfaceStateSize(static_cast<uint32_t>(args.sbaProperties->surfaceStateSize.value));
}
}
if (!args.useGlobalHeapsBaseAddress && args.ssh) {
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddressModifyEnable(true);
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddress(args.ssh->getHeapGpuBase());

View File

@ -38,11 +38,7 @@ void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
args.stateBaseAddressCmd->setGeneralStateBufferSizeModifyEnable(true);
args.stateBaseAddressCmd->setGeneralStateBufferSize(0xfffff);
}
if (args.sbaProperties->surfaceStateBaseAddress.value != StreamProperty64::initValue) {
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddressModifyEnable(true);
args.stateBaseAddressCmd->setBindlessSurfaceStateBaseAddress(static_cast<uint64_t>(args.sbaProperties->surfaceStateBaseAddress.value));
args.stateBaseAddressCmd->setBindlessSurfaceStateSize(static_cast<uint32_t>(args.sbaProperties->surfaceStateSize.value));
}
if (args.sbaProperties->globalAtomics.value != StreamProperty::initValue) {
args.useGlobalAtomics = !!args.sbaProperties->globalAtomics.value;
}