当管线将要执行到片元阶段,片元着色器subpass输入与当前subpass的输入附件之间 形成了一个接口。 片元着色器subpass输入变量与输入附件之间通过 InputAttachmentIndex
修饰 匹配一致, 输入附件由VkSubpassDescription
数据类型的数组name:pInputAttachments指定, 该数据结构描述了片元着色器执行时所在的subpass。
带有UniformConstant
描述类型,且带有被OpEntryPoint
静态使用的一个OpEntryPoint
的 片元着色器subpass 输入变量形成了 片元输入附件接口。 这些变量必须被声明为 OpTypeImage
类型,一个Dim
维的SubpassData
操作数, 一个Sampled
操作数为2。
InputAttachmentIndex
修饰符指定的 一个subpass 输入变量 i 从 VkSubpassDescription
的pInputAttachments
[i]成员指向的输入附件读取数据。 若此 subpass 输入变量被声明为N元素的数组,它消耗N个连续的输入附件,从指定的索引开始。 同一个InputAttachmentIndex
的输入变量不能多于1个,不管是通过显式还是隐式数组声明。 The number of 可用的输入附件索引个数是通过 VkPhysicalDeviceLimits
数据结构的maxPerStageDescriptorInputAttachments
成员指定的。
带有 InputAttachmentIndex
的变量必须只能在片元阶段被使用。 subpass 输入的基础的数据类型(floating-point, integer, unsigned integer) 必须与对应的输入附件的基础格式要匹配, 否则subpass从这些变量中取出的值将是未定义的。
参考 输入附件 获取更多细节。