mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00

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>
43 lines
1.2 KiB
C++
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
|