glsl: implement opt_dead_builtin_varyings() as a NIR pass

And also call it via the NIR varying linker.

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
2022-04-01 15:24:48 +11:00
committed by Marge Bot
parent e5122a5543
commit 4600108ddf
4 changed files with 573 additions and 1 deletions

View File

@@ -24,6 +24,9 @@
#ifndef GL_NIR_LINKER_H
#define GL_NIR_LINKER_H
#include <stdbool.h>
#include "nir.h"
#include "main/glheader.h"
#include "main/menums.h"
@@ -33,7 +36,9 @@ extern "C" {
struct gl_constants;
struct gl_extensions;
struct gl_linked_shader;
struct gl_shader_program;
struct xfb_decl;
struct gl_nir_linker_options {
bool fill_parameters;
@@ -63,6 +68,14 @@ 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_opt_dead_builtin_varyings(const struct gl_constants *consts,
gl_api api,
struct gl_shader_program *prog,
struct gl_linked_shader *producer,
struct gl_linked_shader *consumer,
unsigned num_tfeedback_decls,
struct xfb_decl *tfeedback_decls);
void gl_nir_set_uniform_initializers(const struct gl_constants *consts,
struct gl_shader_program *prog);