glsl: add a NIR based varying linker

With a NIR based linker we get better xfb packing, and we no longer
depend on the GLSL IR optimisations to be able to link shaders
with a large amount of dead input/outputs.

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15731>
This commit is contained in:
Timothy Arceri
2021-11-02 12:43:54 +11:00
committed by Marge Bot
parent e3a45a4778
commit e5122a5543
4 changed files with 3373 additions and 0 deletions

View File

@@ -25,6 +25,7 @@
#define GL_NIR_LINKER_H
#include "main/glheader.h"
#include "main/menums.h"
#ifdef __cplusplus
extern "C" {
@@ -58,6 +59,10 @@ bool gl_nir_link_uniforms(const struct gl_constants *consts,
struct gl_shader_program *prog,
bool fill_parameters);
bool gl_nir_link_varyings(const struct gl_constants *consts,
const struct gl_extensions *exts,
gl_api api, struct gl_shader_program *prog);
void gl_nir_set_uniform_initializers(const struct gl_constants *consts,
struct gl_shader_program *prog);