Hi! First, thank you for the excellent multiview documentation and examples — they're some of the clearest I've found on using VK_KHR_multiview in practice.
I have a question about one specific performance claim in the Multiview Rendering docs:
GPU: Vertex shader runs once per vertex (broadcast to all views)
I've been trying to verify this independently, but I can't find other sources (Vulkan spec, GPU vendor docs, GDC talks, etc.) that explicitly state this "broadcast" behavior at the vertex level. Most multiview documentation focuses on the single-pass draw-call reduction and gl_ViewIndex, but rarely discusses whether the vertex shader output is broadcast vs. replayed per view.
I'd really appreciate clarification on the following:
-
Source / authority: Is this behavior guaranteed by the Vulkan spec (could you point me to the relevant section?), or is it an observed optimization on certain hardware that the doc generalizes? I did find spec language about vertex stages executing "once" in multiview, but I wanted to confirm the "broadcast" framing is canonical.
-
Hardware limitations: Are there GPU architectures or driver stacks where this does not hold — i.e., where the vertex shader still runs per-view despite multiview being enabled? For instance, older desktop GPUs with partial multiview support.
-
Enabling conditions: Beyond VK_KHR_multiview / Vulkan 1.1, are there specific feature bits (e.g., multiviewGeometryShader, multiviewTessellationShader) or VkPhysicalDeviceMultiviewProperties limits that gate this optimization? I'm wondering if the "broadcast" behavior is contingent on anything beyond basic multiview support.
-
Mobile GPUs (tile-based renderers): The doc mentions tile-based renderers benefit "greatly," but does the vertex broadcast behavior work the same way on Mali / Adreno / PowerVR as on desktop IMRs? Or do tile-based architectures handle this differently under the hood (e.g., vertex shading per tile rather than per view)?
This isn't a bug report — the doc is great. I'm just trying to build a more precise mental model of multiview performance across different hardware targets. Thanks for any insight!
Hi! First, thank you for the excellent multiview documentation and examples — they're some of the clearest I've found on using
VK_KHR_multiviewin practice.I have a question about one specific performance claim in the Multiview Rendering docs:
I've been trying to verify this independently, but I can't find other sources (Vulkan spec, GPU vendor docs, GDC talks, etc.) that explicitly state this "broadcast" behavior at the vertex level. Most multiview documentation focuses on the single-pass draw-call reduction and
gl_ViewIndex, but rarely discusses whether the vertex shader output is broadcast vs. replayed per view.I'd really appreciate clarification on the following:
Source / authority: Is this behavior guaranteed by the Vulkan spec (could you point me to the relevant section?), or is it an observed optimization on certain hardware that the doc generalizes? I did find spec language about vertex stages executing "once" in multiview, but I wanted to confirm the "broadcast" framing is canonical.
Hardware limitations: Are there GPU architectures or driver stacks where this does not hold — i.e., where the vertex shader still runs per-view despite multiview being enabled? For instance, older desktop GPUs with partial multiview support.
Enabling conditions: Beyond
VK_KHR_multiview/ Vulkan 1.1, are there specific feature bits (e.g.,multiviewGeometryShader,multiviewTessellationShader) orVkPhysicalDeviceMultiviewPropertieslimits that gate this optimization? I'm wondering if the "broadcast" behavior is contingent on anything beyond basic multiview support.Mobile GPUs (tile-based renderers): The doc mentions tile-based renderers benefit "greatly," but does the vertex broadcast behavior work the same way on Mali / Adreno / PowerVR as on desktop IMRs? Or do tile-based architectures handle this differently under the hood (e.g., vertex shading per tile rather than per view)?
This isn't a bug report — the doc is great. I'm just trying to build a more precise mental model of multiview performance across different hardware targets. Thanks for any insight!