[Mesa-dev] [PATCH v2 11/21] spirv: Set nir_variable->explicit_binding
Timothy Arceri
tarceri at itsqueeze.com
Wed Jun 6 04:40:28 UTC 2018
Seems reasonable.
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>
On 12/05/18 19:40, Alejandro PiƱeiro wrote:
> From: Neil Roberts <nroberts at igalia.com>
>
> When SpvDecorationBinding is encountered in the SPIR-V source it now
> sets explicit_binding on the nir_variable. This will be used to
> determine whether to initialise sampler and image uniforms with the
> binding value.
> ---
> src/compiler/spirv/vtn_private.h | 1 +
> src/compiler/spirv/vtn_variables.c | 2 ++
> 2 files changed, 3 insertions(+)
>
> diff --git a/src/compiler/spirv/vtn_private.h b/src/compiler/spirv/vtn_private.h
> index 98bec389fcd..5fc34f43809 100644
> --- a/src/compiler/spirv/vtn_private.h
> +++ b/src/compiler/spirv/vtn_private.h
> @@ -452,6 +452,7 @@ struct vtn_variable {
>
> unsigned descriptor_set;
> unsigned binding;
> + bool explicit_binding;
> unsigned input_attachment_index;
> bool patch;
>
> diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c
> index 6d1eede5ed0..902b2373015 100644
> --- a/src/compiler/spirv/vtn_variables.c
> +++ b/src/compiler/spirv/vtn_variables.c
> @@ -1503,6 +1503,7 @@ var_decoration_cb(struct vtn_builder *b, struct vtn_value *val, int member,
> switch (dec->decoration) {
> case SpvDecorationBinding:
> vtn_var->binding = dec->literals[0];
> + vtn_var->explicit_binding = true;
> return;
> case SpvDecorationDescriptorSet:
> vtn_var->descriptor_set = dec->literals[0];
> @@ -1926,6 +1927,7 @@ vtn_create_variable(struct vtn_builder *b, struct vtn_value *val,
> * for these. We should fix that.
> */
> var->var->data.binding = var->binding;
> + var->var->data.explicit_binding = var->explicit_binding;
> var->var->data.descriptor_set = var->descriptor_set;
> var->var->data.index = var->input_attachment_index;
>
>
More information about the mesa-dev
mailing list