Merge remote branch 'origin/master' into pipe-video
[mesa.git] / src / gallium / drivers / r600 / r600_texture.c
index dc351bfb62deff8aa2dcecf9fe2bb00301373961..d079b571156312c234f89076ab3ad75036a31d93 100644 (file)
@@ -294,7 +294,7 @@ static boolean permit_hardware_blit(struct pipe_screen *screen,
        /* hackaround for S3TC */
        if (util_format_is_compressed(res->format))
                return TRUE;
-           
+
        if (!screen->is_format_supported(screen,
                                res->format,
                                res->target,
@@ -309,7 +309,16 @@ static boolean permit_hardware_blit(struct pipe_screen *screen,
                                 PIPE_BIND_SAMPLER_VIEW))
                return FALSE;
 
-       return TRUE;
+        switch (res->usage) {
+        case PIPE_USAGE_STREAM:
+        case PIPE_USAGE_STAGING:
+        case PIPE_USAGE_STATIC:
+        case PIPE_USAGE_IMMUTABLE:
+                return FALSE;
+
+        default:
+                return TRUE;
+        }
 }
 
 static boolean r600_texture_get_handle(struct pipe_screen* screen,