Cleanup: Remove unused states and vars from MemoryBuffer.

This commit is contained in:
Jeroen Bakker
2021-03-19 16:56:01 +01:00
parent 31d5c5078c
commit 9f86933f2e
5 changed files with 16 additions and 58 deletions

View File

@@ -383,7 +383,7 @@ MemoryBuffer *ExecutionGroup::constructConsolidatedMemoryBuffer(MemoryProxy &mem
rcti &rect)
{
MemoryBuffer *imageBuffer = memoryProxy.getBuffer();
MemoryBuffer *result = new MemoryBuffer(&memoryProxy, rect);
MemoryBuffer *result = new MemoryBuffer(&memoryProxy, rect, MemoryBufferState::Temporary);
result->fill_from(*imageBuffer);
return result;
}
@@ -460,7 +460,8 @@ MemoryBuffer *ExecutionGroup::allocateOutputBuffer(rcti &rect)
NodeOperation *operation = this->getOutputOperation();
if (operation->isWriteBufferOperation()) {
WriteBufferOperation *writeOperation = (WriteBufferOperation *)operation;
MemoryBuffer *buffer = new MemoryBuffer(writeOperation->getMemoryProxy(), rect);
MemoryBuffer *buffer = new MemoryBuffer(
writeOperation->getMemoryProxy(), rect, MemoryBufferState::Temporary);
return buffer;
}
return nullptr;

View File

@@ -33,27 +33,14 @@ static unsigned int determine_num_channels(DataType datatype)
}
}
MemoryBuffer::MemoryBuffer(MemoryProxy *memoryProxy, unsigned int chunkNumber, const rcti &rect)
MemoryBuffer::MemoryBuffer(MemoryProxy *memoryProxy, const rcti &rect, MemoryBufferState state)
{
m_rect = rect;
this->m_memoryProxy = memoryProxy;
this->m_chunkNumber = chunkNumber;
this->m_num_channels = determine_num_channels(memoryProxy->getDataType());
this->m_buffer = (float *)MEM_mallocN_aligned(
sizeof(float) * buffer_len() * this->m_num_channels, 16, "COM_MemoryBuffer");
this->m_state = COM_MB_ALLOCATED;
this->m_datatype = memoryProxy->getDataType();
}
MemoryBuffer::MemoryBuffer(MemoryProxy *memoryProxy, const rcti &rect)
{
m_rect = rect;
this->m_memoryProxy = memoryProxy;
this->m_chunkNumber = -1;
this->m_num_channels = determine_num_channels(memoryProxy->getDataType());
this->m_buffer = (float *)MEM_mallocN_aligned(
sizeof(float) * buffer_len() * this->m_num_channels, 16, "COM_MemoryBuffer");
this->m_state = COM_MB_TEMPORARILY;
this->m_state = state;
this->m_datatype = memoryProxy->getDataType();
}
@@ -61,22 +48,22 @@ MemoryBuffer::MemoryBuffer(DataType dataType, const rcti &rect)
{
m_rect = rect;
this->m_memoryProxy = nullptr;
this->m_chunkNumber = -1;
this->m_num_channels = determine_num_channels(dataType);
this->m_buffer = (float *)MEM_mallocN_aligned(
sizeof(float) * buffer_len() * this->m_num_channels, 16, "COM_MemoryBuffer");
this->m_state = COM_MB_TEMPORARILY;
this->m_state = MemoryBufferState::Temporary;
this->m_datatype = dataType;
}
MemoryBuffer::MemoryBuffer(const MemoryBuffer &src) : MemoryBuffer(src.m_memoryProxy, src.m_rect)
MemoryBuffer::MemoryBuffer(const MemoryBuffer &src)
: MemoryBuffer(src.m_memoryProxy, src.m_rect, MemoryBufferState::Temporary)
{
memcpy(m_buffer, src.m_buffer, buffer_len() * m_num_channels * sizeof(float));
}
void MemoryBuffer::clear()
{
memset(this->m_buffer, 0, this->buffer_len() * this->m_num_channels * sizeof(float));
memset(m_buffer, 0, buffer_len() * m_num_channels * sizeof(float));
}
float MemoryBuffer::get_max_value() const

View File

@@ -31,15 +31,13 @@ class MemoryBuffer;
* \brief state of a memory buffer
* \ingroup Memory
*/
typedef enum MemoryBufferState {
enum class MemoryBufferState {
/** \brief memory has been allocated on creator device and CPU machine,
* but kernel has not been executed */
COM_MB_ALLOCATED = 1,
/** \brief memory is available for use, content has been created */
COM_MB_AVAILABLE = 2,
Default = 0,
/** \brief chunk is consolidated from other chunks. special state.*/
COM_MB_TEMPORARILY = 6,
} MemoryBufferState;
Temporary = 6,
};
typedef enum MemoryBufferExtend {
COM_MB_CLIP,
@@ -69,12 +67,6 @@ class MemoryBuffer {
*/
rcti m_rect;
/**
* brief refers to the chunk-number within the execution-group where related to the MemoryProxy
* \see memoryProxy
*/
unsigned int m_chunkNumber;
/**
* \brief state of the buffer
*/
@@ -92,15 +84,10 @@ class MemoryBuffer {
unsigned int m_num_channels;
public:
/**
* \brief construct new MemoryBuffer for a chunk
*/
MemoryBuffer(MemoryProxy *memoryProxy, unsigned int chunkNumber, const rcti &rect);
/**
* \brief construct new temporarily MemoryBuffer for an area
*/
MemoryBuffer(MemoryProxy *memoryProxy, const rcti &rect);
MemoryBuffer(MemoryProxy *memoryProxy, const rcti &rect, MemoryBufferState state);
/**
* \brief construct new temporarily MemoryBuffer for an area
@@ -117,14 +104,6 @@ class MemoryBuffer {
*/
~MemoryBuffer();
/**
* \brief read the ChunkNumber of this MemoryBuffer
*/
unsigned int getChunkNumber()
{
return this->m_chunkNumber;
}
unsigned int get_num_channels()
{
return this->m_num_channels;
@@ -139,14 +118,6 @@ class MemoryBuffer {
return this->m_buffer;
}
/**
* \brief after execution the state will be set to available by calling this method
*/
void setCreatedState()
{
this->m_state = COM_MB_AVAILABLE;
}
inline void wrap_pixel(int &x, int &y, MemoryBufferExtend extend_x, MemoryBufferExtend extend_y)
{
const int w = getWidth();
@@ -306,7 +277,7 @@ class MemoryBuffer {
*/
inline bool isTemporarily() const
{
return this->m_state == COM_MB_TEMPORARILY;
return this->m_state == MemoryBufferState::Temporary;
}
/**

View File

@@ -33,7 +33,7 @@ void MemoryProxy::allocate(unsigned int width, unsigned int height)
result.ymin = 0;
result.ymax = height;
this->m_buffer = new MemoryBuffer(this, 1, result);
this->m_buffer = new MemoryBuffer(this, result, MemoryBufferState::Default);
}
void MemoryProxy::free()

View File

@@ -105,7 +105,6 @@ void WriteBufferOperation::executeRegion(rcti *rect, unsigned int /*tileNumber*/
}
}
}
memoryBuffer->setCreatedState();
}
void WriteBufferOperation::executeOpenCLRegion(OpenCLDevice *device,