summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/wayland/weston/0018-MGS-2397-ccc-Enable-double-buffer-with-fb_pan_displa.patch
blob: 4ce187102f3f8fea0508b9b14caa9d4993e253ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From 270319565a07f7ceeb12fac1c267d0dd9ebf2d57 Mon Sep 17 00:00:00 2001
From: Meng Mingming <mingming.meng@nxp.com>
Date: Wed, 16 Nov 2016 15:05:51 +0800
Subject: [PATCH 17/17] MGS-2397 [#ccc] Enable double buffer with
 fb_pan_display for weston compositor

Refine offset calculation.

Upstream-Status: Inappropriate [i.MX specific]

Date: Nov 16, 2016
Signed-off-by: Meng Mingming <mingming.meng@nxp.com>
---
 src/g2d-renderer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/g2d-renderer.c b/src/g2d-renderer.c
index 41c4d9e..c30aa62 100644
--- a/src/g2d-renderer.c
+++ b/src/g2d-renderer.c
@@ -78,6 +78,7 @@ struct fb_screeninfo {
 	size_t buffer_length; /* length of frame buffer memory in bytes */
 	size_t physical;
 	size_t stride;
+	size_t stride_bytes;
 	enum g2d_format pixel_format; /* frame buffer pixel format */
 	int fb_fd;
 };
@@ -1136,6 +1137,7 @@ fb_query_screen_info(struct g2d_output_state *output, int fd,
 	info->physical = fixinfo->smem_start;
 	info->buffer_length = fixinfo->smem_len;
 	info->stride = fixinfo->line_length / (varinfo->bits_per_pixel >> 3);
+	info->stride_bytes = fixinfo->line_length;
 	calculate_g2d_format(varinfo, &info->pixel_format);
 
 	if (info->pixel_format < 0) {
@@ -1205,7 +1207,7 @@ g2d_renderer_surface_create(struct g2d_output_state *go, struct g2d_renderer *gr
 		return -1;
 	}
 	go->renderSurf = zalloc(sizeof(struct g2d_surfaceEx) * go->nNumBuffers);
-	offset = go->fb_info.buffer_length/go->nNumBuffers;
+	offset = go->fb_info.stride_bytes * go->fb_info.y_resolution;
 	for(i = 0; i < go->nNumBuffers; i++)
 	{
 		get_G2dSurface_from_screeninfo(&go->fb_info, &go->renderSurf[i]);
-- 
2.7.4