mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-26 07:00:17 +08:00
Encode dispatch kernel with global bindless heaps
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
be90b9ff93
commit
7a5c9d39b5
@@ -14,6 +14,7 @@
|
||||
namespace NEO {
|
||||
|
||||
constexpr size_t globalSshAllocationSize = 4 * MemoryConstants::pageSize64k;
|
||||
constexpr size_t borderColorAlphaOffset = alignUp(4 * sizeof(float), MemoryConstants::cacheLineSize);
|
||||
using BindlesHeapType = BindlessHeapsHelper::BindlesHeapType;
|
||||
|
||||
BindlessHeapsHelper::BindlessHeapsHelper(MemoryManager *memManager, bool isMultiOsContextCapable, const uint32_t rootDeviceIndex) : memManager(memManager), isMultiOsContextCapable(isMultiOsContextCapable), rootDeviceIndex(rootDeviceIndex) {
|
||||
@@ -30,7 +31,7 @@ BindlessHeapsHelper::BindlessHeapsHelper(MemoryManager *memManager, bool isMulti
|
||||
float borderColorDefault[4] = {0, 0, 0, 0};
|
||||
memcpy_s(borderColorStates->getUnderlyingBuffer(), sizeof(borderColorDefault), borderColorDefault, sizeof(borderColorDefault));
|
||||
float borderColorAlpha[4] = {0, 0, 0, 1.0};
|
||||
memcpy_s(ptrOffset(borderColorStates->getUnderlyingBuffer(), sizeof(borderColorDefault)), sizeof(borderColorAlpha), borderColorAlpha, sizeof(borderColorAlpha));
|
||||
memcpy_s(ptrOffset(borderColorStates->getUnderlyingBuffer(), borderColorAlphaOffset), sizeof(borderColorAlpha), borderColorAlpha, sizeof(borderColorDefault));
|
||||
}
|
||||
|
||||
BindlessHeapsHelper::~BindlessHeapsHelper() {
|
||||
@@ -87,7 +88,11 @@ uint32_t BindlessHeapsHelper::getDefaultBorderColorOffset() {
|
||||
return static_cast<uint32_t>(borderColorStates->getGpuAddress() - borderColorStates->getGpuBaseAddress());
|
||||
}
|
||||
uint32_t BindlessHeapsHelper::getAlphaBorderColorOffset() {
|
||||
return getDefaultBorderColorOffset() + 4 * sizeof(float);
|
||||
return getDefaultBorderColorOffset() + borderColorAlphaOffset;
|
||||
}
|
||||
|
||||
IndirectHeap *BindlessHeapsHelper::getHeap(BindlesHeapType heapType) {
|
||||
return surfaceStateHeaps[heapType].get();
|
||||
}
|
||||
|
||||
void BindlessHeapsHelper::growHeap(BindlesHeapType heapType) {
|
||||
|
||||
@@ -45,6 +45,7 @@ class BindlessHeapsHelper {
|
||||
void *getSpaceInHeap(size_t ssSize, BindlesHeapType heapType);
|
||||
uint32_t getDefaultBorderColorOffset();
|
||||
uint32_t getAlphaBorderColorOffset();
|
||||
IndirectHeap *getHeap(BindlesHeapType heapType);
|
||||
|
||||
protected:
|
||||
void growHeap(BindlesHeapType heapType);
|
||||
|
||||
Reference in New Issue
Block a user