mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
nir: add pass to convert ViewIndex to DeviceIndex
Used to implement VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30329>
This commit is contained in:
parent
b6d3f666ab
commit
7fce39484e
3 changed files with 27 additions and 0 deletions
|
|
@ -203,6 +203,7 @@ files_libnir = files(
|
|||
'nir_lower_var_copies.c',
|
||||
'nir_lower_vec_to_regs.c',
|
||||
'nir_lower_vec3_to_vec4.c',
|
||||
'nir_lower_view_index_to_device_index.c',
|
||||
'nir_lower_viewport_transform.c',
|
||||
'nir_lower_wpos_center.c',
|
||||
'nir_lower_wpos_ytransform.c',
|
||||
|
|
|
|||
|
|
@ -6512,6 +6512,8 @@ bool nir_shader_uses_view_index(nir_shader *shader);
|
|||
bool nir_can_lower_multiview(nir_shader *shader);
|
||||
bool nir_lower_multiview(nir_shader *shader, uint32_t view_mask);
|
||||
|
||||
bool nir_lower_view_index_to_device_index(nir_shader *shader);
|
||||
|
||||
typedef enum {
|
||||
nir_lower_fp16_rtz = (1 << 0),
|
||||
nir_lower_fp16_rtne = (1 << 1),
|
||||
|
|
|
|||
24
src/compiler/nir/nir_lower_view_index_to_device_index.c
Normal file
24
src/compiler/nir/nir_lower_view_index_to_device_index.c
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
* Copyright 2024 Intel Corporation
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#include "nir.h"
|
||||
|
||||
bool
|
||||
nir_lower_view_index_to_device_index(nir_shader *shader)
|
||||
{
|
||||
bool progress = false;
|
||||
|
||||
nir_foreach_variable_with_modes(var, shader, nir_var_system_value) {
|
||||
if (var->data.location == SYSTEM_VALUE_VIEW_INDEX) {
|
||||
var->data.location = SYSTEM_VALUE_DEVICE_INDEX;
|
||||
progress = true;
|
||||
/* Can there be more than one of these or should we break here? */
|
||||
}
|
||||
}
|
||||
|
||||
nir_shader_preserve_all_metadata(shader);
|
||||
|
||||
return progress;
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue