iris: linear resources
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 19 Jan 2018 23:09:05 +0000 (15:09 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:05 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_resource.c

index 65985747d002ca4efb4c1b1d933798b2ccf2e71f..b141d0de8b339a4b7d587d0163539f033477b7e1 100644 (file)
@@ -212,12 +212,6 @@ iris_resource_create_with_modifiers(struct pipe_screen *pscreen,
 
    uint64_t modifier = DRM_FORMAT_MOD_INVALID;
 
-   if (templ->target == PIPE_BUFFER)
-      modifier = DRM_FORMAT_MOD_LINEAR;
-
-   if (templ->bind & (PIPE_BIND_LINEAR | PIPE_BIND_CURSOR))
-      modifier = DRM_FORMAT_MOD_LINEAR;
-
    if (modifiers_count == 0) {
       /* Display is X-tiled for historical reasons. */
       modifier = (templ->bind & PIPE_BIND_DISPLAY_TARGET) ?
@@ -225,6 +219,12 @@ iris_resource_create_with_modifiers(struct pipe_screen *pscreen,
       /* XXX: make sure this doesn't do stupid things for internal textures */
    }
 
+   if (templ->target == PIPE_BUFFER)
+      modifier = DRM_FORMAT_MOD_LINEAR;
+
+   if (templ->bind & (PIPE_BIND_LINEAR | PIPE_BIND_CURSOR))
+      modifier = DRM_FORMAT_MOD_LINEAR;
+
    if (modifier == DRM_FORMAT_MOD_INVALID) {
       /* User requested specific modifiers */
       modifier = select_best_modifier(devinfo, modifiers, modifiers_count);