i915g: Fallback to sw for npot copies
authorStéphane Marchesin <marcheu@chromium.org>
Tue, 27 May 2014 00:31:57 +0000 (17:31 -0700)
committerStéphane Marchesin <marcheu@chromium.org>
Tue, 27 May 2014 06:08:49 +0000 (23:08 -0700)
i915g's npot support is incomplete, so let's not use it for copies.
This fixes a bunch of piglit tests.

src/gallium/drivers/i915/i915_surface.c

index 6e9558e54df01833c7744a7aa11b8d4346ade448..8afe8d07867f5042e75dff5ca1286f9ac2899429 100644 (file)
@@ -94,8 +94,9 @@ i915_surface_copy_render(struct pipe_context *pipe,
    struct pipe_sampler_view src_templ, *src_view;
    struct pipe_surface dst_templ, *dst_view;
 
-   /* Fallback for buffers. */
-   if ((dst->target == PIPE_BUFFER && src->target == PIPE_BUFFER)) {
+   /* Fallback for buffers and npot. */
+   if ((dst->target == PIPE_BUFFER && src->target == PIPE_BUFFER) ||
+       !util_is_power_of_two(src_width0) || !util_is_power_of_two(src_height0)) {
       util_resource_copy_region(pipe, dst, dst_level, dstx, dsty, dstz,
                                 src, src_level, src_box);
       return;