aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNeha Bhende <[email protected]>2017-05-10 12:17:44 -0700
committerBrian Paul <[email protected]>2018-09-05 11:22:42 -0600
commit4310649ccb37481fd0f15ab0c826ed626bf81caa (patch)
tree99196565d05bf1a6f166a836e4f3a9a692e90479 /src
parent53091a0312edf38a87a4b7a6e88b52e1887750ca (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]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/drivers/svga/svga_pipe_blit.c13
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.
*/