# Enable neural graphics using ML Extensions for Vulkan

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/)
- [Run neural graphics workloads with ML Extensions for Vulkan](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/1-introduction/)
- [Set up the ML Emulation Layers for Vulkan](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/2-ml-ext-for-vulkan/)
- [Simple Tensor and Data Graph](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/3-first-sample/)
- [Running a test with the Scenario Runner](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/4-scenario-runner/)
- [Use RenderDoc to debug and analyze workloads](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/5-renderdoc/)
- [Wrapping up](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/6-wrapping-up/)
- [Next Steps](https://learn.arm.com/learning-paths/mobile-graphics-and-gaming/vulkan-ml-sample/_next-steps/)

## About this Learning Path

| Skill level: | Advanced |
|--------------|----------|
| Reading time: | 30 min |
| Last updated: | 24 Aug 2026 |

| Authors: | Annie Tallund, Arm [GitHub](https://github.com/annietllnd) [LinkedIn](https://linkedin.com/in/annietallund) Joshua Marshall-Law |
|-----------|---------------------------------------------------------------------------------------------------------------|
| Arm IP: | [Mali](https://support.arm.com/?tab=compute-ip&Product%20Type=Graphics%20Processors) |
| Tags: | [ML](https://learn.arm.com/tag/ml), [Windows](https://learn.arm.com/tag/windows), [Vulkan](https://learn.arm.com/tag/vulkan), [RenderDoc](https://learn.arm.com/tag/renderdoc), [NX](https://learn.arm.com/tag/nx) |

### Who is this for?
This advanced Learning Path is for engine developers who want to create neural graphics with ML Extensions for Vulkan.

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Explain the purpose of neural graphics and the role of ML Extensions for Vulkan
- Set up the ML Emulation Layers for Vulkan to enable the extensions
- Run a sample Vulkan application that uses the extensions
- Debug the flow using RenderDoc

### Prerequisites
Before starting, you will need the following:
- Windows 11 development machine
- Visual Studio 2022
- Visual Studio workload - Desktop development with C++
- Visual Studio workload - .NET desktop build tools
- Visual Studio Code

### Summary
You’ll enable neural graphics workloads with ML Extensions for Vulkan by setting up the ML Emulation Layers and running Vulkan Samples. First, you’ll install development tools and configure the layers. You’ll build the Simple Tensor and Data Graph sample which runs a 2D average pooling operation through a data graph pipeline. Then, you’ll review the Scenario Runner assets for an inference workflow and use RenderDoc to capture frames and inspect Vulkan calls, shaders, tensors, and resource states.

### Frequently asked questions
<details>
<summary>Do I need native driver support for VK_ARM_data_graph and VK_ARM_tensors to run the samples?</summary>
No. The ML Emulation Layers for Vulkan simulate these extensions so you can build and run the samples during development.
</details>

<details>
<summary>How do I run the Simple Tensor and Data Graph sample after building it?</summary>
Run `build\windows\app\bin\Release\AMD64\vulkan_samples.exe sample simple_tensor_and_data_graph` from the `Vulkan-Samples` repository. A new window opens and visualizes the operation.
</details>

<details>
<summary>How do I run a 2D average pooling operation?</summary>
Run the Simple Tensor and Data Graph sample to execute a 2D average pooling operation through a data graph pipeline. Create input and output tensors, bind them with descriptor sets and pipeline layouts, and dispatch the SPIR-V-defined network.
</details>

<details>
<summary>What does the NSS Scenario Runner download include?</summary>
The NSS model release includes a Windows-compatible Scenario Runner binary, the VGF model, and one input frame with expected output data. You can use these assets to run an end-to-end workflow and examine the VGF model.
</details>

<details>
<summary>How do I capture a Vulkan Samples frame in RenderDoc?</summary>
Use RenderDoc when you need to diagnose unexpected visual output, examine Vulkan API calls, inspect resource states, or validate data graph pipeline execution. In **Launch Application**, set the **Executable Path**, **Working Directory**, and **Command-line Arguments**, select **Launch**, then press the **F12** key while the sample is active. In the capture, inspect Vulkan API calls, shader inputs and outputs, and resource states.
</details>
