mesa/src/intel/compiler/intel_nir.h
Lionel Landwerlin a91e0e0d61 brw: add support for separate tessellation shader compilation
Tessellation factors have to be written dynamically (based on the next
shader primitive topology) and the builtins read using a dynamic
offset (based on the preceeding shader's VUE).

Anv is updated to use this new infrastructure for dynamic
patch_control_points.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34872>
2025-09-05 07:46:17 +00:00

49 lines
1.6 KiB
C

/*
* Copyright (c) 2015-2023 Intel Corporation
* SPDX-License-Identifier: MIT
*/
#pragma once
#include "nir.h"
#ifdef __cplusplus
extern "C" {
#endif
struct intel_device_info;
#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)
void intel_nir_apply_tcs_quads_workaround(nir_shader *nir);
bool brw_nir_rebase_const_offset_ubo_loads(nir_shader *shader);
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);
bool intel_nir_lower_patch_vertices_in(nir_shader *shader,
unsigned input_vertices);
bool intel_nir_lower_patch_vertices_tes(nir_shader *shader);
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);
unsigned intel_nir_split_conversions_cb(const nir_instr *instr, void *data);
bool intel_nir_lower_printf(nir_shader *nir);
#ifdef __cplusplus
}
#endif