Lines Matching defs:shader
31 * This divergence analysis pass expects the shader to be in LCSSA-form.
41 nir_shader *shader;
81 visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
89 nir_divergence_options options = shader->options->divergence_analysis_options;
90 gl_shader_stage stage = shader->info.stage;
187 /* Intrinsics with divergence depending on shader stage and hardware */
698 nir_variable_is_uniform(nir_shader *shader, nir_variable *var)
703 nir_divergence_options options = shader->options->divergence_analysis_options;
704 gl_shader_stage stage = shader->info.stage;
726 visit_deref(nir_shader *shader, nir_deref_instr *deref)
734 is_divergent = !nir_variable_is_uniform(shader, deref->var);
792 update_instr_divergence(nir_shader *shader, nir_instr *instr)
798 return visit_intrinsic(shader, nir_instr_as_intrinsic(instr));
806 return visit_deref(shader, nir_instr_as_deref(instr));
832 has_changed |= update_instr_divergence(state->shader, instr);
1070 nir_divergence_analysis(nir_shader *shader)
1072 shader->info.divergence_analysis_run = true;
1075 .stage = shader->info.stage,
1076 .shader = shader,
1083 visit_cf_list(&nir_shader_get_entrypoint(shader)->body, &state);
1086 bool nir_update_instr_divergence(nir_shader *shader, nir_instr *instr)
1102 update_instr_divergence(shader, instr);
1108 nir_has_divergent_loop(nir_shader *shader)
1111 nir_function_impl *func = nir_shader_get_entrypoint(shader);