radeonsi: ignore PIPE_BIND_SCANOUT for imported textures
authorMarek Olšák <marek.olsak@amd.com>
Fri, 27 Dec 2019 22:11:51 +0000 (17:11 -0500)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 3 Jan 2020 20:07:17 +0000 (15:07 -0500)
It's obtained from the BO metadata.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
src/gallium/drivers/radeonsi/si_texture.c

index 8a2178b6d6a1dc01e2fdb45d2ca2088eaa038150..6fe632187607c6aa66f9b02600fa766da21dfd6a 100644 (file)
@@ -310,7 +310,7 @@ static int si_init_surface(struct si_screen *sscreen,
        if (!is_imported && (sscreen->debug_flags & DBG(NO_DCC)))
                flags |= RADEON_SURF_DISABLE_DCC;
 
-       if (ptex->bind & PIPE_BIND_SCANOUT || is_scanout) {
+       if (is_scanout) {
                /* This should catch bugs in gallium users setting incorrect flags. */
                assert(ptex->nr_samples <= 1 &&
                       ptex->array_size == 1 &&
@@ -1695,7 +1695,8 @@ struct pipe_resource *si_texture_create(struct pipe_screen *screen,
                        plane_templ[i].bind |= PIPE_BIND_SHARED;
 
                if (si_init_surface(sscreen, &surface[i], &plane_templ[i],
-                                   tile_mode, 0, false, false,
+                                   tile_mode, 0, false,
+                                   plane_templ[i].bind & PIPE_BIND_SCANOUT,
                                    is_flushed_depth, tc_compatible_htile))
                        return NULL;