Lines Matching defs:shader

44 create_clipdist_var(nir_shader *shader,
47 nir_variable *var = rzalloc(shader, nir_variable);
50 var->data.driver_location = shader->num_outputs;
52 shader->num_outputs += MAX2(1, DIV_ROUND_UP(array_size, 4));
54 var->data.driver_location = shader->num_inputs;
56 shader->num_inputs += MAX2(1, DIV_ROUND_UP(array_size, 4));
69 nir_shader_add_variable(shader, var);
74 create_clipdist_vars(nir_shader *shader, nir_variable **io_vars,
78 shader->info.clip_distance_array_size = util_last_bit(ucp_enables);
81 create_clipdist_var(shader, output,
83 shader->info.clip_distance_array_size);
87 create_clipdist_var(shader, output,
91 create_clipdist_var(shader, output,
122 if (b->shader->options->use_interpolated_input_intrinsics) {
169 find_output(nir_shader *shader, unsigned drvloc)
172 nir_foreach_function(function, shader) {
179 /* for debug builds, scan entire shader to assert
195 find_clipvertex_and_position_outputs(nir_shader *shader,
199 nir_foreach_shader_out_variable(var, shader) {
209 /* if shader is already writing CLIPDIST, then
230 nir_variable *var = nir_variable_create(b->shader,
261 nir_fixup_deref_modes(b->shader);
265 cv = find_output(b->shader, clipvertex->data.driver_location);
268 cv = find_output(b->shader, position->data.driver_location);
316 * passed in to shader via user_clip_plane system-values
325 nir_lower_clip_vs(nir_shader *shader, unsigned ucp_enables, bool use_vars,
329 nir_function_impl *impl = nir_shader_get_entrypoint(shader);
353 if (!find_clipvertex_and_position_outputs(shader, &clipvertex, &position))
357 create_clipdist_vars(shader, out, ucp_enables, true,
398 nir_lower_clip_gs(nir_shader *shader, unsigned ucp_enables,
402 nir_function_impl *impl = nir_shader_get_entrypoint(shader);
412 if (!find_clipvertex_and_position_outputs(shader, &clipvertex, &position))
416 create_clipdist_vars(shader, out, ucp_enables, true,
464 b.shader->info.fs.uses_discard = true;
472 fs_has_clip_dist_input_var(nir_shader *shader, nir_variable **io_vars,
475 assert(shader->info.stage == MESA_SHADER_FRAGMENT);
476 nir_foreach_shader_in_variable(var, shader) {
493 nir_lower_clip_fs(nir_shader *shader, unsigned ucp_enables,
502 * frag-shader-based gl_ClipDistance, except that the only user that does
505 if (!fs_has_clip_dist_input_var(shader, in, &ucp_enables))
506 create_clipdist_vars(shader, in, ucp_enables, false, use_clipdist_array);
510 nir_foreach_function(function, shader) {