diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c index 993f5ac3b7f..fd1f34e51aa 100644 --- a/src/gallium/drivers/r600/evergreen_state.c +++ b/src/gallium/drivers/r600/evergreen_state.c @@ -3511,13 +3511,13 @@ void evergreen_update_ps_state(struct pipe_context *ctx, struct r600_pipe_shader switch (rshader->ps_conservative_z) { default: /* fall through */ - case TGSI_FS_DEPTH_LAYOUT_ANY: + case FRAG_DEPTH_LAYOUT_ANY: db_shader_control |= S_02880C_CONSERVATIVE_Z_EXPORT(V_02880C_EXPORT_ANY_Z); break; - case TGSI_FS_DEPTH_LAYOUT_GREATER: + case FRAG_DEPTH_LAYOUT_GREATER: db_shader_control |= S_02880C_CONSERVATIVE_Z_EXPORT(V_02880C_EXPORT_GREATER_THAN_Z); break; - case TGSI_FS_DEPTH_LAYOUT_LESS: + case FRAG_DEPTH_LAYOUT_LESS: db_shader_control |= S_02880C_CONSERVATIVE_Z_EXPORT(V_02880C_EXPORT_LESS_THAN_Z); break; } diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c index a9673dd3bb1..1ae5a8b41ba 100644 --- a/src/gallium/drivers/r600/r600_state.c +++ b/src/gallium/drivers/r600/r600_state.c @@ -1578,13 +1578,13 @@ static void r600_emit_db_misc_state(struct r600_context *rctx, struct r600_atom if (rctx->b.gfx_level >= R700) { switch (a->ps_conservative_z) { default: /* fall through */ - case TGSI_FS_DEPTH_LAYOUT_ANY: + case FRAG_DEPTH_LAYOUT_ANY: db_render_control |= S_028D0C_CONSERVATIVE_Z_EXPORT(V_028D0C_EXPORT_ANY_Z); break; - case TGSI_FS_DEPTH_LAYOUT_GREATER: + case FRAG_DEPTH_LAYOUT_GREATER: db_render_control |= S_028D0C_CONSERVATIVE_Z_EXPORT(V_028D0C_EXPORT_GREATER_THAN_Z); break; - case TGSI_FS_DEPTH_LAYOUT_LESS: + case FRAG_DEPTH_LAYOUT_LESS: db_render_control |= S_028D0C_CONSERVATIVE_Z_EXPORT(V_028D0C_EXPORT_LESS_THAN_Z); break; } diff --git a/src/gallium/drivers/r600/sfn/sfn_nir.cpp b/src/gallium/drivers/r600/sfn/sfn_nir.cpp index 6d0d588bf90..285da2a5d77 100644 --- a/src/gallium/drivers/r600/sfn/sfn_nir.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_nir.cpp @@ -1084,6 +1084,11 @@ r600_shader_from_nir(struct r600_context *rctx, return -1; } + + if (sh->info.stage == MESA_SHADER_FRAGMENT) + pipeshader->shader.ps_conservative_z = + sh->info.fs.depth_layout = sh->info.fs.depth_layout; + if (sh->info.stage == MESA_SHADER_GEOMETRY) { r600::sfn_log << r600::SfnLog::shader_info << "Geometry shader, create copy shader\n";