this post was submitted on 31 Oct 2024
46 points (100.0% liked)

Linux

48718 readers
1271 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Thanks to Valve's Linux graphics team, VK_EXT_device_generated_commands is now supported by the Radeon "RADV" Vulkan driver with the upcoming Mesa 24.3 release.

Prominent RADV developer Samuel Pitoiset at Valve has landed support for VK_EXT_device_generated_commands, the multi-vendor device generated commands "DGC" implementation. Last month with Vulkan 1.3.296 the VK_EXT_device_generated_commands extension was introduced to succeed NVIDIA's vendor-prefixed DGC extension. The device generated commands extension allows for the GPU device to generate a number of commands for command buffers. VK_EXT_device_generated_commands is a very big and important addition to the Vulkan API: Valve's Mike Blumenkrantz has argued that DGC is the biggest addition to Vulkan since ray-tracing.

you are viewing a single comment's thread
view the rest of the comments
[–] DaPorkchop_@lemmy.ml 4 points 1 month ago (1 children)

Traditional graphics code works by having the CPU generate a sequence of commands which are packed together and sent to the GPU to run. This extension let's you write code which runs on the GPU to generate commands, and then execute those same commands on the GPU without involving the CPU at all.

This is a super powerful feature which makes it possible to do things which simply weren't feasible in the traditional model. Vulkan improved on OpenGL by allowing people to build command buffers on multiple threads, and also re-use existing command buffers, but GPU pipelines are getting so wide that scenes containing many objects with different render settings are bottlenecked by the rate at which the CPU can prepare commands, not by GPU throughput. Letting the GPU generate its own commands means you can leverage the GPU's massive parallelism for the entire render process, and can also make render state changes much cheaper.

(For anyone familiar, this is basically a more fleshed out version of NVIDIA's proprietary NV_command_list extension for OpenGL, except that it's in Vulkan and standardized across all GPU drivers)

[–] hperrin@lemmy.world 1 points 1 month ago

Oh, that sounds really cool! Thank you for the explanation.