[Mesa-dev] [PATCH 1/4] vl/dri3: add 10 bits format support for front buffer
Michel Dänzer
michel at daenzer.net
Fri Sep 7 15:09:12 UTC 2018
On 2018-09-07 4:13 p.m., Leo Liu wrote:
> On 09/07/2018 10:07 AM, Michel Dänzer wrote:
>> On 2018-09-07 3:55 p.m., Leo Liu wrote:
>>> Signed-off-by: Leo Liu <leo.liu at amd.com>
>>>
>>> diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri3.c
>>> b/src/gallium/auxiliary/vl/vl_winsys_dri3.c
>>> index 0233f58441..7ac6924c78 100644
>>> --- a/src/gallium/auxiliary/vl/vl_winsys_dri3.c
>>> +++ b/src/gallium/auxiliary/vl/vl_winsys_dri3.c
>>> @@ -503,7 +503,13 @@ dri3_get_front_buffer(struct vl_dri3_screen *scrn)
>>> whandle.stride = bp_reply->stride;
>>> memset(&templ, 0, sizeof(templ));
>>> templ.bind = PIPE_BIND_RENDER_TARGET | PIPE_BIND_SAMPLER_VIEW;
>>> - templ.format = PIPE_FORMAT_B8G8R8X8_UNORM;
>>> + if (bp_reply->depth == 24)
>>> + templ.format = PIPE_FORMAT_B8G8R8X8_UNORM;
>>> + else if (bp_reply->depth == 30)
>>> + templ.format = PIPE_FORMAT_B10G10R10X2_UNORM;
>>> + else
>>> + goto free_reply;
>>> +
>>> templ.target = PIPE_TEXTURE_2D;
>>> templ.last_level = 0;
>>> templ.width0 = bp_reply->width;
>>>
>> For this patch and patch 4, it's not that simple unfortunately. See e.g.
>> src/egl/drivers/dri2/platform_x11.c:dri2_format_for_depth().
>
> Thanks Michel, I will have a look at this.
>
> BTW: I sent one patch yesterday for DRI3 back buffer case, could you
> take a look as well?
> [PATCH] vl/dri3: add support for 10 bits format
Looks like the same issue applies there as well. Maybe you can include
its next revision in this series.
BTW, it occurred to me that patch 3 could set vlsurface->send_to_X to
true for dev->vscreen->color_depth == 30 as well, if rgba_format matches
the X server's depth 30 format. But that could be done in a follow-up patch.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the mesa-dev
mailing list