Effective GPU performance analysis is a more complex proposition for developers today than it ever has been, especially given developments in how you drive the GPU in the last few years. Enter the brand new cross-platform performance analysis tool: Radeon GPU Profiler (RGP). We created it to give developers a way to understand concurrent overlapped execution on Radeon GPUs in a way that’s simple and actionable in terms of further optimisation and what you need to do next. Learn more about this GPU Profiler.
Researchers at CMU and NVIDIA have developed an open source shading language and compiler framework named Spire enhanced to support shader components for high-performance rendering. The Spire compiler can generate either GLSL or SPIR-V output for use with OpenGL and Vulkan based engines. The work interfaces with a modernmini 3D engine that supports equivalent back-ends for both OpenGL and Vulkan. The researchers will present this year’s work at SIGGRAPH next week which builds on a paper from last year’s SIGGRAPH.
With help from Khronos member Collabora, employee Alexandros Frantzis created vkmark, which aims to provide an extensible suite of targeted, configurable benchmarking scenes for Vulkan. Most scenes exercise specific Vulkan features or usage patterns (e.g., desktop 2.5D scenarios), although we are also happy to have more complex, visually intriguing scenes. vkmark Vulkan benchmark is available on GitHub.
One of the key differences between OpenGL and Vulkan -and something that needs careful consideration when porting to Vulkan, is the coordinate system. Vulkan requires the right hand NDC space compared to GL that requires the left hand. Learn about the KHR_VK_maintainance1 extension and see how AnKi is flipping the viewport.
Stephanie Hurlburt, one founder of Khronos member Binomial recently put out a call for beginner-friendly ways to learn Vulkan. The result is a nicely curated list of Vulkan Tutorials that one can call beginner level. Read more about Stephanie's thoughts on learning Vulkan, and then dive in yourself.
LunarG has released an update to their SDK for Vulkan 220.127.116.11. Lots of changes include new groups of extension functionality: external fence extensions, external semaphore extensions, external memory extensions, storage memory extensions and additional vendor and cross-vendor extensions. Learn more about the LunarG Vulkan SDK.
In collaboration with Google, Codeplay is proud to announce the release of a new open-source tool allowing the compilation of OpenCL C language kernels to run on the Vulkan API. The tool, named 'clspv', allows a subset of the OpenCL C language to be targeted at the Vulkan API. This tool allows developers to port code containing more than a million lines of OpenCL C to run on the Vulkan API. The source is available on Github.
The Vulkan working group has released a major Vulkan 1.0 specification update that adds eighteen new KHR extensions. They include KHR replacements for the experimental KHX_external_memory_* and KHX_external_semaphore_* extensions released earlier this year, incorporating changes based on developer and implementer feedback. The release also adds a set of KHR_external_fence_* extensions. Together, these extensions allow applications to share memory and synchronization primitives across process and API boundaries. Two new extensions, KHR_dedicated_allocation and KHR_get_memory_requirements2, provide more expressive and extensible ways for applications to optimize their GPU memory allocation policies. KHR_16bit_storage, KHR_storage_buffer_storage_class, and KHR_variable_pointer allow Vulkan implementations to accept shader programs containing new programming constructs recently added to the SPIR-V intermediate shading language.
Vulkan 1.0.53 does have a number of document clarifications and fixes, but most exciting is a handful of new extensions. The new ones to Vulkan 1.0.53 are VK_AMD_gpu_shader_int16, VK_EXT_blend_operation_advanced, VK_EXT_sampler_filter_minmax, and VK_NV_framebuffer_mixed_samples. Read more about this update from Phoronix, or hop on over to the Vulkan Change Log for more details on this update.
AMD's GPUOpen initiative has posted a number of Vulkan open-source projects over time, with their latest open-source project is a Vulkan Memory Allocator. The VulkanMemoryAllocator is designed as a "easy to integrate Vulkan memory allocation library." Learn more about this project on Phoronix.
Duskborn Labs has just released part II of their OpenCL to Vulkan porting guide. Part I covers cl_platform_id -> VkInstance, cl_device_id -> VkPhysicalDevice and cl_context -> VkDevice. Part II covers porting from OpenCL’s cl_command_queue to Vulkan’s VkQueue.
Vulkan render pass Multipass optimization has been implemented on ARM Mali to improve deferred shading in Vulkan. The video showcases a 20% reduction in frame time compared to the classic Vulkan Multiple Render Targets implementation.