2023-11-01 12:51:33 -07:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2015-2023 Intel Corporation
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*/
|
|
|
|
|
|
2024-12-06 14:25:29 -08:00
|
|
|
#pragma once
|
2023-11-01 12:51:33 -07:00
|
|
|
|
|
|
|
|
#include "nir.h"
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
struct intel_device_info;
|
|
|
|
|
|
2025-04-22 18:42:35 +03:00
|
|
|
#define intel_nir_tess_field(b, field) \
|
|
|
|
|
nir_ubitfield_extract_imm(b, nir_load_tess_config_intel(b), \
|
|
|
|
|
INTEL_TESS_CONFIG_##field##_OFFSET, \
|
|
|
|
|
INTEL_TESS_CONFIG_##field##_SIZE)
|
2025-02-04 14:55:40 +02:00
|
|
|
|
2023-11-01 15:15:43 -07:00
|
|
|
void intel_nir_apply_tcs_quads_workaround(nir_shader *nir);
|
2024-12-26 16:41:30 -08:00
|
|
|
bool brw_nir_rebase_const_offset_ubo_loads(nir_shader *shader);
|
2023-11-01 15:15:43 -07:00
|
|
|
bool intel_nir_blockify_uniform_loads(nir_shader *shader,
|
|
|
|
|
const struct intel_device_info *devinfo);
|
|
|
|
|
bool intel_nir_clamp_image_1d_2d_array_sizes(nir_shader *shader);
|
|
|
|
|
bool intel_nir_clamp_per_vertex_loads(nir_shader *shader);
|
|
|
|
|
bool intel_nir_cleanup_resource_intel(nir_shader *shader);
|
|
|
|
|
|
|
|
|
|
bool intel_nir_lower_non_uniform_barycentric_at_sample(nir_shader *nir);
|
|
|
|
|
bool intel_nir_lower_non_uniform_resource_intel(nir_shader *shader);
|
2025-02-04 14:55:40 +02:00
|
|
|
bool intel_nir_lower_patch_vertices_in(nir_shader *shader,
|
2025-04-22 18:42:35 +03:00
|
|
|
unsigned input_vertices);
|
|
|
|
|
bool intel_nir_lower_patch_vertices_tes(nir_shader *shader);
|
|
|
|
|
|
2023-11-01 15:15:43 -07:00
|
|
|
bool intel_nir_lower_shading_rate_output(nir_shader *nir);
|
|
|
|
|
bool intel_nir_lower_sparse_intrinsics(nir_shader *nir);
|
|
|
|
|
|
|
|
|
|
bool intel_nir_opt_peephole_ffma(nir_shader *shader);
|
|
|
|
|
bool intel_nir_opt_peephole_imul32x16(nir_shader *shader);
|
|
|
|
|
|
|
|
|
|
bool intel_nir_pulls_at_sample(nir_shader *shader);
|
2023-11-01 12:51:33 -07:00
|
|
|
|
2025-03-17 14:31:32 -05:00
|
|
|
unsigned intel_nir_split_conversions_cb(const nir_instr *instr, void *data);
|
|
|
|
|
|
2023-09-05 16:11:56 +03:00
|
|
|
bool intel_nir_lower_printf(nir_shader *nir);
|
|
|
|
|
|
2023-11-01 12:51:33 -07:00
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif
|