gallium: add a rasterizer state bit for unrestricted depth values.

This tells the drivers to expect depth values outside the 0..1 range.

This is used for support VK_EXT_depth_range_unrestricted, but could
also be used for GL_NV_depth_buffer_float in GL.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17612>
This commit is contained in:
Dave Airlie 2022-07-19 15:14:06 +10:00
parent 7d8942846d
commit 0e38db0146
1 changed files with 8 additions and 0 deletions

View File

@ -184,6 +184,14 @@ struct pipe_rasterizer_state
*/
unsigned offset_units_unscaled:1;
/**
* Depth values output from fragment shader may be outside 0..1.
* These have to be clamped for use with UNORM buffers.
* Vulkan can allow this with an extension,
* GL could with NV_depth_buffer_float, but GLES doesn't.
*/
unsigned unclamped_fragment_depth_values:1;
/**
* Enable bits for clipping half-spaces.
* This applies to both user clip planes and shader clip distances.