bo->handle.u32 = create_dumb.handle;
bo->size = create_dumb.size;
+ bo->stride = create_dumb.pitch;
return 0;
}
else if (flags & GBM_BO_USE_RENDERING)
tiling_mode = I915_TILING_Y;
+ bo->stride = i915_get_pitch(bo->gbm,
+ width * gbm_bytes_from_format(format),
+ tiling_mode);
+
memset(&gem_set_tiling, 0, sizeof(gem_set_tiling));
do {
gem_set_tiling.handle = bo->handle.u32;
gem_set_tiling.tiling_mode = tiling_mode;
- gem_set_tiling.stride = i915_get_pitch(bo->gbm,
- width * gbm_bytes_from_format(format),
- tiling_mode);
+ gem_set_tiling.stride = bo->stride;
ret = drmIoctl(bo->gbm->fd, DRM_IOCTL_I915_GEM_SET_TILING, &gem_set_tiling);
} while (ret == -1 && (errno == EINTR || errno == EAGAIN));
int gbm_rockchip_bo_create(struct gbm_bo *bo, uint32_t width, uint32_t height, uint32_t format, uint32_t flags)
{
- size_t size = width * height * ;
+ size_t size = width * height * gbm_bytes_from_format(format);
struct drm_rockchip_gem_create gem_create;
int ret;
bo->handle.u32 = gem_create.handle;
bo->size = size;
+ bo->stride = width * gbm_bytes_from_format(format);
return 0;
}