diff options
Diffstat (limited to 'src/gallium/drivers/i915/i915_surface.c')
-rw-r--r-- | src/gallium/drivers/i915/i915_surface.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/i915/i915_surface.c b/src/gallium/drivers/i915/i915_surface.c index 6e9558e54df..8afe8d07867 100644 --- a/src/gallium/drivers/i915/i915_surface.c +++ b/src/gallium/drivers/i915/i915_surface.c @@ -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; |