svga: avoid try_blit() for some depth formats on non vgpu10.

On non vgpu10, driver doesn't support util_blitter_blit for SVGA3D_Z_D16,
SVGA3D_Z_D24x8, SVGA3D_Z_D24S8. Patch fixes following piglit tests regression on hwv8 caused
by commit 27bf35caea5e:
spec@arb_depth_texture@fbo-depth-gl-depth-component16-blit
spec@arb_depth_texture@fbo-depth-gl-depth-component24-blit
spec@arb_depth_texture@fbo-depth-gl-depth-component32-blit

Tested with mtt-piglit on hw 8,9,10,11,13 and mtt-glretrace on windows and linux.

Reviewed-by: Charmaine Lee <charmainel@vmware.com>
This commit is contained in:
Neha Bhende 2017-05-10 12:17:44 -07:00 committed by Brian Paul
parent 53091a0312
commit 4310649ccb

View file

@ -593,6 +593,19 @@ try_blit(struct svga_context *svga, const struct pipe_blit_info *blit_info)
SVGA_STATS_TIME_PUSH(sws, SVGA_STATS_TIME_BLITBLITTER);
/**
* Avoid using util_blitter_blit() for these depth formats on non-vgpu10
* devices because these depth formats only support comparison mode
* and not ordinary sampling.
*/
if (!svga_have_vgpu10(svga) && (blit.mask & PIPE_MASK_Z) &&
(svga_texture(dst)->key.format == SVGA3D_Z_D16 ||
svga_texture(dst)->key.format == SVGA3D_Z_D24X8 ||
svga_texture(dst)->key.format == SVGA3D_Z_D24S8)) {
ret = false;
goto done;
}
/**
* If format is srgb and blend is enabled then color values need
* to be converted into linear format.