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:

committed by
Alejandro Piñeiro

parent
386f09be9b
commit
b995bda9bc
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user