display_buffer->width, display_buffer->height, FOURCC_STR(display_buffer->format),
display_buffer->count, count);
- for (i = 0; i < display_buffer->count; i++) {
- tbm_bo bo = tbm_surface_internal_get_bo(surface, i);
+ for (i = 0; i < count; i++) {
+ int bo_idx = 0;
+ tbm_bo bo = NULL;
+
+ bo_idx = tbm_surface_internal_get_plane_bo_idx(surface, i);
+ bo = tbm_surface_internal_get_bo(surface, bo_idx);
display_buffer->name[i] = tbm_bo_export(bo);
- TDM_DBG(" create buffer: bo%d(name:%d)", i, display_buffer->name[i]);
- }
- for (i = 0; i < count; i++) {
- tbm_surface_internal_get_plane_data(surface, i, &display_buffer->size, &display_buffer->offsets[i],
- &display_buffer->pitches[i]);
- TDM_DBG(" create buffer: plane%d(size:%d offset:%d pitch:%d)", i, display_buffer->size,
- display_buffer->offsets[i], display_buffer->pitches[i]);
- }
+
+ tbm_surface_internal_get_plane_data(surface, i, &display_buffer->size,
+ &display_buffer->offsets[i],
+ &display_buffer->pitches[i]);
+ TDM_DBG(" create buffer:%p plane%d(size:%d offset:%d pitch:%d) bo%d(name:%d)",
+ surface, i, display_buffer->size, display_buffer->offsets[i],
+ display_buffer->pitches[i], bo_idx, display_buffer->name[i]);
+ }
if (IS_RGB(display_buffer->format))
display_buffer->width = display_buffer->pitches[0] >> 2;
if (err)
*err = TDM_ERROR_NONE;
+ LIST_ADDTAIL(&display_buffer->link, &sprd_data->buffer_list);
+
return display_buffer;
}
if (!display_buffer) {
display_buffer = tdm_sprd_display_creat_buffer(sprd_data, surface, &err);
RETURN_VAL_IF_FAIL(display_buffer != NULL, err);
- LIST_ADDTAIL(&display_buffer->link, &sprd_data->buffer_list);
}
layer_data->display_buffer = display_buffer;