diff options
author | Christoph Bumiller <[email protected]> | 2013-03-22 13:49:40 +0100 |
---|---|---|
committer | Christoph Bumiller <[email protected]> | 2013-03-29 00:33:00 +0100 |
commit | 443b247878edd6a67adc073b0c36e2941436b9a0 (patch) | |
tree | de2ce6b163bf232d82101ddcaf274b1187ce6a96 /src/gallium/drivers/nv50 | |
parent | 090e73fc4642dfedb9ac46259572135229c8199e (diff) |
nv50,nvc0: fix 3d blits, restore viewport after blit
Diffstat (limited to 'src/gallium/drivers/nv50')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_surface.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/nv50/nv50_surface.c b/src/gallium/drivers/nv50/nv50_surface.c index 117d3d1894b..b29a736ae3c 100644 --- a/src/gallium/drivers/nv50/nv50_surface.c +++ b/src/gallium/drivers/nv50/nv50_surface.c @@ -935,7 +935,7 @@ nv50_blit_3d(struct nv50_context *nv50, const struct pipe_blit_info *info) nv50_blit_select_fp(blit, info); nv50_blitctx_pre_blit(blit); - nv50_blit_set_dst(blit, dst, info->dst.level, 0, info->dst.format); + nv50_blit_set_dst(blit, dst, info->dst.level, -1, info->dst.format); nv50_blit_set_src(blit, src, info->src.level, -1, info->src.format, blit->filter); @@ -1223,10 +1223,14 @@ nv50_blit(struct pipe_context *pipe, const struct pipe_blit_info *info) debug_printf("blit: cannot filter array or cube textures in z direction"); } - if (!eng3d && info->dst.format != info->src.format) + if (!eng3d && info->dst.format != info->src.format) { if (!nv50_2d_format_faithful(info->dst.format) || !nv50_2d_format_faithful(info->src.format)) eng3d = TRUE; + if (info->dst.format == PIPE_FORMAT_R8_UNORM || + info->dst.format == PIPE_FORMAT_R16_UNORM) + eng3d = TRUE; + } if (info->src.resource->nr_samples == 8 && info->dst.resource->nr_samples <= 1) |