clover/nir/spirv: Use uniform rather than shader_in for kernel inputs
The semantics of inputs for CL are a closer match to the semantics of uniforms for graphics. Rather than cross-stage data, it's data that every thread sees uniformly. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Karol Herbst <kherbst@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6497>
This commit is contained in:
@@ -922,8 +922,9 @@ build_explicit_io_load(nir_builder *b, nir_intrinsic_instr *intrin,
|
||||
assert(addr_format_is_global(addr_format));
|
||||
op = nir_intrinsic_load_global;
|
||||
break;
|
||||
case nir_var_shader_in:
|
||||
case nir_var_uniform:
|
||||
assert(addr_format_is_offset(addr_format));
|
||||
assert(b->shader->info.stage == MESA_SHADER_KERNEL);
|
||||
op = nir_intrinsic_load_kernel_input;
|
||||
break;
|
||||
case nir_var_mem_shared:
|
||||
@@ -1184,7 +1185,7 @@ nir_explicit_io_address_from_deref(nir_builder *b, nir_deref_instr *deref,
|
||||
assert(deref->dest.is_ssa);
|
||||
switch (deref->deref_type) {
|
||||
case nir_deref_type_var:
|
||||
assert(deref->mode & (nir_var_shader_in | nir_var_mem_shared |
|
||||
assert(deref->mode & (nir_var_uniform | nir_var_mem_shared |
|
||||
nir_var_shader_temp | nir_var_function_temp));
|
||||
if (addr_format_is_global(addr_format)) {
|
||||
assert(nir_var_shader_temp | nir_var_function_temp);
|
||||
|
@@ -5475,7 +5475,7 @@ vtn_emit_kernel_entry_point_wrapper(struct vtn_builder *b,
|
||||
|
||||
/* input variable */
|
||||
nir_variable *in_var = rzalloc(b->nb.shader, nir_variable);
|
||||
in_var->data.mode = nir_var_shader_in;
|
||||
in_var->data.mode = nir_var_uniform;
|
||||
in_var->data.read_only = true;
|
||||
in_var->data.location = i;
|
||||
|
||||
|
Reference in New Issue
Block a user