virgl: Enable depth_clamp by lowering if the host is new enough.

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Gert Wollny 2019-07-25 10:45:14 +02:00 committed by Gert Wollny
parent b2e92c45ce
commit 9de00e74fe
2 changed files with 8 additions and 1 deletions

View file

@ -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;
}

View file

@ -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: