Files
compute-runtime/shared/source/command_stream/linear_stream.cpp
Maciej Plewka 9d8ce7aace Command container appends BB_END on cmd buffer allocation end
When linear stream created for command container has not enough space
for command and BB_END it will program BB_END and allocate new command
buffer allocation. Pointer returned from getSpace in this case will
return storage from new command buffer allocation.

Related-To: NEO-5707

Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2022-01-31 16:15:37 +01:00

43 lines
1.2 KiB
C++

/*
* 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)
: sizeUsed(0), maxAvailableSpace(bufferSize), buffer(buffer), graphicsAllocation(gfxAllocation) {
}
LinearStream::LinearStream(void *buffer, size_t bufferSize)
: LinearStream(nullptr, buffer, bufferSize) {
}
LinearStream::LinearStream(GraphicsAllocation *gfxAllocation)
: sizeUsed(0), graphicsAllocation(gfxAllocation) {
if (gfxAllocation) {
maxAvailableSpace = gfxAllocation->getUnderlyingBufferSize();
buffer = gfxAllocation->getUnderlyingBuffer();
} else {
maxAvailableSpace = 0;
buffer = nullptr;
}
}
LinearStream::LinearStream()
: LinearStream(nullptr) {
}
LinearStream::LinearStream(void *buffer, size_t bufferSize, CommandContainer *cmdContainer, size_t batchBufferEndSize)
: LinearStream(buffer, bufferSize) {
this->cmdContainer = cmdContainer;
this->batchBufferEndSize = batchBufferEndSize;
}
} // namespace NEO