From: Qiang Yu Date: Sat, 14 Jan 2023 14:06:32 +0000 (+0800) Subject: ac/nir/ngg: fix clip dist culling mask uninitialized X-Git-Tag: upstream/22.3.5~30 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b742313eaf70dfd740d035426d33b61279c85720;p=platform%2Fupstream%2Fmesa.git ac/nir/ngg: fix clip dist culling mask uninitialized Fixes: f75452918b2 ("ac/nir/ngg: support clipdist culling") Reviewed-by: Timur Kristóf Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: (cherry picked from commit d798214c7b25b0bf2ce6b094475913a1f72585b8) --- diff --git a/.pick_status.json b/.pick_status.json index 6483be7..0a61fba 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2416,7 +2416,7 @@ "description": "ac/nir/ngg: fix clip dist culling mask uninitialized", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f75452918b27690f9c7a80f3f049483f7dec14fb" }, diff --git a/src/amd/common/ac_nir_lower_ngg.c b/src/amd/common/ac_nir_lower_ngg.c index cdc7ad0..909690f 100644 --- a/src/amd/common/ac_nir_lower_ngg.c +++ b/src/amd/common/ac_nir_lower_ngg.c @@ -1367,12 +1367,17 @@ add_deferred_attribute_culling(nir_builder *b, nir_cf_list *original_extracted_c nir_local_variable_create(impl, glsl_uint_type(), "repacked_arg_3"), }; + b->cursor = nir_before_cf_list(&impl->body); + if (nogs_state->options->clipdist_enable_mask || nogs_state->options->user_clip_plane_enable_mask) { nogs_state->clip_vertex_var = nir_local_variable_create(impl, glsl_vec4_type(), "clip_vertex"); nogs_state->clipdist_neg_mask_var = nir_local_variable_create(impl, glsl_uint8_t_type(), "clipdist_neg_mask"); + + /* init mask to 0 */ + nir_store_var(b, nogs_state->clipdist_neg_mask_var, nir_imm_intN_t(b, 0, 8), 1); } /* Top part of the culling shader (aka. position shader part) @@ -1382,8 +1387,6 @@ add_deferred_attribute_culling(nir_builder *b, nir_cf_list *original_extracted_c * The position output is stored into a temporary variable, and reloaded later. */ - b->cursor = nir_before_cf_list(&impl->body); - nir_ssa_def *es_thread = has_input_vertex(b); nir_if *if_es_thread = nir_push_if(b, es_thread); {