1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
/*
* Copyright (C) 2018-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/command_stream/linear_stream.h"
#include "shared/source/memory_manager/graphics_allocation.h"
namespace NEO {
LinearStream::LinearStream(GraphicsAllocation *gfxAllocation, void *buffer, size_t bufferSize)
: maxAvailableSpace(bufferSize), buffer(buffer), graphicsAllocation(gfxAllocation) {
}
LinearStream::LinearStream(void *buffer, size_t bufferSize)
: LinearStream(nullptr, buffer, bufferSize) {
}
LinearStream::LinearStream(GraphicsAllocation *gfxAllocation)
: graphicsAllocation(gfxAllocation) {
if (gfxAllocation) {
maxAvailableSpace = gfxAllocation->getUnderlyingBufferSize();
buffer = gfxAllocation->getUnderlyingBuffer();
}
}
LinearStream::LinearStream(void *buffer, size_t bufferSize, CommandContainer *cmdContainer, size_t batchBufferEndSize)
: LinearStream(buffer, bufferSize) {
this->cmdContainer = cmdContainer;
this->batchBufferEndSize = batchBufferEndSize;
}
uint64_t LinearStream::getGpuBase() const {
if (graphicsAllocation) {
return graphicsAllocation->getGpuAddress();
}
return gpuBase;
}
} // namespace NEO
|