Lines Matching defs:shader
59 lower_rt_io_derefs(nir_shader *shader)
61 nir_function_impl *impl = nir_shader_get_entrypoint(shader);
66 nir_foreach_variable_with_modes(var, shader, nir_var_shader_call_data)
70 nir_foreach_variable_with_modes(var, shader, nir_var_ray_hit_attrib)
75 * any-hit shader into an intersection shader, we can end up with multiple
87 assert(shader->scratch_size >= BRW_BTD_STACK_CALLEE_DATA_SIZE);
94 gl_shader_stage stage = shader->info.stage;
164 /** Lowers ray-tracing shader I/O and scratch access
171 * nir_var_call_data in NIR. There is at most one of these per-shader and
172 * they contain payload data passed down the stack from the parent shader
174 * the actual storage lives in the calling shader's scratch space and we're
181 * written out by the intersection shader. In our implementation, it's a
186 * stored in the SBT right after the bindless shader handles. It's
203 * these are shader-internal and don't come in from outside, they don't
232 /* The shader that calls traceRay() is unable to access any ray hit
235 * hit shader, then accepting the hit has no observable effect; it's
243 /* The closest hit shader is in the same shader group as the any-hit
244 * shader that we're currently in. We can get the address for its SBT
245 * handle by looking at the shader record pointer and subtracting the
247 * shader is the first one in the SBT handle.
267 lower_ray_walk_intrinsics(nir_shader *shader,
270 assert(shader->info.stage == MESA_SHADER_ANY_HIT ||
271 shader->info.stage == MESA_SHADER_INTERSECTION);
273 nir_function_impl *impl = nir_shader_get_entrypoint(shader);
433 ralloc_steal(mem_ctx, b.shader);
435 b.shader->info.workgroup_size_variable = true;
441 b.shader->num_uniforms = 32;
485 nir_shader *nir = b.shader;
492 nir_builder_init(&b, nir_shader_get_entrypoint(b.shader));