mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 13:33:02 +08:00
fix: correclty program StateBaseAddress in global bindless mode
- prepare bindful ssh when kernel requires ssh heap and SurfaceStateBaseAddress - remove lastAppendedKernelBindlesMode - local ssh heap may be needed for bindless kernels with scratch or misaligned buffer args - use ssh heap gpu address to program SurfaceStateBaseAddress, global base is used for BindlessSurfaceState and DynamicState Related-To: NEO-7063 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
200acbe743
commit
4a068c8eab
@@ -27,20 +27,12 @@ inline size_t getStateSize(const IndirectHeap &heap, const bool useGlobalHeaps)
|
||||
}
|
||||
}
|
||||
|
||||
inline uint64_t getStateBaseAddress(const IndirectHeap &heap, const bool useGlobalHeaps, const bool isBindlessKernel) {
|
||||
if (useGlobalHeaps && isBindlessKernel) {
|
||||
return heap.getGraphicsAllocation()->getGpuBaseAddress();
|
||||
} else {
|
||||
return heap.getHeapGpuBase();
|
||||
}
|
||||
inline uint64_t getStateBaseAddressForSsh(const IndirectHeap &heap, const bool useGlobalHeaps) {
|
||||
return heap.getHeapGpuBase();
|
||||
}
|
||||
|
||||
inline size_t getStateSize(const IndirectHeap &heap, const bool useGlobalHeaps, const bool isBindlessKernel) {
|
||||
if (useGlobalHeaps && isBindlessKernel) {
|
||||
return MemoryConstants::sizeOf4GBinPageEntities;
|
||||
} else {
|
||||
return heap.getHeapSizeInPages();
|
||||
}
|
||||
inline size_t getStateSizeForSsh(const IndirectHeap &heap, const bool useGlobalHeaps) {
|
||||
return heap.getHeapSizeInPages();
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user