[Mesa-dev] [PATCH 4/9] anv/pipeline: Add support for early depth stencil
Jason Ekstrand
jason at jlekstrand.net
Fri Jul 22 04:21:46 UTC 2016
Signed-off-by: Jason Ekstrand <jason at jlekstrand.net>
Cc: "12.0" <mesa-stable at lists.freedesktop.org>
Cc: Jordan Justen <jljusten at gmail.com>
---
src/intel/vulkan/gen7_pipeline.c | 8 +++++++-
src/intel/vulkan/gen8_pipeline.c | 7 ++++++-
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/intel/vulkan/gen7_pipeline.c b/src/intel/vulkan/gen7_pipeline.c
index 285b191..2cfd7bf 100644
--- a/src/intel/vulkan/gen7_pipeline.c
+++ b/src/intel/vulkan/gen7_pipeline.c
@@ -398,12 +398,18 @@ genX(graphics_pipeline_create)(
wm.ThreadDispatchEnable = true;
wm.LineEndCapAntialiasingRegionWidth = 0; /* 0.5 pixels */
wm.LineAntialiasingRegionWidth = 1; /* 1.0 pixels */
- wm.EarlyDepthStencilControl = EDSC_NORMAL;
wm.PointRasterizationRule = RASTRULE_UPPER_RIGHT;
wm.PixelShaderComputedDepthMode = wm_prog_data->computed_depth_mode;
wm.PixelShaderUsesSourceDepth = wm_prog_data->uses_src_depth;
wm.PixelShaderUsesSourceW = wm_prog_data->uses_src_w;
wm.PixelShaderUsesInputCoverageMask = wm_prog_data->uses_sample_mask;
+
+ if (wm_prog_data->early_fragment_tests) {
+ wm.EarlyDepthStencilControl = EDSC_PREPS;
+ } else {
+ wm.EarlyDepthStencilControl = EDSC_NORMAL;
+ }
+
wm.BarycentricInterpolationMode = wm_prog_data->barycentric_interp_modes;
}
}
diff --git a/src/intel/vulkan/gen8_pipeline.c b/src/intel/vulkan/gen8_pipeline.c
index d966694..48774a5 100644
--- a/src/intel/vulkan/gen8_pipeline.c
+++ b/src/intel/vulkan/gen8_pipeline.c
@@ -376,10 +376,15 @@ genX(graphics_pipeline_create)(
wm.StatisticsEnable = true;
wm.LineEndCapAntialiasingRegionWidth = _05pixels;
wm.LineAntialiasingRegionWidth = _10pixels;
- wm.EarlyDepthStencilControl = NORMAL;
wm.ForceThreadDispatchEnable = NORMAL;
wm.PointRasterizationRule = RASTRULE_UPPER_RIGHT;
+ if (wm_prog_data && wm_prog_data->early_fragment_tests) {
+ wm.EarlyDepthStencilControl = PREPS;
+ } else {
+ wm.EarlyDepthStencilControl = NORMAL;
+ }
+
wm.BarycentricInterpolationMode = pipeline->ps_ksp0 == NO_KERNEL ?
0 : wm_prog_data->barycentric_interp_modes;
}
--
2.5.0.400.gff86faf
More information about the mesa-dev
mailing list