Lines Matching defs:shader
30 * special mode which allows the vertex shader (or last stage in the geometry
36 * the original vertex shader in a loop, writing to a different copy of
42 shader_writes_to_memory(nir_shader *shader)
49 nir_function_impl *entrypoint = nir_shader_get_entrypoint(shader);
132 nir_shader_uses_view_index(nir_shader *shader)
134 nir_function_impl *entrypoint = nir_shader_get_entrypoint(shader);
151 shader_only_position_uses_view_index(nir_shader *shader)
153 nir_shader *shader_no_position = nir_shader_clone(NULL, shader);
156 /* Remove the store position from a cloned shader. */
174 /* Clean up shader so unused load_view_index intrinsics are removed. */
195 * shader. Note that this only handles driver-agnostic checks, i.e. things
205 nir_can_lower_multiview(nir_shader *shader)
208 nir_foreach_shader_out_variable(var, shader) {
219 return !shader_writes_to_memory(shader) &&
220 shader_only_position_uses_view_index(shader);
228 nir_lower_multiview(nir_shader *shader, uint32_t view_mask)
230 assert(shader->info.stage != MESA_SHADER_FRAGMENT);
233 nir_function_impl *entrypoint = nir_shader_get_entrypoint(shader);
237 nir_foreach_shader_out_variable(var, shader) {
294 * original shader body.