frontend/dri: set PIPE_BIND_PROTECTED later
authorPierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Tue, 1 Jun 2021 12:00:08 +0000 (14:00 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 3 Jun 2021 08:33:52 +0000 (08:33 +0000)
NV12, YUV, YUYV and UYVY handling checks !tex_usage so set
PIPE_BIND_PROTECTED after.

This fixes encrypted nv12 textures handling.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11107>

src/gallium/frontends/dri/dri2.c

index b664ad0..cb7d247 100644 (file)
@@ -811,8 +811,6 @@ dri2_create_image_from_winsys(__DRIscreen *_screen,
    if (pscreen->is_format_supported(pscreen, map->pipe_format, screen->target, 0, 0,
                                     PIPE_BIND_SAMPLER_VIEW))
       tex_usage |= PIPE_BIND_SAMPLER_VIEW;
-   if (is_protected_content)
-      tex_usage |= PIPE_BIND_PROTECTED;
 
    /* For NV12, see if we have support for sampling r8_b8g8 */
    if (!tex_usage && map->pipe_format == PIPE_FORMAT_NV12 &&
@@ -854,6 +852,9 @@ dri2_create_image_from_winsys(__DRIscreen *_screen,
    if (!tex_usage)
       return NULL;
 
+   if (is_protected_content)
+      tex_usage |= PIPE_BIND_PROTECTED;
+
    img = CALLOC_STRUCT(__DRIimageRec);
    if (!img)
       return NULL;