diff options
author | Neha Bhende <[email protected]> | 2017-05-10 12:17:44 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2018-09-05 11:22:42 -0600 |
commit | 4310649ccb37481fd0f15ab0c826ed626bf81caa (patch) | |
tree | 99196565d05bf1a6f166a836e4f3a9a692e90479 | |
parent | 53091a0312edf38a87a4b7a6e88b52e1887750ca (diff) |
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 <[email protected]>
-rw-r--r-- | src/gallium/drivers/svga/svga_pipe_blit.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/gallium/drivers/svga/svga_pipe_blit.c b/src/gallium/drivers/svga/svga_pipe_blit.c index d97f623870d..42378605565 100644 --- a/src/gallium/drivers/svga/svga_pipe_blit.c +++ b/src/gallium/drivers/svga/svga_pipe_blit.c @@ -594,6 +594,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. */ |