Wednesday, September 16, 2026
No Result
View All Result
Future News 24
Advertisement
  • Home
  • AI Research
  • Platforms
  • Ethics
  • Developer AI
  • Industry
  • Data Science
  • Emerging Tech
  • Quantum
  • BioTech
  • Decentralized
  • Home
  • AI Research
  • Platforms
  • Ethics
  • Developer AI
  • Industry
  • Data Science
  • Emerging Tech
  • Quantum
  • BioTech
  • Decentralized
No Result
View All Result
Future News 24
No Result
View All Result
Home AI Platforms & Apps

Streamlining Useful resource Binding with Finish-to-Finish Help for Vulkan Descriptor Heaps

Future News 24 by Future News 24
June 26, 2026
in AI Platforms & Apps
0 0
0
Streamlining Useful resource Binding with Finish-to-Finish Help for Vulkan Descriptor Heaps
0
SHARES
0
VIEWS
Share on FacebookShare on Twitter


Shaders are GPU applications that course of visible knowledge—similar to rays, pixels, geometry, and textures—to supply particular rendering results. Shaders discover essential knowledge by a course of known as useful resource binding. CPU code orchestrates the creation of GPU sources similar to textures and reminiscence buffers after which fastidiously arranges for shader code to entry them by a binding protocol. 

The brand new descriptor heap function in Vulkan refactors this course of from the bottom up, addressing long-standing person suggestions to streamline useful resource binding and convey larger parity to the way it works in Direct3D 12 (D3D12). Descriptor heaps give direct management over descriptor reminiscence administration, are a greater match for contemporary {hardware}, and simplify efficiency optimization of useful resource administration. They’re particularly helpful for renderers utilizing dynamic texture indexing, for advanced ray tracing shaders, or when there’s a shared backend supporting D3D12. This put up highlights what descriptor heaps add, how they evaluate to descriptor units, and tips on how to get began.

The descriptor heap API is outlined by VK_EXT_descriptor_heap, for which Khronos has printed each a reference guide and utilization information. The EXT prefix signifies that the extension has obtained cross-vendor assist. Khronos is actively looking for suggestions concerning the present interface with the aim of refining it and selling it to a KHR-level extension.

NVIDIA drivers 610 and later present VK_EXT_descriptor_heap with assist extending to each tooling and code samples. NVIDIA Nsight Graphics 2026.2 introduces descriptor heap assist by the identical acquainted body seize and inspection workflow, to rapidly slim down descriptor-related points. The open supply descriptor_heap pattern utility is a useful start line to find out how the extension can be utilized in follow.

To attempt it, obtain the newest model of Nsight Graphics and look underneath Assist > Samples for the descriptor heap pattern. Be aware that this menu is simply accessible solely on Home windows. On Linux, you will have to obtain and construct the pattern.

A cube made up of colorful smaller cubes (left) with the embedded text “1296 textures; 1 draw call; 0 descriptor sets” (right).
A cube made up of colorful smaller cubes (left) with the embedded text “1296 textures; 1 draw call; 0 descriptor sets” (right).
Determine 1. The descriptor_heap pattern, drawing 6x6x6 cubes with per-face textures in a single name

What are the advantages of shifting from descriptor units to heaps?

Descriptors are vendor-specific bytes that describe sources similar to buffers and textures. For instance, a descriptor would possibly include a low-level pointer plus some metadata, however to the shader it’s merely an opaque chunk of reminiscence. The useful resource binding course of largely consists of managing descriptors and strategies of accessing them in each CPU and shader code.

Vulkan initially solely offered descriptor units, that are arrays of descriptors that may be composed and reused by totally different shaders. These require cumbersome descriptor set layouts, further grouping, and allocation by swimming pools. The VK_EXT_descriptor_buffer extension launched application-managed reminiscence for descriptors, however retained the set-based binding mannequin, layouts, and different required layers of infrastructure. 

In distinction, VK_EXT_descriptor_heap vastly simplifies the ideas to only user-written descriptors in a user-allocated “heap” of reminiscence (to not be confused with binary heap knowledge buildings). Just one heap of useful resource descriptors will be certain at a time, and the Vulkan documentation recommends that the identical heap be used all through the lifetime of the appliance as a result of binding a brand new heap can have important value and have an effect on efficiency. A separate heap is used particularly for samplers, following the identical pointers. Accessing descriptors within the shader will be completed utilizing quite a lot of strategies, described within the following sections.

In return for this flexibility, the appliance accepts the accountability of reminiscence allocation and format. The next offers a short introduction to the API, together with a comparability in opposition to descriptor units. For extra full particulars, see the Descriptor Heap Information.

Easy methods to use descriptor heaps 

Prepared to start out coding? To make use of descriptor heaps and supported tooling, you’ll need these variations of software program:

NVIDIA Driver 610 or later for every part described on this put up. Early entry to new driver-level descriptor heap updates could generally be accessible within the Vulkan developer beta driver.

Vulkan Headers 1.4.340 or later (included with the Vulkan SDK)

Nsight Graphics 2026.2

As with all Vulkan extension, the VK_EXT_descriptor_heap extension should be requested earlier than use. Add VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME and VkPhysicalDeviceDescriptorHeapFeaturesEXT to the VkDeviceCreateInfo extensions and pNext chain.

To make use of present shader code with none modifications, descriptors will be mapped to set and binding indices with VkShaderDescriptorSetAndBindingMappingInfoEXT when creating the shader. For particulars, see mapping the heap to present shaders. The next two examples are additionally demonstrated within the descriptor_heap pattern:

Push Index: With the mapping supply set to VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT, the descriptor location will get offset by a worth learn from the push fixed knowledge. This enables the appliance to pick out totally different ranges of descriptors per-draw, for a similar shader.

Fixed Offset: Less complicated but, VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT simply provides a continuing offset for the set/binding descriptor location. The shader could all the time entry the identical descriptor for that binding, or if the binding is an array or has a bindingCount, the shader can then select its personal index from the offset dynamically.

Descriptor setsDescriptor heapsvkCreateDescriptorPool vkAllocateDescriptorSetsVkBuffer with VkDeviceMemory certain and VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXTVkDescriptorSetLayoutBindingvkCreateDescriptorSetLayoutVkShaderDescriptorSetAndBindingMappingInfoEXTvkUpdateDescriptorSetsvkCmdPushDescriptorSetvkWriteResourceDescriptorsEXTvkCmdPushConstantsvkCmdPushDataEXTvkCmdBindDescriptorSetsvkCmdBindSamplerHeapEXTvkCmdBindResourceHeapEXT
Desk 1. Descriptor units (left) with their descriptor heap counterparts (proper)

Within the following GLSL and Slang shader examples, the entire heap has been mapped to bindings with a zero fixed offset. The shaders then successfully index descriptors within the heap globally. The applying mapping code specifies not simply the binding set and placement but in addition kind and stride element concerning the descriptors, which should be matched by the kinds certain within the corresponding shader code.

GLSL:

format(set = 0, binding = 0)
uniform texture2D heapImages[];

format(set = 0, binding = 1)
uniform sampler heapSamplers[];

format(push_constant)
uniform PushConstants {
uint textureIndex;
} push;

format(location = 0) in vec2 uv;
format(location = 0) out vec4 outColor;

void major
{
outColor = texture(
sampler2D(
heapTextures[nonuniformEXT(push.textureIndex)],
heapSamplers[0]),
uv);
}

Slang shading language:

[[vk::binding(0, 0)]] // (binding, set)
Texture2D heapImages[];

[[vk::binding(1, 0)]]
SamplerState heapSamplers[];

[[vk::push_constant]]
ConstantBuffer push;

[shader(“fragment”)]
float4 fragmentMain(float2 uv : TEXCOORD0) : SV_Target
{
return heapImages[NonUniformResourceIndex(push.textureIndex)].Pattern(
heapSamplers[0], uv);
}

This group could look acquainted, particularly for many who are used to D3D12 descriptor heaps:

Shaders can index descriptors dynamically

Indices are managed by the appliance

Heaps are globally certain state

Nonetheless, Vulkan differs from D3D12 in a number of methods, together with that the appliance chooses the precise reminiscence location for the heap, and that descriptors of various sorts will be totally different sizes.

Direct descriptor heap entry

Shaders can index descriptor arrays instantly from certain useful resource and sampler descriptor heaps as an alternative of mapping descriptors to set and binding indices. This strategy implies pointer aliasing, requires cautious indexing for legitimate entry and the VK_KHR_shader_untyped_pointers extension should be enabled. To be taught extra, see the untyped shader mannequin part of the Vulkan information. 

The descriptor_heap utility contains an instance utilizing untyped pointers and it additionally works with Nsight Graphics. This functionality is now accessible to attempt, however the function is new and nonetheless maturing throughout shader languages and toolchains. Keep tuned for updates.

Inspection and debugging

In Nsight Graphics 2026.2, descriptor heaps present up in the identical shader useful resource views builders already use to see descriptor units. In case you’re utilizing VkShaderDescriptorSetAndBindingMappingInfoEXT, solely the mapped descriptors are proven. 

For instance, see the six textures for one dice in Determine 2. To view the mapping values, click on on the pipeline or shader object linked within the API Inspector, and look within the Object Browser undercreateInfo > pNext > pMappings (Determine 3).

Screenshot of Nsight Graphics inspecting descriptor heap mapped images at the fragment shader stage.
Screenshot of Nsight Graphics inspecting descriptor heap mapped images at the fragment shader stage.
Determine 2. Nsight Graphics exhibiting six descriptor heap mapped photos whereas drawing a dice utilizing vkCmdDrawIndexed
Screenshot of Nsight Graphics Object Browser window inspecting a VkShaderExt create info and its descriptor heap mappings.
Screenshot of Nsight Graphics Object Browser window inspecting a VkShaderExt create info and its descriptor heap mappings.
Determine 3. Mappings will be inspected on VkShaderEXT objects (and Vulkan pipeline objects) within the Object Browser window in Nsight Graphics

Seize and replay of descriptor heaps in debugging instruments requires implementations to assist the system function VkPhysicalDeviceDescriptorHeapFeaturesEXT::descriptorHeapCaptureReplay. NVIDIA drivers have added assist for this function beginning with driver model 610.

If that is your first time working with Nsight Graphics, the method is to first create a seize after which examine it with the graphics debugger and dwell replay:

Click on Begin Exercise

Click on Launch Graphics Seize within the dialog window

Press F11 or click on the Seize button within the utility window to create a seize file, which accommodates all of the Vulkan API calls used to render a body

Terminate the app

Again in Nsight Graphics, it’s best to see the seize file doc. Within the doc tab, click on Begin Graphics Debugger

Within the toolbar on the high of the window, click on Begin Reside Replay

Discover home windows underneath Graphics Debugger. Isolate draw calls by typing “draw” into the Filter textual content field of the Occasions itemizing on the left. Then click on FS to examine the fragment shader API state

Get began with descriptor heaps

Descriptor heaps are prepared to make use of with NVIDIA drivers and developer instruments. One of the simplest ways to know descriptor heaps is to start out constructing with them.

Run and examine a pattern: The simplest approach is to run the pattern that comes with Nsight Graphics underneath Assist > Samples

Construct and debug domestically: Directions for constructing the descriptor_heap pattern are in its repository at https://github.com/nvpro-samples/vk_mini_samples/

Present suggestions: For Nsight Graphics points, use Assist > Ship Suggestions. For points with the vk_mini_samples implementation, open a GitHub subject. Suggestions on real-world use and adoption is appreciated and will be mentioned on the NVIDIA Developer Boards and posted within the Khronos Vulkan-Docs repository.

Be looking out for future updates as utilization patterns mature and shading language assist continues to evolve.



Source link

Tags: BindingDescriptorEndtoEndHeapsResourceStreamliningSupportVulkan
Previous Post

AI Framework Surfaces New CAR T Goal with Multi‑Most cancers Potential

Next Post

Run a vLLM Server on HF Jobs in One Command

Next Post
Run a vLLM Server on HF Jobs in One Command

Run a vLLM Server on HF Jobs in One Command

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Fetching latest news…
FUTURENEWS24
Live Feed
All
AI
Dev
Industry
Frontier
Updates in 60s
FN24 AI & Tech
View All →
Future News 24

The world's leading source for AI research, emerging technology, and the people building the future. Independent, rigorous, and always ahead.

CATEGORIES

  • AI Platforms & Apps
  • AI Research & Breakthroughs
  • BioTechnology
  • Data Science & MLOps
  • Decentralized Technology
  • Developer AI & Open-Source Ecosystem
  • Emerging Technologies & Innovations
  • Ethics & Policy
  • Industry & Business
  • Quantum Computing
  • Uncategorized

LATEST

  • [2602.13312] PeroMAS: A Multi-agent System of Perovskite Materials Discovery
  • GPT-6 Astra overview: code overview good points, privateness, and value
  • GPT-6 Astra: Options, Benchmarks, Pricing, and What’s New
  • About Us
  • Advertise with Us
  • Disclaimer
  • Privacy Policy
  • DMCA 
  • Cookie Policy
  • Terms and Conditions
  • Contact us

© 2026 Future News 24. All rights reserved.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Home
  • AI Research
  • Platforms
  • Ethics
  • Developer AI
  • Industry
  • Data Science
  • Emerging Tech
  • Quantum
  • BioTech
  • Decentralized

© 2026 Future News 24. All rights reserved.

Website security powered by MilesWeb