From: Gert Wollny Date: Thu, 25 Jul 2019 08:45:14 +0000 (+0200) Subject: virgl: Enable depth_clamp by lowering if the host is new enough. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9de00e74fe0e0a4044635ddd0cd89188cbbd8c59;p=mesa.git virgl: Enable depth_clamp by lowering if the host is new enough. Signed-off-by: Gert Wollny Reviewed-by: Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/virgl/virgl_context.c b/src/gallium/drivers/virgl/virgl_context.c index f68ac815f15..bbb5247c86f 100644 --- a/src/gallium/drivers/virgl/virgl_context.c +++ b/src/gallium/drivers/virgl/virgl_context.c @@ -464,6 +464,9 @@ static void *virgl_create_rasterizer_state(struct pipe_context *ctx, vrs->rs = *rs_state; vrs->handle = virgl_object_assign_handle(); + assert(rs_state->depth_clip_near || + virgl_screen(ctx->screen)->caps.caps.v1.bset.depth_clip_disable); + virgl_encode_rasterizer_state(vctx, vrs->handle, rs_state); return (void *)vrs; } diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index e1a9f4ef385..37e75b5e048 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -115,7 +115,11 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param) case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT: return vscreen->caps.caps.v1.bset.fragment_coord_conventions; case PIPE_CAP_DEPTH_CLIP_DISABLE: - return vscreen->caps.caps.v1.bset.depth_clip_disable; + if (vscreen->caps.caps.v1.bset.depth_clip_disable) + return 1; + if (vscreen->caps.caps.v2.host_feature_check_version >= 3) + return 2; + return 0; case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS: return vscreen->caps.caps.v1.max_streamout_buffers; case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS: