# HdStorm + Vulkan + Qt QML

**URL:** <https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041>\
**Category:** Hydra\
**Tags:** cpp\
**Created:** [September 12, 2026, 4:23am UTC](https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041 "2026-09-12T04:23:25Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![andreagenor](https://avatars.discourse-cdn.com/v4/letter/a/4da419/32.png) [@andreagenor](https://forum.aousd.org/u/andreagenor)\
**Post date:** [September 12, 2026, 4:23am UTC](https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041/1 "2026-09-12T04:23:25Z")

</div>

Hi,

We’re building a USD/Hydra viewer that integrates HdStorm with Qt QML/QtQuick via Vulkan. Our current architecture:

1. Device ownership: HgiVulkan creates the unique VkDevice/VkInstance/VkPhysicalDevice
2. AOV handoff: UsdStage render produces HdRenderBuffer::GetResource() (VkImage), borrowed as GpuTexture via HgiTexture\* opaque handle
3. Qt import: QRhi receives the same VkImage via QRhiTexture::createFrom using QQuickGraphicsDevice::fromDeviceObjects
4. Formats: Rgba16Float (scene linear), Rgba32Float (scopes), Rgba8Unorm (display)

Current state: The AOV is borrowed (no CPU readback copy), but it’s still a transfer between two command queues (HdStorm render + Qt display).

Questions:

1. Is there a pattern in the OpenUSD ecosystem for zero-copy AOV display in Qt — i.e., same render pass output consumed directly by Qt’s blit without intermediate queue transfer?
2. Does HdStorm currently support HDR framebuffers (FP16/FP32 swapchain, tone-mapping)? Is there reference code?
3. Beyond VK\_KHR\_external\_memory, are there newer interop standards (e.g., VK\_KHR\_timeline\_semaphore for queue synchronization) that would improve this pattern?

Thanks!

---

<div class="post-metadata">

**Author:** ![madoodia](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/madoodia/32/1182_2.png) [@madoodia](https://forum.aousd.org/u/madoodia)\
**Post date:** [September 14, 2026, 5:24am UTC](https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041/2 "2026-09-14T05:24:12Z")

</div>

Hey

I am working on kinda same thing in this project with USD

[![](https://us1.discourse-cdn.com/flex016/uploads/aousd/original/2X/6/62fd890d3d38f174517e23fbdee4a84c50706a31.jpeg "Zolf Grooming Tool - Development - Demo#5") ](https://www.youtube.com/watch?v=sdy1VopFdKk)

next video is exporting usda file from the graph (but not reached to AOV yet)  
but in this case I am using DirectX and CUDA  
I’ll share my experience asap I have found anything useful

I know this is not useful for you, but maybe good to know similaities between renderers to get more idea

---

<div class="post-metadata">

**Author:** ![andreagenor](https://avatars.discourse-cdn.com/v4/letter/a/4da419/32.png) [@andreagenor](https://forum.aousd.org/u/andreagenor)\
**Post date:** [September 14, 2026, 8:09pm UTC](https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041/3 "2026-09-14T20:09:08Z")

</div>

Hi,  
Did you write your own render delegate, or are you using HdStorm?  
My project is still very simple; I’m just studying and learning at this stage.  
Could you describe how you integrated Hydra with Qt?

---

<div class="post-metadata">

**Author:** ![madoodia](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/madoodia/32/1182_2.png) [@madoodia](https://forum.aousd.org/u/madoodia)\
**Post date:** [September 14, 2026, 9:49pm UTC](https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041/4 "2026-09-14T21:49:23Z")

</div>

hi

oh, no, the renderer is DirectX12, but I have plan to use hydra as the renderer too (for future), but I’m sure, I had some research about integrating Hydra to Qt, I will share if I could find it

what I am sure is that Maya, Houdini, and Katana integrated hydra in their viewport  
but source is not available

but I recommend you to check out the OpenUSD source code and study the usdview (usdviewq) that it is using hydra too, and it should give you some clues, plus it is Qt

…you\_dev\_dir\OpenUSD\pxr\usdImaging\usdviewq\hydraObserver.h

---

<div class="post-metadata">

**Author:** ![andreagenor](https://avatars.discourse-cdn.com/v4/letter/a/4da419/32.png) [@andreagenor](https://forum.aousd.org/u/andreagenor)\
**Post date:** [September 14, 2026, 11:34pm UTC](https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041/5 "2026-09-14T23:34:00Z")

</div>

Thanks for sharing!  
I actually spent some time analyzing the usdview source code and picked up a few good insights from it. The main challenge is that usdview relies on OpenGL, whereas my setup is built on Vulkan.  
I ended up leveraging some of Autodesk’s research on their Hydra + Vulkan integration, and I’ve already incorporated HVT into the project to handle gizmos, grids, and viewport utilities.  
I’ll keep experimenting with a few alternative approaches.  
[https://youtu.be/GtlJCsg11KA?si=j7X6VtPOXYbyvhbz](https://youtu.be/GtlJCsg11KA?si=j7X6VtPOXYbyvhbz)

---

<div class="post-metadata">

**Author:** ![madoodia](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/madoodia/32/1182_2.png) [@madoodia](https://forum.aousd.org/u/madoodia)\
**Post date:** [September 15, 2026, 3:04am UTC](https://forum.aousd.org/t/hdstorm-vulkan-qt-qml/3041/6 "2026-09-15T03:04:29Z")

</div>

nice

Yes, because usdview using usdimaginggl and usdimaginggl control the hydra, it all depends on OpenGL integration  
I guess you should think to usdimagingvk (make it yourself) or something like that

good luck btw
