xref: /aosp_15_r20/external/mesa3d/src/compiler/nir/nir_lower_view_index_to_device_index.c (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /*
2  * Copyright 2024 Intel Corporation
3  * SPDX-License-Identifier: MIT
4  */
5 
6 #include "nir.h"
7 
8 bool
nir_lower_view_index_to_device_index(nir_shader * shader)9 nir_lower_view_index_to_device_index(nir_shader *shader)
10 {
11    bool progress = false;
12 
13    nir_foreach_variable_with_modes(var, shader, nir_var_system_value) {
14       if (var->data.location == SYSTEM_VALUE_VIEW_INDEX) {
15          var->data.location = SYSTEM_VALUE_DEVICE_INDEX;
16          progress = true;
17          /* Can there be more than one of these or should we break here? */
18       }
19    }
20 
21    nir_shader_preserve_all_metadata(shader);
22 
23    return progress;
24 }
25