spirv: get the correct type for function returns.
This needs to be derived from the address format, not always 1/32. Suggested by Jason Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
b62a925ad1
commit
5375c30234
|
@ -274,9 +274,12 @@ vtn_cfg_handle_prepass_instruction(struct vtn_builder *b, SpvOp opcode,
|
|||
|
||||
unsigned idx = 0;
|
||||
if (func_type->return_type->base_type != vtn_base_type_void) {
|
||||
nir_address_format addr_format =
|
||||
vtn_mode_to_address_format(b, vtn_variable_mode_function);
|
||||
/* The return value is a regular pointer */
|
||||
func->params[idx++] = (nir_parameter) {
|
||||
.num_components = 1, .bit_size = 32,
|
||||
.num_components = nir_address_format_num_components(addr_format),
|
||||
.bit_size = nir_address_format_bit_size(addr_format),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue