From 202f0363acfe8917cd0f4d9dbf5e559528bcd492 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Fri, 1 Oct 2021 12:29:24 +0200 Subject: [PATCH] aco: Fix determining whether any culling is enabled. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use 0xB instead of 0x00FFFFFF - this allows to jump over the culling code when no actual culling is enabled but the ngg_cull_face_is_ccw flag is set. Fixes: 182d9b1e6072bec190cf0a52e9d93dbbdbaa850d Signed-off-by: Timur Kristóf Reviewed-by: Samuel Pitoiset Part-of: (cherry picked from commit 6ca66808b5ab60b3a3177987a17b6a8803cb1d1d) --- .pick_status.json | 2 +- src/amd/compiler/aco_instruction_selection.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index 3e9146fd448..6931b36f44f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1156,7 +1156,7 @@ "description": "aco: Fix determining whether any culling is enabled.", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "182d9b1e6072bec190cf0a52e9d93dbbdbaa850d" }, diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index 4bd91238067..6fb409904bd 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -8987,7 +8987,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) case nir_intrinsic_load_cull_any_enabled_amd: { Builder::Result cull_any_enabled = bld.sop2(aco_opcode::s_and_b32, bld.def(s1), bld.def(s1, scc), - get_arg(ctx, ctx->args->ngg_culling_settings), Operand::c32(0x00ffffffu)); + get_arg(ctx, ctx->args->ngg_culling_settings), Operand::c32(0xbu)); cull_any_enabled.instr->definitions[1].setNoCSE(true); bld.copy(Definition(get_ssa_temp(ctx, &instr->dest.ssa)), bool_to_vector_condition(ctx, cull_any_enabled.def(1).getTemp()));