[Mesa-dev] [PATCH 4/4] vl/dri: add 10 bits format support for DRI2
Leo Liu
leo.liu at amd.com
Fri Sep 7 13:55:36 UTC 2018
Signed-off-by: Leo Liu <leo.liu at amd.com>
---
src/gallium/auxiliary/vl/vl_winsys_dri.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/gallium/auxiliary/vl/vl_winsys_dri.c b/src/gallium/auxiliary/vl/vl_winsys_dri.c
index bb1ff50488..f3ae788f72 100644
--- a/src/gallium/auxiliary/vl/vl_winsys_dri.c
+++ b/src/gallium/auxiliary/vl/vl_winsys_dri.c
@@ -237,7 +237,15 @@ vl_dri2_screen_texture_from_drawable(struct vl_screen *vscreen, void *drawable)
memset(&templ, 0, sizeof(templ));
templ.target = PIPE_TEXTURE_2D;
- templ.format = PIPE_FORMAT_B8G8R8X8_UNORM;
+ if (vscreen->color_depth == 24)
+ templ.format = PIPE_FORMAT_B8G8R8X8_UNORM;
+ else if (vscreen->color_depth == 30)
+ templ.format = PIPE_FORMAT_B10G10R10X2_UNORM;
+ else {
+ free(reply);
+ return NULL;
+ }
+
templ.last_level = 0;
templ.width0 = reply->width;
templ.height0 = reply->height;
@@ -411,6 +419,7 @@ vl_dri2_screen_create(Display *display, int screen)
if (!scrn->base.pscreen)
goto release_pipe;
+ scrn->base.color_depth = xcb_screen->root_depth;
scrn->base.destroy = vl_dri2_screen_destroy;
scrn->base.texture_from_drawable = vl_dri2_screen_texture_from_drawable;
scrn->base.get_dirty_area = vl_dri2_screen_get_dirty_area;
--
2.17.1
More information about the mesa-dev
mailing list