gallium: Add a cap for offset_units_unscaled

D3D9 has a different behaviour for depth bias.

For OGL/D3D1X, the depth bias unit is the
minimal resolvable value for the depth buffer,
which depends on the format (and has different
behaviour for float depth buffers).

For D3D9, the depth bias unit is 1.0f.

Signed-off-by: Axel Davy <axel.davy@ens.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Axel Davy
2016-06-13 22:28:32 +02:00
parent 727a9b2493
commit 59a692916c
19 changed files with 31 additions and 0 deletions

View File

@@ -127,6 +127,12 @@ offset_tri
offset_units
Specifies the polygon offset bias
offset_units_unscaled
Specifies the unit of the polygon offset bias. If false, use the
GL/D3D1X behaviour. If true, offset_units is a floating point offset
which isn't scaled (D3D9). Note that GL/D3D1X behaviour has different
formula whether the depth buffer is unorm or float, which is not
the case for D3D9.
offset_scale
Specifies the polygon offset scale
offset_clamp

View File

@@ -343,6 +343,8 @@ The integer capabilities:
* ``PIPE_CAP_TGSI_VOTE``: Whether the ``VOTE_*`` ops can be used in shaders.
* ``PIPE_CAP_MAX_WINDOW_RECTANGLES``: The maxium number of window rectangles
supported in ``set_window_rectangles``.
* ``PIPE_CAP_POLYGON_OFFSET_UNITS_UNSCALED``: If true, the driver implements support
for ``pipe_rasterizer_state::offset_units_unscaled``.
.. _pipe_capf: