| 22 | namespace gl { |
| 23 | |
| 24 | Status CopyBuffer(const GlBuffer& read_buffer, const GlBuffer& write_buffer) { |
| 25 | if (read_buffer.bytes_size() != write_buffer.bytes_size()) { |
| 26 | return InvalidArgumentError( |
| 27 | "Read buffer does not match write buffer size."); |
| 28 | } |
| 29 | gl_buffer_internal::BufferBinder read_buffer_binder(GL_COPY_READ_BUFFER, |
| 30 | read_buffer.id()); |
| 31 | gl_buffer_internal::BufferBinder write_buffer_binder(GL_COPY_WRITE_BUFFER, |
| 32 | write_buffer.id()); |
| 33 | return TFLITE_GPU_CALL_GL(glCopyBufferSubData, GL_COPY_READ_BUFFER, |
| 34 | GL_COPY_WRITE_BUFFER, read_buffer.offset(), |
| 35 | write_buffer.offset(), read_buffer.bytes_size()); |
| 36 | } |
| 37 | |
| 38 | Status GetSSBOSize(GLuint id, int64_t* size_bytes) { |
| 39 | GLuint prev_id; |