[Intel-gfx] [PATCH i-g-t] lib/igt_kms: Fix atomic plane commit when fb_id is 0.

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Tue Apr 5 10:58:17 UTC 2016


Op 05-04-16 om 12:29 schreef Marius Vlad:
> On Tue, Apr 05, 2016 at 10:46:37AM +0200, Maarten Lankhorst wrote:
>> Op 04-04-16 om 17:47 schreef Marius Vlad:
>>> igt_atomic_prepare_plane_commit() assumes that the framebuffer is always
>>> set-up.
>>>
>>> Signed-off-by: Marius Vlad <marius.c.vlad at intel.com>
>>> ---
>>>  lib/igt_kms.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
>>> index 82257a6..30c5b7e 100644
>>> --- a/lib/igt_kms.c
>>> +++ b/lib/igt_kms.c
>>> @@ -1585,7 +1585,7 @@ igt_atomic_prepare_plane_commit(igt_plane_t *plane, igt_output_t *output,
>>>  		igt_atomic_populate_plane_req(req, plane, IGT_PLANE_FB_ID, fb_id);
>>>  	}
>>>  
>>> -	if (plane->position_changed || plane->size_changed) {
>>> +	if ((plane->position_changed || plane->size_changed) && fb_id != 0) {
>>>  		uint32_t src_x = IGT_FIXED(plane->fb->src_x, 0); /* src_x */
>>>  		uint32_t src_y = IGT_FIXED(plane->fb->src_y, 0); /* src_y */
>>>  		uint32_t src_w = IGT_FIXED(plane->fb->src_w, 0); /* src_w */
>> Why is this needed?
> Because plane->fb is NULL when fb_id == 0. Maybe Ville had a point, not having
> src_* in plane->fb.
>
Indeed, it's a property of the plane, not the fb.

You could put the same fb on multiple planes with different src parameters. :)

~Maarten


More information about the Intel-gfx mailing list