mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 21:30:09 +01:00
nir/spirv: Split variable handling out into its own file
It's 1300 lines all by itself and it will only grow.
This commit is contained in:
parent
1112bf633f
commit
2892693d56
4 changed files with 1337 additions and 1303 deletions
|
|
@ -99,7 +99,8 @@ SPIRV_FILES = \
|
|||
nir/spirv/vtn_alu.c \
|
||||
nir/spirv/vtn_cfg.c \
|
||||
nir/spirv/vtn_glsl450.c \
|
||||
nir/spirv/vtn_private.h
|
||||
nir/spirv/vtn_private.h \
|
||||
nir/spirv/vtn_variables.c
|
||||
|
||||
# libglsl
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -390,8 +390,25 @@ struct vtn_ssa_value *vtn_create_ssa_value(struct vtn_builder *b,
|
|||
struct vtn_ssa_value *vtn_ssa_transpose(struct vtn_builder *b,
|
||||
struct vtn_ssa_value *src);
|
||||
|
||||
nir_ssa_def *vtn_vector_extract(struct vtn_builder *b, nir_ssa_def *src,
|
||||
unsigned index);
|
||||
nir_ssa_def *vtn_vector_extract_dynamic(struct vtn_builder *b, nir_ssa_def *src,
|
||||
nir_ssa_def *index);
|
||||
nir_ssa_def *vtn_vector_insert(struct vtn_builder *b, nir_ssa_def *src,
|
||||
nir_ssa_def *insert, unsigned index);
|
||||
nir_ssa_def *vtn_vector_insert_dynamic(struct vtn_builder *b, nir_ssa_def *src,
|
||||
nir_ssa_def *insert, nir_ssa_def *index);
|
||||
|
||||
nir_deref_var *vtn_nir_deref(struct vtn_builder *b, uint32_t id);
|
||||
|
||||
nir_deref_var *vtn_access_chain_to_deref(struct vtn_builder *b,
|
||||
struct vtn_access_chain *chain);
|
||||
nir_ssa_def *
|
||||
vtn_access_chain_to_offset(struct vtn_builder *b,
|
||||
struct vtn_access_chain *chain,
|
||||
nir_ssa_def **index_out, struct vtn_type **type_out,
|
||||
unsigned *end_idx_out, bool stop_at_matrix);
|
||||
|
||||
struct vtn_ssa_value *vtn_local_load(struct vtn_builder *b, nir_deref_var *src);
|
||||
|
||||
void vtn_local_store(struct vtn_builder *b, struct vtn_ssa_value *src,
|
||||
|
|
@ -403,6 +420,9 @@ vtn_variable_load(struct vtn_builder *b, struct vtn_access_chain *src);
|
|||
void vtn_variable_store(struct vtn_builder *b, struct vtn_ssa_value *src,
|
||||
struct vtn_access_chain *dest);
|
||||
|
||||
void vtn_handle_variables(struct vtn_builder *b, SpvOp opcode,
|
||||
const uint32_t *w, unsigned count);
|
||||
|
||||
|
||||
typedef void (*vtn_decoration_foreach_cb)(struct vtn_builder *,
|
||||
struct vtn_value *,
|
||||
|
|
|
|||
1311
src/glsl/nir/spirv/vtn_variables.c
Normal file
1311
src/glsl/nir/spirv/vtn_variables.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue