diff options
author | Gert Wollny <[email protected]> | 2019-07-25 10:45:14 +0200 |
---|---|---|
committer | Gert Wollny <[email protected]> | 2019-08-01 05:58:53 +0000 |
commit | 9de00e74fe0e0a4044635ddd0cd89188cbbd8c59 (patch) | |
tree | fd53dd431e64de7c98b21b3bfdfe41aa51975dad /src | |
parent | b2e92c45ce30f1aa039cf1ca72c4869992c77ae3 (diff) |
virgl: Enable depth_clamp by lowering if the host is new enough.
Signed-off-by: Gert Wollny <[email protected]>
Reviewed-by: Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/virgl/virgl_context.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/virgl/virgl_screen.c | 6 |
2 files changed, 8 insertions, 1 deletions
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: |