r600+sfn: Assign ps_conservative_z and switch to NIR defines

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22778>
This commit is contained in:
Gert Wollny 2023-05-01 13:01:12 +02:00
parent c815189112
commit bbd265b8e8
3 changed files with 11 additions and 6 deletions

View file

@ -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;
}

View file

@ -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;
}

View file

@ -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";