mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 11:20:11 +01:00
spirv: Set nir_variable->explicit_binding
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. Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
386f09be9b
commit
b995bda9bc
2 changed files with 3 additions and 0 deletions
|
|
@ -456,6 +456,7 @@ struct vtn_variable {
|
|||
|
||||
unsigned descriptor_set;
|
||||
unsigned binding;
|
||||
bool explicit_binding;
|
||||
unsigned input_attachment_index;
|
||||
bool patch;
|
||||
|
||||
|
|
|
|||
|
|
@ -1507,6 +1507,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];
|
||||
|
|
@ -1930,6 +1931,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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue