mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 20:50:09 +01:00
spirv: Add vtn_mode_uses_ssa_offset()
Just the mode is needed to decide whether SSA offsets are needed, so make a function that takes that and reuse it for vtn_pointer_uses_ssa_offset(). This will be used for constant null pointers, that won't have a vtn_pointer handy. Reviewed-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
This commit is contained in:
parent
f9336751bc
commit
192daf68a4
2 changed files with 15 additions and 8 deletions
|
|
@ -473,8 +473,15 @@ struct vtn_pointer {
|
|||
enum gl_access_qualifier access;
|
||||
};
|
||||
|
||||
bool vtn_pointer_uses_ssa_offset(struct vtn_builder *b,
|
||||
struct vtn_pointer *ptr);
|
||||
bool vtn_mode_uses_ssa_offset(struct vtn_builder *b,
|
||||
enum vtn_variable_mode mode);
|
||||
|
||||
static inline bool vtn_pointer_uses_ssa_offset(struct vtn_builder *b,
|
||||
struct vtn_pointer *ptr)
|
||||
{
|
||||
return vtn_mode_uses_ssa_offset(b, ptr->mode);
|
||||
}
|
||||
|
||||
|
||||
struct vtn_variable {
|
||||
enum vtn_variable_mode mode;
|
||||
|
|
|
|||
|
|
@ -45,14 +45,14 @@ vtn_access_chain_create(struct vtn_builder *b, unsigned length)
|
|||
}
|
||||
|
||||
bool
|
||||
vtn_pointer_uses_ssa_offset(struct vtn_builder *b,
|
||||
struct vtn_pointer *ptr)
|
||||
vtn_mode_uses_ssa_offset(struct vtn_builder *b,
|
||||
enum vtn_variable_mode mode)
|
||||
{
|
||||
return ((ptr->mode == vtn_variable_mode_ubo ||
|
||||
ptr->mode == vtn_variable_mode_ssbo) &&
|
||||
return ((mode == vtn_variable_mode_ubo ||
|
||||
mode == vtn_variable_mode_ssbo) &&
|
||||
b->options->lower_ubo_ssbo_access_to_offsets) ||
|
||||
ptr->mode == vtn_variable_mode_push_constant ||
|
||||
(ptr->mode == vtn_variable_mode_workgroup &&
|
||||
mode == vtn_variable_mode_push_constant ||
|
||||
(mode == vtn_variable_mode_workgroup &&
|
||||
b->options->lower_workgroup_access_to_offsets);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue