iris: Honor scanout requirement from DRI
authorDanylo Piliaiev <danylo.piliaiev@globallogic.com>
Fri, 24 Apr 2020 12:11:44 +0000 (15:11 +0300)
committerMarge Bot <eric+marge@anholt.net>
Thu, 25 Jun 2020 11:50:10 +0000 (11:50 +0000)
Translate PIPE_BIND_SCANOUT as ISL_SURF_USAGE_DISPLAY_BIT,
instead of PIPE_BIND_DISPLAY_TARGET.

PIPE_BIND_DISPLAY_TARGET isn't used for dri images and seem to
be set only for fake winsys buffers (which aren't displayed).
The trouble is that a fake buffer could be multisampled and we
cannot have multisampled surface with display bit.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2313
Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4784>

src/gallium/drivers/iris/iris_resource.c

index ff5023f7d38269d179b2def1b355fcae01f713c9..e0811827692b5cc84a8d3d697f13512ac4a15cac 100644 (file)
@@ -227,7 +227,7 @@ pipe_bind_to_isl_usage(unsigned bindings)
    if (bindings & (PIPE_BIND_SHADER_IMAGE | PIPE_BIND_SHADER_BUFFER))
       usage |= ISL_SURF_USAGE_STORAGE_BIT;
 
-   if (bindings & PIPE_BIND_DISPLAY_TARGET)
+   if (bindings & PIPE_BIND_SCANOUT)
       usage |= ISL_SURF_USAGE_DISPLAY_BIT;
 
    return usage;