nir: Add nir_address_format_null_value()
Returns the nir_const_value * with the representation of the NULL pointer for each address format. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
@@ -3165,6 +3165,8 @@ nir_address_format_to_glsl_type(nir_address_format addr_format)
|
|||||||
nir_address_format_num_components(addr_format));
|
nir_address_format_num_components(addr_format));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const nir_const_value *nir_address_format_null_value(nir_address_format addr_format);
|
||||||
|
|
||||||
nir_ssa_def * nir_explicit_io_address_from_deref(struct nir_builder *b,
|
nir_ssa_def * nir_explicit_io_address_from_deref(struct nir_builder *b,
|
||||||
nir_deref_instr *deref,
|
nir_deref_instr *deref,
|
||||||
nir_ssa_def *base_addr,
|
nir_ssa_def *base_addr,
|
||||||
|
@@ -1230,3 +1230,23 @@ nir_get_io_vertex_index_src(nir_intrinsic_instr *instr)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the numeric constant that identify a NULL pointer for each address
|
||||||
|
* format.
|
||||||
|
*/
|
||||||
|
const nir_const_value *
|
||||||
|
nir_address_format_null_value(nir_address_format addr_format)
|
||||||
|
{
|
||||||
|
const static nir_const_value null_values[][NIR_MAX_VEC_COMPONENTS] = {
|
||||||
|
[nir_address_format_32bit_global] = {{0}},
|
||||||
|
[nir_address_format_64bit_global] = {{0}},
|
||||||
|
[nir_address_format_64bit_bounded_global] = {{0}},
|
||||||
|
[nir_address_format_32bit_index_offset] = {{.u32 = ~0}, {.u32 = ~0}},
|
||||||
|
[nir_address_format_32bit_offset] = {{.u32 = ~0}},
|
||||||
|
[nir_address_format_logical] = {{.u32 = ~0}},
|
||||||
|
};
|
||||||
|
|
||||||
|
assert(addr_format < ARRAY_SIZE(null_values));
|
||||||
|
return null_values[addr_format];
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user