<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl" -->

---
title: Introducing Multiview for NVK | daily.dev
description: NVK, the open-source Vulkan driver for NVIDIA hardware in Mesa, now supports the VK_KHR_multiview extension. Multiview is a rendering technique designed for VR...
canonical: https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Introducing Multiview for NVK | daily.dev
og:description: NVK, the open-source Vulkan driver for NVIDIA hardware in Mesa, now supports the VK_KHR_multiview extension. Multiview is a rendering technique designed for VR...
og:url: https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl
og:image: https://api.daily.dev/og/posts/5S6cWoqwL.png
og:image:alt: Introducing Multiview for NVK
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducing Multiview for NVK

**[Collabora Blog](https://daily.dev/sources/collabora)** · 10 min read · 0 upvotes · 0 comments

## Summary

NVK, the open-source Vulkan driver for NVIDIA hardware in Mesa, now supports the VK_KHR_multiview extension. Multiview is a rendering technique designed for VR that executes a single command set across multiple views using a view mask. The implementation leverages NVIDIA hardware's MME (Macro Method Expander) macros to add a second loop level for multiview without modifying shaders or vertex inputs. The post details the implementation challenges including a bug with view masks 5, 10, and 15 where draw parameters were only passed once but loaded multiple times, the fix involving moving the view mask loop inside nvk_mme_build_draw(), query handling for multiview, input attachment lowering via NIR, and additional register management work to support pre-Turing architectures with fewer available registers. A pre-existing bug in mme_while() on pre-Turing hardware was also discovered and fixed. New CTS test coverage gaps were identified and subsequently addressed by Igalia.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2023/05/03/introducing-multiview-for-nvk>

## Questions this post answers

### How does NVK implement VK_KHR_multiview differently from Intel's ANV Vulkan driver?

NVK uses NVIDIA hardware's MME (Macro Method Expander) macros to add a second loop level for multiview, iterating over the view mask inside the macro without modifying shaders or vertex inputs. Intel's ANV driver uses instanced rendering, multiplying instance count by view count per draw call and computing the view index from gl_InstanceId in the shader, which requires shader modifications and vertex input adjustments.

_Developers working on GPU driver internals or Vulkan extensions track implementation approaches like this on daily.dev._

### How should queries be handled when VK_KHR_multiview is enabled in a Vulkan driver?

When multiview is enabled, N consecutive query indices must be used in the query pool, where N equals the number of bits set in the view mask of the subpass. In NVK's implementation, only the first query index is actively used, and zeros are emitted for the remaining N-1 query indices using a helper that sets values to 0 and marks them as available via SET_REPORT_SEMAPHORE.

_Vulkan driver developers navigating multiview query semantics find implementation references like this on daily.dev._

## Similar posts on daily.dev

- [Open-Source NVIDIA Vulkan Driver "NVK" Merges Mesh Shader Support](https://daily.dev/posts/open-source-nvidia-vulkan-driver-nvk-merges-mesh-shader-support-657asbxwp) · Phoronix · 0 upvotes · 0 comments
- [Mesa NVK Lands Support For VK\_NVX\_image\_view\_handle - Needed For NVIDIA DLSS](https://daily.dev/posts/mesa-nvk-lands-support-for-vk-nvx-image-view-handle---needed-for-nvidia-dlss-2i0hu2bxq) · Phoronix · 0 upvotes · 0 comments
- [Mesa 26.2 Released With NVK Mesh Shader Support, Many Other Vulkan Improvements](https://daily.dev/posts/mesa-26-2-released-with-nvk-mesh-shader-support-many-other-vulkan-improvements-hjunmu9bt) · Phoronix · 0 upvotes · 0 comments

---

Tags: [#nvidia](https://daily.dev/tags/nvidia), [#vulkan](https://daily.dev/tags/vulkan), [#graphics-programming](https://daily.dev/tags/graphics-programming), [#mesa](https://daily.dev/tags/mesa)

[View this post on daily.dev](https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Introducing Multiview for NVK","url":"https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl"},"datePublished":"2026-08-11T08:53:52.616Z","dateModified":"2026-08-11T09:31:54.194Z","description":"NVK, the open-source Vulkan driver for NVIDIA hardware in Mesa, now supports the VK_KHR_multiview extension. Multiview is a rendering technique designed for VR...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fed426d850c2f6ccb0f13d712f3a8a15?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fed426d850c2f6ccb0f13d712f3a8a15?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"nvidia,vulkan,graphics-programming,mesa","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"Introducing Multiview for NVK"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/introducing-multiview-for-nvk-5s6cwoqwl#faq","mainEntity":[{"@type":"Question","name":"How does NVK implement VK_KHR_multiview differently from Intel's ANV Vulkan driver?","acceptedAnswer":{"@type":"Answer","text":"NVK uses NVIDIA hardware's MME (Macro Method Expander) macros to add a second loop level for multiview, iterating over the view mask inside the macro without modifying shaders or vertex inputs. Intel's ANV driver uses instanced rendering, multiplying instance count by view count per draw call and computing the view index from gl_InstanceId in the shader, which requires shader modifications and vertex input adjustments. Developers working on GPU driver internals or Vulkan extensions track implementation approaches like this on daily.dev."}},{"@type":"Question","name":"How should queries be handled when VK_KHR_multiview is enabled in a Vulkan driver?","acceptedAnswer":{"@type":"Answer","text":"When multiview is enabled, N consecutive query indices must be used in the query pool, where N equals the number of bits set in the view mask of the subpass. In NVK's implementation, only the first query index is actively used, and zeros are emitted for the remaining N-1 query indices using a helper that sets values to 0 and marks them as available via SET_REPORT_SEMAPHORE. Vulkan driver developers navigating multiview query semantics find implementation references like this on daily.dev."}}]}
```

