Georgi Mirazchiyski, Codeplay Developer Relations Engineer has posted a tutorial introducing the Curiously Recurring Template Pattern. Dynamic polymorphism is a widely used C++ feature that allows code to be more flexible, and helps create easily extendable interfaces by overriding the base class specified interfaces inside our derived classes. However, in SYCL kernel code in order to emulate dynamic polymorphism we need to use some curious tricks and techniques.
In 2016, the Uber Visualization team released an open source version of deck.gl and luma.gl, two Khronos Group WebGL™-powered frameworks for visualizing and exploring huge geospatial data sets on maps. Since then, the technology has flourished into a full-fledged suite of over a dozen open source WebGL and GPGPU data visualization libraries and tools, known collectively as vis.gl. loaders.gl, the newest addition to the vis.gl family, adds support for loading and rendering glTF™ assets across the tech stack. Read the blog for complete details.
Earlier today, Google and Binomial announced that they have partnered to open source a sophisticated texture compressor and a high-performance transcoder for Binomial’s cross-platform Basis Universal texture format. This format can help solve a long-standing problem in the 3D ecosystem: how can 3D textures assets be efficiently packaged or transmitted for an application in a way that is both compact AND can be efficiently processed by the wide diversity of GPU hardware texture engines - each of which has a preferred native format?
The recently formed Khronos OpenCL Tooling Subgroup has been focused on developing and enhancing open source tools and components, targeted at embedded systems and heterogeneous computation applications; the new tools and resources are available to the entire OpenCL ecosystem.
The Khronos OpenCL working group recently created a new Tooling Subgroup with the aim of improving the tools ecosystem for this widely-used open standard for heterogeneous computation—in particular, boosting the development of tooling components that can be shared by multiple vendors. Subgroup members have been meeting regularly to coordinate the overall direction for OpenCL tools, with an emphasis on strengthening the development of tools in open source, particularly by encouraging collaboration between the OpenCL and LLVM communities.
To jointly advance accessibility of 3D geospatial content, The Khronos Group recently formalized a liaison with the Open Geospatial Consortium (OGC). One of the first victories of this collaboration between the computer graphics and geospatial communities is a new OGC Community Standard addressing massive scale 3D pioneered by longtime Khronos contributors, the Cesium team. Learn more about the Liaison and new Standard in the Khronos blog post.
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.
The Khronos Safety Critical Advisory Forum (KSCAF) gathers safety critical experts from a wide range of disciplines, such as transportation and medical imaging, who have experience developing software and products to widely adopting standards. The goal of KSCAF is to develop guidelines and recommendations for engineers creating open standard APIs within Khronos, and elsewhere in the industry, so that those standards can help streamline the product safety certification process. The Forum’s chair looks back on a successful 2018, with plans to expand in the new year ahead.
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.
Rys Sommefeldt, who looks after the Game Engineering group in Europe which is part of the Radeon Technologies Group at AMD, has written a short blog on decoding radeon Vulkan versions. Rys writes “We have a practical problem that will be familiar to anyone in the midst of developing any complex packaged software: we need to ship multiple driver components developed at different cadences and in certain ways, all packaged together and distributed, to be installed as a unit.” Read on to learn about his solution.
The demand for 3D content is growing quickly across markets. New formats, applications, and tools are being developed to keep up with the demand . TurboSquid has been eagerly watching the development of the glTF 2.0 specification and has now added full support for the format for its StemCell initiative, which standardizes how 3D models are built and makes buying a 3D model as easy as buying a stock photo.
In April, Khronos introduced the Safety Critical Advisory Forum in response to developers’ growing concerns and demands of functional safety standards on hardware and software. The advice and support that the forum provides to Khronos Working Groups directly contributes to the creation of SC APIs. Members and non-members can contribute in the forum, this blog outlines the benefits of participation.
Arm Community blog has a new post on using compute post-processing in Vulkan on Mali. This blog post outlines how you can use two Vulkan queues with different priorities to enable optimal scheduling for compute post-processing workloads.
The Khronos™ OpenCL™ working group has today released a maintenance update to OpenCL 2.2 to consolidate numerous bug fixes and clarifications to make the specification more precisely defined and more easily understood. In this maintenance release, the OpenCL C specification has now also been put into open source.
Draco is a glTF extension for mesh compression along with an open-source library developed by Google to compress and decompress 3D meshes to significantly reduce the size of 3D content. Cesium has been collaborating with Khronos and Google to make Draco a glTF extension, and you can now load Draco compressed models and 3D tilesets in Cesium. Learn more about Draco, how it works and what it has to offer.