mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-09 06:23:01 +08:00
fix: program binding table for bindless kernels
- if binding table entries are used in bindless kernel, program Binding table Related-To: NEO-7063 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
f06c2f04d0
commit
8056476d8d
@@ -129,9 +129,18 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container, EncodeDis
|
||||
if (globalBindlessSsh) {
|
||||
bindlessSshBaseOffset += ptrDiff(ssh->getGraphicsAllocation()->getGpuAddress(), ssh->getGraphicsAllocation()->getGpuBaseAddress());
|
||||
}
|
||||
// Allocate space for new ssh data
|
||||
auto dstSurfaceState = ssh->getSpace(sshHeapSize);
|
||||
memcpy_s(dstSurfaceState, sshHeapSize, args.dispatchInterface->getSurfaceStateHeapData(), sshHeapSize);
|
||||
|
||||
if (bindingTableStateCount > 0u) {
|
||||
bindingTablePointer = static_cast<uint32_t>(EncodeSurfaceState<Family>::pushBindingTableAndSurfaceStates(
|
||||
*ssh,
|
||||
args.dispatchInterface->getSurfaceStateHeapData(),
|
||||
args.dispatchInterface->getSurfaceStateHeapDataSize(), bindingTableStateCount,
|
||||
kernelDescriptor.payloadMappings.bindingTable.tableOffset));
|
||||
} else {
|
||||
// Allocate space for new ssh data
|
||||
auto dstSurfaceState = ssh->getSpace(sshHeapSize);
|
||||
memcpy_s(dstSurfaceState, sshHeapSize, args.dispatchInterface->getSurfaceStateHeapData(), sshHeapSize);
|
||||
}
|
||||
args.dispatchInterface->patchBindlessOffsetsInCrossThreadData(bindlessSshBaseOffset);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user