summaryrefslogtreecommitdiffstats
path: root/src/gallium/include
diff options
context:
space:
mode:
authorAxel Davy <axel.davy@ens.fr>2016-06-13 22:28:32 +0200
committerAxel Davy <axel.davy@ens.fr>2016-06-25 10:16:15 +0200
commit59a692916ca251db995050f7fc0bb7b4e6e4780b (patch)
tree1bd5a11a8ac89a04e24b0ed61f39f5f5002fd9fa /src/gallium/include
parent727a9b24933d384f5440ed4318fb720ed11d6dd1 (diff)
downloadexternal_mesa3d-59a692916ca251db995050f7fc0bb7b4e6e4780b.zip
external_mesa3d-59a692916ca251db995050f7fc0bb7b4e6e4780b.tar.gz
external_mesa3d-59a692916ca251db995050f7fc0bb7b4e6e4780b.tar.bz2
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>
Diffstat (limited to 'src/gallium/include')
-rw-r--r--src/gallium/include/pipe/p_defines.h1
-rw-r--r--src/gallium/include/pipe/p_state.h7
2 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/include/pipe/p_defines.h b/src/gallium/include/pipe/p_defines.h
index c46ac5a..62fa673 100644
--- a/src/gallium/include/pipe/p_defines.h
+++ b/src/gallium/include/pipe/p_defines.h
@@ -731,6 +731,7 @@ enum pipe_cap
PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES,
PIPE_CAP_TGSI_VOTE,
PIPE_CAP_MAX_WINDOW_RECTANGLES,
+ PIPE_CAP_POLYGON_OFFSET_UNITS_UNSCALED,
};
#define PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_NV50 (1 << 0)
diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h
index 9c69355..1543e90 100644
--- a/src/gallium/include/pipe/p_state.h
+++ b/src/gallium/include/pipe/p_state.h
@@ -140,6 +140,13 @@ struct pipe_rasterizer_state
unsigned clip_halfz:1;
/**
+ * When true do not scale offset_units and use same rules for unorm and
+ * float depth buffers (D3D9). When false use GL/D3D1X behaviour.
+ * This depends on PIPE_CAP_POLYGON_OFFSET_UNITS_UNSCALED.
+ */
+ unsigned offset_units_unscaled:1;
+
+ /**
* Enable bits for clipping half-spaces.
* This applies to both user clip planes and shader clip distances.
* Note that if the bound shader exports any clip distances, these