A SPIR-V module declares a global object in memory using the OpVariable
instruction, which results in a pointer x
to that object. A specific
entry point in a SPIR-V module is said to statically use that object if
that entry-point’s call tree contains a function that contains a memory
instruction or image instruction with x
as an id
operand. See the
“Memory Instructions” and “Image Instructions” subsections of section 3
“Binary Form” of the SPIR-V specification for the complete list of SPIR-V
memory instructions.
Static use is not used to control the behavior of variables with Input
and Output
storage. The effects of those variables are applied based
only on whether they are present in a shader entry point’s interface.