mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 02:40:11 +01:00
anv: Add support for depth bounds testing.
In gen12 we use the 3DSTATE_DEPTH_BOUNDS instruction to enable depth bounds testing. Signed-off-by: Plamena Manolova <plamena.manolova@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
1df871f8ff
commit
939ddccb7a
3 changed files with 15 additions and 0 deletions
|
|
@ -2886,6 +2886,7 @@ struct anv_pipeline {
|
||||||
bool depth_clip_enable;
|
bool depth_clip_enable;
|
||||||
bool sample_shading_enable;
|
bool sample_shading_enable;
|
||||||
bool kill_pixel;
|
bool kill_pixel;
|
||||||
|
bool depth_bounds_test_enable;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
uint32_t sf[7];
|
uint32_t sf[7];
|
||||||
|
|
|
||||||
|
|
@ -542,6 +542,19 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if GEN_GEN >= 12
|
||||||
|
if(cmd_buffer->state.gfx.dirty & (ANV_CMD_DIRTY_PIPELINE |
|
||||||
|
ANV_CMD_DIRTY_DYNAMIC_DEPTH_BOUNDS)) {
|
||||||
|
anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_DEPTH_BOUNDS), db) {
|
||||||
|
db.DepthBoundsTestValueModifyDisable = false;
|
||||||
|
db.DepthBoundsTestEnableModifyDisable = false;
|
||||||
|
db.DepthBoundsTestEnable = pipeline->depth_bounds_test_enable;
|
||||||
|
db.DepthBoundsTestMinValue = d->depth_bounds.min;
|
||||||
|
db.DepthBoundsTestMaxValue = d->depth_bounds.max;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (cmd_buffer->state.gfx.dirty & ANV_CMD_DIRTY_DYNAMIC_LINE_STIPPLE) {
|
if (cmd_buffer->state.gfx.dirty & ANV_CMD_DIRTY_DYNAMIC_LINE_STIPPLE) {
|
||||||
anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_LINE_STIPPLE), ls) {
|
anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_LINE_STIPPLE), ls) {
|
||||||
ls.LineStipplePattern = d->line_stipple.pattern;
|
ls.LineStipplePattern = d->line_stipple.pattern;
|
||||||
|
|
|
||||||
|
|
@ -1021,6 +1021,7 @@ emit_ds_state(struct anv_pipeline *pipeline,
|
||||||
pipeline->stencil_test_enable = info.stencilTestEnable;
|
pipeline->stencil_test_enable = info.stencilTestEnable;
|
||||||
pipeline->writes_depth = info.depthWriteEnable;
|
pipeline->writes_depth = info.depthWriteEnable;
|
||||||
pipeline->depth_test_enable = info.depthTestEnable;
|
pipeline->depth_test_enable = info.depthTestEnable;
|
||||||
|
pipeline->depth_bounds_test_enable = info.depthBoundsTestEnable;
|
||||||
|
|
||||||
/* VkBool32 depthBoundsTestEnable; // optional (depth_bounds_test) */
|
/* VkBool32 depthBoundsTestEnable; // optional (depth_bounds_test) */
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue