From 171e35de9191bc66de63e068b7bf2006ae024523 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 19 Jul 2022 15:15:03 +1000 Subject: [PATCH] mesa/st: disable unrestricted fragment depth values for GL/GLES GLES always clamps for 32-bit float buffers, GL doesn't require it but setting this per API causes virgl to fail some tests. To fix is properly we'd need to introduce a CAP to expose this between host/guest. Reviewed-by: Roland Scheidegger Part-of: --- src/mesa/state_tracker/st_atom_rasterizer.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mesa/state_tracker/st_atom_rasterizer.c b/src/mesa/state_tracker/st_atom_rasterizer.c index 5f9726ce3b0..0e6bfdb5dc6 100644 --- a/src/mesa/state_tracker/st_atom_rasterizer.c +++ b/src/mesa/state_tracker/st_atom_rasterizer.c @@ -299,6 +299,9 @@ st_update_rasterizer(struct st_context *st) raster->depth_clip_near = !ctx->Transform.DepthClampNear; raster->depth_clip_far = !ctx->Transform.DepthClampFar; raster->depth_clamp = !raster->depth_clip_far; + /* this should be different for GL vs GLES but without NV_depth_buffer_float + it doesn't matter, and likely virgl would need fixes to deal with it. */ + raster->unclamped_fragment_depth_values = false; raster->clip_plane_enable = ctx->Transform.ClipPlanesEnabled; raster->clip_halfz = (ctx->Transform.ClipDepthMode == GL_ZERO_TO_ONE);