VkRunner is a tool written by Neil Roberts, inspired by shader_runner. VkRunner was the result of the Igalia work to enable ARB_gl_spirv extension for Intel’s i965 driver on Mesa, where there was a need to test driver’s code against a good number of shaders to be sure that it was fine. Neil has written a blog post with example code on how to use VkRunner.
If you are attending GDC 2019, be sure to mark March 19th in your calendar. Khronos will be hosting the annual Developer Day sessions in the Moscone West, Room 2020 from 10am to 6:30PM. This year there will be six (6) sessions covering glTF, WebGL, OpenXR, Vulkan and OpenGL ES. There will also be an OpenXR table at VRDC where you can learn more about OpenXR, talk with OpenXR working group members, and learn how your company can implement or join in the development of this important industry standard. The Khronos Group is once again sponsoring the WebGL/WebVR Meetup. Last year we had over 200 RSVPs and an amazing lineup of speakers. Join Khronos member Patrick Cozzi (Cesium) and other speakers for this gathering of the Silicon Valley WebGL/WebVR meetup group.
Wine 4.0 is released bringing initial Vulkan graphics API support, Direct3D CSMT is enabled by default, early Direct3D 12 support via VKD3D, continued HiDPI work, various OpenGL improvements, and more. There is a very brief but official announcement on the Wine News feed.
The Khronos Group is running a survey on Vulkan learning materials and general education. Feedback will be used to guide our future planning in this area as we look to improve our resources. Take this opportunity to share your thoughts with us, it will effect the future of the Vulkan education and the findings will be presented to the Vulkan Working Group.
Diligent Engine is a modern cross-platform abstraction layer for Vulkan, OpenGL, OpenGL ES, Direct3D11 and Direct3D12. In the latest release, Diligent Engine added support for Vulkan on MacOS, enabled by MoltenVK.
Yesterday AMD developers did their first AMDVLK open-source push of 2019. That first update in nearly a month updated against the Vulkan 1.1.96 headers, added GPU memory references to software compositing images, clean-ups for the barrier handling, various PAL and LLPC fixes, and other changes. Based upon that source code state from yesterday, an Ubuntu Debian package is now available of just the Vulkan driver and validated for at least 16.04/18.04 installations but should end up working too for e.g. 18.10. Read the entire story on Phoronix.
Just in time for CES, Vulkan 1.1.97 has been released with 5 new extensions along with a handful of fixes internal and publicly raised issues. The new extensions in this update are: VK_KHR_depth_stencil_resolve, VK_EXT_buffer_device_address, VK_EXT_memory_budget, VK_EXT_memory_priority and VK_EXT_validation_features. Read the Change log for a complete list of changes.
In the latest version of the Nsight Graphics debugger tool, the Pixel History feature now supports the Vulkan API. Pixel History is key to understanding how a particular pixel changed throughout the creation of a frame. This feature gives you the ability to inspect the pixel’s color at each revision, how many samples passed or failed, the failure reason if it failed, and the associated event. You can find out more information about Pixel History in this Pixel History Spotlight!
Also, we have added support for another Vulkan Extension to the list: Vulkan Meshlets (VK_NV_mesh_shader)! You can now profile, debug, and create a C++ Capture of Vulkan applications that utilize mesh shaders and meshlets. A full list of supported Vulkan Extensions can be found in our documentation.
Vulkan Memory Allocator (VMA) is AMDs single-header STB-like library for easily and efficiently managing memory allocation for your Vulkan games and applications. The last three months of VMA development since the release of v2.1 have mostly focused on significantly improving and fleshing out the memory defragmentation support, adding support for sparse binding, and making sure the library had a rich and robust set of allocation strategies for games and other Vulkan applications to use. For all the details, read the GPU Open blog.
AMD released three updates this week with Vulkan improvements: The 18.12.2 Radeon driver, Vulkan Memory allocator and the AMDVLK open-source Vulkan driver. The AMDVLK 2018.Q4.4 update enables some additional features to allow up to 5% performance gains for tessellation workloads, enables the atomic optimizer, updates the Vulkan headers against v1.1.94, enables primitive under estimation for VK_EXT_conservative_rasterization, and has a number of fixes. The Vulkan Memory allocator sees many major changes including the addition of structure member VmaVulkanFunctions::vkCmdCopyBuffer. And finally the Radeon Software Adrenalin 2019 Edition 18.12.2 sees improved Vulkan support with 3 new extensions: VK_EXT_inline_uniform_block, VK_KHR_swapchain_mutable_format, VK_EXT_scalar_block_layout. Additionally Sparse Support is enabled.
The Khronos Group OpenCL API is a SIMD programming model which maps well to the GPU but mostly bypass the fixed graphics-specific logic. The latest Radeon GPU Profiler 1.4 (RGP) now has the ability to profile OpenCL workloads in RGP. Most of the major RGP features that you’re used to using for profiling graphics workloads generated by Vulkan and DirectX 12 are there when profiling OpenCL applications, including the workload and barrier overviews.
This Rust crate by @gwihlidal, a Senior Rendering Engineer II at Electronic Arts (EA), provides an FFI layer and idiomatic rust wrappers for the AMD Vulkan Memory Allocator (VMA) C/C++ library. Designed to help game developers to manage memory allocations and resource creation by offering some higher-level functions. vk-mem is Cross-platform: Windows, Linux and macOS (MoltenVK).
New post on Gamasutra, "Explicit resource state management and synchronization is one of the main advantages and main challenges that modern graphics APIs such as Direct3D12 and Vulkan offer application developers. It makes parallel command recording very efficient, but getting state management right is a challenging problem. This article explains why explicit state management is important and introduces a solution implemented in Diligent Engine, a modern cross-platform low-level graphics library."
In a recent update, Diligent Engine now gives applications direct control of state transitions in Vulkan API and DirectX12. Diligent Engine includes support for Vulkan and OpenGL 4.2 on Win32 and Linux, as well as OpenGL ES 3.0 on iOS and OpenGL 4.1 on macOS.
Students of Patrick Cozzi, glTF Working Group Chair, in the GPU course at University of Pennsylvania will be live streamed Monday, December 10, at 6pm EST. The students have built final projects with everything from WebGL to Vulkan to CUDA to DXR - ranging from photon mappers to water sims to feature detection algorithms. Many of the projects use glTF for models.