diff options
author | Georgios Pinitas <georgios.pinitas@arm.com> | 2018-11-14 13:16:56 +0000 |
---|---|---|
committer | Isabella Gottardi <isabella.gottardi@arm.com> | 2018-11-21 09:52:04 +0000 |
commit | df3103622b7de05f4e35b22a2c94b4a46eab4efc (patch) | |
tree | 17e10253e7a069c69d10bea0882b699b99d74b86 /src/runtime/GLES_COMPUTE/GCBufferAllocator.cpp | |
parent | c47ef20d69e8ea0f519fdc679435cd7037fc18fe (diff) | |
download | ComputeLibrary-df3103622b7de05f4e35b22a2c94b4a46eab4efc.tar.gz |
COMPMID-1088: Use IMemoryRegion in interfaces where possible
-Simplifies import memory interface
-Changes the used of void** handles with appropriate interfaces.
Change-Id: I5918c855c11f46352058864623336b352162a4b7
Diffstat (limited to 'src/runtime/GLES_COMPUTE/GCBufferAllocator.cpp')
-rw-r--r-- | src/runtime/GLES_COMPUTE/GCBufferAllocator.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/runtime/GLES_COMPUTE/GCBufferAllocator.cpp b/src/runtime/GLES_COMPUTE/GCBufferAllocator.cpp index cdd12c3ad5..70a1f4f8ff 100644 --- a/src/runtime/GLES_COMPUTE/GCBufferAllocator.cpp +++ b/src/runtime/GLES_COMPUTE/GCBufferAllocator.cpp @@ -22,10 +22,10 @@ * SOFTWARE. */ #include "arm_compute/runtime/GLES_COMPUTE/GCBufferAllocator.h" -#include "arm_compute/runtime/GLES_COMPUTE/GCTensorAllocator.h" #include "arm_compute/core/Error.h" #include "arm_compute/core/GLES_COMPUTE/OpenGLES.h" +#include "arm_compute/runtime/GLES_COMPUTE/GCMemoryRegion.h" #include <cstddef> @@ -34,24 +34,26 @@ namespace arm_compute void *GCBufferAllocator::allocate(size_t size, size_t alignment) { ARM_COMPUTE_UNUSED(alignment); - auto *gl_buffer = new GLBufferWrapper(); - ARM_COMPUTE_GL_CHECK(glBindBuffer(GL_SHADER_STORAGE_BUFFER, gl_buffer->_ssbo_name)); + + auto *gl_ssbo_name = new GLuint; + ARM_COMPUTE_GL_CHECK(glBindBuffer(GL_SHADER_STORAGE_BUFFER, *gl_ssbo_name)); ARM_COMPUTE_GL_CHECK(glBufferData(GL_SHADER_STORAGE_BUFFER, static_cast<GLsizeiptr>(size), nullptr, GL_STATIC_DRAW)); ARM_COMPUTE_GL_CHECK(glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0)); - return reinterpret_cast<void *>(gl_buffer); + return reinterpret_cast<void *>(gl_ssbo_name); } void GCBufferAllocator::free(void *ptr) { ARM_COMPUTE_ERROR_ON(ptr == nullptr); - auto *gl_buffer = reinterpret_cast<GLBufferWrapper *>(ptr); - delete gl_buffer; + auto *gl_ssbo_name = reinterpret_cast<GLuint *>(ptr); + ARM_COMPUTE_GL_CHECK(glDeleteBuffers(1, gl_ssbo_name)); + delete gl_ssbo_name; } std::unique_ptr<IMemoryRegion> GCBufferAllocator::make_region(size_t size, size_t alignment) { - ARM_COMPUTE_UNUSED(size, alignment); - return nullptr; + ARM_COMPUTE_UNUSED(alignment); + return arm_compute::support::cpp14::make_unique<GCBufferMemoryRegion>(size); } } // namespace arm_compute |