sprd_data = layer_data->sprd_data;
display_buffer = _tdm_sprd_display_find_buffer(sprd_data, surface);
if (!display_buffer) {
+ int bw, bh;
+
display_buffer = calloc(1, sizeof(tdm_sprd_display_buffer));
if (!display_buffer) {
TDM_ERR("alloc failed");
}
LIST_ADDTAIL(&display_buffer->link, &sprd_data->buffer_list);
- display_buffer->width = tbm_surface_get_width(surface);
- display_buffer->height = tbm_surface_get_height(surface);
+ tdm_helper_get_buffer_full_size(surface, &bw, &bh);
+
+ display_buffer->width = bw;
+ display_buffer->height = bh;
display_buffer->format = tbm_surface_get_format(surface);
display_buffer->count = tbm_surface_internal_get_num_bos(surface);
count = tbm_surface_internal_get_num_planes(display_buffer->format);