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 descriptor_set;
|
||||||
unsigned binding;
|
unsigned binding;
|
||||||
|
bool explicit_binding;
|
||||||
unsigned input_attachment_index;
|
unsigned input_attachment_index;
|
||||||
bool patch;
|
bool patch;
|
||||||
|
|
||||||
|
@@ -1507,6 +1507,7 @@ var_decoration_cb(struct vtn_builder *b, struct vtn_value *val, int member,
|
|||||||
switch (dec->decoration) {
|
switch (dec->decoration) {
|
||||||
case SpvDecorationBinding:
|
case SpvDecorationBinding:
|
||||||
vtn_var->binding = dec->literals[0];
|
vtn_var->binding = dec->literals[0];
|
||||||
|
vtn_var->explicit_binding = true;
|
||||||
return;
|
return;
|
||||||
case SpvDecorationDescriptorSet:
|
case SpvDecorationDescriptorSet:
|
||||||
vtn_var->descriptor_set = dec->literals[0];
|
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.
|
* for these. We should fix that.
|
||||||
*/
|
*/
|
||||||
var->var->data.binding = var->binding;
|
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.descriptor_set = var->descriptor_set;
|
||||||
var->var->data.index = var->input_attachment_index;
|
var->var->data.index = var->input_attachment_index;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user