mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-06 19:32:25 +08:00
fix: program bindless surface state size from sba properties
- surfaceStateSize is in pages, bindless size needs to be programmed in surface state units Related-To: NEO-7063 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
fd48de3da9
commit
f36e86f121
@@ -33,6 +33,7 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddressIntoCommandStream
|
||||
template <typename GfxFamily>
|
||||
void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
|
||||
StateBaseAddressHelperArgs<GfxFamily> &args) {
|
||||
using RENDER_SURFACE_STATE = typename GfxFamily::RENDER_SURFACE_STATE;
|
||||
|
||||
*args.stateBaseAddressCmd = GfxFamily::cmdInitStateBaseAddress;
|
||||
const auto surfaceStateCount = getMaxBindlessSurfaceStates();
|
||||
@@ -53,7 +54,7 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
|
||||
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));
|
||||
args.stateBaseAddressCmd->setBindlessSurfaceStateSize(static_cast<uint32_t>(args.sbaProperties->surfaceStateSize.value * (MemoryConstants::pageSize / sizeof(RENDER_SURFACE_STATE))));
|
||||
}
|
||||
|
||||
if (args.sbaProperties->statelessMocs.value != StreamProperty::initValue) {
|
||||
|
||||
Reference in New Issue
Block a user