Path: blob/21.2-virgl/src/compiler/glsl/gl_nir_linker.h
4545 views
/*1* Copyright © 2017 Intel Corporation2*3* Permission is hereby granted, free of charge, to any person obtaining a4* copy of this software and associated documentation files (the "Software"),5* to deal in the Software without restriction, including without limitation6* the rights to use, copy, modify, merge, publish, distribute, sublicense,7* and/or sell copies of the Software, and to permit persons to whom the8* Software is furnished to do so, subject to the following conditions:9*10* The above copyright notice and this permission notice (including the next11* paragraph) shall be included in all copies or substantial portions of the12* Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR15* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,16* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL17* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER18* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING19* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS20* IN THE SOFTWARE.21*/2223#ifndef GL_NIR_LINKER_H24#define GL_NIR_LINKER_H2526#ifdef __cplusplus27extern "C" {28#endif2930struct gl_context;31struct gl_shader_program;3233struct gl_nir_linker_options {34bool fill_parameters;35};3637#define nir_foreach_gl_uniform_variable(var, shader) \38nir_foreach_variable_with_modes(var, shader, nir_var_uniform | \39nir_var_mem_ubo | \40nir_var_mem_ssbo)4142bool gl_nir_link_spirv(struct gl_context *ctx,43struct gl_shader_program *prog,44const struct gl_nir_linker_options *options);4546bool gl_nir_link_glsl(struct gl_context *ctx, struct gl_shader_program *prog);4748bool gl_nir_link_uniforms(struct gl_context *ctx,49struct gl_shader_program *prog,50bool fill_parameters);5152void gl_nir_set_uniform_initializers(struct gl_context *ctx,53struct gl_shader_program *prog);5455void nir_build_program_resource_list(struct gl_context *ctx,56struct gl_shader_program *prog,57bool rebuild_resourse_list);5859void gl_nir_link_assign_atomic_counter_resources(struct gl_context *ctx,60struct gl_shader_program *prog);6162void gl_nir_link_check_atomic_counter_resources(struct gl_context *ctx,63struct gl_shader_program *prog);6465void gl_nir_link_assign_xfb_resources(struct gl_context *ctx,66struct gl_shader_program *prog);6768bool gl_nir_link_uniform_blocks(struct gl_context *ctx,69struct gl_shader_program *prog);7071#ifdef __cplusplus72} /* extern "C" */73#endif7475#endif /* GL_NIR_LINKER_H */767778