glsl/nir: Fill in the Parameters in NIR linker
authorCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Wed, 21 Aug 2019 18:08:48 +0000 (11:08 -0700)
committerCaio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
Tue, 10 Sep 2019 21:36:46 +0000 (14:36 -0700)
commit664e4a610dc8c0f2adc50de645a07cf4e2b622fd
tree298d803526806d1f71e5109e11e443e8a2774e98
parenteea3aa25aa20599578a20fb3256fdb90882abb2b
glsl/nir: Fill in the Parameters in NIR linker

The parameter lists were not being created nor filled since i965
doesn't use them.  In Gallium they are used for uniform handling, so
add a way to fill them.

The gl_uniform_storage struct got two new fields that let us go

- from a Parameter to the matching UniformStorage and,
- from the variable to the *first* UniformStorage

without relying on names -- since they are optional for ARB_gl_spirv.
Later patches will make use of them.

v2: Do not fill parameters for i965.  (Timothy)
    Use uint32_t for the new attributes.  (Marek)

v3: Serialize the new fields.  (Timothy)

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/compiler/glsl/gl_nir_link_uniforms.c
src/compiler/glsl/gl_nir_linker.h
src/compiler/glsl/serialize.cpp
src/mesa/drivers/dri/i965/brw_link.cpp
src/mesa/program/prog_parameter.h