
1. Understand the concept:
1. What is HEVC/H.265?
-
HEVC (High Efficiency Video Coding), also known as H.265, is a video compression standard.
-
It compresses video data much more efficiently than older formats like H.264 — meaning it uses less bandwidth while maintaining high quality.
-
This is especially useful for streaming video or rendering complex visual content, like in remote desktops or gaming.
2. What Does "Hardware Acceleration" Mean?
-
Normally, video encoding and decoding is done by the CPU (processor), which can be slow and resource-intensive.
-
Hardware acceleration offloads this work to the GPU (Graphics Processing Unit), which is much better suited for video tasks.
-
Result: Smoother performance, lower latency, and better user experience.
3. What Does This Mean for Azure Virtual Desktop?
If you’re using GPU-enabled Azure VMs for your AVD sessions (for example, to support 3D applications, video editing, or heavy graphical work):
-
Now, RDP can use GPU acceleration to encode video frames using HEVC/H.265.
-
This makes remote desktop sessions smoother, especially over limited bandwidth or high-resolution displays (4K, dual monitors, etc.).
-
Your users will experience better graphics performance, like clearer video playback and faster screen updates.
4. Key Benefits:
Benefit |
Explanation |
Lower Bandwidth Usage |
HEVC compresses data more efficiently. |
Improved Graphics Quality |
Higher quality video at the same bitrate. |
Better User Experience |
Smoother, faster screen updates and video playback. |
Offloads Work from CPU |
Frees up CPU resources by using the GPU for encoding. |
2. Prerequisites:
1. Ensure the physical machine supports HEVC:
1. Open Device Manager on your physical machine and check under the 'Display adapters' section to see your installed GPU:
2. Then, by visiting the website, you can check the following information to confirm whether the physical machine supports HEVC. Most modern processors support it by default.
2. Verify Physical Machine has Microsoft HEVC Video Extension Installed:
I installed the HEVC Video Extension on my physical machine from the Microsoft Store. It cost me around ₹54 INR
You can verify the local Windows device has the Microsoft HEVC codec installed by opening a PowerShell prompt and run the following command:
Get-AppxPackage -Name "Microsoft.HEVCVideoExtensions" | FT Name, Version
3. Supported GPU-optimized Azure VM sizes:
1. The following table lists which Azure VM sizes are optimized for GPU acceleration and supported as session hosts in Azure Virtual Desktop:
2. Stick with NVv3 series because it supports both HEVC/H.265 and AVC/H.264 for any GPU-enhanced AVD deployments.
3. It’s also worth noting: Azure NC and ND series VMs are not well-suited for Azure Virtual Desktop. These VMs are designed for specialized workloads like machine learning and scientific computing, not for running Windows desktops. They lack support for the type of GPU acceleration needed for most applications and a smooth remote desktop experience.
4. For this demo, I will be using the following T-shirt size.
4. Quota:
Before you proceed with the deployment, make sure you have enough quota available for the NVsv3 family.
5. Vnet and Subnet:
A virtual network and subnet are required for the deployment. You can choose either Active Directory join or Entra ID join, depending on your use case.
3. Create the Image VM:
Create an image VM that can be used to capture a custom image, which can then be used to deploy session hosts. I used the following configuration:
4. Install NVIDIA GPU Driver Extension:
The NVIDIA GPU Driver Extension for Windows installs NVIDIA GPU drivers on Windows N-series virtual machines (VMs). Depending on the VM family, the extension installs CUDA or GRID drivers. During the installation process, the VM might reboot to complete the driver setup.
1. In the Azure portal, go to the Image virtual machine on which you want to install the extension.
2. Under Settings, select Extensions + Applications.
3. Under Extensions, select + Add.
4. Locate and select NVIDIA GPU Driver Extension, then select Next.
5. Select Review + create. Confirm the deployment action, and select Create.
6. Select Create.
7. Confirm the extension is listed as an installed extension for the virtual machine.
8. You can verify driver installation in Device Manager. The following screenshot shows successful configuration of the Tesla M60 card on the VM.
9. Restart the VM once before proceeding with Sysprep.
5. Capture the Image:
Capture the image and share it to the Azure Compute Gallery.
6. Configure GPU Rendering & Encoding via Intune Policy:
Please note that the aim here is not to provide a step-by-step tutorial on creating Intune policies (as that is already covered in my other blog posts), but rather to highlight which specific policies need to be applied. As such, I’ve only included the policies that have been configured.


7. Verify GPU Acceleration:
Once you have configured all the required settings, you can verify whether everything is working correctly. In my case, I opened multiple YouTube tabs and played 4K videos to generate GPU load on my session host. To confirm that GPU acceleration is technically working, you can use the following methods:
1. Make sure the Intune policies that have been configured are being applied to the session host.
2. Open Task Manager and go to the Performance tab. Select the GPU to see whether the GPU is being utilized by the application.
3. Open the Connection Information window from your session. Select "See details" to expand the window with additional information. If you see Codecs Used: HEVC under Graphics details, then GPU-accelerated frame encoding with HEVC/H.265 and full-screen video encoding is in use.
4. You can use Event Viewer to verify GPU acceleration with either AVC/H.264 or HEVC/H.265. To do so, open Event Viewer from the Start menu, or run eventvwr.msc from the command line.
Navigate to: Applications and Services Logs > Microsoft > Windows > RemoteDesktopServices-RdpCoreCDV > Operational.
Event ID 162:
- If you see Avc444FullScreenProfile in the event text, GPU-accelerated frame encoding with AVC/H.264 and full-screen video encoding is in use.
- If you see HevcProfile in the event text, GPU-accelerated frame encoding with HEVC/H.265 and full-screen video encoding is in use.
Comments
Post a Comment