<div dir="ltr">This patch breaks freedreno and probably vc4. They use NIR directly.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 19, 2016 at 4:09 PM, Timothy Arceri <span dir="ltr"><<a href="mailto:timothy.arceri@collabora.com" target="_blank">timothy.arceri@collabora.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">When restoring something from shader cache we won't have and don't<br>
want to create a nir_shader this change detaches the two.<br>
<br>
There are other advantages such as being able to reuse the<br>
shader info populated by GLSL IR.<br>
---<br>
src/amd/common/ac_nir_to_llvm.<wbr>c | 4 +-<br>
src/amd/vulkan/radv_meta_blit.<wbr>c | 8 +-<br>
src/amd/vulkan/radv_meta_<wbr>blit2d.c | 8 +-<br>
src/amd/vulkan/radv_meta_<wbr>buffer.c | 28 +++----<br>
src/amd/vulkan/radv_meta_<wbr>bufimage.c | 14 ++--<br>
src/amd/vulkan/radv_meta_<wbr>clear.c | 8 +-<br>
src/amd/vulkan/radv_meta_<wbr>decompress.c | 6 +-<br>
src/amd/vulkan/radv_meta_fast_<wbr>clear.c | 4 +-<br>
src/amd/vulkan/radv_meta_<wbr>resolve.c | 6 +-<br>
src/amd/vulkan/radv_meta_<wbr>resolve_cs.c | 14 ++--<br>
src/amd/vulkan/radv_pipeline.c | 8 +-<br>
src/compiler/glsl/glsl_to_nir.<wbr>cpp | 66 ++++++++---------<br>
src/compiler/nir/nir.c | 6 +-<br>
src/compiler/nir/nir.h | 5 +-<br>
src/compiler/nir/nir_builder.h | 2 +-<br>
src/compiler/nir/nir_clone.c | 8 +-<br>
src/compiler/nir/nir_gather_<wbr>info.c | 30 ++++----<br>
src/compiler/nir/nir_lower_<wbr>bitmap.c | 2 +-<br>
src/compiler/nir/nir_lower_<wbr>clip.c | 2 +-<br>
src/compiler/nir/nir_lower_gs_<wbr>intrinsics.c | 3 +-<br>
src/compiler/nir/nir_lower_<wbr>system_values.c | 12 +--<br>
src/compiler/nir/nir_print.c | 8 +-<br>
src/compiler/nir/nir_sweep.c | 6 +-<br>
src/compiler/spirv/spirv_to_<wbr>nir.c | 34 ++++-----<br>
src/compiler/spirv/vtn_<wbr>variables.c | 14 ++--<br>
src/gallium/auxiliary/nir/<wbr>tgsi_to_nir.c | 10 +--<br>
src/intel/blorp/blorp.c | 2 +-<br>
src/intel/blorp/blorp_clear.c | 2 +-<br>
src/intel/vulkan/anv_pipeline.<wbr>c | 18 ++---<br>
src/mesa/drivers/dri/i965/brw_<wbr>context.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>curbe.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>draw.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>fs.cpp | 85 +++++++++++-----------<br>
src/mesa/drivers/dri/i965/brw_<wbr>fs_nir.cpp | 18 ++---<br>
src/mesa/drivers/dri/i965/brw_<wbr>fs_visitor.cpp | 12 +--<br>
src/mesa/drivers/dri/i965/brw_<wbr>gs.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>interpolation_map.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>nir.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>nir_intrinsics.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>sf.c | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>shader.cpp | 22 +++---<br>
src/mesa/drivers/dri/i965/brw_<wbr>tcs.c | 22 +++---<br>
src/mesa/drivers/dri/i965/brw_<wbr>tes.c | 16 ++--<br>
src/mesa/drivers/dri/i965/brw_<wbr>vec4.cpp | 16 ++--<br>
src/mesa/drivers/dri/i965/brw_<wbr>vec4_generator.cpp | 4 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>vec4_gs_visitor.cpp | 30 ++++----<br>
src/mesa/drivers/dri/i965/brw_<wbr>vec4_nir.cpp | 8 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>vec4_tcs.cpp | 26 +++----<br>
src/mesa/drivers/dri/i965/brw_<wbr>vs.c | 8 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>wm.c | 20 ++---<br>
src/mesa/drivers/dri/i965/brw_<wbr>wm_iz.cpp | 2 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>wm_state.c | 4 +-<br>
src/mesa/drivers/dri/i965/brw_<wbr>wm_surface_state.c | 14 ++--<br>
src/mesa/drivers/dri/i965/<wbr>gen6_gs_visitor.cpp | 12 +--<br>
src/mesa/drivers/dri/i965/<wbr>gen6_sf_state.c | 2 +-<br>
src/mesa/drivers/dri/i965/<wbr>gen8_sf_state.c | 2 +-<br>
.../drivers/dri/i965/test_fs_<wbr>cmod_propagation.cpp | 3 +-<br>
.../dri/i965/test_fs_saturate_<wbr>propagation.cpp | 3 +-<br>
.../dri/i965/test_vec4_cmod_<wbr>propagation.cpp | 3 +-<br>
.../dri/i965/test_vec4_copy_<wbr>propagation.cpp | 3 +-<br>
.../dri/i965/test_vec4_<wbr>register_coalesce.cpp | 3 +-<br>
src/mesa/program/prog_to_nir.c | 26 +++----<br>
62 files changed, 366 insertions(+), 352 deletions(-)<br>
<br>
diff --git a/src/amd/common/ac_nir_to_<wbr>llvm.c b/src/amd/common/ac_nir_to_<wbr>llvm.c<br>
index e2f6bca..d12d166 100644<br>
--- a/src/amd/common/ac_nir_to_<wbr>llvm.c<br>
+++ b/src/amd/common/ac_nir_to_<wbr>llvm.c<br>
@@ -4642,9 +4642,9 @@ void ac_compile_nir_shader(<wbr>LLVMTargetMachineRef tm,<br>
shader_info->num_input_sgprs + 3);<br>
if (nir->stage == MESA_SHADER_COMPUTE) {<br>
for (int i = 0; i < 3; ++i)<br>
- shader_info->cs.block_size[i] = nir->info.cs.local_size[i];<br>
+ shader_info->cs.block_size[i] = nir->info->cs.local_size[i];<br>
}<br>
<br>
if (nir->stage == MESA_SHADER_FRAGMENT)<br>
- shader_info->fs.early_<wbr>fragment_test = nir->info.fs.early_fragment_<wbr>tests;<br>
+ shader_info->fs.early_<wbr>fragment_test = nir->info->fs.early_fragment_<wbr>tests;<br>
}<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>blit.c b/src/amd/vulkan/radv_meta_<wbr>blit.c<br>
index dfba8a8..bfbf880 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>blit.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>blit.c<br>
@@ -38,7 +38,7 @@ build_nir_vertex_shader(void)<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_VERTEX, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_blit_vs");<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_blit_vs");<br>
<br>
nir_variable *pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec4, "a_pos");<br>
@@ -70,7 +70,7 @@ build_nir_copy_fragment_<wbr>shader(enum glsl_sampler_dim tex_dim)<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
<br>
sprintf(shader_name, "meta_blit_fs.%d", tex_dim);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, shader_name);<br>
+ b.shader->info->name = ralloc_strdup(b.shader, shader_name);<br>
<br>
nir_variable *tex_pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec4, "v_tex_pos");<br>
@@ -124,7 +124,7 @@ build_nir_copy_fragment_<wbr>shader_depth(enum glsl_sampler_dim tex_dim)<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
<br>
sprintf(shader_name, "meta_blit_depth_fs.%d", tex_dim);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, shader_name);<br>
+ b.shader->info->name = ralloc_strdup(b.shader, shader_name);<br>
<br>
nir_variable *tex_pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec4, "v_tex_pos");<br>
@@ -178,7 +178,7 @@ build_nir_copy_fragment_<wbr>shader_stencil(enum glsl_sampler_dim tex_dim)<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
<br>
sprintf(shader_name, "meta_blit_stencil_fs.%d", tex_dim);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, shader_name);<br>
+ b.shader->info->name = ralloc_strdup(b.shader, shader_name);<br>
<br>
nir_variable *tex_pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec4, "v_tex_pos");<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>blit2d.c b/src/amd/vulkan/radv_meta_<wbr>blit2d.c<br>
index 52e142f..6e92f80 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>blit2d.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>blit2d.c<br>
@@ -439,7 +439,7 @@ build_nir_vertex_shader(void)<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_VERTEX, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_blit_vs");<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_blit_vs");<br>
<br>
nir_variable *pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec4, "a_pos");<br>
@@ -574,7 +574,7 @@ build_nir_copy_fragment_<wbr>shader(struct radv_device *device,<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, name);<br>
+ b.shader->info->name = ralloc_strdup(b.shader, name);<br>
<br>
nir_variable *tex_pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec2, "v_tex_pos");<br>
@@ -603,7 +603,7 @@ build_nir_copy_fragment_<wbr>shader_depth(struct radv_device *device,<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, name);<br>
+ b.shader->info->name = ralloc_strdup(b.shader, name);<br>
<br>
nir_variable *tex_pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec2, "v_tex_pos");<br>
@@ -632,7 +632,7 @@ build_nir_copy_fragment_<wbr>shader_stencil(struct radv_device *device,<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, name);<br>
+ b.shader->info->name = ralloc_strdup(b.shader, name);<br>
<br>
nir_variable *tex_pos_in = nir_variable_create(b.shader, nir_var_shader_in,<br>
vec2, "v_tex_pos");<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>buffer.c b/src/amd/vulkan/radv_meta_<wbr>buffer.c<br>
index adea25e..05c4971 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>buffer.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>buffer.c<br>
@@ -10,17 +10,17 @@ build_buffer_fill_shader(<wbr>struct radv_device *dev)<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_COMPUTE, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_buffer_fill");<br>
- b.shader->info.cs.local_size[<wbr>0] = 64;<br>
- b.shader->info.cs.local_size[<wbr>1] = 1;<br>
- b.shader->info.cs.local_size[<wbr>2] = 1;<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_buffer_fill");<br>
+ b.shader->info->cs.local_size[<wbr>0] = 64;<br>
+ b.shader->info->cs.local_size[<wbr>1] = 1;<br>
+ b.shader->info->cs.local_size[<wbr>2] = 1;<br>
<br>
nir_ssa_def *invoc_id = nir_load_system_value(&b, nir_intrinsic_load_local_<wbr>invocation_id, 0);<br>
nir_ssa_def *wg_id = nir_load_system_value(&b, nir_intrinsic_load_work_group_<wbr>id, 0);<br>
nir_ssa_def *block_size = nir_imm_ivec4(&b,<br>
- b.shader->info.cs.local_size[<wbr>0],<br>
- b.shader->info.cs.local_size[<wbr>1],<br>
- b.shader->info.cs.local_size[<wbr>2], 0);<br>
+ b.shader->info->cs.local_size[<wbr>0],<br>
+ b.shader->info->cs.local_size[<wbr>1],<br>
+ b.shader->info->cs.local_size[<wbr>2], 0);<br>
<br>
nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id);<br>
<br>
@@ -60,17 +60,17 @@ build_buffer_copy_shader(<wbr>struct radv_device *dev)<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_COMPUTE, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_buffer_copy");<br>
- b.shader->info.cs.local_size[<wbr>0] = 64;<br>
- b.shader->info.cs.local_size[<wbr>1] = 1;<br>
- b.shader->info.cs.local_size[<wbr>2] = 1;<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_buffer_copy");<br>
+ b.shader->info->cs.local_size[<wbr>0] = 64;<br>
+ b.shader->info->cs.local_size[<wbr>1] = 1;<br>
+ b.shader->info->cs.local_size[<wbr>2] = 1;<br>
<br>
nir_ssa_def *invoc_id = nir_load_system_value(&b, nir_intrinsic_load_local_<wbr>invocation_id, 0);<br>
nir_ssa_def *wg_id = nir_load_system_value(&b, nir_intrinsic_load_work_group_<wbr>id, 0);<br>
nir_ssa_def *block_size = nir_imm_ivec4(&b,<br>
- b.shader->info.cs.local_size[<wbr>0],<br>
- b.shader->info.cs.local_size[<wbr>1],<br>
- b.shader->info.cs.local_size[<wbr>2], 0);<br>
+ b.shader->info->cs.local_size[<wbr>0],<br>
+ b.shader->info->cs.local_size[<wbr>1],<br>
+ b.shader->info->cs.local_size[<wbr>2], 0);<br>
<br>
nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id);<br>
<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>bufimage.c b/src/amd/vulkan/radv_meta_<wbr>bufimage.c<br>
index 287ab3f..c9dd072 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>bufimage.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>bufimage.c<br>
@@ -14,10 +14,10 @@ build_nir_itob_compute_shader(<wbr>struct radv_device *dev)<br>
false,<br>
GLSL_TYPE_FLOAT);<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_COMPUTE, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_itob_cs");<br>
- b.shader->info.cs.local_size[<wbr>0] = 16;<br>
- b.shader->info.cs.local_size[<wbr>1] = 16;<br>
- b.shader->info.cs.local_size[<wbr>2] = 1;<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_itob_cs");<br>
+ b.shader->info->cs.local_size[<wbr>0] = 16;<br>
+ b.shader->info->cs.local_size[<wbr>1] = 16;<br>
+ b.shader->info->cs.local_size[<wbr>2] = 1;<br>
nir_variable *input_img = nir_variable_create(b.shader, nir_var_uniform,<br>
sampler_type, "s_tex");<br>
input_img->data.descriptor_set = 0;<br>
@@ -31,9 +31,9 @@ build_nir_itob_compute_shader(<wbr>struct radv_device *dev)<br>
nir_ssa_def *invoc_id = nir_load_system_value(&b, nir_intrinsic_load_local_<wbr>invocation_id, 0);<br>
nir_ssa_def *wg_id = nir_load_system_value(&b, nir_intrinsic_load_work_group_<wbr>id, 0);<br>
nir_ssa_def *block_size = nir_imm_ivec4(&b,<br>
- b.shader->info.cs.local_size[<wbr>0],<br>
- b.shader->info.cs.local_size[<wbr>1],<br>
- b.shader->info.cs.local_size[<wbr>2], 0);<br>
+ b.shader->info->cs.local_size[<wbr>0],<br>
+ b.shader->info->cs.local_size[<wbr>1],<br>
+ b.shader->info->cs.local_size[<wbr>2], 0);<br>
<br>
nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id);<br>
<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>clear.c b/src/amd/vulkan/radv_meta_<wbr>clear.c<br>
index 7e3e5f4..34b318a 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>clear.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>clear.c<br>
@@ -56,8 +56,8 @@ build_color_shaders(struct nir_shader **out_vs,<br>
nir_builder_init_simple_<wbr>shader(&vs_b, NULL, MESA_SHADER_VERTEX, NULL);<br>
nir_builder_init_simple_<wbr>shader(&fs_b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
<br>
- vs_b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(vs_b.shader, "meta_clear_color_vs");<br>
- fs_b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(fs_b.shader, "meta_clear_color_fs");<br>
+ vs_b.shader->info->name = ralloc_strdup(vs_b.shader, "meta_clear_color_vs");<br>
+ fs_b.shader->info->name = ralloc_strdup(fs_b.shader, "meta_clear_color_fs");<br>
<br>
const struct glsl_type *position_type = glsl_vec4_type();<br>
const struct glsl_type *color_type = glsl_vec4_type();<br>
@@ -458,8 +458,8 @@ build_depthstencil_shader(<wbr>struct nir_shader **out_vs, struct nir_shader **out_fs<br>
nir_builder_init_simple_<wbr>shader(&vs_b, NULL, MESA_SHADER_VERTEX, NULL);<br>
nir_builder_init_simple_<wbr>shader(&fs_b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
<br>
- vs_b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(vs_b.shader, "meta_clear_depthstencil_vs");<br>
- fs_b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(fs_b.shader, "meta_clear_depthstencil_fs");<br>
+ vs_b.shader->info->name = ralloc_strdup(vs_b.shader, "meta_clear_depthstencil_vs");<br>
+ fs_b.shader->info->name = ralloc_strdup(fs_b.shader, "meta_clear_depthstencil_fs");<br>
const struct glsl_type *position_type = glsl_vec4_type();<br>
<br>
nir_variable *vs_in_pos =<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>decompress.c b/src/amd/vulkan/radv_meta_<wbr>decompress.c<br>
index 0ba6bd0..47ef64d 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>decompress.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>decompress.c<br>
@@ -46,7 +46,7 @@ build_nir_vs(void)<br>
nir_variable *v_position;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_VERTEX, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_depth_decomp_vs");<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_depth_decomp_vs");<br>
<br>
a_position = nir_variable_create(b.shader, nir_var_shader_in, vec4,<br>
"a_position");<br>
@@ -68,8 +68,8 @@ build_nir_fs(void)<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_asprintf(b.shader,<br>
- "meta_depth_decomp_noop_fs");<br>
+ b.shader->info->name = ralloc_asprintf(b.shader,<br>
+ "meta_depth_decomp_noop_fs");<br>
<br>
return b.shader;<br>
}<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>fast_clear.c b/src/amd/vulkan/radv_meta_<wbr>fast_clear.c<br>
index 15c9bbcb..f79c634 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>fast_clear.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>fast_clear.c<br>
@@ -46,7 +46,7 @@ build_nir_vs(void)<br>
nir_variable *v_position;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_VERTEX, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_fast_clear_vs");<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_fast_clear_vs");<br>
<br>
a_position = nir_variable_create(b.shader, nir_var_shader_in, vec4,<br>
"a_position");<br>
@@ -68,7 +68,7 @@ build_nir_fs(void)<br>
nir_builder b;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_asprintf(b.shader,<br>
+ b.shader->info->name = ralloc_asprintf(b.shader,<br>
"meta_fast_clear_noop_fs");<br>
<br>
return b.shader;<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>resolve.c b/src/amd/vulkan/radv_meta_<wbr>resolve.c<br>
index da813eb..697a264 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>resolve.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>resolve.c<br>
@@ -49,7 +49,7 @@ build_nir_vs(void)<br>
nir_variable *v_tex_position;<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_VERTEX, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "meta_resolve_vs");<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "meta_resolve_vs");<br>
<br>
a_position = nir_variable_create(b.shader, nir_var_shader_in, vec4,<br>
"a_position");<br>
@@ -83,8 +83,8 @@ build_nir_fs(void)<br>
nir_variable *f_color; /* vec4, fragment output color */<br>
<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_asprintf(b.shader,<br>
- "meta_resolve_fs");<br>
+ b.shader->info->name = ralloc_asprintf(b.shader,<br>
+ "meta_resolve_fs");<br>
<br>
v_tex_position = nir_variable_create(b.shader, nir_var_shader_in, vec4,<br>
"v_tex_position");<br>
diff --git a/src/amd/vulkan/radv_meta_<wbr>resolve_cs.c b/src/amd/vulkan/radv_meta_<wbr>resolve_cs.c<br>
index c6525b6..126823b 100644<br>
--- a/src/amd/vulkan/radv_meta_<wbr>resolve_cs.c<br>
+++ b/src/amd/vulkan/radv_meta_<wbr>resolve_cs.c<br>
@@ -47,10 +47,10 @@ build_resolve_compute_shader(<wbr>struct radv_device *dev, bool is_integer, int sampl<br>
GLSL_TYPE_FLOAT);<br>
snprintf(name, 64, "meta_resolve_cs-%d-%s", samples, is_integer ? "int" : "float");<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_COMPUTE, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, name);<br>
- b.shader->info.cs.local_size[<wbr>0] = 16;<br>
- b.shader->info.cs.local_size[<wbr>1] = 16;<br>
- b.shader->info.cs.local_size[<wbr>2] = 1;<br>
+ b.shader->info->name = ralloc_strdup(b.shader, name);<br>
+ b.shader->info->cs.local_size[<wbr>0] = 16;<br>
+ b.shader->info->cs.local_size[<wbr>1] = 16;<br>
+ b.shader->info->cs.local_size[<wbr>2] = 1;<br>
<br>
nir_variable *input_img = nir_variable_create(b.shader, nir_var_uniform,<br>
sampler_type, "s_tex");<br>
@@ -64,9 +64,9 @@ build_resolve_compute_shader(<wbr>struct radv_device *dev, bool is_integer, int sampl<br>
nir_ssa_def *invoc_id = nir_load_system_value(&b, nir_intrinsic_load_local_<wbr>invocation_id, 0);<br>
nir_ssa_def *wg_id = nir_load_system_value(&b, nir_intrinsic_load_work_group_<wbr>id, 0);<br>
nir_ssa_def *block_size = nir_imm_ivec4(&b,<br>
- b.shader->info.cs.local_size[<wbr>0],<br>
- b.shader->info.cs.local_size[<wbr>1],<br>
- b.shader->info.cs.local_size[<wbr>2], 0);<br>
+ b.shader->info->cs.local_size[<wbr>0],<br>
+ b.shader->info->cs.local_size[<wbr>1],<br>
+ b.shader->info->cs.local_size[<wbr>2], 0);<br>
<br>
nir_ssa_def *global_id = nir_iadd(&b, nir_imul(&b, wg_id, block_size), invoc_id);<br>
<br>
diff --git a/src/amd/vulkan/radv_<wbr>pipeline.c b/src/amd/vulkan/radv_<wbr>pipeline.c<br>
index 78efbbe..d92fbf8 100644<br>
--- a/src/amd/vulkan/radv_<wbr>pipeline.c<br>
+++ b/src/amd/vulkan/radv_<wbr>pipeline.c<br>
@@ -224,7 +224,7 @@ radv_shader_compile_to_nir(<wbr>struct radv_device *device,<br>
}<br>
<br>
/* Vulkan uses the separate-shader linking model */<br>
- nir->info.separate_shader = true;<br>
+ nir->info->separate_shader = true;<br>
<br>
// nir = brw_preprocess_nir(compiler, nir);<br>
<br>
@@ -370,8 +370,8 @@ radv_pipeline_compile(struct radv_pipeline *pipeline,<br>
unsigned code_size = 0;<br>
<br>
if (module->nir)<br>
- _mesa_sha1_compute(module-><wbr>nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>,<br>
- strlen(module->nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>)<wbr>,<br>
+ _mesa_sha1_compute(module-><wbr>nir->info->name,<br>
+ strlen(module->nir->info-><wbr>name),<br>
module->sha1);<br>
<br>
radv_hash_shader(sha1, module, entrypoint, spec_info, layout, key);<br>
@@ -1216,7 +1216,7 @@ radv_pipeline_init(struct radv_pipeline *pipeline,<br>
if (!modules[MESA_SHADER_<wbr>FRAGMENT]) {<br>
nir_builder fs_b;<br>
nir_builder_init_simple_<wbr>shader(&fs_b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- fs_b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(fs_b.shader, "noop_fs");<br>
+ fs_b.shader->info->name = ralloc_strdup(fs_b.shader, "noop_fs");<br>
fs_m.nir = fs_b.shader;<br>
modules[MESA_SHADER_FRAGMENT] = &fs_m;<br>
}<br>
diff --git a/src/compiler/glsl/glsl_to_<wbr>nir.cpp b/src/compiler/glsl/glsl_to_<wbr>nir.cpp<br>
index 18600c4..b531892 100644<br>
--- a/src/compiler/glsl/glsl_to_<wbr>nir.cpp<br>
+++ b/src/compiler/glsl/glsl_to_<wbr>nir.cpp<br>
@@ -136,65 +136,65 @@ glsl_to_nir(const struct gl_shader_program *shader_prog,<br>
{<br>
struct gl_linked_shader *sh = shader_prog->_LinkedShaders[<wbr>stage];<br>
<br>
- nir_shader *shader = nir_shader_create(NULL, stage, options);<br>
+ nir_shader *shader = nir_shader_create(NULL, stage, options, NULL);<br>
<br>
nir_visitor v1(shader);<br>
nir_function_visitor v2(&v1);<br>
v2.run(sh->ir);<br>
visit_exec_list(sh->ir, &v1);<br>
<br>
- shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_asprintf(shader, "GLSL%d", shader_prog->Name);<br>
+ shader->info->name = ralloc_asprintf(shader, "GLSL%d", shader_prog->Name);<br>
if (shader_prog->Label)<br>
- shader->info.label = ralloc_strdup(shader, shader_prog->Label);<br>
- shader->info.num_textures = util_last_bit(sh->Program-><wbr>SamplersUsed);<br>
- shader->info.num_ubos = sh->NumUniformBlocks;<br>
- shader->info.num_abos = shader_prog->NumAtomicBuffers;<br>
- shader->info.num_ssbos = sh->NumShaderStorageBlocks;<br>
- shader->info.num_images = sh->NumImages;<br>
- shader->info.inputs_read = sh->Program->InputsRead;<br>
- shader->info.double_inputs_<wbr>read = sh->Program->DoubleInputsRead;<br>
- shader->info.outputs_written = sh->Program->OutputsWritten;<br>
- shader->info.outputs_read = sh->Program->OutputsRead;<br>
- shader->info.patch_inputs_read = sh->Program->PatchInputsRead;<br>
- shader->info.patch_outputs_<wbr>written = sh->Program-><wbr>PatchOutputsWritten;<br>
- shader->info.system_values_<wbr>read = sh->Program->SystemValuesRead;<br>
- shader->info.uses_texture_<wbr>gather = sh->Program->UsesGather;<br>
- shader->info.uses_clip_<wbr>distance_out =<br>
+ shader->info->label = ralloc_strdup(shader, shader_prog->Label);<br>
+ shader->info->num_textures = util_last_bit(sh->Program-><wbr>SamplersUsed);<br>
+ shader->info->num_ubos = sh->NumUniformBlocks;<br>
+ shader->info->num_abos = shader_prog->NumAtomicBuffers;<br>
+ shader->info->num_ssbos = sh->NumShaderStorageBlocks;<br>
+ shader->info->num_images = sh->NumImages;<br>
+ shader->info->inputs_read = sh->Program->InputsRead;<br>
+ shader->info->double_inputs_<wbr>read = sh->Program->DoubleInputsRead;<br>
+ shader->info->outputs_written = sh->Program->OutputsWritten;<br>
+ shader->info->outputs_read = sh->Program->OutputsRead;<br>
+ shader->info->patch_inputs_<wbr>read = sh->Program->PatchInputsRead;<br>
+ shader->info->patch_outputs_<wbr>written = sh->Program-><wbr>PatchOutputsWritten;<br>
+ shader->info->system_values_<wbr>read = sh->Program->SystemValuesRead;<br>
+ shader->info->uses_texture_<wbr>gather = sh->Program->UsesGather;<br>
+ shader->info->uses_clip_<wbr>distance_out =<br>
sh->Program-><wbr>ClipDistanceArraySize != 0;<br>
- shader->info.separate_shader = shader_prog->SeparateShader;<br>
- shader->info.has_transform_<wbr>feedback_varyings =<br>
+ shader->info->separate_shader = shader_prog->SeparateShader;<br>
+ shader->info->has_transform_<wbr>feedback_varyings =<br>
shader_prog-><wbr>TransformFeedback.NumVarying > 0;<br>
<br>
switch (stage) {<br>
case MESA_SHADER_TESS_CTRL:<br>
- shader->info.tcs.vertices_out = sh->info.TessCtrl.VerticesOut;<br>
+ shader->info->tcs.vertices_out = sh->info.TessCtrl.VerticesOut;<br>
break;<br>
<br>
case MESA_SHADER_GEOMETRY:<br>
- shader->info.gs.vertices_in = shader_prog->Geom.VerticesIn;<br>
- shader->info.gs.output_<wbr>primitive = sh->info.Geom.OutputType;<br>
- shader->info.gs.vertices_out = sh->info.Geom.VerticesOut;<br>
- shader->info.gs.invocations = sh->info.Geom.Invocations;<br>
- shader->info.gs.uses_end_<wbr>primitive = shader_prog->Geom.<wbr>UsesEndPrimitive;<br>
- shader->info.gs.uses_streams = shader_prog->Geom.UsesStreams;<br>
+ shader->info->gs.vertices_in = shader_prog->Geom.VerticesIn;<br>
+ shader->info->gs.output_<wbr>primitive = sh->info.Geom.OutputType;<br>
+ shader->info->gs.vertices_out = sh->info.Geom.VerticesOut;<br>
+ shader->info->gs.invocations = sh->info.Geom.Invocations;<br>
+ shader->info->gs.uses_end_<wbr>primitive = shader_prog->Geom.<wbr>UsesEndPrimitive;<br>
+ shader->info->gs.uses_streams = shader_prog->Geom.UsesStreams;<br>
break;<br>
<br>
case MESA_SHADER_FRAGMENT: {<br>
struct gl_fragment_program *fp =<br>
(struct gl_fragment_program *)sh->Program;<br>
<br>
- shader->info.fs.uses_discard = fp->UsesKill;<br>
- shader->info.fs.uses_sample_<wbr>qualifier = fp->IsSample != 0;<br>
- shader->info.fs.early_<wbr>fragment_tests = sh->info.EarlyFragmentTests;<br>
- shader->info.fs.depth_layout = fp->FragDepthLayout;<br>
+ shader->info->fs.uses_discard = fp->UsesKill;<br>
+ shader->info->fs.uses_sample_<wbr>qualifier = fp->IsSample != 0;<br>
+ shader->info->fs.early_<wbr>fragment_tests = sh->info.EarlyFragmentTests;<br>
+ shader->info->fs.depth_layout = fp->FragDepthLayout;<br>
break;<br>
}<br>
<br>
case MESA_SHADER_COMPUTE: {<br>
struct gl_compute_program *cp = (struct gl_compute_program *)sh->Program;<br>
- shader->info.cs.local_size[0] = cp->LocalSize[0];<br>
- shader->info.cs.local_size[1] = cp->LocalSize[1];<br>
- shader->info.cs.local_size[2] = cp->LocalSize[2];<br>
+ shader->info->cs.local_size[0] = cp->LocalSize[0];<br>
+ shader->info->cs.local_size[1] = cp->LocalSize[1];<br>
+ shader->info->cs.local_size[2] = cp->LocalSize[2];<br>
break;<br>
}<br>
<br>
diff --git a/src/compiler/nir/nir.c b/src/compiler/nir/nir.c<br>
index 098e1b2..09aad57 100644<br>
--- a/src/compiler/nir/nir.c<br>
+++ b/src/compiler/nir/nir.c<br>
@@ -32,7 +32,8 @@<br>
nir_shader *<br>
nir_shader_create(void *mem_ctx,<br>
gl_shader_stage stage,<br>
- const nir_shader_compiler_options *options)<br>
+ const nir_shader_compiler_options *options,<br>
+ shader_info *si)<br>
{<br>
nir_shader *shader = ralloc(mem_ctx, nir_shader);<br>
<br>
@@ -42,7 +43,8 @@ nir_shader_create(void *mem_ctx,<br>
exec_list_make_empty(&shader-><wbr>shared);<br>
<br>
shader->options = options;<br>
- memset(&shader->info, 0, sizeof(shader->info));<br>
+<br>
+ shader->info = si ? si : rzalloc(shader, shader_info);<br>
<br>
exec_list_make_empty(&shader-><wbr>functions);<br>
exec_list_make_empty(&shader-><wbr>registers);<br>
diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h<br>
index 04b0301..54302f8 100644<br>
--- a/src/compiler/nir/nir.h<br>
+++ b/src/compiler/nir/nir.h<br>
@@ -1805,7 +1805,7 @@ typedef struct nir_shader {<br>
const struct nir_shader_compiler_options *options;<br>
<br>
/** Various bits of compile-time information about a given shader */<br>
- struct shader_info info;<br>
+ struct shader_info *info;<br>
<br>
/** list of global variables in the shader (nir_variable) */<br>
struct exec_list globals;<br>
@@ -1848,7 +1848,8 @@ nir_shader_get_entrypoint(nir_<wbr>shader *shader)<br>
<br>
nir_shader *nir_shader_create(void *mem_ctx,<br>
gl_shader_stage stage,<br>
- const nir_shader_compiler_options *options);<br>
+ const nir_shader_compiler_options *options,<br>
+ shader_info *si);<br>
<br>
/** creates a register, including assigning it an index and adding it to the list */<br>
nir_register *nir_global_reg_create(nir_<wbr>shader *shader);<br>
diff --git a/src/compiler/nir/nir_<wbr>builder.h b/src/compiler/nir/nir_<wbr>builder.h<br>
index 040f03e..0ee7d1a 100644<br>
--- a/src/compiler/nir/nir_<wbr>builder.h<br>
+++ b/src/compiler/nir/nir_<wbr>builder.h<br>
@@ -52,7 +52,7 @@ nir_builder_init_simple_<wbr>shader(nir_builder *build, void *mem_ctx,<br>
gl_shader_stage stage,<br>
const nir_shader_compiler_options *options)<br>
{<br>
- build->shader = nir_shader_create(mem_ctx, stage, options);<br>
+ build->shader = nir_shader_create(mem_ctx, stage, options, NULL);<br>
nir_function *func = nir_function_create(build-><wbr>shader, "main");<br>
build->exact = false;<br>
build->impl = nir_function_impl_create(func)<wbr>;<br>
diff --git a/src/compiler/nir/nir_clone.c b/src/compiler/nir/nir_clone.c<br>
index 0e397b0..f23fabc 100644<br>
--- a/src/compiler/nir/nir_clone.c<br>
+++ b/src/compiler/nir/nir_clone.c<br>
@@ -682,7 +682,7 @@ nir_shader_clone(void *mem_ctx, const nir_shader *s)<br>
clone_state state;<br>
init_clone_state(&state, true);<br>
<br>
- nir_shader *ns = nir_shader_create(mem_ctx, s->stage, s->options);<br>
+ nir_shader *ns = nir_shader_create(mem_ctx, s->stage, s->options, NULL);<br>
state.ns = ns;<br>
<br>
clone_var_list(&state, &ns->uniforms, &s->uniforms);<br>
@@ -711,9 +711,9 @@ nir_shader_clone(void *mem_ctx, const nir_shader *s)<br>
ns->reg_alloc = s->reg_alloc;<br>
<br>
ns->info = s->info;<br>
- ns-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(ns, ns-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
- if (ns->info.label)<br>
- ns->info.label = ralloc_strdup(ns, ns->info.label);<br>
+ ns->info->name = ralloc_strdup(ns, ns->info->name);<br>
+ if (ns->info->label)<br>
+ ns->info->label = ralloc_strdup(ns, ns->info->label);<br>
<br>
ns->num_inputs = s->num_inputs;<br>
ns->num_uniforms = s->num_uniforms;<br>
diff --git a/src/compiler/nir/nir_gather_<wbr>info.c b/src/compiler/nir/nir_gather_<wbr>info.c<br>
index 2d6efd5..380140a 100644<br>
--- a/src/compiler/nir/nir_gather_<wbr>info.c<br>
+++ b/src/compiler/nir/nir_gather_<wbr>info.c<br>
@@ -30,7 +30,7 @@ gather_intrinsic_info(nir_<wbr>intrinsic_instr *instr, nir_shader *shader)<br>
case nir_intrinsic_discard:<br>
case nir_intrinsic_discard_if:<br>
assert(shader->stage == MESA_SHADER_FRAGMENT);<br>
- shader->info.fs.uses_discard = true;<br>
+ shader->info->fs.uses_discard = true;<br>
break;<br>
<br>
case nir_intrinsic_load_front_face:<br>
@@ -47,14 +47,14 @@ gather_intrinsic_info(nir_<wbr>intrinsic_instr *instr, nir_shader *shader)<br>
case nir_intrinsic_load_local_<wbr>invocation_index:<br>
case nir_intrinsic_load_work_group_<wbr>id:<br>
case nir_intrinsic_load_num_work_<wbr>groups:<br>
- shader->info.system_values_<wbr>read |=<br>
+ shader->info->system_values_<wbr>read |=<br>
(1 << nir_system_value_from_<wbr>intrinsic(instr->intrinsic));<br>
break;<br>
<br>
case nir_intrinsic_end_primitive:<br>
case nir_intrinsic_end_primitive_<wbr>with_counter:<br>
assert(shader->stage == MESA_SHADER_GEOMETRY);<br>
- shader->info.gs.uses_end_<wbr>primitive = 1;<br>
+ shader->info->gs.uses_end_<wbr>primitive = 1;<br>
break;<br>
<br>
default:<br>
@@ -66,7 +66,7 @@ static void<br>
gather_tex_info(nir_tex_instr *instr, nir_shader *shader)<br>
{<br>
if (instr->op == nir_texop_tg4)<br>
- shader->info.uses_texture_<wbr>gather = true;<br>
+ shader->info->uses_texture_<wbr>gather = true;<br>
}<br>
<br>
static void<br>
@@ -127,26 +127,26 @@ nir_shader_gather_info(nir_<wbr>shader *shader, nir_function_impl *entrypoint)<br>
shader->stage == MESA_SHADER_COMPUTE);<br>
<br>
bool uses_sample_qualifier = false;<br>
- shader->info.inputs_read = 0;<br>
+ shader->info->inputs_read = 0;<br>
foreach_list_typed(nir_<wbr>variable, var, node, &shader->inputs) {<br>
- shader->info.inputs_read |= get_io_mask(var, shader->stage);<br>
+ shader->info->inputs_read |= get_io_mask(var, shader->stage);<br>
uses_sample_qualifier |= var->data.sample;<br>
}<br>
<br>
if (shader->stage == MESA_SHADER_FRAGMENT)<br>
- shader->info.fs.uses_sample_<wbr>qualifier = uses_sample_qualifier;<br>
+ shader->info->fs.uses_sample_<wbr>qualifier = uses_sample_qualifier;<br>
<br>
/* TODO: Some day we may need to add stream support to NIR */<br>
- shader->info.outputs_written = 0;<br>
+ shader->info->outputs_written = 0;<br>
foreach_list_typed(nir_<wbr>variable, var, node, &shader->outputs)<br>
- shader->info.outputs_written |= get_io_mask(var, shader->stage);<br>
+ shader->info->outputs_written |= get_io_mask(var, shader->stage);<br>
<br>
- shader->info.system_values_<wbr>read = 0;<br>
+ shader->info->system_values_<wbr>read = 0;<br>
foreach_list_typed(nir_<wbr>variable, var, node, &shader->system_values)<br>
- shader->info.system_values_<wbr>read |= get_io_mask(var, shader->stage);<br>
+ shader->info->system_values_<wbr>read |= get_io_mask(var, shader->stage);<br>
<br>
- shader->info.num_textures = 0;<br>
- shader->info.num_images = 0;<br>
+ shader->info->num_textures = 0;<br>
+ shader->info->num_images = 0;<br>
nir_foreach_variable(var, &shader->uniforms) {<br>
const struct glsl_type *type = var->type;<br>
unsigned count = 1;<br>
@@ -156,9 +156,9 @@ nir_shader_gather_info(nir_<wbr>shader *shader, nir_function_impl *entrypoint)<br>
}<br>
<br>
if (glsl_type_is_image(type)) {<br>
- shader->info.num_images += count;<br>
+ shader->info->num_images += count;<br>
} else if (glsl_type_is_sampler(type)) {<br>
- shader->info.num_textures += count;<br>
+ shader->info->num_textures += count;<br>
}<br>
}<br>
<br>
diff --git a/src/compiler/nir/nir_lower_<wbr>bitmap.c b/src/compiler/nir/nir_lower_<wbr>bitmap.c<br>
index 216bedf..fefe53c 100644<br>
--- a/src/compiler/nir/nir_lower_<wbr>bitmap.c<br>
+++ b/src/compiler/nir/nir_lower_<wbr>bitmap.c<br>
@@ -108,7 +108,7 @@ lower_bitmap(nir_shader *shader, nir_builder *b,<br>
discard->src[0] = nir_src_for_ssa(cond);<br>
nir_builder_instr_insert(b, &discard->instr);<br>
<br>
- shader->info.fs.uses_discard = true;<br>
+ shader->info->fs.uses_discard = true;<br>
}<br>
<br>
static void<br>
diff --git a/src/compiler/nir/nir_lower_<wbr>clip.c b/src/compiler/nir/nir_lower_<wbr>clip.c<br>
index b74e6cc..62540ac 100644<br>
--- a/src/compiler/nir/nir_lower_<wbr>clip.c<br>
+++ b/src/compiler/nir/nir_lower_<wbr>clip.c<br>
@@ -287,7 +287,7 @@ lower_clip_fs(nir_function_<wbr>impl *impl, unsigned ucp_enables,<br>
discard->src[0] = nir_src_for_ssa(cond);<br>
nir_builder_instr_insert(&b, &discard->instr);<br>
<br>
- b.shader->info.fs.uses_discard = true;<br>
+ b.shader->info->fs.uses_<wbr>discard = true;<br>
}<br>
}<br>
}<br>
diff --git a/src/compiler/nir/nir_lower_<wbr>gs_intrinsics.c b/src/compiler/nir/nir_lower_<wbr>gs_intrinsics.c<br>
index 9bbaf83..a955e8b 100644<br>
--- a/src/compiler/nir/nir_lower_<wbr>gs_intrinsics.c<br>
+++ b/src/compiler/nir/nir_lower_<wbr>gs_intrinsics.c<br>
@@ -76,7 +76,8 @@ rewrite_emit_vertex(nir_<wbr>intrinsic_instr *intrin, struct state *state)<br>
b->cursor = nir_before_instr(&intrin-><wbr>instr);<br>
nir_ssa_def *count = nir_load_var(b, state->vertex_count_var);<br>
<br>
- nir_ssa_def *max_vertices = nir_imm_int(b, b->shader->info.gs.vertices_<wbr>out);<br>
+ nir_ssa_def *max_vertices =<br>
+ nir_imm_int(b, b->shader->info->gs.vertices_<wbr>out);<br>
<br>
/* Create: if (vertex_count < max_vertices) and insert it.<br>
*<br>
diff --git a/src/compiler/nir/nir_lower_<wbr>system_values.c b/src/compiler/nir/nir_lower_<wbr>system_values.c<br>
index 9747ac4..6ad5ad6 100644<br>
--- a/src/compiler/nir/nir_lower_<wbr>system_values.c<br>
+++ b/src/compiler/nir/nir_lower_<wbr>system_values.c<br>
@@ -58,9 +58,9 @@ convert_block(nir_block *block, nir_builder *b)<br>
*/<br>
<br>
nir_const_value local_size;<br>
- local_size.u32[0] = b->shader->info.cs.local_size[<wbr>0];<br>
- local_size.u32[1] = b->shader->info.cs.local_size[<wbr>1];<br>
- local_size.u32[2] = b->shader->info.cs.local_size[<wbr>2];<br>
+ local_size.u32[0] = b->shader->info->cs.local_<wbr>size[0];<br>
+ local_size.u32[1] = b->shader->info->cs.local_<wbr>size[1];<br>
+ local_size.u32[2] = b->shader->info->cs.local_<wbr>size[2];<br>
<br>
nir_ssa_def *group_id = nir_load_work_group_id(b);<br>
nir_ssa_def *local_id = nir_load_local_invocation_id(<wbr>b);<br>
@@ -87,8 +87,10 @@ convert_block(nir_block *block, nir_builder *b)<br>
*/<br>
nir_ssa_def *local_id = nir_load_local_invocation_id(<wbr>b);<br>
<br>
- nir_ssa_def *size_x = nir_imm_int(b, b->shader->info.cs.local_size[<wbr>0]);<br>
- nir_ssa_def *size_y = nir_imm_int(b, b->shader->info.cs.local_size[<wbr>1]);<br>
+ nir_ssa_def *size_x =<br>
+ nir_imm_int(b, b->shader->info->cs.local_<wbr>size[0]);<br>
+ nir_ssa_def *size_y =<br>
+ nir_imm_int(b, b->shader->info->cs.local_<wbr>size[1]);<br>
<br>
sysval = nir_imul(b, nir_channel(b, local_id, 2),<br>
nir_imul(b, size_x, size_y));<br>
diff --git a/src/compiler/nir/nir_print.c b/src/compiler/nir/nir_print.c<br>
index 35f6468..242bffb 100644<br>
--- a/src/compiler/nir/nir_print.c<br>
+++ b/src/compiler/nir/nir_print.c<br>
@@ -1143,11 +1143,11 @@ nir_print_shader_annotated(<wbr>nir_shader *shader, FILE *fp,<br>
<br>
fprintf(fp, "shader: %s\n", gl_shader_stage_name(shader-><wbr>stage));<br>
<br>
- if (shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>)<br>
- fprintf(fp, "name: %s\n", shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
+ if (shader->info->name)<br>
+ fprintf(fp, "name: %s\n", shader->info->name);<br>
<br>
- if (shader->info.label)<br>
- fprintf(fp, "label: %s\n", shader->info.label);<br>
+ if (shader->info->label)<br>
+ fprintf(fp, "label: %s\n", shader->info->label);<br>
<br>
fprintf(fp, "inputs: %u\n", shader->num_inputs);<br>
fprintf(fp, "outputs: %u\n", shader->num_outputs);<br>
diff --git a/src/compiler/nir/nir_sweep.c b/src/compiler/nir/nir_sweep.c<br>
index 0f1debc..faf696d 100644<br>
--- a/src/compiler/nir/nir_sweep.c<br>
+++ b/src/compiler/nir/nir_sweep.c<br>
@@ -153,9 +153,9 @@ nir_sweep(nir_shader *nir)<br>
/* First, move ownership of all the memory to a temporary context; assume dead. */<br>
ralloc_adopt(rubbish, nir);<br>
<br>
- ralloc_steal(nir, (char *)nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
- if (nir->info.label)<br>
- ralloc_steal(nir, (char *)nir->info.label);<br>
+ ralloc_steal(nir, (char *)nir->info->name);<br>
+ if (nir->info->label)<br>
+ ralloc_steal(nir, (char *)nir->info->label);<br>
<br>
/* Variables and registers are not dead. Steal them back. */<br>
steal_list(nir, nir_variable, &nir->uniforms);<br>
diff --git a/src/compiler/spirv/spirv_to_<wbr>nir.c b/src/compiler/spirv/spirv_to_<wbr>nir.c<br>
index de2cebc..9c5d331 100644<br>
--- a/src/compiler/spirv/spirv_to_<wbr>nir.c<br>
+++ b/src/compiler/spirv/spirv_to_<wbr>nir.c<br>
@@ -972,9 +972,9 @@ handle_workgroup_size_<wbr>decoration_cb(struct vtn_builder *b,<br>
<br>
assert(val->const_type == glsl_vector_type(GLSL_TYPE_<wbr>UINT, 3));<br>
<br>
- b->shader->info.cs.local_size[<wbr>0] = val->constant->value.u[0];<br>
- b->shader->info.cs.local_size[<wbr>1] = val->constant->value.u[1];<br>
- b->shader->info.cs.local_size[<wbr>2] = val->constant->value.u[2];<br>
+ b->shader->info->cs.local_<wbr>size[0] = val->constant->value.u[0];<br>
+ b->shader->info->cs.local_<wbr>size[1] = val->constant->value.u[1];<br>
+ b->shader->info->cs.local_<wbr>size[2] = val->constant->value.u[2];<br>
}<br>
<br>
static void<br>
@@ -2560,43 +2560,43 @@ vtn_handle_execution_mode(<wbr>struct vtn_builder *b, struct vtn_value *entry_point,<br>
<br>
case SpvExecutionModeEarlyFragmentT<wbr>ests:<br>
assert(b->shader->stage == MESA_SHADER_FRAGMENT);<br>
- b->shader->info.fs.early_<wbr>fragment_tests = true;<br>
+ b->shader->info->fs.early_<wbr>fragment_tests = true;<br>
break;<br>
<br>
case SpvExecutionModeInvocations:<br>
assert(b->shader->stage == MESA_SHADER_GEOMETRY);<br>
- b->shader->info.gs.invocations = MAX2(1, mode->literals[0]);<br>
+ b->shader->info->gs.<wbr>invocations = MAX2(1, mode->literals[0]);<br>
break;<br>
<br>
case SpvExecutionModeDepthReplacing<wbr>:<br>
assert(b->shader->stage == MESA_SHADER_FRAGMENT);<br>
- b->shader->info.fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_ANY;<br>
+ b->shader->info->fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_ANY;<br>
break;<br>
case SpvExecutionModeDepthGreater:<br>
assert(b->shader->stage == MESA_SHADER_FRAGMENT);<br>
- b->shader->info.fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_GREATER;<br>
+ b->shader->info->fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_GREATER;<br>
break;<br>
case SpvExecutionModeDepthLess:<br>
assert(b->shader->stage == MESA_SHADER_FRAGMENT);<br>
- b->shader->info.fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_LESS;<br>
+ b->shader->info->fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_LESS;<br>
break;<br>
case SpvExecutionModeDepthUnchanged<wbr>:<br>
assert(b->shader->stage == MESA_SHADER_FRAGMENT);<br>
- b->shader->info.fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_UNCHANGED;<br>
+ b->shader->info->fs.depth_<wbr>layout = FRAG_DEPTH_LAYOUT_UNCHANGED;<br>
break;<br>
<br>
case SpvExecutionModeLocalSize:<br>
assert(b->shader->stage == MESA_SHADER_COMPUTE);<br>
- b->shader->info.cs.local_size[<wbr>0] = mode->literals[0];<br>
- b->shader->info.cs.local_size[<wbr>1] = mode->literals[1];<br>
- b->shader->info.cs.local_size[<wbr>2] = mode->literals[2];<br>
+ b->shader->info->cs.local_<wbr>size[0] = mode->literals[0];<br>
+ b->shader->info->cs.local_<wbr>size[1] = mode->literals[1];<br>
+ b->shader->info->cs.local_<wbr>size[2] = mode->literals[2];<br>
break;<br>
case SpvExecutionModeLocalSizeHint:<br>
break; /* Nothing to do with this */<br>
<br>
case SpvExecutionModeOutputVertices<wbr>:<br>
assert(b->shader->stage == MESA_SHADER_GEOMETRY);<br>
- b->shader->info.gs.vertices_<wbr>out = mode->literals[0];<br>
+ b->shader->info->gs.vertices_<wbr>out = mode->literals[0];<br>
break;<br>
<br>
case SpvExecutionModeInputPoints:<br>
@@ -2607,7 +2607,7 @@ vtn_handle_execution_mode(<wbr>struct vtn_builder *b, struct vtn_value *entry_point,<br>
case SpvExecutionModeQuads:<br>
case SpvExecutionModeIsolines:<br>
if (b->shader->stage == MESA_SHADER_GEOMETRY) {<br>
- b->shader->info.gs.vertices_in =<br>
+ b->shader->info->gs.vertices_<wbr>in =<br>
vertices_in_from_spv_<wbr>execution_mode(mode->exec_<wbr>mode);<br>
} else {<br>
assert(!"Tesselation shaders not yet supported");<br>
@@ -2618,7 +2618,7 @@ vtn_handle_execution_mode(<wbr>struct vtn_builder *b, struct vtn_value *entry_point,<br>
case SpvExecutionModeOutputLineStri<wbr>p:<br>
case SpvExecutionModeOutputTriangle<wbr>Strip:<br>
assert(b->shader->stage == MESA_SHADER_GEOMETRY);<br>
- b->shader->info.gs.output_<wbr>primitive =<br>
+ b->shader->info->gs.output_<wbr>primitive =<br>
gl_primitive_from_spv_<wbr>execution_mode(mode->exec_<wbr>mode);<br>
break;<br>
<br>
@@ -2995,10 +2995,10 @@ spirv_to_nir(const uint32_t *words, size_t word_count,<br>
return NULL;<br>
}<br>
<br>
- b->shader = nir_shader_create(NULL, stage, options);<br>
+ b->shader = nir_shader_create(NULL, stage, options, NULL);<br>
<br>
/* Set shader info defaults */<br>
- b->shader->info.gs.invocations = 1;<br>
+ b->shader->info->gs.<wbr>invocations = 1;<br>
<br>
/* Parse execution modes */<br>
vtn_foreach_execution_mode(b, b->entry_point,<br>
diff --git a/src/compiler/spirv/vtn_<wbr>variables.c b/src/compiler/spirv/vtn_<wbr>variables.c<br>
index 634058c..c9744c4 100644<br>
--- a/src/compiler/spirv/vtn_<wbr>variables.c<br>
+++ b/src/compiler/spirv/vtn_<wbr>variables.c<br>
@@ -933,9 +933,9 @@ apply_var_decoration(struct vtn_builder *b, nir_variable *nir_var,<br>
nir_var->data.read_only = true;<br>
<br>
nir_constant *c = rzalloc(nir_var, nir_constant);<br>
- c->value.u[0] = b->shader->info.cs.local_size[<wbr>0];<br>
- c->value.u[1] = b->shader->info.cs.local_size[<wbr>1];<br>
- c->value.u[2] = b->shader->info.cs.local_size[<wbr>2];<br>
+ c->value.u[0] = b->shader->info->cs.local_<wbr>size[0];<br>
+ c->value.u[1] = b->shader->info->cs.local_<wbr>size[1];<br>
+ c->value.u[2] = b->shader->info->cs.local_<wbr>size[2];<br>
nir_var->constant_initializer = c;<br>
break;<br>
}<br>
@@ -1175,18 +1175,18 @@ vtn_handle_variables(struct vtn_builder *b, SpvOp opcode,<br>
case SpvStorageClassUniformConstant<wbr>:<br>
if (without_array->block) {<br>
var->mode = vtn_variable_mode_ubo;<br>
- b->shader->info.num_ubos++;<br>
+ b->shader->info->num_ubos++;<br>
} else if (without_array->buffer_block) {<br>
var->mode = vtn_variable_mode_ssbo;<br>
- b->shader->info.num_ssbos++;<br>
+ b->shader->info->num_ssbos++;<br>
} else if (glsl_type_is_image(without_<wbr>array->type)) {<br>
var->mode = vtn_variable_mode_image;<br>
nir_mode = nir_var_uniform;<br>
- b->shader->info.num_images++;<br>
+ b->shader->info->num_images++;<br>
} else if (glsl_type_is_sampler(without_<wbr>array->type)) {<br>
var->mode = vtn_variable_mode_sampler;<br>
nir_mode = nir_var_uniform;<br>
- b->shader->info.num_textures++<wbr>;<br>
+ b->shader->info->num_textures+<wbr>+;<br>
} else {<br>
assert(!"Invalid uniform variable type");<br>
}<br>
diff --git a/src/gallium/auxiliary/nir/<wbr>tgsi_to_nir.c b/src/gallium/auxiliary/nir/<wbr>tgsi_to_nir.c<br>
index ddb3f65..3f05acd 100644<br>
--- a/src/gallium/auxiliary/nir/<wbr>tgsi_to_nir.c<br>
+++ b/src/gallium/auxiliary/nir/<wbr>tgsi_to_nir.c<br>
@@ -371,7 +371,7 @@ ttn_emit_declaration(struct ttn_compile *c)<br>
exec_list_push_tail(&b-><wbr>shader->inputs, &var->node);<br>
<br>
for (int i = 0; i < array_size; i++)<br>
- b->shader->info.inputs_read |= 1 << (var->data.location + i);<br>
+ b->shader->info->inputs_read |= 1 << (var->data.location + i);<br>
<br>
break;<br>
case TGSI_FILE_OUTPUT: {<br>
@@ -437,7 +437,7 @@ ttn_emit_declaration(struct ttn_compile *c)<br>
exec_list_push_tail(&b-><wbr>shader->outputs, &var->node);<br>
<br>
for (int i = 0; i < array_size; i++)<br>
- b->shader->info.outputs_<wbr>written |= 1 << (var->data.location + i);<br>
+ b->shader->info->outputs_<wbr>written |= 1 << (var->data.location + i);<br>
}<br>
break;<br>
case TGSI_FILE_CONSTANT:<br>
@@ -584,7 +584,7 @@ ttn_src_for_file_and_index(<wbr>struct ttn_compile *c, unsigned file, unsigned index,<br>
<br>
src = nir_src_for_ssa(&load->dest.<wbr>ssa);<br>
<br>
- b->shader->info.system_values_<wbr>read |=<br>
+ b->shader->info->system_<wbr>values_read |=<br>
(1 << nir_system_value_from_<wbr>intrinsic(op));<br>
<br>
break;<br>
@@ -1071,7 +1071,7 @@ ttn_kill(nir_builder *b, nir_op op, nir_alu_dest dest, nir_ssa_def **src)<br>
nir_intrinsic_instr *discard =<br>
nir_intrinsic_instr_create(b-><wbr>shader, nir_intrinsic_discard);<br>
nir_builder_instr_insert(b, &discard->instr);<br>
- b->shader->info.fs.uses_<wbr>discard = true;<br>
+ b->shader->info->fs.uses_<wbr>discard = true;<br>
}<br>
<br>
static void<br>
@@ -1084,7 +1084,7 @@ ttn_kill_if(nir_builder *b, nir_op op, nir_alu_dest dest, nir_ssa_def **src)<br>
nir_intrinsic_instr_create(b-><wbr>shader, nir_intrinsic_discard_if);<br>
discard->src[0] = nir_src_for_ssa(cmp);<br>
nir_builder_instr_insert(b, &discard->instr);<br>
- b->shader->info.fs.uses_<wbr>discard = true;<br>
+ b->shader->info->fs.uses_<wbr>discard = true;<br>
}<br>
<br>
static void<br>
diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c<br>
index 08afffe..5209ee2 100644<br>
--- a/src/intel/blorp/blorp.c<br>
+++ b/src/intel/blorp/blorp.c<br>
@@ -224,7 +224,7 @@ brw_blorp_compile_nir_shader(<wbr>struct blorp_context *blorp, struct nir_shader *nir<br>
prog_data->persample_msaa_<wbr>dispatch = wm_prog_data.persample_<wbr>dispatch;<br>
prog_data->flat_inputs = wm_prog_data.flat_inputs;<br>
prog_data->num_varying_inputs = wm_prog_data.num_varying_<wbr>inputs;<br>
- prog_data->inputs_read = nir->info.inputs_read;<br>
+ prog_data->inputs_read = nir->info->inputs_read;<br>
<br>
assert(wm_prog_data.base.nr_<wbr>params == 0);<br>
<br>
diff --git a/src/intel/blorp/blorp_clear.<wbr>c b/src/intel/blorp/blorp_clear.<wbr>c<br>
index 8ecfaa3..f932789 100644<br>
--- a/src/intel/blorp/blorp_clear.<wbr>c<br>
+++ b/src/intel/blorp/blorp_clear.<wbr>c<br>
@@ -56,7 +56,7 @@ blorp_params_get_clear_kernel(<wbr>struct blorp_context *blorp,<br>
<br>
nir_builder b;<br>
nir_builder_init_simple_<wbr>shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);<br>
- b.shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(b.shader, "BLORP-clear");<br>
+ b.shader->info->name = ralloc_strdup(b.shader, "BLORP-clear");<br>
<br>
nir_variable *v_color = nir_variable_create(b.shader, nir_var_shader_in,<br>
glsl_vec4_type(), "v_color");<br>
diff --git a/src/intel/vulkan/anv_<wbr>pipeline.c b/src/intel/vulkan/anv_<wbr>pipeline.c<br>
index 4817de1..72f0643 100644<br>
--- a/src/intel/vulkan/anv_<wbr>pipeline.c<br>
+++ b/src/intel/vulkan/anv_<wbr>pipeline.c<br>
@@ -162,7 +162,7 @@ anv_shader_compile_to_nir(<wbr>struct anv_device *device,<br>
nir_validate_shader(nir);<br>
<br>
/* Vulkan uses the separate-shader linking model */<br>
- nir->info.separate_shader = true;<br>
+ nir->info->separate_shader = true;<br>
<br>
nir = brw_preprocess_nir(compiler, nir);<br>
<br>
@@ -326,8 +326,8 @@ anv_pipeline_compile(struct anv_pipeline *pipeline,<br>
if (pipeline->layout && pipeline->layout->stage[stage]<wbr>.has_dynamic_offsets)<br>
prog_data->nr_params += MAX_DYNAMIC_BUFFERS * 2;<br>
<br>
- if (nir->info.num_images > 0) {<br>
- prog_data->nr_params += nir->info.num_images * BRW_IMAGE_PARAM_SIZE;<br>
+ if (nir->info->num_images > 0) {<br>
+ prog_data->nr_params += nir->info->num_images * BRW_IMAGE_PARAM_SIZE;<br>
pipeline->needs_data_cache = true;<br>
}<br>
<br>
@@ -335,7 +335,7 @@ anv_pipeline_compile(struct anv_pipeline *pipeline,<br>
((struct brw_cs_prog_data *)prog_data)->thread_local_id_<wbr>index =<br>
prog_data->nr_params++; /* The CS Thread ID uniform */<br>
<br>
- if (nir->info.num_ssbos > 0)<br>
+ if (nir->info->num_ssbos > 0)<br>
pipeline->needs_data_cache = true;<br>
<br>
if (prog_data->nr_params > 0) {<br>
@@ -458,12 +458,12 @@ anv_pipeline_compile_vs(struct anv_pipeline *pipeline,<br>
<br>
ralloc_steal(mem_ctx, nir);<br>
<br>
- prog_data.inputs_read = nir->info.inputs_read;<br>
+ prog_data.inputs_read = nir->info->inputs_read;<br>
<br>
brw_compute_vue_map(&pipeline-<wbr>>device->info,<br>
&prog_data.base.vue_map,<br>
- nir->info.outputs_written,<br>
- nir->info.separate_shader);<br>
+ nir->info->outputs_written,<br>
+ nir->info->separate_shader);<br>
<br>
unsigned code_size;<br>
const unsigned *shader_code =<br>
@@ -548,8 +548,8 @@ anv_pipeline_compile_gs(struct anv_pipeline *pipeline,<br>
<br>
brw_compute_vue_map(&pipeline-<wbr>>device->info,<br>
&prog_data.base.vue_map,<br>
- nir->info.outputs_written,<br>
- nir->info.separate_shader);<br>
+ nir->info->outputs_written,<br>
+ nir->info->separate_shader);<br>
<br>
unsigned code_size;<br>
const unsigned *shader_code =<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_context.c b/src/mesa/drivers/dri/i965/<wbr>brw_context.c<br>
index d6204fd..68f0073 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_context.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_context.c<br>
@@ -305,7 +305,7 @@ intel_update_state(struct gl_context * ctx, GLuint new_state)<br>
/* Resolve color buffers for non-coherent framebuffer fetch. */<br>
if (!ctx->Extensions.MESA_shader_<wbr>framebuffer_fetch &&<br>
ctx->FragmentProgram._Current &&<br>
- ctx->FragmentProgram._Current-<wbr>>Base.nir->info.outputs_read) {<br>
+ ctx->FragmentProgram._Current-<wbr>>Base.nir->info->outputs_read) {<br>
const struct gl_framebuffer *fb = ctx->DrawBuffer;<br>
<br>
for (unsigned i = 0; i < fb->_NumColorDrawBuffers; i++) {<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_curbe.c b/src/mesa/drivers/dri/i965/<wbr>brw_curbe.c<br>
index 7f9594c..e88f4bb 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_curbe.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_curbe.c<br>
@@ -325,7 +325,7 @@ emit:<br>
* BRW_NEW_FRAGMENT_PROGRAM<br>
*/<br>
if (brw->gen == 4 && !brw->is_g4x &&<br>
- (brw->fragment_program->Base.<wbr>nir->info.inputs_read &<br>
+ (brw->fragment_program->Base.<wbr>nir->info->inputs_read &<br>
(1 << VARYING_SLOT_POS))) {<br>
BEGIN_BATCH(2);<br>
OUT_BATCH(_3DSTATE_GLOBAL_<wbr>DEPTH_OFFSET_CLAMP << 16 | (2 - 2));<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_draw.c b/src/mesa/drivers/dri/i965/<wbr>brw_draw.c<br>
index 68add7f..5d176ef 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_draw.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_draw.c<br>
@@ -302,7 +302,7 @@ brw_merge_inputs(struct brw_context *brw,<br>
}<br>
<br>
if (brw->gen < 8 && !brw->is_haswell) {<br>
- uint64_t mask = ctx->VertexProgram._Current-><wbr>Base.nir->info.inputs_read;<br>
+ uint64_t mask = ctx->VertexProgram._Current-><wbr>Base.nir->info->inputs_read;<br>
/* Prior to Haswell, the hardware can't natively support GL_FIXED or<br>
* 2_10_10_10_REV vertex formats. Set appropriate workaround flags.<br>
*/<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_fs.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_fs.cpp<br>
index 1c7a6e6..1a22fb4 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_fs.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_fs.cpp<br>
@@ -1459,7 +1459,7 @@ fs_visitor::calculate_urb_<wbr>setup()<br>
int urb_next = 0;<br>
/* Figure out where each of the incoming setup attributes lands. */<br>
if (devinfo->gen >= 6) {<br>
- if (_mesa_bitcount_64(nir->info.<wbr>inputs_read &<br>
+ if (_mesa_bitcount_64(nir->info-><wbr>inputs_read &<br>
BRW_FS_VARYING_INPUT_MASK) <= 16) {<br>
/* The SF/SBE pipeline stage can do arbitrary rearrangement of the<br>
* first 16 varying inputs, so we can put them wherever we want.<br>
@@ -1471,14 +1471,14 @@ fs_visitor::calculate_urb_<wbr>setup()<br>
* a different vertex (or geometry) shader.<br>
*/<br>
for (unsigned int i = 0; i < VARYING_SLOT_MAX; i++) {<br>
- if (nir->info.inputs_read & BRW_FS_VARYING_INPUT_MASK &<br>
+ if (nir->info->inputs_read & BRW_FS_VARYING_INPUT_MASK &<br>
BITFIELD64_BIT(i)) {<br>
prog_data->urb_setup[i] = urb_next++;<br>
}<br>
}<br>
} else {<br>
bool include_vue_header =<br>
- nir->info.inputs_read & (VARYING_BIT_LAYER | VARYING_BIT_VIEWPORT);<br>
+ nir->info->inputs_read & (VARYING_BIT_LAYER | VARYING_BIT_VIEWPORT);<br>
<br>
/* We have enough input varyings that the SF/SBE pipeline stage can't<br>
* arbitrarily rearrange them to suit our whim; we have to put them<br>
@@ -1488,7 +1488,7 @@ fs_visitor::calculate_urb_<wbr>setup()<br>
struct brw_vue_map prev_stage_vue_map;<br>
brw_compute_vue_map(devinfo, &prev_stage_vue_map,<br>
key->input_slots_valid,<br>
- nir->info.separate_shader);<br>
+ nir->info->separate_shader);<br>
int first_slot =<br>
include_vue_header ? 0 : 2 * BRW_SF_URB_ENTRY_READ_OFFSET;<br>
<br>
@@ -1497,7 +1497,7 @@ fs_visitor::calculate_urb_<wbr>setup()<br>
slot++) {<br>
int varying = prev_stage_vue_map.slot_to_<wbr>varying[slot];<br>
if (varying != BRW_VARYING_SLOT_PAD &&<br>
- (nir->info.inputs_read & BRW_FS_VARYING_INPUT_MASK &<br>
+ (nir->info->inputs_read & BRW_FS_VARYING_INPUT_MASK &<br>
BITFIELD64_BIT(varying))) {<br>
prog_data->urb_setup[varying] = slot - first_slot;<br>
}<br>
@@ -1530,7 +1530,7 @@ fs_visitor::calculate_urb_<wbr>setup()<br>
*<br>
* See compile_sf_prog() for more info.<br>
*/<br>
- if (nir->info.inputs_read & BITFIELD64_BIT(VARYING_SLOT_<wbr>PNTC))<br>
+ if (nir->info->inputs_read & BITFIELD64_BIT(VARYING_SLOT_<wbr>PNTC))<br>
prog_data->urb_setup[VARYING_<wbr>SLOT_PNTC] = urb_next++;<br>
}<br>
<br>
@@ -1657,7 +1657,7 @@ fs_visitor::assign_gs_urb_<wbr>setup()<br>
struct brw_vue_prog_data *vue_prog_data = brw_vue_prog_data(prog_data);<br>
<br>
first_non_payload_grf +=<br>
- 8 * vue_prog_data->urb_read_length * nir->info.gs.vertices_in;<br>
+ 8 * vue_prog_data->urb_read_length * nir->info->gs.vertices_in;<br>
<br>
foreach_block_and_inst(block, fs_inst, inst, cfg) {<br>
/* Rewrite all ATTR file references to GRFs. */<br>
@@ -5458,7 +5458,7 @@ fs_visitor::setup_fs_payload_<wbr>gen6()<br>
<br>
/* R27: interpolated depth if uses source depth */<br>
prog_data->uses_src_depth =<br>
- (nir->info.inputs_read & (1 << VARYING_SLOT_POS)) != 0;<br>
+ (nir->info->inputs_read & (1 << VARYING_SLOT_POS)) != 0;<br>
if (prog_data->uses_src_depth) {<br>
payload.source_depth_reg = payload.num_regs;<br>
payload.num_regs++;<br>
@@ -5470,7 +5470,7 @@ fs_visitor::setup_fs_payload_<wbr>gen6()<br>
<br>
/* R29: interpolated W set if GEN6_WM_USES_SOURCE_W. */<br>
prog_data->uses_src_w =<br>
- (nir->info.inputs_read & (1 << VARYING_SLOT_POS)) != 0;<br>
+ (nir->info->inputs_read & (1 << VARYING_SLOT_POS)) != 0;<br>
if (prog_data->uses_src_w) {<br>
payload.source_w_reg = payload.num_regs;<br>
payload.num_regs++;<br>
@@ -5482,7 +5482,7 @@ fs_visitor::setup_fs_payload_<wbr>gen6()<br>
<br>
/* R31: MSAA position offsets. */<br>
if (prog_data->persample_dispatch &&<br>
- (nir->info.system_values_read & SYSTEM_BIT_SAMPLE_POS)) {<br>
+ (nir->info->system_values_read & SYSTEM_BIT_SAMPLE_POS)) {<br>
/* From the Ivy Bridge PRM documentation for 3DSTATE_PS:<br>
*<br>
* "MSDISPMODE_PERSAMPLE is required in order to select<br>
@@ -5499,7 +5499,7 @@ fs_visitor::setup_fs_payload_<wbr>gen6()<br>
<br>
/* R32: MSAA input coverage mask */<br>
prog_data->uses_sample_mask =<br>
- (nir->info.system_values_read & SYSTEM_BIT_SAMPLE_MASK_IN) != 0;<br>
+ (nir->info->system_values_read & SYSTEM_BIT_SAMPLE_MASK_IN) != 0;<br>
if (prog_data->uses_sample_mask) {<br>
assert(devinfo->gen >= 7);<br>
payload.sample_mask_in_reg = payload.num_regs;<br>
@@ -5513,7 +5513,7 @@ fs_visitor::setup_fs_payload_<wbr>gen6()<br>
/* R34-: bary for 32-pixel. */<br>
/* R58-59: interp W for 32-pixel. */<br>
<br>
- if (nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH)) {<br>
+ if (nir->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH)) {<br>
source_depth_to_render_target = true;<br>
}<br>
}<br>
@@ -5550,15 +5550,15 @@ fs_visitor::setup_gs_payload()<br>
* Note that the GS reads <URB Read Length> HWords for every vertex - so we<br>
* have to multiply by VerticesIn to obtain the total storage requirement.<br>
*/<br>
- if (8 * vue_prog_data->urb_read_length * nir->info.gs.vertices_in ><br>
+ if (8 * vue_prog_data->urb_read_length * nir->info->gs.vertices_in ><br>
max_push_components || gs_prog_data->invocations > 1) {<br>
gs_prog_data->base.include_<wbr>vue_handles = true;<br>
<br>
/* R3..RN: ICP Handles for each incoming vertex (when using pull model) */<br>
- payload.num_regs += nir->info.gs.vertices_in;<br>
+ payload.num_regs += nir->info->gs.vertices_in;<br>
<br>
vue_prog_data->urb_read_length =<br>
- ROUND_DOWN_TO(max_push_<wbr>components / nir->info.gs.vertices_in, 8) / 8;<br>
+ ROUND_DOWN_TO(max_push_<wbr>components / nir->info->gs.vertices_in, 8) / 8;<br>
}<br>
}<br>
<br>
@@ -5659,7 +5659,7 @@ fs_visitor::optimize()<br>
if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER) && this_progress) { \<br>
char filename[64]; \<br>
snprintf(filename, 64, "%s%d-%s-%02d-%02d-" #pass, \<br>
- stage_abbrev, dispatch_width, nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>, iteration, pass_num); \<br>
+ stage_abbrev, dispatch_width, nir->info->name, iteration, pass_num); \<br>
\<br>
backend_shader::dump_<wbr>instructions(filename); \<br>
} \<br>
@@ -5673,7 +5673,7 @@ fs_visitor::optimize()<br>
if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER)) {<br>
char filename[64];<br>
snprintf(filename, 64, "%s%d-%s-00-00-start",<br>
- stage_abbrev, dispatch_width, nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
+ stage_abbrev, dispatch_width, nir->info->name);<br>
<br>
backend_shader::dump_<wbr>instructions(filename);<br>
}<br>
@@ -5969,15 +5969,15 @@ fs_visitor::run_tcs_single_<wbr>patch()<br>
}<br>
<br>
/* Fix the disptach mask */<br>
- if (nir->info.tcs.vertices_out % 8) {<br>
+ if (nir->info->tcs.vertices_out % 8) {<br>
bld.CMP(bld.null_reg_ud(), invocation_id,<br>
- brw_imm_ud(nir->info.tcs.<wbr>vertices_out), BRW_CONDITIONAL_L);<br>
+ brw_imm_ud(nir->info->tcs.<wbr>vertices_out), BRW_CONDITIONAL_L);<br>
bld.IF(BRW_PREDICATE_NORMAL);<br>
}<br>
<br>
emit_nir_code();<br>
<br>
- if (nir->info.tcs.vertices_out % 8) {<br>
+ if (nir->info->tcs.vertices_out % 8) {<br>
bld.emit(BRW_OPCODE_ENDIF);<br>
}<br>
<br>
@@ -6120,8 +6120,8 @@ fs_visitor::run_fs(bool allow_spilling, bool do_rep_send)<br>
emit_shader_time_begin();<br>
<br>
calculate_urb_setup();<br>
- if (nir->info.inputs_read > 0 ||<br>
- (nir->info.outputs_read > 0 && !wm_key->coherent_fb_fetch)) {<br>
+ if (nir->info->inputs_read > 0 ||<br>
+ (nir->info->outputs_read > 0 && !wm_key->coherent_fb_fetch)) {<br>
if (devinfo->gen < 6)<br>
emit_interpolation_setup_gen4(<wbr>);<br>
else<br>
@@ -6285,8 +6285,8 @@ brw_compute_flat_inputs(struct brw_wm_prog_data *prog_data,<br>
static uint8_t<br>
computed_depth_mode(const nir_shader *shader)<br>
{<br>
- if (shader->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH)) {<br>
- switch (shader->info.fs.depth_layout) {<br>
+ if (shader->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH)) {<br>
+ switch (shader->info->fs.depth_<wbr>layout) {<br>
case FRAG_DEPTH_LAYOUT_NONE:<br>
case FRAG_DEPTH_LAYOUT_ANY:<br>
return BRW_PSCDEPTH_ON;<br>
@@ -6439,22 +6439,23 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,<br>
/* key->alpha_test_func means simulating alpha testing via discards,<br>
* so the shader definitely kills pixels.<br>
*/<br>
- prog_data->uses_kill = shader->info.fs.uses_discard || key->alpha_test_func;<br>
+ prog_data->uses_kill = shader->info->fs.uses_discard ||<br>
+ key->alpha_test_func;<br>
prog_data->uses_omask = key->multisample_fbo &&<br>
- shader->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>SAMPLE_MASK);<br>
+ shader->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>SAMPLE_MASK);<br>
prog_data->computed_depth_mode = computed_depth_mode(shader);<br>
prog_data->computed_stencil =<br>
- shader->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>STENCIL);<br>
+ shader->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>STENCIL);<br>
<br>
prog_data->persample_dispatch =<br>
key->multisample_fbo &&<br>
(key->persample_interp ||<br>
- (shader->info.system_values_<wbr>read & (SYSTEM_BIT_SAMPLE_ID |<br>
- SYSTEM_BIT_SAMPLE_POS)) ||<br>
- shader->info.fs.uses_sample_<wbr>qualifier ||<br>
- shader->info.outputs_read);<br>
+ (shader->info->system_values_<wbr>read & (SYSTEM_BIT_SAMPLE_ID |<br>
+ SYSTEM_BIT_SAMPLE_POS)) ||<br>
+ shader->info->fs.uses_sample_<wbr>qualifier ||<br>
+ shader->info->outputs_read);<br>
<br>
- prog_data->early_fragment_<wbr>tests = shader->info.fs.early_<wbr>fragment_tests;<br>
+ prog_data->early_fragment_<wbr>tests = shader->info->fs.early_<wbr>fragment_tests;<br>
<br>
prog_data->barycentric_interp_<wbr>modes =<br>
brw_compute_barycentric_<wbr>interp_modes(compiler-><wbr>devinfo, shader);<br>
@@ -6537,9 +6538,9 @@ brw_compile_fs(const struct brw_compiler *compiler, void *log_data,<br>
<br>
if (unlikely(INTEL_DEBUG & DEBUG_WM)) {<br>
g.enable_debug(ralloc_<wbr>asprintf(mem_ctx, "%s fragment shader %s",<br>
- shader->info.label ? shader->info.label :<br>
- "unnamed",<br>
- shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>));<br>
+ shader->info->label ?<br>
+ shader->info->label : "unnamed",<br>
+ shader->info->name));<br>
}<br>
<br>
if (simd8_cfg) {<br>
@@ -6672,12 +6673,12 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,<br>
brw_nir_lower_intrinsics(<wbr>shader, &prog_data->base);<br>
shader = brw_postprocess_nir(shader, compiler->devinfo, true);<br>
<br>
- prog_data->local_size[0] = shader->info.cs.local_size[0];<br>
- prog_data->local_size[1] = shader->info.cs.local_size[1];<br>
- prog_data->local_size[2] = shader->info.cs.local_size[2];<br>
+ prog_data->local_size[0] = shader->info->cs.local_size[0]<wbr>;<br>
+ prog_data->local_size[1] = shader->info->cs.local_size[1]<wbr>;<br>
+ prog_data->local_size[2] = shader->info->cs.local_size[2]<wbr>;<br>
unsigned local_workgroup_size =<br>
- shader->info.cs.local_size[0] * shader->info.cs.local_size[1] *<br>
- shader->info.cs.local_size[2];<br>
+ shader->info->cs.local_size[0] * shader->info->cs.local_size[1] *<br>
+ shader->info->cs.local_size[2]<wbr>;<br>
<br>
unsigned max_cs_threads = compiler->devinfo->max_cs_<wbr>threads;<br>
unsigned simd_required = DIV_ROUND_UP(local_workgroup_<wbr>size, max_cs_threads);<br>
@@ -6767,9 +6768,9 @@ brw_compile_cs(const struct brw_compiler *compiler, void *log_data,<br>
MESA_SHADER_COMPUTE);<br>
if (INTEL_DEBUG & DEBUG_CS) {<br>
char *name = ralloc_asprintf(mem_ctx, "%s compute shader %s",<br>
- shader->info.label ? shader->info.label :<br>
+ shader->info->label ? shader->info->label :<br>
"unnamed",<br>
- shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
+ shader->info->name);<br>
g.enable_debug(name);<br>
}<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp<br>
index 4e68ffb..91a3ca7 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_fs_nir.cpp<br>
@@ -1914,7 +1914,7 @@ fs_visitor::emit_gs_vertex(<wbr>const nir_src &vertex_count_nir_src,<br>
* be recorded by transform feedback, we can simply discard all geometry<br>
* bound to these streams when transform feedback is disabled.<br>
*/<br>
- if (stream_id > 0 && !nir->info.has_transform_<wbr>feedback_varyings)<br>
+ if (stream_id > 0 && !nir->info->has_transform_<wbr>feedback_varyings)<br>
return;<br>
<br>
/* If we're outputting 32 control data bits or less, then we can wait<br>
@@ -2069,12 +2069,12 @@ fs_visitor::emit_gs_input_<wbr>load(const fs_reg &dst,<br>
<br>
/* Use first_icp_handle as the base offset. There is one register<br>
* of URB handles per vertex, so inform the register allocator that<br>
- * we might read up to nir->info.gs.vertices_in registers.<br>
+ * we might read up to nir->info->gs.vertices_in registers.<br>
*/<br>
bld.emit(SHADER_OPCODE_MOV_<wbr>INDIRECT, icp_handle,<br>
fs_reg(brw_vec8_grf(first_icp_<wbr>handle, 0)),<br>
fs_reg(icp_offset_bytes),<br>
- brw_imm_ud(nir-><a href="http://info.gs">info.gs</a>.<wbr>vertices_in * REG_SIZE));<br>
+ brw_imm_ud(nir->info->gs.<wbr>vertices_in * REG_SIZE));<br>
}<br>
} else {<br>
assert(gs_prog_data-><wbr>invocations > 1);<br>
@@ -2100,12 +2100,12 @@ fs_visitor::emit_gs_input_<wbr>load(const fs_reg &dst,<br>
<br>
/* Use first_icp_handle as the base offset. There is one DWord<br>
* of URB handles per vertex, so inform the register allocator that<br>
- * we might read up to ceil(nir->info.gs.vertices_in / 8) registers.<br>
+ * we might read up to ceil(nir->info->gs.vertices_in / 8) registers.<br>
*/<br>
bld.emit(SHADER_OPCODE_MOV_<wbr>INDIRECT, icp_handle,<br>
fs_reg(brw_vec8_grf(first_icp_<wbr>handle, 0)),<br>
fs_reg(icp_offset_bytes),<br>
- brw_imm_ud(DIV_ROUND_UP(nir-><wbr>info.gs.vertices_in, 8) *<br>
+ brw_imm_ud(DIV_ROUND_UP(nir-><wbr>info->gs.vertices_in, 8) *<br>
REG_SIZE));<br>
}<br>
}<br>
@@ -4069,7 +4069,7 @@ fs_visitor::nir_emit_<wbr>intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr<br>
*/<br>
brw_mark_surface_used(prog_<wbr>data,<br>
stage_prog_data->binding_<wbr>table.ubo_start +<br>
- nir->info.num_ubos - 1);<br>
+ nir->info->num_ubos - 1);<br>
}<br>
<br>
nir_const_value *const_offset = nir_src_as_const_value(instr-><wbr>src[1]);<br>
@@ -4136,7 +4136,7 @@ fs_visitor::nir_emit_<wbr>intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr<br>
*/<br>
brw_mark_surface_used(prog_<wbr>data,<br>
stage_prog_data->binding_<wbr>table.ssbo_start +<br>
- nir->info.num_ssbos - 1);<br>
+ nir->info->num_ssbos - 1);<br>
}<br>
<br>
fs_reg offset_reg;<br>
@@ -4176,7 +4176,7 @@ fs_visitor::nir_emit_<wbr>intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr<br>
<br>
brw_mark_surface_used(prog_<wbr>data,<br>
stage_prog_data->binding_<wbr>table.ssbo_start +<br>
- nir->info.num_ssbos - 1);<br>
+ nir->info->num_ssbos - 1);<br>
}<br>
<br>
/* Value */<br>
@@ -4389,7 +4389,7 @@ fs_visitor::nir_emit_ssbo_<wbr>atomic(const fs_builder &bld,<br>
*/<br>
brw_mark_surface_used(prog_<wbr>data,<br>
stage_prog_data->binding_<wbr>table.ssbo_start +<br>
- nir->info.num_ssbos - 1);<br>
+ nir->info->num_ssbos - 1);<br>
}<br>
<br>
fs_reg offset = get_nir_src(instr->src[1]);<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_fs_visitor.cpp<br>
index 0efd68f..14415bd 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_fs_visitor.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_fs_visitor.cpp<br>
@@ -36,8 +36,8 @@ fs_reg *<br>
fs_visitor::emit_vs_system_<wbr>value(int location)<br>
{<br>
fs_reg *reg = new(this->mem_ctx)<br>
- fs_reg(ATTR, 4 * (_mesa_bitcount_64(nir->info.<wbr>inputs_read) +<br>
- _mesa_bitcount_64(nir->info.<wbr>double_inputs_read)),<br>
+ fs_reg(ATTR, 4 * (_mesa_bitcount_64(nir->info-><wbr>inputs_read) +<br>
+ _mesa_bitcount_64(nir->info-><wbr>double_inputs_read)),<br>
BRW_REGISTER_TYPE_D);<br>
struct brw_vs_prog_data *vs_prog_data = brw_vs_prog_data(prog_data);<br>
<br>
@@ -61,7 +61,7 @@ fs_visitor::emit_vs_system_<wbr>value(int location)<br>
vs_prog_data->uses_instanceid = true;<br>
break;<br>
case SYSTEM_VALUE_DRAW_ID:<br>
- if (nir->info.system_values_read &<br>
+ if (nir->info->system_values_read &<br>
(BITFIELD64_BIT(SYSTEM_VALUE_<wbr>BASE_VERTEX) |<br>
BITFIELD64_BIT(SYSTEM_VALUE_<wbr>BASE_INSTANCE) |<br>
BITFIELD64_BIT(SYSTEM_VALUE_<wbr>VERTEX_ID_ZERO_BASE) |<br>
@@ -415,13 +415,13 @@ fs_visitor::emit_single_fb_<wbr>write(const fs_builder &bld,<br>
fs_reg src_depth, src_stencil;<br>
<br>
if (source_depth_to_render_<wbr>target) {<br>
- if (nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH))<br>
+ if (nir->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH))<br>
src_depth = frag_depth;<br>
else<br>
src_depth = fs_reg(brw_vec8_grf(payload.<wbr>source_depth_reg, 0));<br>
}<br>
<br>
- if (nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>STENCIL))<br>
+ if (nir->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>STENCIL))<br>
src_stencil = frag_stencil;<br>
<br>
const fs_reg sources[] = {<br>
@@ -460,7 +460,7 @@ fs_visitor::emit_fb_writes()<br>
limit_dispatch_width(8, "Depth writes unsupported in SIMD16+ mode.\n");<br>
}<br>
<br>
- if (nir->info.outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>STENCIL)) {<br>
+ if (nir->info->outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>STENCIL)) {<br>
/* From the 'Render Target Write message' section of the docs:<br>
* "Output Stencil is not supported with SIMD16 Render Target Write<br>
* Messages."<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_gs.c b/src/mesa/drivers/dri/i965/<wbr>brw_gs.c<br>
index 12bc706..007ca5e 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_gs.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_gs.c<br>
@@ -134,7 +134,7 @@ brw_codegen_gs_prog(struct brw_context *brw,<br>
&prog_data.base.base,<br>
compiler->scalar_stage[MESA_<wbr>SHADER_GEOMETRY]);<br>
<br>
- uint64_t outputs_written = gp->program.Base.nir->info.<wbr>outputs_written;<br>
+ uint64_t outputs_written = gp->program.Base.nir->info-><wbr>outputs_written;<br>
<br>
prog_data.base.cull_distance_<wbr>mask =<br>
((1 << gp->program.Base.<wbr>CullDistanceArraySize) - 1) <<<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_interpolation_map.c b/src/mesa/drivers/dri/i965/<wbr>brw_interpolation_map.c<br>
index 7ca3c05..097987b 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_interpolation_map.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_interpolation_map.c<br>
@@ -73,7 +73,7 @@ brw_setup_vue_interpolation(<wbr>struct brw_context *brw)<br>
if (varying == VARYING_SLOT_BFC0 || varying == VARYING_SLOT_BFC1)<br>
frag_attrib = varying - VARYING_SLOT_BFC0 + VARYING_SLOT_COL0;<br>
<br>
- if (!(fprog->Base.nir->info.<wbr>inputs_read & BITFIELD64_BIT(frag_attrib)))<br>
+ if (!(fprog->Base.nir->info-><wbr>inputs_read & BITFIELD64_BIT(frag_attrib)))<br>
continue;<br>
<br>
enum glsl_interp_mode mode = fprog->InterpQualifier[frag_<wbr>attrib];<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_nir.c b/src/mesa/drivers/dri/i965/<wbr>brw_nir.c<br>
index 7338883..3d19691 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_nir.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_nir.c<br>
@@ -220,7 +220,7 @@ brw_nir_lower_vs_inputs(nir_<wbr>shader *nir,<br>
nir_foreach_function(function, nir) {<br>
if (function->impl) {<br>
nir_foreach_block(block, function->impl) {<br>
- remap_vs_attrs(block, &nir->info);<br>
+ remap_vs_attrs(block, nir->info);<br>
}<br>
}<br>
}<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_nir_intrinsics.c b/src/mesa/drivers/dri/i965/<wbr>brw_nir_intrinsics.c<br>
index 059d14d..70063d9 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_nir_intrinsics.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_nir_intrinsics.c<br>
@@ -102,7 +102,7 @@ lower_cs_intrinsics_convert_<wbr>block(struct lower_intrinsics_state *state,<br>
* (gl_WorkGroupSize.x * gl_WorkGroupSize.y)) %<br>
* gl_WorkGroupSize.z;<br>
*/<br>
- unsigned *size = nir->info.cs.local_size;<br>
+ unsigned *size = nir->info->cs.local_size;<br>
<br>
nir_ssa_def *local_index = nir_load_local_invocation_<wbr>index(b);<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_sf.c b/src/mesa/drivers/dri/i965/<wbr>brw_sf.c<br>
index 2090737..094260e 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_sf.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_sf.c<br>
@@ -192,7 +192,7 @@ brw_upload_sf_prog(struct brw_context *brw)<br>
if (key.do_point_sprite) {<br>
key.point_sprite_coord_replace = ctx->Point.CoordReplace & 0xff;<br>
}<br>
- if (brw->fragment_program->Base.<wbr>nir->info.inputs_read &<br>
+ if (brw->fragment_program->Base.<wbr>nir->info->inputs_read &<br>
BITFIELD64_BIT(VARYING_SLOT_<wbr>PNTC)) {<br>
key.do_point_coord = 1;<br>
}<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_shader.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_shader.cpp<br>
index ed81563..cd893b1 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_shader.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_shader.cpp<br>
@@ -698,7 +698,7 @@ backend_shader::backend_<wbr>shader(const struct brw_compiler *compiler,<br>
stage_name = _mesa_shader_stage_to_string(<wbr>stage);<br>
stage_abbrev = _mesa_shader_stage_to_abbrev(<wbr>stage);<br>
is_passthrough_shader =<br>
- nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> && strcmp(nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>, "passthrough") == 0;<br>
+ nir->info->name && strcmp(nir->info->name, "passthrough") == 0;<br>
}<br>
<br>
bool<br>
@@ -1212,7 +1212,7 @@ brw_assign_common_binding_<wbr>table_offsets(gl_shader_stage stage,<br>
stage_prog_data->binding_<wbr>table.shader_time_start = 0xd0d0d0d0;<br>
}<br>
<br>
- if (prog->nir->info.uses_texture_<wbr>gather) {<br>
+ if (prog->nir->info->uses_<wbr>texture_gather) {<br>
if (devinfo->gen >= 8) {<br>
stage_prog_data->binding_<wbr>table.gather_texture_start =<br>
stage_prog_data->binding_<wbr>table.texture_start;<br>
@@ -1351,13 +1351,13 @@ brw_compile_tes(const struct brw_compiler *compiler,<br>
const bool is_scalar = compiler->scalar_stage[MESA_<wbr>SHADER_TESS_EVAL];<br>
<br>
nir_shader *nir = nir_shader_clone(mem_ctx, src_shader);<br>
- nir->info.inputs_read = key->inputs_read;<br>
- nir->info.patch_inputs_read = key->patch_inputs_read;<br>
+ nir->info->inputs_read = key->inputs_read;<br>
+ nir->info->patch_inputs_read = key->patch_inputs_read;<br>
<br>
struct brw_vue_map input_vue_map;<br>
brw_compute_tess_vue_map(&<wbr>input_vue_map,<br>
- nir->info.inputs_read & ~VARYING_BIT_PRIMITIVE_ID,<br>
- nir->info.patch_inputs_read);<br>
+ nir->info->inputs_read & ~VARYING_BIT_PRIMITIVE_ID,<br>
+ nir->info->patch_inputs_read);<br>
<br>
nir = brw_nir_apply_sampler_key(nir, devinfo, &key->tex, is_scalar);<br>
brw_nir_lower_tes_inputs(nir, &input_vue_map);<br>
@@ -1365,8 +1365,8 @@ brw_compile_tes(const struct brw_compiler *compiler,<br>
nir = brw_postprocess_nir(nir, compiler->devinfo, is_scalar);<br>
<br>
brw_compute_vue_map(devinfo, &prog_data->base.vue_map,<br>
- nir->info.outputs_written,<br>
- nir->info.separate_shader);<br>
+ nir->info->outputs_written,<br>
+ nir->info->separate_shader);<br>
<br>
unsigned output_size_bytes = prog_data->base.vue_map.num_<wbr>slots * 4 * 4;<br>
<br>
@@ -1380,7 +1380,7 @@ brw_compile_tes(const struct brw_compiler *compiler,<br>
/* URB entry sizes are stored as a multiple of 64 bytes. */<br>
prog_data->base.urb_entry_size = ALIGN(output_size_bytes, 64) / 64;<br>
<br>
- bool need_patch_header = nir->info.system_values_read &<br>
+ bool need_patch_header = nir->info->system_values_read &<br>
(BITFIELD64_BIT(SYSTEM_VALUE_<wbr>TESS_LEVEL_OUTER) |<br>
BITFIELD64_BIT(SYSTEM_VALUE_<wbr>TESS_LEVEL_INNER));<br>
<br>
@@ -1417,9 +1417,9 @@ brw_compile_tes(const struct brw_compiler *compiler,<br>
if (unlikely(INTEL_DEBUG & DEBUG_TES)) {<br>
g.enable_debug(ralloc_<wbr>asprintf(mem_ctx,<br>
"%s tessellation evaluation shader %s",<br>
- nir->info.label ? nir->info.label<br>
+ nir->info->label ? nir->info->label<br>
: "unnamed",<br>
- nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>));<br>
+ nir->info->name));<br>
}<br>
<br>
g.generate_code(v.cfg, 8);<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_tcs.c b/src/mesa/drivers/dri/i965/<wbr>brw_tcs.c<br>
index f566e77..0f03fab 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_tcs.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_tcs.c<br>
@@ -50,10 +50,10 @@ create_passthrough_tcs(const struct brw_compiler *compiler,<br>
nir_ssa_def *invoc_id =<br>
nir_load_system_value(&b, nir_intrinsic_load_invocation_<wbr>id, 0);<br>
<br>
- nir->info.inputs_read = key->outputs_written;<br>
- nir->info.outputs_written = key->outputs_written;<br>
- nir->info.tcs.vertices_out = key->input_vertices;<br>
- nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_strdup(nir, "passthrough");<br>
+ nir->info->inputs_read = key->outputs_written;<br>
+ nir->info->outputs_written = key->outputs_written;<br>
+ nir->info->tcs.vertices_out = key->input_vertices;<br>
+ nir->info->name = ralloc_strdup(nir, "passthrough");<br>
nir->num_uniforms = 8 * sizeof(uint32_t);<br>
<br>
var = nir_variable_create(nir, nir_var_uniform, glsl_vec4_type(), "hdr_0");<br>
@@ -317,9 +317,9 @@ brw_tcs_populate_key(struct brw_context *brw,<br>
struct brw_tcs_prog_key *key)<br>
{<br>
uint64_t per_vertex_slots =<br>
- brw->tess_eval_program->Base.<wbr>nir->info.inputs_read;<br>
+ brw->tess_eval_program->Base.<wbr>nir->info->inputs_read;<br>
uint32_t per_patch_slots =<br>
- brw->tess_eval_program->Base.<wbr>nir->info.patch_inputs_read;<br>
+ brw->tess_eval_program->Base.<wbr>nir->info->patch_inputs_read;<br>
<br>
struct brw_tess_ctrl_program *tcp =<br>
(struct brw_tess_ctrl_program *) brw->tess_ctrl_program;<br>
@@ -331,9 +331,9 @@ brw_tcs_populate_key(struct brw_context *brw,<br>
<br>
if (brw->tess_ctrl_program) {<br>
per_vertex_slots |=<br>
- brw->tess_ctrl_program->Base.<wbr>nir->info.outputs_written;<br>
+ brw->tess_ctrl_program->Base.<wbr>nir->info->outputs_written;<br>
per_patch_slots |=<br>
- brw->tess_ctrl_program->Base.<wbr>nir->info.patch_outputs_<wbr>written;<br>
+ brw->tess_ctrl_program->Base.<wbr>nir->info->patch_outputs_<wbr>written;<br>
}<br>
<br>
if (brw->gen < 8 || !tcp)<br>
@@ -355,7 +355,7 @@ brw_tcs_populate_key(struct brw_context *brw,<br>
/* _NEW_TEXTURE */<br>
brw_populate_sampler_prog_key_<wbr>data(&brw->ctx, prog, &key->tex);<br>
} else {<br>
- key->outputs_written = tep->program.Base.nir->info.<wbr>inputs_read;<br>
+ key->outputs_written = tep->program.Base.nir->info-><wbr>inputs_read;<br>
}<br>
}<br>
<br>
@@ -428,8 +428,8 @@ brw_tcs_precompile(struct gl_context *ctx,<br>
key.tes_primitive_mode = GL_TRIANGLES;<br>
}<br>
<br>
- key.outputs_written = prog->nir->info.outputs_<wbr>written;<br>
- key.patch_outputs_written = prog->nir->info.patch_outputs_<wbr>written;<br>
+ key.outputs_written = prog->nir->info->outputs_<wbr>written;<br>
+ key.patch_outputs_written = prog->nir->info->patch_<wbr>outputs_written;<br>
<br>
success = brw_codegen_tcs_prog(brw, shader_prog, btcp, &key);<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_tes.c b/src/mesa/drivers/dri/i965/<wbr>brw_tes.c<br>
index 5612c46..59e4d50 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_tes.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_tes.c<br>
@@ -235,9 +235,9 @@ brw_tes_populate_key(struct brw_context *brw,<br>
{<br>
<br>
uint64_t per_vertex_slots =<br>
- brw->tess_eval_program->Base.<wbr>nir->info.inputs_read;<br>
+ brw->tess_eval_program->Base.<wbr>nir->info->inputs_read;<br>
uint32_t per_patch_slots =<br>
- brw->tess_eval_program->Base.<wbr>nir->info.patch_inputs_read;<br>
+ brw->tess_eval_program->Base.<wbr>nir->info->patch_inputs_read;<br>
<br>
struct brw_tess_eval_program *tep =<br>
(struct brw_tess_eval_program *) brw->tess_eval_program;<br>
@@ -253,9 +253,9 @@ brw_tes_populate_key(struct brw_context *brw,<br>
*/<br>
if (brw->tess_ctrl_program) {<br>
per_vertex_slots |=<br>
- brw->tess_ctrl_program->Base.<wbr>nir->info.outputs_written;<br>
+ brw->tess_ctrl_program->Base.<wbr>nir->info->outputs_written;<br>
per_patch_slots |=<br>
- brw->tess_ctrl_program->Base.<wbr>nir->info.patch_outputs_<wbr>written;<br>
+ brw->tess_ctrl_program->Base.<wbr>nir->info->patch_outputs_<wbr>written;<br>
}<br>
<br>
/* Ignore gl_TessLevelInner/Outer - we treat them as system values,<br>
@@ -316,14 +316,14 @@ brw_tes_precompile(struct gl_context *ctx,<br>
memset(&key, 0, sizeof(key));<br>
<br>
key.program_string_id = btep->id;<br>
- key.inputs_read = prog->nir->info.inputs_read;<br>
- key.patch_inputs_read = prog->nir->info.patch_inputs_<wbr>read;<br>
+ key.inputs_read = prog->nir->info->inputs_read;<br>
+ key.patch_inputs_read = prog->nir->info->patch_inputs_<wbr>read;<br>
<br>
if (shader_prog->_LinkedShaders[<wbr>MESA_SHADER_TESS_CTRL]) {<br>
struct gl_program *tcp =<br>
shader_prog->_LinkedShaders[<wbr>MESA_SHADER_TESS_CTRL]-><wbr>Program;<br>
- key.inputs_read |= tcp->nir->info.outputs_<wbr>written;<br>
- key.patch_inputs_read |= tcp->nir->info.patch_outputs_<wbr>written;<br>
+ key.inputs_read |= tcp->nir->info->outputs_<wbr>written;<br>
+ key.patch_inputs_read |= tcp->nir->info->patch_outputs_<wbr>written;<br>
}<br>
<br>
/* Ignore gl_TessLevelInner/Outer - they're system values. */<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_vec4.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_vec4.cpp<br>
index 362f32b..6d487da 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_vec4.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_vec4.cpp<br>
@@ -1988,7 +1988,7 @@ vec4_visitor::run()<br>
if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER) && this_progress) { \<br>
char filename[64]; \<br>
snprintf(filename, 64, "%s-%s-%02d-%02d-" #pass, \<br>
- stage_abbrev, nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>, iteration, pass_num); \<br>
+ stage_abbrev, nir->info->name, iteration, pass_num); \<br>
\<br>
backend_shader::dump_<wbr>instructions(filename); \<br>
} \<br>
@@ -2001,7 +2001,7 @@ vec4_visitor::run()<br>
if (unlikely(INTEL_DEBUG & DEBUG_OPTIMIZER)) {<br>
char filename[64];<br>
snprintf(filename, 64, "%s-%s-00-00-start",<br>
- stage_abbrev, nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
+ stage_abbrev, nir->info->name);<br>
<br>
backend_shader::dump_<wbr>instructions(filename);<br>
}<br>
@@ -2126,7 +2126,7 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,<br>
/* gl_VertexID and gl_InstanceID are system values, but arrive via an<br>
* incoming vertex attribute. So, add an extra slot.<br>
*/<br>
- if (shader->info.system_values_<wbr>read &<br>
+ if (shader->info->system_values_<wbr>read &<br>
(BITFIELD64_BIT(SYSTEM_VALUE_<wbr>BASE_VERTEX) |<br>
BITFIELD64_BIT(SYSTEM_VALUE_<wbr>BASE_INSTANCE) |<br>
BITFIELD64_BIT(SYSTEM_VALUE_<wbr>VERTEX_ID_ZERO_BASE) |<br>
@@ -2135,13 +2135,14 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,<br>
}<br>
<br>
/* gl_DrawID has its very own vec4 */<br>
- if (shader->info.system_values_<wbr>read & BITFIELD64_BIT(SYSTEM_VALUE_<wbr>DRAW_ID)) {<br>
+ if (shader->info->system_values_<wbr>read &<br>
+ BITFIELD64_BIT(SYSTEM_VALUE_<wbr>DRAW_ID)) {<br>
nr_attributes++;<br>
}<br>
<br>
unsigned nr_attribute_slots =<br>
nr_attributes +<br>
- _mesa_bitcount_64(shader-><wbr>info.double_inputs_read);<br>
+ _mesa_bitcount_64(shader-><wbr>info->double_inputs_read);<br>
<br>
/* The 3DSTATE_VS documentation lists the lower bound on "Vertex URB Entry<br>
* Read Length" as 1 in vec4 mode, and 0 in SIMD8 mode. Empirically, in<br>
@@ -2190,8 +2191,9 @@ brw_compile_vs(const struct brw_compiler *compiler, void *log_data,<br>
if (INTEL_DEBUG & DEBUG_VS) {<br>
const char *debug_name =<br>
ralloc_asprintf(mem_ctx, "%s vertex shader %s",<br>
- shader->info.label ? shader->info.label : "unnamed",<br>
- shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
+ shader->info->label ? shader->info->label :<br>
+ "unnamed",<br>
+ shader->info->name);<br>
<br>
g.enable_debug(debug_name);<br>
}<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_generator.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_generator.cpp<br>
index 163cf9d..bb18479 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_generator.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_generator.cpp<br>
@@ -2045,8 +2045,8 @@ generate_code(struct brw_codegen *p,<br>
<br>
if (unlikely(debug_flag)) {<br>
fprintf(stderr, "Native code for %s %s shader %s:\n",<br>
- nir->info.label ? nir->info.label : "unnamed",<br>
- _mesa_shader_stage_to_string(<wbr>nir->stage), nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
+ nir->info->label ? nir->info->label : "unnamed",<br>
+ _mesa_shader_stage_to_string(<wbr>nir->stage), nir->info->name);<br>
<br>
fprintf(stderr, "%s vec4 shader: %d instructions. %d loops. %u cycles. %d:%d "<br>
"spills:fills. Compacted %d to %d bytes (%.0f%%)\n",<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_gs_visitor.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_gs_visitor.cpp<br>
index 59c7d21..10be41b 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_gs_visitor.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_gs_visitor.cpp<br>
@@ -84,7 +84,7 @@ vec4_gs_visitor::setup_<wbr>varying_inputs(int payload_reg, int *attribute_map,<br>
* so the total number of input slots that will be delivered to the GS (and<br>
* thus the stride of the input arrays) is urb_read_length * 2.<br>
*/<br>
- const unsigned num_input_vertices = nir->info.gs.vertices_in;<br>
+ const unsigned num_input_vertices = nir->info->gs.vertices_in;<br>
assert(num_input_vertices <= MAX_GS_INPUT_VERTICES);<br>
unsigned input_array_stride = prog_data->urb_read_length * 2;<br>
<br>
@@ -454,7 +454,7 @@ vec4_gs_visitor::gs_emit_<wbr>vertex(int stream_id)<br>
* be recorded by transform feedback, we can simply discard all geometry<br>
* bound to these streams when transform feedback is disabled.<br>
*/<br>
- if (stream_id > 0 && !nir->info.has_transform_<wbr>feedback_varyings)<br>
+ if (stream_id > 0 && !nir->info->has_transform_<wbr>feedback_varyings)<br>
return;<br>
<br>
/* If we're outputting 32 control data bits or less, then we can wait<br>
@@ -614,10 +614,10 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,<br>
* written by previous stages and shows up via payload magic.<br>
*/<br>
GLbitfield64 inputs_read =<br>
- shader->info.inputs_read & ~VARYING_BIT_PRIMITIVE_ID;<br>
+ shader->info->inputs_read & ~VARYING_BIT_PRIMITIVE_ID;<br>
brw_compute_vue_map(compiler-><wbr>devinfo,<br>
&c.input_vue_map, inputs_read,<br>
- shader->info.separate_shader);<br>
+ shader->info->separate_shader)<wbr>;<br>
<br>
shader = brw_nir_apply_sampler_key(<wbr>shader, compiler->devinfo, &key->tex,<br>
is_scalar);<br>
@@ -626,15 +626,15 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,<br>
shader = brw_postprocess_nir(shader, compiler->devinfo, is_scalar);<br>
<br>
prog_data->include_primitive_<wbr>id =<br>
- (shader->info.inputs_read & VARYING_BIT_PRIMITIVE_ID) != 0;<br>
+ (shader->info->inputs_read & VARYING_BIT_PRIMITIVE_ID) != 0;<br>
<br>
- prog_data->invocations = shader->info.gs.invocations;<br>
+ prog_data->invocations = shader->info->gs.invocations;<br>
<br>
if (compiler->devinfo->gen >= 8)<br>
prog_data->static_vertex_count = nir_gs_count_vertices(shader);<br>
<br>
if (compiler->devinfo->gen >= 7) {<br>
- if (shader->info.gs.output_<wbr>primitive == GL_POINTS) {<br>
+ if (shader->info->gs.output_<wbr>primitive == GL_POINTS) {<br>
/* When the output type is points, the geometry shader may output data<br>
* to multiple streams, and EndPrimitive() has no effect. So we<br>
* configure the hardware to interpret the control data as stream ID.<br>
@@ -659,20 +659,20 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,<br>
* EndPrimitive().<br>
*/<br>
c.control_data_bits_per_vertex =<br>
- shader->info.gs.uses_end_<wbr>primitive ? 1 : 0;<br>
+ shader->info->gs.uses_end_<wbr>primitive ? 1 : 0;<br>
}<br>
} else {<br>
/* There are no control data bits in gen6. */<br>
c.control_data_bits_per_vertex = 0;<br>
<br>
/* If it is using transform feedback, enable it */<br>
- if (shader->info.has_transform_<wbr>feedback_varyings)<br>
+ if (shader->info->has_transform_<wbr>feedback_varyings)<br>
prog_data->gen6_xfb_enabled = true;<br>
else<br>
prog_data->gen6_xfb_enabled = false;<br>
}<br>
c.control_data_header_size_<wbr>bits =<br>
- shader->info.gs.vertices_out * c.control_data_bits_per_<wbr>vertex;<br>
+ shader->info->gs.vertices_out * c.control_data_bits_per_<wbr>vertex;<br>
<br>
/* 1 HWORD = 32 bytes = 256 bits */<br>
prog_data->control_data_<wbr>header_size_hwords =<br>
@@ -767,7 +767,7 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,<br>
unsigned output_size_bytes;<br>
if (compiler->devinfo->gen >= 7) {<br>
output_size_bytes =<br>
- prog_data->output_vertex_size_<wbr>hwords * 32 * shader->info.gs.vertices_out;<br>
+ prog_data->output_vertex_size_<wbr>hwords * 32 * shader->info->gs.vertices_out;<br>
output_size_bytes += 32 * prog_data->control_data_<wbr>header_size_hwords;<br>
} else {<br>
output_size_bytes = prog_data->output_vertex_size_<wbr>hwords * 32;<br>
@@ -796,9 +796,9 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,<br>
prog_data->base.urb_entry_size = ALIGN(output_size_bytes, 128) / 128;<br>
<br>
prog_data->output_topology =<br>
- get_hw_prim_for_gl_prim(<wbr>shader->info.gs.output_<wbr>primitive);<br>
+ get_hw_prim_for_gl_prim(<wbr>shader->info->gs.output_<wbr>primitive);<br>
<br>
- prog_data->vertices_in = shader->info.gs.vertices_in;<br>
+ prog_data->vertices_in = shader->info->gs.vertices_in;<br>
<br>
/* GS inputs are read from the VUE 256 bits (2 vec4's) at a time, so we<br>
* need to program a URB read length of ceiling(num_slots / 2).<br>
@@ -827,9 +827,9 @@ brw_compile_gs(const struct brw_compiler *compiler, void *log_data,<br>
false, MESA_SHADER_GEOMETRY);<br>
if (unlikely(INTEL_DEBUG & DEBUG_GS)) {<br>
const char *label =<br>
- shader->info.label ? shader->info.label : "unnamed";<br>
+ shader->info->label ? shader->info->label : "unnamed";<br>
char *name = ralloc_asprintf(mem_ctx, "%s geometry shader %s",<br>
- label, shader-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>);<br>
+ label, shader->info->name);<br>
g.enable_debug(name);<br>
}<br>
g.generate_code(v.cfg, 8);<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_nir.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_nir.cpp<br>
index 7b36fca..aabf082 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_nir.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_nir.cpp<br>
@@ -473,7 +473,7 @@ vec4_visitor::nir_emit_<wbr>intrinsic(nir_intrinsic_instr *instr)<br>
<br>
brw_mark_surface_used(&prog_<wbr>data->base,<br>
prog_data->base.binding_table.<wbr>ssbo_start +<br>
- nir->info.num_ssbos - 1);<br>
+ nir->info->num_ssbos - 1);<br>
}<br>
<br>
/* Offset */<br>
@@ -615,7 +615,7 @@ vec4_visitor::nir_emit_<wbr>intrinsic(nir_intrinsic_instr *instr)<br>
*/<br>
brw_mark_surface_used(&prog_<wbr>data->base,<br>
prog_data->base.binding_table.<wbr>ssbo_start +<br>
- nir->info.num_ssbos - 1);<br>
+ nir->info->num_ssbos - 1);<br>
}<br>
<br>
src_reg offset_reg;<br>
@@ -802,7 +802,7 @@ vec4_visitor::nir_emit_<wbr>intrinsic(nir_intrinsic_instr *instr)<br>
*/<br>
brw_mark_surface_used(&prog_<wbr>data->base,<br>
prog_data->base.binding_table.<wbr>ubo_start +<br>
- nir->info.num_ubos - 1);<br>
+ nir->info->num_ubos - 1);<br>
}<br>
<br>
src_reg offset;<br>
@@ -881,7 +881,7 @@ vec4_visitor::nir_emit_ssbo_<wbr>atomic(int op, nir_intrinsic_instr *instr)<br>
*/<br>
brw_mark_surface_used(&prog_<wbr>data->base,<br>
prog_data->base.binding_table.<wbr>ssbo_start +<br>
- nir->info.num_ssbos - 1);<br>
+ nir->info->num_ssbos - 1);<br>
}<br>
<br>
src_reg offset = get_nir_src(instr->src[1], 1);<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_tcs.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_tcs.cpp<br>
index 498fb7c..124632c 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_vec4_tcs.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_vec4_tcs.cpp<br>
@@ -94,9 +94,9 @@ vec4_tcs_visitor::emit_prolog(<wbr>)<br>
* HS instance dispatched will only have its bottom half doing real<br>
* work, and so we need to disable the upper half:<br>
*/<br>
- if (nir->info.tcs.vertices_out % 2) {<br>
+ if (nir->info->tcs.vertices_out % 2) {<br>
emit(CMP(dst_null_d(), invocation_id,<br>
- brw_imm_ud(nir->info.tcs.<wbr>vertices_out), BRW_CONDITIONAL_L));<br>
+ brw_imm_ud(nir->info->tcs.<wbr>vertices_out), BRW_CONDITIONAL_L));<br>
<br>
/* Matching ENDIF is in emit_thread_end() */<br>
emit(IF(BRW_PREDICATE_NORMAL))<wbr>;<br>
@@ -110,7 +110,7 @@ vec4_tcs_visitor::emit_thread_<wbr>end()<br>
vec4_instruction *inst;<br>
current_annotation = "thread end";<br>
<br>
- if (nir->info.tcs.vertices_out % 2) {<br>
+ if (nir->info->tcs.vertices_out % 2) {<br>
emit(BRW_OPCODE_ENDIF);<br>
}<br>
<br>
@@ -456,17 +456,17 @@ brw_compile_tcs(const struct brw_compiler *compiler,<br>
const bool is_scalar = compiler->scalar_stage[MESA_<wbr>SHADER_TESS_CTRL];<br>
<br>
nir_shader *nir = nir_shader_clone(mem_ctx, src_shader);<br>
- nir->info.outputs_written = key->outputs_written;<br>
- nir->info.patch_outputs_<wbr>written = key->patch_outputs_written;<br>
+ nir->info->outputs_written = key->outputs_written;<br>
+ nir->info->patch_outputs_<wbr>written = key->patch_outputs_written;<br>
<br>
struct brw_vue_map input_vue_map;<br>
brw_compute_vue_map(devinfo, &input_vue_map,<br>
- nir->info.inputs_read & ~VARYING_BIT_PRIMITIVE_ID,<br>
+ nir->info->inputs_read & ~VARYING_BIT_PRIMITIVE_ID,<br>
true);<br>
<br>
brw_compute_tess_vue_map(&vue_<wbr>prog_data->vue_map,<br>
- nir->info.outputs_written,<br>
- nir->info.patch_outputs_<wbr>written);<br>
+ nir->info->outputs_written,<br>
+ nir->info->patch_outputs_<wbr>written);<br>
<br>
nir = brw_nir_apply_sampler_key(nir, devinfo, &key->tex, is_scalar);<br>
brw_nir_lower_vue_inputs(nir, is_scalar, &input_vue_map);<br>
@@ -477,9 +477,9 @@ brw_compile_tcs(const struct brw_compiler *compiler,<br>
nir = brw_postprocess_nir(nir, compiler->devinfo, is_scalar);<br>
<br>
if (is_scalar)<br>
- prog_data->instances = DIV_ROUND_UP(nir->info.tcs.<wbr>vertices_out, 8);<br>
+ prog_data->instances = DIV_ROUND_UP(nir->info->tcs.<wbr>vertices_out, 8);<br>
else<br>
- prog_data->instances = DIV_ROUND_UP(nir->info.tcs.<wbr>vertices_out, 2);<br>
+ prog_data->instances = DIV_ROUND_UP(nir->info->tcs.<wbr>vertices_out, 2);<br>
<br>
/* Compute URB entry size. The maximum allowed URB entry size is 32k.<br>
* That divides up as follows:<br>
@@ -498,7 +498,7 @@ brw_compile_tcs(const struct brw_compiler *compiler,<br>
unsigned output_size_bytes = 0;<br>
/* Note that the patch header is counted in num_per_patch_slots. */<br>
output_size_bytes += num_per_patch_slots * 16;<br>
- output_size_bytes += nir->info.tcs.vertices_out * num_per_vertex_slots * 16;<br>
+ output_size_bytes += nir->info->tcs.vertices_out * num_per_vertex_slots * 16;<br>
<br>
assert(output_size_bytes >= 1);<br>
if (output_size_bytes > GEN7_MAX_HS_URB_ENTRY_SIZE_<wbr>BYTES)<br>
@@ -539,9 +539,9 @@ brw_compile_tcs(const struct brw_compiler *compiler,<br>
if (unlikely(INTEL_DEBUG & DEBUG_TCS)) {<br>
g.enable_debug(ralloc_<wbr>asprintf(mem_ctx,<br>
"%s tessellation control shader %s",<br>
- nir->info.label ? nir->info.label<br>
+ nir->info->label ? nir->info->label<br>
: "unnamed",<br>
- nir-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a>));<br>
+ nir->info->name));<br>
}<br>
<br>
g.generate_code(v.cfg, 8);<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_vs.c b/src/mesa/drivers/dri/i965/<wbr>brw_vs.c<br>
index 25484dd..f24a2ee 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_vs.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_vs.c<br>
@@ -151,8 +151,8 @@ brw_codegen_vs_prog(struct brw_context *brw,<br>
<br>
uint64_t outputs_written =<br>
brw_vs_outputs_written(brw, key,<br>
- vp->program.Base.nir->info.<wbr>outputs_written);<br>
- prog_data.inputs_read = vp->program.Base.nir->info.<wbr>inputs_read;<br>
+ vp->program.Base.nir->info-><wbr>outputs_written);<br>
+ prog_data.inputs_read = vp->program.Base.nir->info-><wbr>inputs_read;<br>
<br>
if (key->copy_edgeflag) {<br>
prog_data.inputs_read |= VERT_BIT_EDGEFLAG;<br>
@@ -340,7 +340,7 @@ brw_vs_populate_key(struct brw_context *brw,<br>
}<br>
}<br>
<br>
- if (prog->nir->info.outputs_<wbr>written &<br>
+ if (prog->nir->info->outputs_<wbr>written &<br>
(VARYING_BIT_COL0 | VARYING_BIT_COL1 | VARYING_BIT_BFC0 |<br>
VARYING_BIT_BFC1)) {<br>
/* _NEW_LIGHT | _NEW_BUFFERS */<br>
@@ -401,7 +401,7 @@ brw_vs_precompile(struct gl_context *ctx,<br>
brw_setup_tex_for_precompile(<wbr>brw, &key.tex, prog);<br>
key.program_string_id = bvp->id;<br>
key.clamp_vertex_color =<br>
- (prog->nir->info.outputs_<wbr>written &<br>
+ (prog->nir->info->outputs_<wbr>written &<br>
(VARYING_BIT_COL0 | VARYING_BIT_COL1 | VARYING_BIT_BFC0 |<br>
VARYING_BIT_BFC1));<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_wm.c b/src/mesa/drivers/dri/i965/<wbr>brw_wm.c<br>
index f782da1..e65f77a 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_wm.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_wm.c<br>
@@ -61,7 +61,7 @@ assign_fs_binding_table_<wbr>offsets(const struct gen_device_info *devinfo,<br>
shader_prog, prog, &prog_data->base,<br>
next_binding_table_offset);<br>
<br>
- if (prog->nir->info.outputs_read && !key->coherent_fb_fetch) {<br>
+ if (prog->nir->info->outputs_read && !key->coherent_fb_fetch) {<br>
prog_data->binding_table.<wbr>render_target_read_start =<br>
next_binding_table_offset;<br>
next_binding_table_offset += key->nr_color_regions;<br>
@@ -357,7 +357,7 @@ brw_populate_sampler_prog_key_<wbr>data(struct gl_context *ctx,<br>
* a shader w/a on IVB; fixable with just SCS on HSW.<br>
*/<br>
if (brw->gen == 7 && !brw->is_haswell &&<br>
- prog->nir->info.uses_texture_<wbr>gather) {<br>
+ prog->nir->info->uses_texture_<wbr>gather) {<br>
if (img->InternalFormat == GL_RG32F)<br>
key->gather_channel_quirk_mask |= 1 << s;<br>
}<br>
@@ -365,7 +365,7 @@ brw_populate_sampler_prog_key_<wbr>data(struct gl_context *ctx,<br>
/* Gen6's gather4 is broken for UINT/SINT; we treat them as<br>
* UNORM/FLOAT instead and fix it in the shader.<br>
*/<br>
- if (brw->gen == 6 && prog->nir->info.uses_texture_<wbr>gather) {<br>
+ if (brw->gen == 6 && prog->nir->info->uses_texture_<wbr>gather) {<br>
key->gen6_gather_wa[s] = gen6_gather_workaround(img-><wbr>InternalFormat);<br>
}<br>
<br>
@@ -448,12 +448,12 @@ brw_wm_populate_key(struct brw_context *brw, struct brw_wm_prog_key *key)<br>
*/<br>
if (brw->gen < 6) {<br>
/* _NEW_COLOR */<br>
- if (fp->program.Base.nir->info.<wbr>fs.uses_discard ||<br>
+ if (fp->program.Base.nir->info-><wbr>fs.uses_discard ||<br>
ctx->Color.AlphaEnabled) {<br>
lookup |= IZ_PS_KILL_ALPHATEST_BIT;<br>
}<br>
<br>
- if (fp->program.Base.nir->info.<wbr>outputs_written &<br>
+ if (fp->program.Base.nir->info-><wbr>outputs_written &<br>
BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH)) {<br>
lookup |= IZ_PS_COMPUTES_DEPTH_BIT;<br>
}<br>
@@ -544,7 +544,7 @@ brw_wm_populate_key(struct brw_context *brw, struct brw_wm_prog_key *key)<br>
<br>
/* BRW_NEW_VUE_MAP_GEOM_OUT */<br>
if (brw->gen < 6 ||<br>
- _mesa_bitcount_64(fp->program.<wbr>Base.nir->info.inputs_read &<br>
+ _mesa_bitcount_64(fp->program.<wbr>Base.nir->info->inputs_read &<br>
BRW_FS_VARYING_INPUT_MASK) > 16) {<br>
key->input_slots_valid = brw->vue_map_geom_out.slots_<wbr>valid;<br>
}<br>
@@ -606,10 +606,10 @@ brw_fs_precompile(struct gl_context *ctx,<br>
<br>
memset(&key, 0, sizeof(key));<br>
<br>
- uint64_t outputs_written = fp->Base.nir->info.outputs_<wbr>written;<br>
+ uint64_t outputs_written = fp->Base.nir->info->outputs_<wbr>written;<br>
<br>
if (brw->gen < 6) {<br>
- if (fp->Base.nir->info.fs.uses_<wbr>discard)<br>
+ if (fp->Base.nir->info->fs.uses_<wbr>discard)<br>
key.iz_lookup |= IZ_PS_KILL_ALPHATEST_BIT;<br>
<br>
if (outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH))<br>
@@ -620,10 +620,10 @@ brw_fs_precompile(struct gl_context *ctx,<br>
key.iz_lookup |= IZ_DEPTH_WRITE_ENABLE_BIT;<br>
}<br>
<br>
- if (brw->gen < 6 || _mesa_bitcount_64(fp->Base.<wbr>nir->info.inputs_read &<br>
+ if (brw->gen < 6 || _mesa_bitcount_64(fp->Base.<wbr>nir->info->inputs_read &<br>
BRW_FS_VARYING_INPUT_MASK) > 16) {<br>
key.input_slots_valid =<br>
- fp->Base.nir->info.inputs_read | VARYING_BIT_POS;<br>
+ fp->Base.nir->info->inputs_<wbr>read | VARYING_BIT_POS;<br>
}<br>
<br>
brw_setup_tex_for_precompile(<wbr>brw, &key.tex, &fp->Base);<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_wm_iz.cpp b/src/mesa/drivers/dri/i965/<wbr>brw_wm_iz.cpp<br>
index 8f4c1cf..bbccf3a 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_wm_iz.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_wm_iz.cpp<br>
@@ -143,7 +143,7 @@ void fs_visitor::setup_fs_payload_<wbr>gen4()<br>
}<br>
<br>
prog_data->uses_src_depth =<br>
- (nir->info.inputs_read & (1 << VARYING_SLOT_POS)) != 0;<br>
+ (nir->info->inputs_read & (1 << VARYING_SLOT_POS)) != 0;<br>
if (wm_iz_table[lookup].sd_<wbr>present || prog_data->uses_src_depth ||<br>
kill_stats_promoted_<wbr>workaround) {<br>
payload.source_depth_reg = reg;<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_wm_state.c b/src/mesa/drivers/dri/i965/<wbr>brw_wm_state.c<br>
index 5008c91..ad5e233 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_wm_state.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_wm_state.c<br>
@@ -54,7 +54,7 @@ brw_color_buffer_write_<wbr>enabled(struct brw_context *brw)<br>
/* _NEW_BUFFERS */<br>
for (i = 0; i < ctx->DrawBuffer->_<wbr>NumColorDrawBuffers; i++) {<br>
struct gl_renderbuffer *rb = ctx->DrawBuffer->_<wbr>ColorDrawBuffers[i];<br>
- uint64_t outputs_written = fp->Base.nir->info.outputs_<wbr>written;<br>
+ uint64_t outputs_written = fp->Base.nir->info->outputs_<wbr>written;<br>
<br>
/* _NEW_COLOR */<br>
if (rb && (outputs_written & BITFIELD64_BIT(FRAG_RESULT_<wbr>COLOR) ||<br>
@@ -168,7 +168,7 @@ brw_upload_wm_unit(struct brw_context *brw)<br>
<br>
/* BRW_NEW_FRAGMENT_PROGRAM */<br>
wm->wm5.program_uses_depth = prog_data->uses_src_depth;<br>
- wm->wm5.program_computes_depth = (fp->Base.nir->info.outputs_<wbr>written &<br>
+ wm->wm5.program_computes_depth = (fp->Base.nir->info->outputs_<wbr>written &<br>
BITFIELD64_BIT(FRAG_RESULT_<wbr>DEPTH)) != 0;<br>
/* _NEW_BUFFERS<br>
* Override for NULL depthbuffer case, required by the Pixel Shader Computed<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/<wbr>brw_wm_surface_state.c<br>
index b774294..d2cbf50 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>brw_wm_surface_state.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>brw_wm_surface_state.c<br>
@@ -1147,7 +1147,7 @@ update_renderbuffer_read_<wbr>surfaces(struct brw_context *brw)<br>
/* BRW_NEW_FRAGMENT_PROGRAM */<br>
if (!ctx->Extensions.MESA_shader_<wbr>framebuffer_fetch &&<br>
brw->fragment_program &&<br>
- brw->fragment_program->Base.<wbr>nir->info.outputs_read) {<br>
+ brw->fragment_program->Base.<wbr>nir->info->outputs_read) {<br>
/* _NEW_BUFFERS */<br>
const struct gl_framebuffer *fb = ctx->DrawBuffer;<br>
<br>
@@ -1292,15 +1292,15 @@ brw_update_texture_surfaces(<wbr>struct brw_context *brw)<br>
* allows the surface format to be overriden for only the<br>
* gather4 messages. */<br>
if (brw->gen < 8) {<br>
- if (vs && vs->nir->info.uses_texture_<wbr>gather)<br>
+ if (vs && vs->nir->info->uses_texture_<wbr>gather)<br>
update_stage_texture_surfaces(<wbr>brw, vs, &brw->vs.base, true, 0);<br>
- if (tcs && tcs->nir->info.uses_texture_<wbr>gather)<br>
+ if (tcs && tcs->nir->info->uses_texture_<wbr>gather)<br>
update_stage_texture_surfaces(<wbr>brw, tcs, &brw->tcs.base, true, 0);<br>
- if (tes && tes->nir->info.uses_texture_<wbr>gather)<br>
+ if (tes && tes->nir->info->uses_texture_<wbr>gather)<br>
update_stage_texture_surfaces(<wbr>brw, tes, &brw->tes.base, true, 0);<br>
- if (gs && gs->nir->info.uses_texture_<wbr>gather)<br>
+ if (gs && gs->nir->info->uses_texture_<wbr>gather)<br>
update_stage_texture_surfaces(<wbr>brw, gs, &brw->gs.base, true, 0);<br>
- if (fs && fs->nir->info.uses_texture_<wbr>gather)<br>
+ if (fs && fs->nir->info->uses_texture_<wbr>gather)<br>
update_stage_texture_surfaces(<wbr>brw, fs, &brw->wm.base, true, 0);<br>
}<br>
<br>
@@ -1345,7 +1345,7 @@ brw_update_cs_texture_<wbr>surfaces(struct brw_context *brw)<br>
* gather4 messages.<br>
*/<br>
if (brw->gen < 8) {<br>
- if (cs && cs->nir->info.uses_texture_<wbr>gather)<br>
+ if (cs && cs->nir->info->uses_texture_<wbr>gather)<br>
update_stage_texture_surfaces(<wbr>brw, cs, &brw->cs.base, true, 0);<br>
}<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>gen6_gs_visitor.cpp b/src/mesa/drivers/dri/i965/<wbr>gen6_gs_visitor.cpp<br>
index 08f9bb3..329a111 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>gen6_gs_visitor.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>gen6_gs_visitor.cpp<br>
@@ -64,7 +64,7 @@ gen6_gs_visitor::emit_prolog()<br>
this->vertex_output = src_reg(this,<br>
glsl_type::uint_type,<br>
(prog_data->vue_map.num_slots + 1) *<br>
- nir->info.gs.vertices_out);<br>
+ nir->info->gs.vertices_out);<br>
this->vertex_output_offset = src_reg(this, glsl_type::uint_type);<br>
emit(MOV(dst_reg(this->vertex_<wbr>output_offset), brw_imm_ud(0u)));<br>
<br>
@@ -178,7 +178,7 @@ gen6_gs_visitor::gs_emit_<wbr>vertex(int stream_id)<br>
dst_reg dst(this->vertex_output);<br>
dst.reladdr = ralloc(mem_ctx, src_reg);<br>
memcpy(dst.reladdr, &this->vertex_output_offset, sizeof(src_reg));<br>
- if (nir->info.gs.output_primitive == GL_POINTS) {<br>
+ if (nir->info->gs.output_<wbr>primitive == GL_POINTS) {<br>
/* If we are outputting points, then every vertex has PrimStart and<br>
* PrimEnd set.<br>
*/<br>
@@ -207,7 +207,7 @@ gen6_gs_visitor::gs_end_<wbr>primitive()<br>
/* Calling EndPrimitive() is optional for point output. In this case we set<br>
* the PrimEnd flag when we process EmitVertex().<br>
*/<br>
- if (nir->info.gs.output_primitive == GL_POINTS)<br>
+ if (nir->info->gs.output_<wbr>primitive == GL_POINTS)<br>
return;<br>
<br>
/* Otherwise we know that the last vertex we have processed was the last<br>
@@ -219,7 +219,7 @@ gen6_gs_visitor::gs_end_<wbr>primitive()<br>
* comparison below (hence the num_output_vertices + 1 in the comparison<br>
* below).<br>
*/<br>
- unsigned num_output_vertices = nir->info.gs.vertices_out;<br>
+ unsigned num_output_vertices = nir->info->gs.vertices_out;<br>
emit(CMP(dst_null_ud(), this->vertex_count,<br>
brw_imm_ud(num_output_vertices + 1), BRW_CONDITIONAL_L));<br>
vec4_instruction *inst = emit(CMP(dst_null_ud(),<br>
@@ -323,7 +323,7 @@ gen6_gs_visitor::emit_thread_<wbr>end()<br>
* first_vertex is not zero. This is only relevant for outputs other than<br>
* points because in the point case we set PrimEnd on all vertices.<br>
*/<br>
- if (nir->info.gs.output_primitive != GL_POINTS) {<br>
+ if (nir->info->gs.output_<wbr>primitive != GL_POINTS) {<br>
emit(CMP(dst_null_ud(), this->first_vertex, brw_imm_ud(0u), BRW_CONDITIONAL_Z));<br>
emit(IF(BRW_PREDICATE_NORMAL))<wbr>;<br>
gs_end_primitive();<br>
@@ -625,7 +625,7 @@ gen6_gs_visitor::xfb_write()<br>
emit(BRW_OPCODE_ENDIF);<br>
<br>
/* Write transform feedback data for all processed vertices. */<br>
- for (int i = 0; i < (int)nir->info.gs.vertices_<wbr>out; i++) {<br>
+ for (int i = 0; i < (int)nir->info->gs.vertices_<wbr>out; i++) {<br>
emit(MOV(dst_reg(sol_temp), brw_imm_d(i)));<br>
emit(CMP(dst_null_d(), sol_temp, this->vertex_count,<br>
BRW_CONDITIONAL_L));<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>gen6_sf_state.c b/src/mesa/drivers/dri/i965/<wbr>gen6_sf_state.c<br>
index 0149308..3824e6e 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>gen6_sf_state.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>gen6_sf_state.c<br>
@@ -178,7 +178,7 @@ calculate_attr_overrides(const struct brw_context *brw,<br>
*/<br>
<br>
bool fs_needs_vue_header =<br>
- brw->fragment_program->Base.<wbr>nir->info.inputs_read &<br>
+ brw->fragment_program->Base.<wbr>nir->info->inputs_read &<br>
(VARYING_BIT_LAYER | VARYING_BIT_VIEWPORT);<br>
<br>
*urb_entry_read_offset = fs_needs_vue_header ? 0 : 1;<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>gen8_sf_state.c b/src/mesa/drivers/dri/i965/<wbr>gen8_sf_state.c<br>
index 4c13f45..528d835 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>gen8_sf_state.c<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>gen8_sf_state.c<br>
@@ -95,7 +95,7 @@ upload_sbe(struct brw_context *brw)<br>
/* prepare the active component dwords */<br>
int input_index = 0;<br>
for (int attr = 0; attr < VARYING_SLOT_MAX; attr++) {<br>
- if (!(brw->fragment_program-><wbr>Base.nir->info.inputs_read &<br>
+ if (!(brw->fragment_program-><wbr>Base.nir->info->inputs_read &<br>
BITFIELD64_BIT(attr))) {<br>
continue;<br>
}<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>test_fs_cmod_propagation.cpp b/src/mesa/drivers/dri/i965/<wbr>test_fs_cmod_propagation.cpp<br>
index f71c6ee..a97e374 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>test_fs_cmod_propagation.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>test_fs_cmod_propagation.cpp<br>
@@ -60,7 +60,8 @@ void cmod_propagation_test::SetUp()<br>
compiler->devinfo = devinfo;<br>
<br>
prog_data = ralloc(NULL, struct brw_wm_prog_data);<br>
- nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_FRAGMENT, NULL);<br>
+ nir_shader *shader =<br>
+ nir_shader_create(NULL, MESA_SHADER_FRAGMENT, NULL, NULL);<br>
<br>
v = new cmod_propagation_fs_visitor(<wbr>compiler, prog_data, shader);<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>test_fs_saturate_propagation.<wbr>cpp b/src/mesa/drivers/dri/i965/<wbr>test_fs_saturate_propagation.<wbr>cpp<br>
index 680fe72..db47214 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>test_fs_saturate_propagation.<wbr>cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>test_fs_saturate_propagation.<wbr>cpp<br>
@@ -60,7 +60,8 @@ void saturate_propagation_test::<wbr>SetUp()<br>
compiler->devinfo = devinfo;<br>
<br>
prog_data = ralloc(NULL, struct brw_wm_prog_data);<br>
- nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_FRAGMENT, NULL);<br>
+ nir_shader *shader =<br>
+ nir_shader_create(NULL, MESA_SHADER_FRAGMENT, NULL, NULL);<br>
<br>
v = new saturate_propagation_fs_<wbr>visitor(compiler, prog_data, shader);<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>test_vec4_cmod_propagation.cpp b/src/mesa/drivers/dri/i965/<wbr>test_vec4_cmod_propagation.cpp<br>
index 1323b65..058158e 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>test_vec4_cmod_propagation.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>test_vec4_cmod_propagation.cpp<br>
@@ -102,7 +102,8 @@ void cmod_propagation_test::SetUp()<br>
prog_data = (struct brw_vue_prog_data *)calloc(1, sizeof(*prog_data));<br>
compiler->devinfo = devinfo;<br>
<br>
- nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL);<br>
+ nir_shader *shader =<br>
+ nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL, NULL);<br>
<br>
v = new cmod_propagation_vec4_visitor(<wbr>compiler, shader, prog_data);<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>test_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/<wbr>test_vec4_copy_propagation.cpp<br>
index 4641a7f..b0eaf5c 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>test_vec4_copy_propagation.cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>test_vec4_copy_propagation.cpp<br>
@@ -95,7 +95,8 @@ void copy_propagation_test::SetUp()<br>
prog_data = (struct brw_vue_prog_data *)calloc(1, sizeof(*prog_data));<br>
compiler->devinfo = devinfo;<br>
<br>
- nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL);<br>
+ nir_shader *shader =<br>
+ nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL, NULL);<br>
<br>
v = new copy_propagation_vec4_visitor(<wbr>compiler, shader, prog_data);<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/<wbr>test_vec4_register_coalesce.<wbr>cpp b/src/mesa/drivers/dri/i965/<wbr>test_vec4_register_coalesce.<wbr>cpp<br>
index 357ce5c..81d1735 100644<br>
--- a/src/mesa/drivers/dri/i965/<wbr>test_vec4_register_coalesce.<wbr>cpp<br>
+++ b/src/mesa/drivers/dri/i965/<wbr>test_vec4_register_coalesce.<wbr>cpp<br>
@@ -98,7 +98,8 @@ void register_coalesce_test::SetUp(<wbr>)<br>
prog_data = (struct brw_vue_prog_data *)calloc(1, sizeof(*prog_data));<br>
compiler->devinfo = devinfo;<br>
<br>
- nir_shader *shader = nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL);<br>
+ nir_shader *shader =<br>
+ nir_shader_create(NULL, MESA_SHADER_VERTEX, NULL, NULL);<br>
<br>
v = new register_coalesce_vec4_<wbr>visitor(compiler, shader, prog_data);<br>
<br>
diff --git a/src/mesa/program/prog_to_<wbr>nir.c b/src/mesa/program/prog_to_<wbr>nir.c<br>
index 8a4437a..a65d4bf 100644<br>
--- a/src/mesa/program/prog_to_<wbr>nir.c<br>
+++ b/src/mesa/program/prog_to_<wbr>nir.c<br>
@@ -1044,23 +1044,23 @@ prog_to_nir(const struct gl_program *prog,<br>
<br>
ptn_add_output_stores(c);<br>
<br>
- s-><a href="http://info.name" rel="noreferrer" target="_blank">info.name</a> = ralloc_asprintf(s, "ARB%d", prog->Id);<br>
- s->info.num_textures = util_last_bit(prog-><wbr>SamplersUsed);<br>
- s->info.num_ubos = 0;<br>
- s->info.num_abos = 0;<br>
- s->info.num_ssbos = 0;<br>
- s->info.num_images = 0;<br>
- s->info.inputs_read = prog->InputsRead;<br>
- s->info.outputs_written = prog->OutputsWritten;<br>
- s->info.system_values_read = prog->SystemValuesRead;<br>
- s->info.uses_texture_gather = false;<br>
- s->info.uses_clip_distance_out = false;<br>
- s->info.separate_shader = false;<br>
+ s->info->name = ralloc_asprintf(s, "ARB%d", prog->Id);<br>
+ s->info->num_textures = util_last_bit(prog-><wbr>SamplersUsed);<br>
+ s->info->num_ubos = 0;<br>
+ s->info->num_abos = 0;<br>
+ s->info->num_ssbos = 0;<br>
+ s->info->num_images = 0;<br>
+ s->info->inputs_read = prog->InputsRead;<br>
+ s->info->outputs_written = prog->OutputsWritten;<br>
+ s->info->system_values_read = prog->SystemValuesRead;<br>
+ s->info->uses_texture_gather = false;<br>
+ s->info->uses_clip_distance_<wbr>out = false;<br>
+ s->info->separate_shader = false;<br>
<br>
if (stage == MESA_SHADER_FRAGMENT) {<br>
struct gl_fragment_program *fp = (struct gl_fragment_program *)prog;<br>
<br>
- s->info.fs.uses_discard = fp->UsesKill;<br>
+ s->info->fs.uses_discard = fp->UsesKill;<br>
}<br>
<br>
fail:<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.7.4<br>
<br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>