anv/pipeline: Add support for early depth stencil

Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
Jason Ekstrand 2016-05-31 20:16:01 -07:00
parent 66bd2e1133
commit 9fa958e95b
2 changed files with 17 additions and 2 deletions

View File

@ -365,12 +365,20 @@ 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 if (wm_prog_data->has_side_effects) {
wm.EarlyDepthStencilControl = EDSC_PSEXEC;
} else {
wm.EarlyDepthStencilControl = EDSC_NORMAL;
}
wm.BarycentricInterpolationMode = wm_prog_data->barycentric_interp_modes;
}
}

View File

@ -329,10 +329,17 @@ 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 if (wm_prog_data && wm_prog_data->has_side_effects) {
wm.EarlyDepthStencilControl = PSEXEC;
} else {
wm.EarlyDepthStencilControl = NORMAL;
}
wm.BarycentricInterpolationMode = pipeline->ps_ksp0 == NO_KERNEL ?
0 : wm_prog_data->barycentric_interp_modes;
}