From: Dave Airlie <airl...@redhat.com>

This add support for the early depth/stencil property found
on image shaders.

Signed-off-by: Dave Airlie <airl...@redhat.com>
---
 src/gallium/drivers/r600/evergreen_state.c | 3 +++
 src/gallium/drivers/r600/evergreend.h      | 1 +
 2 files changed, 4 insertions(+)

diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index f7a2a8f..0f68499 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -3217,6 +3217,9 @@ void evergreen_update_ps_state(struct pipe_context *ctx, 
struct r600_pipe_shader
        db_shader_control |= S_02880C_STENCIL_EXPORT_ENABLE(stencil_export);
        db_shader_control |= S_02880C_MASK_EXPORT_ENABLE(mask_export);
 
+       if 
(shader->selector->info.properties[TGSI_PROPERTY_FS_EARLY_DEPTH_STENCIL])
+               db_shader_control |= S_02880C_DEPTH_BEFORE_SHADER(1);
+
        switch (rshader->ps_conservative_z) {
        default: /* fall through */
        case TGSI_FS_DEPTH_LAYOUT_ANY:
diff --git a/src/gallium/drivers/r600/evergreend.h 
b/src/gallium/drivers/r600/evergreend.h
index 817ec69..8c78e87 100644
--- a/src/gallium/drivers/r600/evergreend.h
+++ b/src/gallium/drivers/r600/evergreend.h
@@ -848,6 +848,7 @@
 #define     V_02880C_EXPORT_DB_FOUR16                  0x01
 #define     V_02880C_EXPORT_DB_TWO                     0x02
 #define   S_02880C_ALPHA_TO_MASK_DISABLE(x)            (((x) & 0x1) << 12)
+#define   S_02880C_DEPTH_BEFORE_SHADER(x)              (((x) & 0x1) << 15)
 #define   S_02880C_CONSERVATIVE_Z_EXPORT(x)            (((x) & 0x03) << 16)
 #define   G_02880C_CONSERVATIVE_Z_EXPORT(x)            (((x) >> 16) & 0x03)
 #define   C_02880C_CONSERVATIVE_Z_EXPORT               0xFFFCFFFF
-- 
2.5.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to