diff --git a/src/allocator/GBM.cpp b/src/allocator/GBM.cpp index 773fc00..8cb2c2a 100644 --- a/src/allocator/GBM.cpp +++ b/src/allocator/GBM.cpp @@ -224,13 +224,13 @@ SDMABUFAttrs Aquamarine::CGBMBuffer::dmabuf() { } std::tuple Aquamarine::CGBMBuffer::beginDataPtr(uint32_t flags) { - uint32_t dst_stride = 0; + uint32_t stride = 0; if (boBuffer) allocator->backend->log(AQ_LOG_ERROR, "beginDataPtr is called a second time without calling endDataPtr first. Returning old mapping"); else - boBuffer = gbm_bo_map(bo, 0, 0, attrs.size.x, attrs.size.y, flags, &dst_stride, &gboMapping); - // FIXME: assumes a 32-bit pixel format - return {(uint8_t*)boBuffer, attrs.format, attrs.size.x * attrs.size.y * 4}; + boBuffer = gbm_bo_map(bo, 0, 0, attrs.size.x, attrs.size.y, flags, &stride, &gboMapping); + + return {(uint8_t*)boBuffer, attrs.format, stride * attrs.size.y}; } void Aquamarine::CGBMBuffer::endDataPtr() {