/* SPIR-V programs use a NIR linker */
if (shProg->data->spirv) {
- if (!gl_nir_link_uniform_blocks(ctx, shProg)) {
+ static const gl_nir_linker_options opts = {
+ .fill_parameters = false,
+ };
+ if (!gl_nir_link_spirv(ctx, shProg, &opts))
return GL_FALSE;
- }
-
- if (!gl_nir_link_uniforms(ctx, shProg, /* fill_parameters */ false))
- return GL_FALSE;
-
- gl_nir_link_assign_atomic_counter_resources(ctx, shProg);
- gl_nir_link_assign_xfb_resources(ctx, shProg);
}
for (stage = 0; stage < ARRAY_SIZE(shProg->_LinkedShaders); stage++) {
/* SPIR-V programs build its resource list from linked NIR shaders. */
if (!shProg->data->spirv)
- build_program_resource_list(ctx, shProg);
+ build_program_resource_list(ctx, shProg, false);
else
- nir_build_program_resource_list(ctx, shProg);
+ nir_build_program_resource_list(ctx, shProg, true);
for (stage = 0; stage < ARRAY_SIZE(shProg->_LinkedShaders); stage++) {
struct gl_linked_shader *shader = shProg->_LinkedShaders[stage];