Khronos Frequently Asked Questions

Vulkan

Does Vulkan offer anything to an application model that is limited to a single thread?

You should not underestimate the impact of the fact that once your application is debugged, the driver has no native checking. The only validation it does is that it absolutely does, has to do to pass, to pack driver structured ... data structures. The other is that because it strongly encourages/requires you to build things ahead of time, the driver doesn’t have to make guesses about your intent at one time. That also has a huge impact, because the driver is doing much less dynamic resource tracking and checking. You will still get a significant improvement in performance, unless you are GPU limited already. In OpenGL, something might happen deferred and it surprises you, so Vulkan improves on that. That’s really important for real-world applications. In the OpenGL development cycle, time is spent on dealing with driver variation, and with hitching, and just quirks of individual drivers, and if Vulkan smooths over a lot of that, which we hope and expect it to, then in the long-term Vulkan can actually be a more productive API to develop on than OpenGL. Kind of for initially writing or reporting an application, there is more code to write for Vulkan than for OpenGL, but in terms of a big application, the overall effort could still be less for Vulkan.

Does Vulkan use hardware-specific extensions?

Yes, and that’s important because that’s one of the innovation factors. It lets people experiment quickly at their own pace.

What are some of the reasons behind making the WSI KHR extensions?

We are very aware of the interface problems that were created between the OpenGL family APIs and platform APIs due to the fact that we delegated windows system integration to external forces. We made a conscious decision in Vulkan that we would bring these things to the surface so the Vulkan loader is very visible and explicit and endorsed by the whole working group. Our hope is that by claiming explicity that solving platform integration is part of our problem which we have to solve, as opposed to OpenGL which says it’s someone else’s problem. We have presented the best solution that we are aware of based on variations of the kinds of things people have done with OpenGL in the past. if you’re not happy with it, we have projects on Github that we encourage you to post issues to and complain about things that dont work. Point out issues and we will do our best to address them over time.

Would Vulkan be directed towards web rendering and have bindings for JS etc?

We are not aware of any particular deep interest in developing direct Vulkan bindings from Javascript. There is no barrier to it, we certinaly wont stop it, but Khronos is not working on it. Also, it is considered in the design of Vulkan that not so much Javascript bindings, but more the question of the WebGL working group, many of whose members are also in Vulkan’s, we did consider the needs of a broswer. One of the features of Vulkan is that support for optium robustness is a required feature, all implementations must support it and that is there specifcally to support among other things, writing Vulkan back-ends to browser for any 3D API such 3.js or WebGL.

What about Vulkan enables good performance on mobile GPUs as well as the desktop?

Vulkan is unique among modern APIs in terms of treating mobile and desktop equally. It is possible to write paths in a Vulkan application which will suffer no penalty on a desktop architecture but will equally exploit all the capabilities which are offered by a mobile architecture. This is primarily through the render paths and the command buffer structure of the API.

Can 2D graphics be done in Vulkan?

Vulkan is a very low-level API. If your GPU is capable of it, you can draw with it. At the moment it exposes pretty much the set of primitives that core OpenGL does, so if you’re talking about drawing lines and screen-line, co-ads, and things like that, sure. If IHVs have support for real, actual hardware that accelerates 2D better than you could do it with a 3D engine, then I’m sure those things will probably show up as extensions, and I expect on not too distant future.

Does Vulkan support multiple GPUs? Is there any native Vulkan support for multiple GPU acceleration?

There is no multi GPU support in version 1.0. That was unfortunately a feature we had to cut in order to preserve our schedule. We do expect it to be near the top of the list for stuff we address in Vulkan 1.1. It is perfectly possible for a Vulkan implementation to expose multiple GPUs. What we cannot currently do is allow resource sharing between them. So from a point of view of, for example, a windows system manager, its perfectly possible to recognise that I have multiple ways to render to a surface and then can use operating system hooks to transfer that to the screen. What we don’t have is the ability to share a texture or a render target between multiple GPUs. We expect to add that in the next version, it’s a high priority but we don’t have that today.

Talk about WebGL and Vulkan.

The WebGL working group is beginning to think what Vulkan impact is going to be. There’s no decisions yet, but the current discussions are heading in a direction that WebGL would begin to absorb some of the Vulkan functionality where it becomes appropriate for the web and that functionality becomes pervasively available. So WebGL has an interesting place in ecosystems because it has to run everywhere and on multiple platforms. So if Vulkan isnt there, we have to be sure that WebGL can still run on that platform. But that’s not a totally new problem for WebGL, because there are angles where you can run WebGL, over DirectX as well as OpenGL, so there are similar kinds of solutions that will enable us over time to help WebGL take advantage of Vulkan functionality without losing backwards compatibility. There are no decisions yet, but it is an active discussion inside the WebGL working group.

Will Vulkan extensions that get used a lot eventually get added into core vulkan?

The Vulkan working group is very interested in your input. If you see an extension that is of intense interest, giving us notice on our public Github platform is a good way to show your interest. Its very early days, the specs have only been out a week. the short answer is yes, the long answer is yes but please give us more input about what you need. We’ll prototype a new hardware functionality as extensions and absorb it over time.

What antialiasing modes are available?

The Vulkan header file defines multi-sampling modes. Multi-sampling is the basic answer, We have multi-sampling modes up to 64x but we have not defined sampling patterns for 64. We do not have anything comparable to TIR in the Windows space. That would be for a future version. We are considering those options but we haven’t done anything for that yet. Multi sampling is the basic mode. We do not have super sampling formally supported, but we have per-sample shading which is similar. So the Vulkan spec allows implementors to expose multi sampling and super sampling directly. We require every implementation to support 4x multi sampling. I’m not sure what other requirements we impose and we don’t have anything more complex that that at this time

What is Vulkan's performance with ray tracing and other needs in CGI film-making?

The fundamental pipeline model underlying Vulkan is essentially exactly the OpenGL model. Anything you do through the rasterization side is traditional rasterization. You certainly can use the compute shader capability to write a ray tracer just as you could have done with compute shaders in GL. Maybe Apple has a little more flexibility, but there’s no explicit support.

How much platform-dependent code is needed to write a Vulkan application?

The core Vulkan specification has no platform dependencies whatsoever. We have brought Windows system integration closer to the core in the sense that windows system integration is now a core extension rather than a separate API. The WS,I for instance, on Windows vs. Linux is mostly the same extension. There would be some difference there, but a lot would be the same calls.

How does the Vulkan loader detect vendor drivers in a Linux system?

On Linux, the loader detects the drivers via a JSON file that’s installed in some system communications. The JSON file indicates where the actual driver library is. There are also some environment variable overrides that you can use to point to a different location rather than a system location.

Can Vulkan be used for headless rendering? Does Vulkan support stereoscopic rendering?

Multi view is on the agenda for future work, which would include stereoscopic as an important special case. Headless rendering, definitely. Vulkan natively doesn’t even have WSI built into it: that’s an extension. We’re talking about how the integration with the Window system is much cleaner with Vulkan than OpenGL, it’s just that there’s thee two aspects, the WSI extension incident. Ask the question of us asking, “If you don’t need to render anything, then you don’t have to concern yourself about getting a display service in your context.” It’s much better partitioned and if you do use the WSI extension, the swap buffer architecture there is mostly low-level and explicit, just like the rest of Vulkan. It’s a cleaner and more flexible Windows system integration. That’s common.

Is a shader debugging tool for Vulkan available?

If you look out in the web, you’ll see there are people working on a shader debugger. The problem, of course, is thst the holy grail of symbolic debugging of shaders in high-level language is unsolved in OpenGL, and it’s going to continue to be very difficult, perhaps even more difficult in the new world, where the high-level language compiler is further decoupled from the driver. There are obviously debugging features in the LunarG SDK and in the layers, but they are more at the level similar to the debug functionality that you get with debug expansions and OpenGL. In terms of a traditional, symbolic debugger such as what you might use with a C++ or C program, the Vulkan working group is not working on any such thing. Such a tool would require very close cooperation with from a hardware vendor. We don’t intend to do it but some hardware vendors may provide that capability. There are excellent debugging capabilities provided by tools such as the LunarG SDK and we look forward to other products from the community. In particular, the vendor doc that is included in the SDK would be the best tool currently available for it.

What is the desktop GPU's hardware support for render passes (considering DX12 doesn't have this con

During development we were a bit concerned about whether desktop GPUs would make use of them on desktop GPUs. During the implementation of our drivers, I realized that there are a few optimizations that we can make, a given knowledge of the structure of the frame, so ... it is a feature that was strongly requested by our mobile members, but I think that if you used them wisely, then there are certainly things there that desktop GPUs can take advantage of. It’s not a mobile-only feature. There is opportunity there for desktop as well.

I understand the benefit of command creation on multiple threads. Is there any benefit to having command submission on multiple threads? Or will a typical program still use the main thread to do submission?

If you have multiple cues, I think it might make sense to submit work to each of the cues from different threads. The cues themselves, you would need to serialize on a single cue, so if you had multiple threads submitting to a single cue, you could do it if it’s convenient in your app. If you just have multiple threads that you want to submit, obviously the synchronization is your problem. There’s probably no real benefit to doing that at all. It’s a design intent of Vulkan that submit is supposed to be very cheap. The heavy lifting is supposed to be done at command buffer construction time, so the expected model for a given render target is to mult thread the command buffer construction like crazy, but then if you marshal all of those and have a single thread submit them, that’s not going to hurt you. It’s not going to be the top pull. Also, If an application remains single threaded, you can still expect CPU performance improvements and the stuttering improvements and so on that Vulkan offers, so going multi thread it is not a requirement to reap the benefits of Vulkan.

Will the upcoming Vulkan Programming Guide be more of a reference or a tutorial?

One observation about Vulkan is that you can use it in a wide variety of ways. We are concerned that it may be used incorrectly by developers who are used to an API that is more normative and gives you more advice about how to use it. So the intent of the programmer’s guide is to identify best practices. For example, Vulkan places responsibiltiy for memory allocation in the hands of the application for the most part. We’re somewhat afraid that many developers will be tempted to say, “I need to make a texture so I will create a texture and then I will allocate some memory and then I will attach the memory to the texture.” We intend a much richer and more complex interaction. For example, we might expect an application to make a small number of large memory allocations and to suballocate memory for that individual object. That is exactly what an OpenGL driver does when you use it. in the case of Vulkan, we expect the application to do that work because we think the application has more information about what’s appropriate.

Why the name Vulkan instead of nextGL? Just curious.

This was in part due to the fact that Vulkan is a different API and has no backwards compatiblity with existing GL applications, which the name GLnext/nextGL may imply.

When I heard of Vulkan I thought of Spock. Why Vulkan?

Vulkan was originally based off of a now defunct AMD graphics API called Mantle (named after the layer in the Earth’s crust).  The logo of Mantle was an errupting volcano.  Vulkan is named after the Roman god of the same name who was thought to be responsible for volcanos.

How can Vulkan be used to create web appliations? Will there be a WebVulkan?

Probably not. We don’t need it. The key of Web GL is to take pervasively available hardware capabilities from the native APIs, and to package it up through the web browser, so content could be genuinely executed with no source changes everywhere. This means that with Mantle, not supporting Apple, and probably not Vulkan, at least in the foreseeable future. As Web GL evolves, it’s going to very carefully depict the functionality that could be supported on every platform. I think there is a lot of functionality that pulls into that category, if you’re into Vulkan and the other new generation APIs, but the mission of Web GL is to follow all of that available functionality that’s available everywhere, and put it into the Web GL API evolve it with backwards compatibility. That’s currently the best, the essence of all road map for Web GL. If you’re creating a web application in 3D, use WebGL. It’s native into ... In the browsers. You don’t need to plug in. I don’t think that will be about Vulkan, but Web GL will over time integrate next generation API capabilities as they become pervasively available. The other possibility that’s worth bearing in mind is that we did consider the needs of the Web GL implementation teams as far as using Vulkan as a back-end for a Web GL implementation in a browser plug-in. It’s got the robustness available. That’s a required feature of Vulkan 1.0. It is not at all unlikely that we might see a Web GL implementations over time migrate toward targeting Vulkan just as today Web GL on Windows often targets Direct-X rather than OpenGL.

How exactly is a conformance test run?

That’s an interesting side effect of the way that we’re doing conformance, which is quite different from the traditional OpenGL way of doing it. We do not have a mechanism for removing conformance certification from a device, and the rule is if you have in good faith designed a device to pass conformance, then you get to call yourself conformant. One of the reasons we’re excited about having the conformance test out in public, though, is that as it evolves, community members can run it. They can ... I don’t want to say name and shame, but they can name and perhaps register issues. We hope that will have multiple good effects. One is it will encourage all implementers to be much more aggressive about updating, so that they maintain conformance, and that conformance is visible to the community. The other, of course, is that the conformance tests can evolve more rapidly, and just make the API more reliable.

Is Nvidia going to add Vulkan driver support for: GeForce 500 and 800 series GPUs, Fermi, GRID SDK, Jetson TK1, NSight, GTX480

We’re currently not planning to support Vulkan on [???]Class GPUs, though it’s not an engineering issue: it’s an install based issue. So if that causes you pain, please consult your local Nvidia representative now.

I see NVIDIA has started a C++ interface to Vulkan which is C. Is this intended to be a standard for Vulkan C++ developers?

This is something that some folks from Nvidia have put out there and I dont know if it’s the first, but im sure it wont be the last.We all hope to see lots of these ecosystem contributions showing up soon. The Vulkan working group has tried very hard not to be too ambitious and not to claim any of the high level space. Compare that to the OpenGL space where the driver ranges from very close to the hardware up to a quite high level of abstraction. In Vulkan, we’re doing our best not to dictate those solutions to the community but to let the community decide what it needs and tell us. The Nvidia project is a great example of the kinds of things we encourage everyone to try. its not an official khronos project, if it turns out to be widely adopted and widely used, we will do our best to support it. if you have other ideas for the right way to integrate C++ shaders or C++ bindings for the APIs we look forward to your contributions and encourage them. This is the kind of thing that we would hope to see from the community at large—that the people find, or people create these layers that they believe will be good for developer productivity and make them open sourced and get contributions from the community and just really see what takes off.

Will Vulkan have an interoperability with CUDA?

Vulkan have an interoperability with CUDA will likely happen eventually, but I don’t think Nvidia has something in the works in the short-term.

Is there an ETA for AMD to pass conformance tests and share proper drivers?

The driver AMD posted today [Feb 18, 2016] is beta and has not passed the conformance test yet. We have a few things tried out. It’s literally in our internal drivers and down to a single digit number of issues out of somewhere in the region of 40,000 tests in the suite. We’re preparing our logs, and our first non-beta driver with a WHQL test, then we’ll be conformant, or at least have the logs posted and be waiting the committee’s decision.

Are there solution or cmake files for building the source for Visual Studio and/or other compilers?

CMake.  On Windows, the only officially supported compiler at this time is Visual Studio 2013 (although Visual Studio

Is SLI supported?

There’s no direct support for SLI or alternate frame rendering the API currently that we’re aware of. Multi-GPU support of many kinds is a very high priority, we’re very aware of the lack in Vulkan 1.0. It will require either a large extensions or a new version to address properly, we are very aware of the need and we are very interested in solving it.

Will the raspberry pi 2 have Vulkan support? Or the next Pi?

Broadcom is a Khronos member and an active participant in the Vulkan working group, but the Raspberry Pi Foundation itself is not. Our old friend Esben, who is the Godfather of Raspberry Pi was a member of the working group, back in the day, but we haven’t heard from him for a while in an official capacity. We do expect Vulkan to appear in quite small embedded systems in general, so it’s certainly possible. Vulkan support is equivalent to OpenGL ES 3.1, so any hardware that supports that should be capable of supporting Vulkan. Current shipping versions of Rasberry Pi are not ES3.1 capable, but as Broadcom is deeply involved and their GPU driver engineers are involved. They are very aware of the Vulkan spec and they have approved it.

I don't see Microsoft involved, does that mean that will oppose it or at least persist with Direct3D? Will it even run on Windows?

Microsoft has not expressed any intent to support Vulkan any more than they have had token support of OpenGL over the past few years. There are well defined mechanisms by which IHVs can ship a Vulkan driver on any version of Windows. There’s a loader that works on any version of Windows. But it will be as it is the case now with OpenGL: it will be up to an application that is installed that requires Vulkan to negotiate with the implementation to install an appropriate Vulkan driver for the hardware that is on the machine. Vendors are enabled to ship drivers for whichever API they wish and Vulkan drivers are already shipping from multiple hardware vendors for multiple versions of Windows. Right now, we have Windows out there from the hardware vendors, everything from windows 7 up to windows 10. So even in the Windows ecosystem, Vulkan is available on all versions of Windows on DirectX12, so there is potentially some value to the developer community to having a single API that spans multiple Windows versions.

Could Vulkan be used with Java in the future?

There is no barrier to it. We find a C language binding and anyone is welcome to create bindings from that to other languages. That’s happened quite a lot with OpenCL, and so if history is a guide then that is probably likely to happen. even using Java as a shading language, a kernal language in OpenCL’s case, a Java-to-SPIR-V compiler, there are actually open source examples already. This is the first time that any of the OpenGL family of langues have ever attempted to present specifications or large software components as projects. Vulkan has been available at Github for one week and we have currently received over 60 corrections to the specification and corrections to the conformance test from the community. We are extremely excited about that, we are doing everything we can to be responsive and we encourage developers to use Vulkan to use that opportunity. We pledge that we will give it our full attention and we will address your needs.

Is an official HLSL -> SPIR-V translator planned?

The working group does not have any high-level language projects under development, except for ongoing support of the GLSlang Compiler. We are aware of people in the community, of course, who have pretty large tool chains around HLSL, and we expect those things to show up. It probably won’t come through Khronos.

Does Khronos have any CAD-oriented partners who are going to adopt Vulkan for their applications?

There’s quite a lot of interest in the professional design community in Vulkan. We talk a lot about games, but Vulkan of course is not designed just for games. Any application that is CPU bound can benefit from Vulkan. For example, a high-end CAD application with a model with hundreds of millions of polygons, very often is CPU-bound and Vulkan can help there. But of course the dynamics in the professional industry are different. In the professional authoring industry, there’s a lot more legacy code and that’s why it’s important that OpenGL is not going away, so the professional applications will not be left stranded. But if they want to migrate to Vulkan to take advantage of things like the multi-threading for large model interactivity, that is the kind of application that Vulkan is designed to enable.

How is Vulkan similar to Mantle -- what are the differences?

The impact of AMD’s stepping forward and providing Mantle as a place to start was huge for the Vulkan working group. We probably would not be where we are today without them and we take off our hats to them (and their lawyers) for being willing to make that happen. The original proposal for Vulkan was basically a cleaned-up version of Mantle. AMD got the conversation really going, but over an 18-month period there have been contributions from a lot of the other members at Khronos as well. Some were small tweaks, and some really major features: render pass was never in Mantle, for example, yet it’s a core part of Vulkan now. So tthere’s an obvious heritage there, and if you have an experience with Mantle, I don’t think you would have any trouble at all moving to Vulkan. Some of the API names are the same, and it’s lived on there, but it is a significant update. There are some very significant differences and enhancements, and it’s cross-vendor, cross-platform, so ... I think we’ve landed in a really good place. Overall Vulkan is truly a better API.

With OpenGL, we had helper APIs like GLUT, then FREEGLUT, and GLEW. Is the Lunar SDK intended to serve as that common front end for OS dependencies, or what?

The LunarG SDK provides the critical and canonical Vulkan API Loader and Validation Layers. In addition, it provides sample code as examples, and other tools such as RenderDoc, vktrace/vkreplay. For more information about what is in the SDK, you can download it for free from vulkan.lunarg.com. You can also see an overview at Lunarg.com/vulkan-sdk

Will there be a "quick reference" PDF for the LunarG API? I love those things :-)

LunarG API? Unclear what this means. At LunarXchange (vulkan.lunarg.com) you can get access to getting started with the SDK and related Vulkan documentation.

Will the LunarG SDK have installable packages for Ubuntu LTS Releases? (Example is Ubuntu 14.04 LTS, and eventually Ubuntu 16.04 LTS releases)

The LunarG SDK currently supports Ubuntu versions 14.04 and 15.10. This means the SDK has been validated on those distributions.

What is the relationship of LunarG to Khronos?

LunarG is an independent software company being sponsored by Valve to help build out the Ecosystem for the Vulkan API. Hence LunarG is a Valve representative in the Khronos Vulkan Working Group.

I'm using Ubuntu with Intel GPU. Which LunarG SDK or Intel Mesa driver should I use?

The LunarG SDK supports Ubuntu versions 14.04 and 15.10. You should be able to use any AMD, Nvidia, or Intel driver that supports Vulkan.

I noticed out-of-the-box the samples in LunarG SDK do not run (Samples can't find the driver).

Most likely you did not have a driver installed on your system that supported Vulkan.

If you are mixing the use of Vulkan and OpenGL within an application, I assume the debug and validation tools in LunarG only give you information from the Vulkan API and layers?

Yes. The LunarG SDK is for the Vulkan API only.

Do any of the current SDKs include a Vulkan emulator?

Not that we are aware of.

Is Vulkan intended to be used with specific SDKs only ? Can it be used without the Vulkan SDK from LunarG?

If individuals don’t want to use the SDK, they could go find the different elements, which are open source and free from multiple repositories, then build it in and compile it together. Bringing it together in one place, binaries already built, and providing a forum where questions can be asked is the benefit of getting the SDK from vulkan.lunarg.com.

Does the SPIR-V specification guarantee that precompiled SPIR-V objecst will run on all Vulkan targets, regardless of the hardware vendor without having to tweak shaders for each HW platform they are targeting?

That is our most profound hope, for the SPIR-V and Vulkan relationship. we are very aware of the pain that the compiler differences have caused in the OpenGL and OpenGL ES environment. We’ve written the most rigorous specification we know how to write for SPIR-V, and we ask that you report any issues. The one caveat is that Vulkan does not specify error behaviour. if you write a SPIR-V shader which does not follow the SPIR-V specification, we are not responsible for what different implementations may do with it. We do provide a SPIR-V validator and if your SPIR-V passes that validator and behaves differently on different implementations we want to know about it. We will conformance test it and we will fix it. There are capabilities in SPIR-V which are basically feature capability support bits, and so if you have a shader which works on one implementation that supports some capabilities and you run it on an implementation which does not support those capabilities, then obviously, that’s not going to work. But otherwise we do sincerely hope that things are portable and that there are less implementation variation in SPIR-V consumers than there has been in GSL compilers.

Will there be a SPIR-V layer to allow running DirectX over Vulkan?

That is certainly a technical possibility. The issue there would be to translate Direct-X shade of code that is post-compiled code into SPIR-V for consumption. The other option of course is to compile direct form the HLSL, if that’s how you’re generating your binary blobs, which I think would be typical in the more modern Direct-X APIs. Either path will work. Khronos isn’t planning to do that work, but if that is the best path for your engine, we hope you’ve got all the tools, and if not, let us know.

Isn't glslang an official GLSL to SPIR-V compiler?

GLSlang is what we are all using and are hoping will be the standard, although the community is of course welcome to build on that. It’s an open source project, and it implements the new version of GLSL that supports the Vulkan features. Under the GitHub Khronos group folder, there is a GLSlang repository. It’s the official reference Khronos validation layer to validate that the GLSL you’re using to conforms to the specification. That has on it an example translator from GLSL to SPIR-V. Right now it’s probably abut 90% complete. The push constants and descriptor sets and input passers, a few things like that are new to Vulkan, and there are some features present that are not in Vulkan and that GLSL won’t support when you’re compiling for Vulkan. That tool is available. You can translate or modify it for Vulkan GLSL into SPIR-V. Then send that into the drivers for the different platform. Everybody is welcome to contribute to that project. The lead author og GLSLang, John Kesinich, is an active member of the working group and he is also the editor of the GLSL specification. We endorse his compiler. We don’t guarantee that it is bug free, but we do guarantee that we will expend effort to fix it if there are issues. You are certainly allowed to create your own GLSL/SPIR-V compiler, but we would rather fix the bugs in ours if you’re aware of any.

Will GLSL be the standard shading language for Vulkan?

Vulkan contains no normative reference to any high level language specification. The only thing that a Vulkan implementation requires is the ability to accept shaders in the SPIR-V format. We have defined for the convenience of the developers, an extension to GLSL to allow it to generate Vulkan compatible SPIR-V (9:40) but we pose no barrier, we intend to encourage other mechanisms of generating valid SPIR-V. The SDK is a set of tools which you can use to validate whether a SPIR-V program is legal for Vulkan and should be accepted by a Vulkan implementation. We strongly encourage developers to develop their own language ports or their own tools such as graphic tools, graphical tools such as the SDK to generate languages using other high level formalisms.

Can OpenGL functions be used with the Vulkan API?

The short answer is no. For all the hidden state that is being carried around by OpenGL implementations to interact with the very explicit exposed ... to Vulkan is a pretty normally technical problem.There is an Nvidia extension to allow that. My guess is that it would have to be fairly hands-off, and UP explicitly passing surfaces between one side and the other, and otherwise maintaining them as pretty independent entities.—I think the question is could you use GL and Vulkan in the same application and without interrupt you could render to different Windows and those kinds of things, with GL and Vulkan, but you would need the NVIDIA extension to mix rendering.—In our implementation, we actually package the OpenGL and Vulkan drivers in the same DLL, and so you can certainly use both of them in the same process, and that would be true, even if they weren’t in the same DLL. You can use them independently. It’s sharing data or sharing state between them, requires an extension to one or both APIs. Although, for multi-window applications, there is no real problem.

What about proper text support (high quaility LCD) that is lacking in OpenGL?

Our initial goal in Vulkan 1.0 is to address the functionality of current GPUs and current drivers. So we have stressed the hardware capabilities as opposed to anything that you could handle through middleware. So high quality text rendering, anything involving fonts, is out of scope for this level of activity. We think it’s ideal for layered implementations and layered APIs that would run on top of Vulkan.

Will we be able to mix OpenGL rendering with Vulkan rendering?

Nvidia at least has mixed OpenGL and Vulkan rendering and has published the extension that allows this. One of our first extensions is a pretty limited form of interop where you can synchronize between an OpenGL context and a Vulkan queue, and additionally copy image content from Vulkan to OpenGL. Interop is certainly a technical possibility, and I expect we’ll probably have additional extensions in the future.

Are shaders in Vulkan written in the same way as in OpenGL or GLSL?

In OpenGL, the only choice for writing shaders is to use GLSL, and pass the GLSL into the driver. In Vulkan, you can also write in GLSL, and use an offline tool chain to translate that to SPIR-V. (Standard Vulkan only accepts SPIR-V). There are plenty of other choices, and there will likely be lots of people experimenting with different languages and different kinds of tool chains, middleware, and game engines as a variety of ways of generating the SPIR-V that goes into the driver. So you can do it the way it works for OpenGL, or you can experiment with the new and different ways. Some of those can be linked directly into an application, so you don’t have to rely solely on offline support. We usually call it off-driver support, but you could do it online by using a side tool real-time. It just isn’t part of the core Vulkan drivers stack.

What performance improvements might a well-tuned OpenGL application for games / simulation expect with a switch to Vulkan?

If your application is well-tuned and is GPU-bound at present, you’ll perhaps notice some reduction in CPU power. The CPU may be idle more often, but you’re not going to get a graphics difference, because the pipeline is the pipeline. If it’s maxed out now, it will be maxed out in Vulkan. But you might expect to get many of your CPU cycled back, so you may have the opportunity to enhance your rendering using some offline sort of CPU techniques. You may get more out of that if you choose to give back some of that. If you are happy that you’re using less power and your CPU is idle more of the time, that’s great, but you may choose to add some techniques back in outside the rendering pipeline, so that you can still get better results, but you’re doing it in a combination of CPU and GPU work.

As a beginner, is it better to learn OpenGL before Vulkan?

If you’re really new to 3D graphics, probably OpenGL, or one of the traditional APIs, is probably the best place to start learning and not get totally swamped by all the details that you need to drive Vulkan. The interesting thing to me is over time, the middleware layer could evolve to potentially provide some interesting learning platforms over time. Right now, if I was starting from scratch, I would probably still start with OpenGL.

Can OpenGL be developed as a layer on top of Vulkan?

It is certainly feasible. There are rumors of projects for running OpenGL on top of Vulkan, but we don’t have any direct knowledge of them. This would have all of the issues that writing an OpenGL driver straight to the metal would have in accessing all the hardware features. If you wanted to get comparable performance, you can do it because Vulkan is that level, but you would be signing up for duplicating all that cleverness that has evolved inside the major IHVs over the years.

Are there any plans on Vulkan and OpenCL interoperability?

The OpenCL working group has started to discuss Vulkan interoperability, but we don’t have it yet. And we have interop with OpenGL and Direct-X, so interop with Vulkan would make perfect sense.

How do I choose between using Vulkan and OpenCL when doing general computing?

If your application is interacting with graphics and displaying your results, then doing it all in Vulkan is probably easier and more suitable. But if it’s a more scientific computing kind of application, then OpenCL is more appropriate. OpenCL has a lot more focus on things like type precision requirements than Vulkan does with its foundation being in graphics.

Will Vulkan support Khronos' glTF?

glTF is just a file format for transmission of 3D assets across the network, typically into a web-based application, often used in WebGL. Yes, if you have an application that’s using WebGL or Vulkan, there’s nothing too specific about glTF that would mean you couldn’t use it together.

What interaction will there be between EGL and Vulkan?

It was the EGL team that developed the WSI extensions for Vulkan.The WSI extensions are essentially the new generation EGL to Vulkan. This may be an oversimplification, but EGL is intended to play the same role for Vulkan that it plays in the OpenGL ES world. The EGL group has historically defined the context creation and Windows system interface for OpenGL ES. In Vulkan, we made a conscious decision not to separate Windows system integration from the API in quite so strict a manner. In Vulkan, Windows system integration is defined by a series of extensions to Vulkan, rather than a separate API. We’ve had extensive conversations with Google and Android and other platform owners in order to make sure that mechanism works well across multiple APIs including Windows. The bottom line is that there is no EGL for Vulkan, rather Windows system integration in Vulkan, is handled by extensions.

What is the current stance of Microsoft, Nintendo, and Sony about using Vulkan on current/future consoles?

“That is entirely up to the HW vendors when they generate the newest consoles.  It is possible Vulkan could be used as it, does provide a thin graphics API which would place more optimization potential on the application itself.  However, it is more likely that at least Microsoft would instead choose to use an optimized API based on DirectX 12 instead.”

Is Vulkan Heralding the Rise of Linux as a gaming platform?

“This is a broad topic, and it is unlikely that Vulkan, in and of itself, would result in the rise of Linux as a gaming platform. OpenGL is also a cross-platform graphics API available on Linux, and it has not yet led Linux to that status. It is more likely that the broad acceptance of a platform like the Steam Box would be more of a move in that direction.”

Can I integrete Vulkan inside of an Unreal Engine game project?

That would be a question for Epic. They are a member of the working group, but I don’t know if they’ve announced any commercial plans. They did announce support for Vulkan in UE4 at MWC: http://www.bit-tech.net/news/gaming/2016/02/22/vulkan-unreal-engine-4/1

Does Vulkan contain something similar to how DirectX uses Direct2D for rendering 2D shapes and fonts?

No it does not. Our initial goal in Vulkan 1.0 is to address the functionality of current GPUs and current drivers. So we have stressed the hardware capabilities as opposed to anything that you could handle through middleware. So high quality text rendering, anything involving fonts, is out of scope for this level of activity. We think it’s ideal for layered implementations and layered APIs that would run on top of Vulkan.

Do you have any benchmark results between Vulkan and DirectX12? (assume that everything is in same conditions except API)

Not at this point.

In addition to cross-platorm support and being open source, what else sets Vulkan apart from DirectX 12?

From an external point of view, the biggest difference has to do with the platforms and the hardware that they support. Direct-X 12 has just a few target hardware devices that it was designed for. It only has to run on one operating system, whereas Vulkan supports hardware from 10s of companies, and supports a much broader range of platforms. There is a bit higher level of abstraction in Vulkan that accommodates that increased affordability, but I don’t think that there is cost to that abstraction. I think the abstraction is a good thing. It enables affordability, while providing the same performance and usability you get from DX 12.

OpenCL

Are there any plans on Vulkan and OpenCL interoperability?

The OpenCL working group has started to discuss Vulkan interoperability, but we don’t have it yet. And we have interop with OpenGL and Direct-X, so interop with Vulkan would make perfect sense.

How do I choose between using Vulkan and OpenCL when doing general computing?

If your application is interacting with graphics and displaying your results, then doing it all in Vulkan is probably easier and more suitable. But if it’s a more scientific computing kind of application, then OpenCL is more appropriate. OpenCL has a lot more focus on things like type precision requirements than Vulkan does with its foundation being in graphics.

OpenGL

Will GLSL be the standard shading language for Vulkan?

Vulkan contains no normative reference to any high level language specification. The only thing that a Vulkan implementation requires is the ability to accept shaders in the SPIR-V format. We have defined for the convenience of the developers, an extension to GLSL to allow it to generate Vulkan compatible SPIR-V (9:40) but we pose no barrier, we intend to encourage other mechanisms of generating valid SPIR-V. The SDK is a set of tools which you can use to validate whether a SPIR-V program is legal for Vulkan and should be accepted by a Vulkan implementation. We strongly encourage developers to develop their own language ports or their own tools such as graphic tools, graphical tools such as the SDK to generate languages using other high level formalisms.

Can OpenGL functions be used with the Vulkan API?

The short answer is no. For all the hidden state that is being carried around by OpenGL implementations to interact with the very explicit exposed ... to Vulkan is a pretty normally technical problem.There is an Nvidia extension to allow that. My guess is that it would have to be fairly hands-off, and UP explicitly passing surfaces between one side and the other, and otherwise maintaining them as pretty independent entities.—I think the question is could you use GL and Vulkan in the same application and without interrupt you could render to different Windows and those kinds of things, with GL and Vulkan, but you would need the NVIDIA extension to mix rendering.—In our implementation, we actually package the OpenGL and Vulkan drivers in the same DLL, and so you can certainly use both of them in the same process, and that would be true, even if they weren’t in the same DLL. You can use them independently. It’s sharing data or sharing state between them, requires an extension to one or both APIs. Although, for multi-window applications, there is no real problem.

What about proper text support (high quaility LCD) that is lacking in OpenGL?

Our initial goal in Vulkan 1.0 is to address the functionality of current GPUs and current drivers. So we have stressed the hardware capabilities as opposed to anything that you could handle through middleware. So high quality text rendering, anything involving fonts, is out of scope for this level of activity. We think it’s ideal for layered implementations and layered APIs that would run on top of Vulkan.

Will we be able to mix OpenGL rendering with Vulkan rendering?

Nvidia at least has mixed OpenGL and Vulkan rendering and has published the extension that allows this. One of our first extensions is a pretty limited form of interop where you can synchronize between an OpenGL context and a Vulkan queue, and additionally copy image content from Vulkan to OpenGL. Interop is certainly a technical possibility, and I expect we’ll probably have additional extensions in the future.

Are shaders in Vulkan written in the same way as in OpenGL or GLSL?

In OpenGL, the only choice for writing shaders is to use GLSL, and pass the GLSL into the driver. In Vulkan, you can also write in GLSL, and use an offline tool chain to translate that to SPIR-V. (Standard Vulkan only accepts SPIR-V). There are plenty of other choices, and there will likely be lots of people experimenting with different languages and different kinds of tool chains, middleware, and game engines as a variety of ways of generating the SPIR-V that goes into the driver. So you can do it the way it works for OpenGL, or you can experiment with the new and different ways. Some of those can be linked directly into an application, so you don’t have to rely solely on offline support. We usually call it off-driver support, but you could do it online by using a side tool real-time. It just isn’t part of the core Vulkan drivers stack.

What performance improvements might a well-tuned OpenGL application for games / simulation expect with a switch to Vulkan?

If your application is well-tuned and is GPU-bound at present, you’ll perhaps notice some reduction in CPU power. The CPU may be idle more often, but you’re not going to get a graphics difference, because the pipeline is the pipeline. If it’s maxed out now, it will be maxed out in Vulkan. But you might expect to get many of your CPU cycled back, so you may have the opportunity to enhance your rendering using some offline sort of CPU techniques. You may get more out of that if you choose to give back some of that. If you are happy that you’re using less power and your CPU is idle more of the time, that’s great, but you may choose to add some techniques back in outside the rendering pipeline, so that you can still get better results, but you’re doing it in a combination of CPU and GPU work.

As a beginner, is it better to learn OpenGL before Vulkan?

If you’re really new to 3D graphics, probably OpenGL, or one of the traditional APIs, is probably the best place to start learning and not get totally swamped by all the details that you need to drive Vulkan. The interesting thing to me is over time, the middleware layer could evolve to potentially provide some interesting learning platforms over time. Right now, if I was starting from scratch, I would probably still start with OpenGL.

Can OpenGL be developed as a layer on top of Vulkan?

It is certainly feasible. There are rumors of projects for running OpenGL on top of Vulkan, but we don’t have any direct knowledge of them. This would have all of the issues that writing an OpenGL driver straight to the metal would have in accessing all the hardware features. If you wanted to get comparable performance, you can do it because Vulkan is that level, but you would be signing up for duplicating all that cleverness that has evolved inside the major IHVs over the years.

What is the relationship between SGI and Khronos Group?

SGI is not a member of the Khronos Group. Khronos licenses the OpenGL ES trademark from SGI. Khronos is authorized to run the OpenGL ES adopter program.

Is an OpenGL ES adopter required to comply with OpenGL licensing when they have an OpenGL ES conformant product?

No.

OpenGL ES

What is the relationship between SGI and Khronos Group?

SGI is not a member of the Khronos Group. Khronos licenses the OpenGL ES trademark from SGI. Khronos is authorized to run the OpenGL ES adopter program.

Is an OpenGL ES adopter required to comply with OpenGL licensing when they have an OpenGL ES conformant product?

No.

We would like to know what membership will cost to obtain OpenVG and OpenGL, with the exact same type of membership?

The Khronos membership agreement includes a Conformance Test Source License Agreement (CTSLA). Members that have not excluded themselves from the CTSLA, have access to the conformance test source. Members wishing to claim conformance to OpenVG and OpenGL ES specifications would be required to execute the adopters agreement and pay the applicable fee for each API.

Current Adopter fees are available here: http://www.khronos.org/adopters/

SPIR-V

Does the SPIR-V specification guarantee that precompiled SPIR-V objecst will run on all Vulkan targets, regardless of the hardware vendor without having to tweak shaders for each HW platform they are targeting?

That is our most profound hope, for the SPIR-V and Vulkan relationship. we are very aware of the pain that the compiler differences have caused in the OpenGL and OpenGL ES environment. We’ve written the most rigorous specification we know how to write for SPIR-V, and we ask that you report any issues. The one caveat is that Vulkan does not specify error behaviour. if you write a SPIR-V shader which does not follow the SPIR-V specification, we are not responsible for what different implementations may do with it. We do provide a SPIR-V validator and if your SPIR-V passes that validator and behaves differently on different implementations we want to know about it. We will conformance test it and we will fix it. There are capabilities in SPIR-V which are basically feature capability support bits, and so if you have a shader which works on one implementation that supports some capabilities and you run it on an implementation which does not support those capabilities, then obviously, that’s not going to work. But otherwise we do sincerely hope that things are portable and that there are less implementation variation in SPIR-V consumers than there has been in GSL compilers.

Will there be a SPIR-V layer to allow running DirectX over Vulkan?

That is certainly a technical possibility. The issue there would be to translate Direct-X shade of code that is post-compiled code into SPIR-V for consumption. The other option of course is to compile direct form the HLSL, if that’s how you’re generating your binary blobs, which I think would be typical in the more modern Direct-X APIs. Either path will work. Khronos isn’t planning to do that work, but if that is the best path for your engine, we hope you’ve got all the tools, and if not, let us know.

Isn't glslang an official GLSL to SPIR-V compiler?

GLSlang is what we are all using and are hoping will be the standard, although the community is of course welcome to build on that. It’s an open source project, and it implements the new version of GLSL that supports the Vulkan features. Under the GitHub Khronos group folder, there is a GLSlang repository. It’s the official reference Khronos validation layer to validate that the GLSL you’re using to conforms to the specification. That has on it an example translator from GLSL to SPIR-V. Right now it’s probably abut 90% complete. The push constants and descriptor sets and input passers, a few things like that are new to Vulkan, and there are some features present that are not in Vulkan and that GLSL won’t support when you’re compiling for Vulkan. That tool is available. You can translate or modify it for Vulkan GLSL into SPIR-V. Then send that into the drivers for the different platform. Everybody is welcome to contribute to that project. The lead author og GLSLang, John Kesinich, is an active member of the working group and he is also the editor of the GLSL specification. We endorse his compiler. We don’t guarantee that it is bug free, but we do guarantee that we will expend effort to fix it if there are issues. You are certainly allowed to create your own GLSL/SPIR-V compiler, but we would rather fix the bugs in ours if you’re aware of any.

Safety Critical

How is Vulkan similar to Mantle -- what are the differences?

The impact of AMD’s stepping forward and providing Mantle as a place to start was huge for the Vulkan working group. We probably would not be where we are today without them and we take off our hats to them (and their lawyers) for being willing to make that happen. The original proposal for Vulkan was basically a cleaned-up version of Mantle. AMD got the conversation really going, but over an 18-month period there have been contributions from a lot of the other members at Khronos as well. Some were small tweaks, and some really major features: render pass was never in Mantle, for example, yet it’s a core part of Vulkan now. So tthere’s an obvious heritage there, and if you have an experience with Mantle, I don’t think you would have any trouble at all moving to Vulkan. Some of the API names are the same, and it’s lived on there, but it is a significant update. There are some very significant differences and enhancements, and it’s cross-vendor, cross-platform, so ... I think we’ve landed in a really good place. Overall Vulkan is truly a better API.

glTF

Will Vulkan support Khronos' glTF?

glTF is just a file format for transmission of 3D assets across the network, typically into a web-based application, often used in WebGL. Yes, if you have an application that’s using WebGL or Vulkan, there’s nothing too specific about glTF that would mean you couldn’t use it together.

OpenMAX

We are looking forward to implementing OpenMAX compliance of codecs. Will the implementers get Khronos SDKs? If so please provide me the necessary directions.

OpenMAX has 3 levels of APIs, with separate specifications: OpenMAX AL, OpenMAX IL and OpenMAX DL. Referring to a codec implementation, I suspect the specification you would like to implement is OpenMAX IL.

There is currently no SDK available for OpenMAX IL. An open source implementation called Bellagio exist on SourceForge, but this implementation is not maintained by Khronos and does not provide you with any guarantee your components will be conformant with the OpenMAX IL specification. As the original work (Bellagio) has not been tested for conformance, any derivative work based on it, unless submitted for conformance testing as a complete work, could not be declared conformant either as you cannot guarantee that the interface for the codec was conformant in the first place.

The correct way forward to ensure conformance would be to sign the Khronos Adopters Agreement, pay the associated Conformance Testing Fees, then access and run the Conformance Test associated with the specification. You will find all the necessary information on the Khronos adopter page.

What steps will the Khronos Group take to create strong positive reaction in the marketplace?

Wide acceptance is important. The Khronos Group intends to give the specification high visibility to create and build industry awareness. Each Khronos Group promoter will work to sign on contributors and adopters so that extensive distribution of the specification can occur. This direct evangelism to all major application and device vendors will promote acceptance and adoption of the specifications the Khronos Group creates. The OpenMAX WG is creating and maintining a web site, white papers, and collateral. Members will assist in placing articles for print and evaluating specialized advertising.

Who will define and maintain the OpenMAX specification?

The Khronos Group will retain this responsibility.

What interaction will OpenMAX have with international and industry standards bodies?

The various founders of OpenMAX WG are also members of organizations such as MIPI,  ISO/MPEG and 3GPP. The WG will maintain relationships with these and other industry groups where appropriate.

How can interested parties get involved with the OpenMAX specification?

Interested parties can contact any of the Khronos promoting members to inquire about contributing to the specification. To learn more about becoming a Contributor or Promoter to the OpenMAX specification, visit the Membership FAQ.

When will the OpenMAX specification be complete?

We anticipate that the first specification for OpenMAX will appear in the second quarter of 2005.

How does OpenMAX work with Operating Systems?

It is an important goal of the OpenMAX standard to complement the multimedia frameworks of popular industry Operating Systems. Specifically, OpenMAX co-exists with and is complementary to existing APIs and libraries, including those from the Khronos Group and those provided by OS vendors; it is designed to be used by developers of those libraries and will support a wide range of processor architectures and their tool chains.

Are wireless applications the main focus of the OpenMAX standard?

Mobile and wireless computing have some very specific challenges in terms of performance, battery life and time to market. The founders of OpenMAX were the first to see this requirement, but the technologies and concepts are applicable to all applications where multimedia and graphics performance are important.

What are the benefits of such an open standard to the industry?

In order to create compelling multimedia products such as smartphones, media players and games consoles, developers need optimized low-level code. Currently this code is written mostly in assembly language and has to be rewritten on every different hardware platform.  This is expensive and time consuming.  With the OpenMAX standard, developers will have this optimized low-level code provided to them with the hardware platform.  This allows the developer to focus on creating higher level functionality, getting to market sooner and supporting a broader range of hardware platforms.

What "critical need" is OpenMAX solving?

With the wide range of hardware platforms, a standards-based approach aids in solving the problems associated in porting and optimizing middleware applications such as multimedia codecs, and graphics libraries between these platforms.

What is the goal of the OpenMAX effort?

OpenMAX was founded to address the need to accelerate the growth of compelling multimedia platforms and hence end-user products.  The end result is to standardize a set of open APIs for a variety of multimedia applications, including smartphones, media players, games and graphics, thus reducing the cost and complexity of porting multimedia software to new processors and architectures thereby accelerating application development overall.

What does OpenMAX stand for?

Open Media Acceleration primitives.

OpenVG

We would like to know what membership will cost to obtain OpenVG and OpenGL, with the exact same type of membership?

The Khronos membership agreement includes a Conformance Test Source License Agreement (CTSLA). Members that have not excluded themselves from the CTSLA, have access to the conformance test source. Members wishing to claim conformance to OpenVG and OpenGL ES specifications would be required to execute the adopters agreement and pay the applicable fee for each API.

Current Adopter fees are available here: http://www.khronos.org/adopters/

EGL

What is Vulkan's performance with ray tracing and other needs in CGI film-making?

The fundamental pipeline model underlying Vulkan is essentially exactly the OpenGL model. Anything you do through the rasterization side is traditional rasterization. You certainly can use the compute shader capability to write a ray tracer just as you could have done with compute shaders in GL. Maybe Apple has a little more flexibility, but there’s no explicit support.

What interaction will there be between EGL and Vulkan?

It was the EGL team that developed the WSI extensions for Vulkan.The WSI extensions are essentially the new generation EGL to Vulkan. This may be an oversimplification, but EGL is intended to play the same role for Vulkan that it plays in the OpenGL ES world. The EGL group has historically defined the context creation and Windows system interface for OpenGL ES. In Vulkan, we made a conscious decision not to separate Windows system integration from the API in quite so strict a manner. In Vulkan, Windows system integration is defined by a series of extensions to Vulkan, rather than a separate API. We’ve had extensive conversations with Google and Android and other platform owners in order to make sure that mechanism works well across multiple APIs including Windows. The bottom line is that there is no EGL for Vulkan, rather Windows system integration in Vulkan, is handled by extensions.

Gaming

What is the current stance of Microsoft, Nintendo, and Sony about using Vulkan on current/future consoles?

“That is entirely up to the HW vendors when they generate the newest consoles.  It is possible Vulkan could be used as it, does provide a thin graphics API which would place more optimization potential on the application itself.  However, it is more likely that at least Microsoft would instead choose to use an optimized API based on DirectX 12 instead.”

Is Vulkan Heralding the Rise of Linux as a gaming platform?

“This is a broad topic, and it is unlikely that Vulkan, in and of itself, would result in the rise of Linux as a gaming platform. OpenGL is also a cross-platform graphics API available on Linux, and it has not yet led Linux to that status. It is more likely that the broad acceptance of a platform like the Steam Box would be more of a move in that direction.”

Can I integrete Vulkan inside of an Unreal Engine game project?

That would be a question for Epic. They are a member of the working group, but I don’t know if they’ve announced any commercial plans. They did announce support for Vulkan in UE4 at MWC: http://www.bit-tech.net/news/gaming/2016/02/22/vulkan-unreal-engine-4/1

Licensing and Trademarks

Please provide more information about section 5.3 of the IP Rights Policy located in the Khronos Membership Agreement

Clause 5.3 is to encourage members with knowledge of Necessary Claims to file an IP Disclosure for the information of the working group -  though that IP will not be licensed in any case because of the Working Group Exclusion certificate.
  Furthermore:

     
  • it is advantageous to a working group if that member has actual knowledge of essential claims that will not be licensed under the Khronos standard reciprocal license, that the working group be notified of that fact through an IP Disclosure Certificate.  Hence the existence of Clause 5.3.
  •  
  • all Khronos Confidential information for all working groups is made accessible to all members, regardless of any working group exclusions, at least in part for the above reason
  •  
  • however - as per section 3.3 of Attachment A - a member is NOT obligated to proactively search their IP portfolios:  "Members are not required to conduct searches of their patent portfolios, nor are they required to disclose Necessary Patent Claims of other Members or other third party patents"
  •  
  • So, a member that excludes from particular working group is under no obligation to monitor any activities or drafts from those excluded working groups, nor to check drafts from the excluded working groups against their IP Portfolio.  And in any case, the excluded member will not have any IP Licensing obligations for any ratified specifications from an excluded working group.

 

In the case of reciprocal licenses, how often do member companies submit exclusion certificates and disclosure certificates? It would seem that if these are provided in large quantities by the large companies that comprise your membership, there would be many exclusions on licensing that would be difficult to sort out for other member companies interested in adopting the standard.

Yes – however the good news is that IP Disclosure (exclusion) certificates are used extremely rarely. In the whole history of Khronos, over 10 years with 14 active working groups each Ratifying multiple specifications, only 5 IP Disclosure Certificates have ever been issued.

There are a number of reasons for this - and we are happy to discuss any of this in more detail:

  • the Khronos members, in general, participate in Khronos because of a belief in the power of royalty-free standards to grow market opportunities;
  • the Khronos IP framework takes great care to define essential IP to very effectively protect members IP (while providing essential protection for the specifications in the industry) so members that participate in the reciprocal license are not “losing control” of their IP in any way;
  • the license is reciprocal – so any company licensing its essential IP – is in exchange receiving a license from 100 other member companies – and this is most often an attractive proposition.
It would appear that specific patent claims would have to be submitted contemporaneously with the submission of a contribution of patented technology for the purpose of consideration and adoption for inclusion in a spec. Is this reading correct?

The Khronos IP framework is constructed so that the default approach to IP (and the one used in the overwhelming majority of cases in practice) is that there is NO DISCLOSURE NECESSARY (sec 3.2 of Attachment A – the IP Rights Policy) for essential IP that can be licensed under the default reciprocal license. The IP Rights Policy provides for two types of explicit IP Disclosure:

  • IP Disclosure for IP that will NOT be licensed in relation to relation to a draft specification (sec A.3.3);
  • Reciprocal License Certificate to explicitly offer IP under license (perhaps to be used to reassure a working group to integrate patented technology) (sec A.6).
How does Khronos treat information that a member company submits about how that company uses OpenGL, and why that company may want to add (or prevent subtraction of) certain features? Is it treated as confidential information, and if so, is the company deemed to have waived confidentiality if the information is used in the development of the standard?

All information generated in association with Khronos business and circulated within Khronos is confidential (sec 4.1 of the membership agreement). If a contribution from a member is directly incorporated into a specification then that confidentiality is waived on Ratification (last sentence of sec 4.1). However, general comments and feedback related to a specification and not directly integrated into the specification itself would remain confidential.

SGI still has the trademark rights of OpenGL. Is the Khronos Group allowed to use this trademark with the permission of SGI?

Yes. The OpenGL trademark agreement is informal. The Khronos Group are in discussions with SGI to allow Khronos run an OpenGL Conformance program.

Is SGI a Khronos Group member?

No.

What is the relationship between SGI and Khronos Group?

SGI is not a member of the Khronos Group. Khronos licenses the OpenGL ES trademark from SGI. Khronos is authorized to run the OpenGL ES adopter program.

Can we get a membership to use code within our company, and not be involved in submitting code back to Khronos?

Khronos Ratified specifications are publicly available on the Khronos Web-site.  If your company wishes to use Khronos trademarks for conformant implementations of APIs, then the Adopters’ Agreement, along with applicable payment, provides access to the testing procedure and provides a trademark license.

Can our customer use the patents related to the Khronos technologies under a royalty-free license?

There are two ways which an individual or company can make use of the Khronos Technologies:

  1. Implementers - may create and deliver a product using the publicly released specifications and patents related to the Khronos technologies under a royalty-free license. But they cannot claim the product is “compliant” or if it is a software or hardware engine, they cannot advertise it using technology logos or trademarks. The Implementor option carries no cost or license fees.
  2. Adopters -  can download and run the conformance tests and if the implementation passes, they can advertise and promote the product as being compliant; using the technology logos and trademarks under a royalty-free license.
Our group is developing a graphics chip which complies with one of the public Khronos technologies. We would like to sell these chips to our customer. Can our customer use technology logos and trademarks under a royalty-free license?

Only if that product has been submitted to the Khronos Conformance Test Process.  Any product must be submitted to the Conformance Process before the technology trademark can be used on that product (fee schedules can be found here).  Any company can become an Adopter Member and submit the test results for a product.  Once passed - any company that uses that product, may use the technology trademark when related to the product.

LunarG

With OpenGL, we had helper APIs like GLUT, then FREEGLUT, and GLEW. Is the Lunar SDK intended to serve as that common front end for OS dependencies, or what?

The LunarG SDK provides the critical and canonical Vulkan API Loader and Validation Layers. In addition, it provides sample code as examples, and other tools such as RenderDoc, vktrace/vkreplay. For more information about what is in the SDK, you can download it for free from vulkan.lunarg.com. You can also see an overview at Lunarg.com/vulkan-sdk

Will there be a "quick reference" PDF for the LunarG API? I love those things :-)

LunarG API? Unclear what this means. At LunarXchange (vulkan.lunarg.com) you can get access to getting started with the SDK and related Vulkan documentation.

Will the LunarG SDK have installable packages for Ubuntu LTS Releases? (Example is Ubuntu 14.04 LTS, and eventually Ubuntu 16.04 LTS releases)

The LunarG SDK currently supports Ubuntu versions 14.04 and 15.10. This means the SDK has been validated on those distributions.

What is the relationship of LunarG to Khronos?

LunarG is an independent software company being sponsored by Valve to help build out the Ecosystem for the Vulkan API. Hence LunarG is a Valve representative in the Khronos Vulkan Working Group.

I'm using Ubuntu with Intel GPU. Which LunarG SDK or Intel Mesa driver should I use?

The LunarG SDK supports Ubuntu versions 14.04 and 15.10. You should be able to use any AMD, Nvidia, or Intel driver that supports Vulkan.

I noticed out-of-the-box the samples in LunarG SDK do not run (Samples can't find the driver).

Most likely you did not have a driver installed on your system that supported Vulkan.

If you are mixing the use of Vulkan and OpenGL within an application, I assume the debug and validation tools in LunarG only give you information from the Vulkan API and layers?

Yes. The LunarG SDK is for the Vulkan API only.

Do any of the current SDKs include a Vulkan emulator?

Not that we are aware of.

Is Vulkan intended to be used with specific SDKs only ? Can it be used without the Vulkan SDK from LunarG?

If individuals don’t want to use the SDK, they could go find the different elements, which are open source and free from multiple repositories, then build it in and compile it together. Bringing it together in one place, binaries already built, and providing a forum where questions can be asked is the benefit of getting the SDK from vulkan.lunarg.com.

Member Site Access and Resources

Is SGI a Khronos Group member?

No.

How can a member be considered for demo or exhibit opportunities with Khronos?

When we have demo and speaking opportunities, we send out an “all hands call for participation” email to the “Khronos General” email list, asking for any interested members to contact the Khronos marketing team or the Work Group chair of the API that interests them.

After the general announcement, we then only email directly to the Work Groups (WGs) or the Work Group Chairs (WGCs). The WGCs will then seek out speakers and demoers from active participants. If you don’t actively participate in Work Groups, you will still see the opportunities over email at least once. You can find opportunities on our members events page and public events page.

We strongly suggest that both your technical and marketing associates sign up to the specific Work Groups that interest your company the most. Also, make sure you do not unsubscribe from the Khronos General mailing list in your account profile.

I was looking at the Khronos website member list and found out our company name is missing on the contributor list. Could you tell me who should I talk with to add our company logo and what the process is?

Please send to the Khronos Webmaster:

Your company logo: both a web logo (jpg, png or gif) and a print quality logo (vector eps or hi-res jpg or png)

A description of your company’s specific interests in technology and markets that relate to Khronos Group APIs, not your company’s ‘standard boilerplate.’
(An example: Digital Media Professionals Inc. is focusing on developing very high performance graphics processor based on revolutionary physical model based rendering which is covering wide range of graphics applications including high end gaming to embedded solutions. DMP will provide support for the OpenGL ES programming interface in our next generation visualization products.)

The Khronos IPR policy states that contributions may not be withdrawn once they are “accepted” by Khronos.  When does such acceptance occur?

The phrase “cannot be withdrawn once accepted” as rather vague as it is intended to communicate the spirit of contributions. Contributions should not be made unless the intention is for them to be covered by the IP framework so as to minimize disruption to the working group.

The legal framework for contributions is:

     
  • a reciprocal license is granted for essential claims, for any contribution, at the Board’s Ratification of a draft specification that incorporates that contribution
  •  
  • prior to Ratification, any member may issue an IP Disclosure Certificate to exclude specific essential claims from the reciprocal license - regardless of whether those claims are associated with a explicit contribution from the member or not

Logistically:

     
  • if a member makes verbal or written contributions that are never incorporated into a draft specification - there is no licensing obligation
  •  
  • if a member sees any contributions incorporated into a draft that would require the member to issue an IP Disclosure Certificate - the member should inform the working group as quickly as possible at a high-level without reference to specific claims
  •  
  • specific IP claims should never be disclosed or discussed outside a formally issued IP disclosure certificate - or through using the IP Committee Process
  •  
  • the working group will make the decision whether the draft specification should be updated to remove the contribution from the draft specification
  •  
  • if the contribution is not removed - the member may issue an IP Disclosure Certificate to exclude any essential claims from the reciprocal license at Ratification of the draft
We would like to know what membership will cost to obtain OpenVG and OpenGL, with the exact same type of membership?

The Khronos membership agreement includes a Conformance Test Source License Agreement (CTSLA). Members that have not excluded themselves from the CTSLA, have access to the conformance test source. Members wishing to claim conformance to OpenVG and OpenGL ES specifications would be required to execute the adopters agreement and pay the applicable fee for each API.

Current Adopter fees are available here: http://www.khronos.org/adopters/

Is there a membership that allows us to see and customize Khronos code, to accommodate our testing and API usage?

We have two Khronos membership levels, Contributor and Promoter. Both membership levels allow access to all development activity. Members are able to participate in any and all work groups and public events that are of interest. Member companies may exclude themselves from certain API activity simply by executing a document that allows a company to exclude itself from IP discussions on that topic. Members have access to all draft specs in progress, a vote at any working groups that you elect to participate in, a grant of the reciprocal IP license to ratified specifications, and access to the Khronos Conformance Test source for all its APIs for development purposes under the Conforomance Test Source License Agreement (CTSLA).

We are a Member of Khronos Group and have an Adopter Agreement for OpenGL ES. Our OpenVG team wants to access an OpenVG Conformance Package before the submission of actual Conformance Test. Is it possible to access the OpenVG Conformance Package and do we need an Adopter Agreement for OpenVG additionally?

Yes, as Khronos member you can get access to the Conformance Kit before paying for submission.

The only condition is signing of the Khronos Conformance Test Source License Agreement (CTSLA) by your company which is required only once, so quite likely it is in place already. If so, you should be able to get the test package from the Subversion repository right away.

This will give you access to the entire Conformance Test Suite (CTS). You can run all test cases internally and make sure that your implementation passes them. This isn’t equivalent to submission of your product for conformance.

If you don’t have access, please work with .(JavaScript must be enabled to view this email address) to put the Agreement in place.

I'm new to Khronos and want to catch up on the recent work group activity. What should I do?

The best way to catch up is to review the working group email lists archives for the technologies in which you have interest.

My company is a Khronos Member. Can I sign up for a work group email list using my personal email (Yahoo, Google etc) account?

No, to participate in the Khronos Working Group email lists, you must use an email account with a domain name that matches your parent company.  We require this for security reasons and maintain a very strict policy.  If you are a subcontractor to a Khronos members, you should try to obtain an email address from the Khronos Member company.

I want to enter a bug report into Bugzilla

Khronos members have access to the Members Only Bugzilla.  This information is described on in the Members Only area. To enter a bug report, simply create an account and submit your report.

I am logged into the Members Only area of the website and am able to view the Khronos Members Only Wiki, but I can't edit anything. It says that I need to log in?

The Wiki uses its own login system. Once you have reached the Wiki in the Members Only area, you can create a Wiki account that will let you edit any page on the Wiki.

How do I get access to the Members Only areas of the website?

If your company is a Khronos Member and membership dues are current, you can sign up as a company representative at http://www.khronos.org/members/signup.  Your signup will usually be validated and approved within 48-72hr.  Note: Your email address must match the domain of your parent company.

If your company is not yet a member, then they need to complete a membership agreement and pay yearly dues before any representatives will be able to access the Members Only areas of the website.

My company is a Khronos Member. I am trying to access the SVN, but when I go to a particular folder and enter my username and password, I get an "access denied" error message. How do I get access.

Each SVN repositories has a unique set of permissions.  Some repositories and folders allow access to any registered Khronos member.  Other repositories related to the Conformance Tests for that technology, require that the member company has signed the Khronos Conformance Test Development Source Agreement.  Your company will need to sign this document for you to get access.  (Note:  the 2007 membership agreement has the CTDSA incorporated into the membership agreement, so new companies will have automatic access unless they specifically decline the terms of the CTDSA).

Adopters & Conformance Tests

How exactly is a conformance test run?

That’s an interesting side effect of the way that we’re doing conformance, which is quite different from the traditional OpenGL way of doing it. We do not have a mechanism for removing conformance certification from a device, and the rule is if you have in good faith designed a device to pass conformance, then you get to call yourself conformant. One of the reasons we’re excited about having the conformance test out in public, though, is that as it evolves, community members can run it. They can ... I don’t want to say name and shame, but they can name and perhaps register issues. We hope that will have multiple good effects. One is it will encourage all implementers to be much more aggressive about updating, so that they maintain conformance, and that conformance is visible to the community. The other, of course, is that the conformance tests can evolve more rapidly, and just make the API more reliable.

In reading your Adopter's Agreement, we noticed that in section 2, "Confidential Information" that the test results fall under this heading. Depending on the results of the tests, we'd want to share those results (not the Adopter's Package) with the vendor. Is this use of the test results acceptable? The vendor is under NDA with us.

Test results may be disclosed under NDA between customer and vendor or the other way around as long as it is made clear to the party receiving that:

  1. This does not allow a vendor to claim conformance unless they have filed the results and conformance has been granted
  2. The results are not allowed to be publically disclosed as proof of conformance
  3. Conformance does not flow from one party to another (i.e. if your company files conformance on an OEM product, that doesn’t automatically give the silicon vendor or IP supplier conformance)
You say that we must “successfully run the implementation with the Conformance Tests;” but these other conforming members are doing this on our platforms, aren’t we covered?

Conformance claims to not “pass through” from customers.

You say that we must “obtain the required license from the Khronos Group by signing the appropriate License Agreement;” , but I believe we are covered as member company

Not in the case of conformance- you will have to adopt and submit test results for approval to claim conformance.

I do not understand why we are being referred to the “adopter documents”.

An adopter may be a member or non-member, but all must adhere to the adopter process to make claims of conformance.

Our company does not submit conformance tests, but we require our graphics IP provider to do so with our products. Under http://www.khronos.org/adopters/conformant-products/#topengles you can see that other companies have submitted multiple tests with our company’s products. What’s the problem with us doing that?

Claims of conformance do not “pass-through” from customers.

We do not need to use the Khronos logos or trademarks in our marketing. Conformance submissions would hence not be needed. Is there a reduced fee for this kind of adopter?

Are you sure you do not need to use the name of the APIs in association with your product/platform?  Any use of a Khronos trademark (e.g. using the API name) in association with a specific product requires the execution of the Adopters Agreement and passing the conformance tests through making a submission.  Any company using Khronos trademarks in association with a specific product needs to be an Adopter - as the Adopters agreement contains the trademark license.

However - if a company is acting purely as a subcontractor to another Adopter and is willing to forgo any rights to use the marks in their own right then that company may apply for a fee waiver as a subcontractor.

Is there a fee for becoming an Adopter, other than the conformance fees paid for each API?

The conformance fee per API is the only payment due.  The conformance fee enables an unlimited number of submissions for that version of the specification.

Does a company have to be an Adopter to get access to Khronos conformance test sources? If not, what are the requirements for getting the right to utilize the conformance tests?

Any company using the Khronos Conformance tests to test products have to become Adopters through executing the Adopters Agreement.  This is necessary as the Adopters Agreement contains the source code license to the conformance tests for this purpose.

If a company buys a conformant product from a Khronos Adopter to deploy in their own product(s), do they have to be a paid adopter and also have passed conformance tests in order to use the relevant Khronos marks and claims of conformance?

Even though a piece of IP passes conformance, an SoC product implementing that IP does not inherit the conformance. Alterations in CPU config, memory system, target resolution etc. are potential variables which could cause a previously conformant product to fail conformance. Therefore SoC’s designs containing IP, with or without previous conformance filings must still file for conformance for that SoC implementation.

We plan on using a Conformance Test to test our phone. To do it, we would like to hand the Conformance Test source code to a subcontract company and let them make the test environment. Is this allowed and what is the procedure?

It is allowable for Member Adopter Company to provide a subcontractor company the conformance test source code so that subcontractor may test Adopter Member Company’s product(s) as long as the agreement between Member Adopter Company and the subcontractor preserves Khronos Group’s rights/NDA as provided in the Membership and Adopter documents.

SGI still has the trademark rights of OpenGL. Is the Khronos Group allowed to use this trademark with the permission of SGI?

Yes. The OpenGL trademark agreement is informal. The Khronos Group are in discussions with SGI to allow Khronos run an OpenGL Conformance program.

What is the relationship between SGI and Khronos Group?

SGI is not a member of the Khronos Group. Khronos licenses the OpenGL ES trademark from SGI. Khronos is authorized to run the OpenGL ES adopter program.

Is an OpenGL ES adopter required to comply with OpenGL licensing when they have an OpenGL ES conformant product?

No.

How does Khronos Group set the Adopter Fees?

The adopter fee is set by the individual workgroups and then approved by the Khronos board of promoters at the time the conformance test becomes available. For most of the Khronos APIs the adopter fee is currently $15,000 with a $5000 discount for paid Khronos Members. (Promoter or Contributor level membership, price subject to change). The adopter fee is a one-time charge per version of the API and allows adopting company unlimited conformance test submissions of products for certification for the life of the API.

Additional information can be found on the Khronos Adopters page.

We are looking forward to implementing OpenMAX compliance of codecs. Will the implementers get Khronos SDKs? If so please provide me the necessary directions.

OpenMAX has 3 levels of APIs, with separate specifications: OpenMAX AL, OpenMAX IL and OpenMAX DL. Referring to a codec implementation, I suspect the specification you would like to implement is OpenMAX IL.

There is currently no SDK available for OpenMAX IL. An open source implementation called Bellagio exist on SourceForge, but this implementation is not maintained by Khronos and does not provide you with any guarantee your components will be conformant with the OpenMAX IL specification. As the original work (Bellagio) has not been tested for conformance, any derivative work based on it, unless submitted for conformance testing as a complete work, could not be declared conformant either as you cannot guarantee that the interface for the codec was conformant in the first place.

The correct way forward to ensure conformance would be to sign the Khronos Adopters Agreement, pay the associated Conformance Testing Fees, then access and run the Conformance Test associated with the specification. You will find all the necessary information on the Khronos adopter page.

The chip we want to certify as conformant uses a core that we know to be conformant: is it possible to submit a conformance test result package for the core itself and have all chips using that core be covered under the one test?

From section A8 of the Conformance Process Document, any company can submit results for any implementation they like, and that submission will cover any products that fall into the criteria below:

“Implementations claimed as Conformant Products must be similar to the Conformant Implementation in the following ways:
. the identical rendering pipeline - i.e. identical binaries and/or accelerator data path to the display, or if a JIT compiler is used to generate binaries then the use of the identical JIT compiler binary, or new versions of the binaries and/or accelerator data path or JIT compiler binary that do not cause any previously passing test to fail; . the same major version of the same OS that uses substantially similar display functionality or minor version updates to the OS that do not cause any previously passing test to fail; . the identical set, or a subset, of supported configs. Different display resolutions are permitted.”


So - Yes, the Adopter Company can submit results for a core, or a chip - and the use of the mark will cover the products that are similar according to the above rules.

Can we get a membership which grants us access the conformance suite for OpenGL or any other API and allows us to make requests for software limitations or defects we find?

The Khronos contributor membership allows members to participate in all Khronos working groups including OpenGL. Members have the ability to participate and monitor progress of projects as well as the opportunity for input as related to limitations, bugs, defects, and the opportunity to participate in the ongoing evolution of the specification.

How are your licenses distributed?

The Khronos Conformance Test Source License Agreement (CTSLA) enables members to cooperate in building conformance tests – the license states that any modifications to the tests would be passed back to Khronos.

Can we get a membership to use code within our company, and not be involved in submitting code back to Khronos?

Khronos Ratified specifications are publicly available on the Khronos Web-site.  If your company wishes to use Khronos trademarks for conformant implementations of APIs, then the Adopters’ Agreement, along with applicable payment, provides access to the testing procedure and provides a trademark license.

We would like to know what membership will cost to obtain OpenVG and OpenGL, with the exact same type of membership?

The Khronos membership agreement includes a Conformance Test Source License Agreement (CTSLA). Members that have not excluded themselves from the CTSLA, have access to the conformance test source. Members wishing to claim conformance to OpenVG and OpenGL ES specifications would be required to execute the adopters agreement and pay the applicable fee for each API.

Current Adopter fees are available here: http://www.khronos.org/adopters/

If we decide to enter the conformance test process, does it require our SDK, and our Demo Board?

You do not need to submit your SDK or demo board-only the conformance test results for peer review.

If we have fail a conformance test result, how much is the re-test fee ?

Khronos conformance test submission fee is only paid once per API version. Therefore, if a test fails, you may re-submit unlimited conformance test results for that API with no additional fee.

If we decide to enter the conformance test process, how long will it take for the test?

Typically, the conformance test result peer review is 30 days. Please see conformance test procedure documents for more information.

There is one issue that our attorney raised with the section 4.3 of the Members Agreement that we would like to address.

The full question:
“The Source Package distributed under the Source License is subject to the confidentiality provisions of the Base Agreement.  As already noted, that agreement appears to preclude the use of the Source Package to do conformance testing, which is an obvious oversight by Khronos.  In addition, however, the same portion of the Base Agreement limits disclosure of confidential information to employees, on a need to know basis.  This means that it is not permitted to show any of the Conformance Testing Source Package to any subcontractors doing software coding work on this project.”

Could you please confirm that it is NOT Khronos intent to preclude the use of the Source Package to do conformance testing as it might be construed from Section 4.3 of the Membership Agreement?

The Answer:
It is NOT Khronos’ intent to preclude the use of the Source Package to do conformance testing as it might be construed from Section 4.3 of the Membership Agreement.
Section 4.2 states:  “Signatory may use Confidential Information in any Khronos-related activities.”

On the matter of subcontractors, subcontractor access is NOT automatically granted - but we do have a provision where a bona fide subcontractor can execute the Conformance Source License with no fee if approved by the Board.

Can we access the Conformance Test Package (CTP) before the actual payment? In the Khronos Adopter's Agreement, it says the total due should be paid prior to getting the CTP.

Conformance test submission fee payment must be received before conformance test results may be posted for review. If you would like an invoice for Conformance Testing, please follow the directions on our Adopters page. We will return invoice promptly for your review.

We are a Member of Khronos Group and have an Adopter Agreement for OpenGL ES. Our OpenVG team wants to access an OpenVG Conformance Package before the submission of actual Conformance Test. Is it possible to access the OpenVG Conformance Package and do we need an Adopter Agreement for OpenVG additionally?

Yes, as Khronos member you can get access to the Conformance Kit before paying for submission.

The only condition is signing of the Khronos Conformance Test Source License Agreement (CTSLA) by your company which is required only once, so quite likely it is in place already. If so, you should be able to get the test package from the Subversion repository right away.

This will give you access to the entire Conformance Test Suite (CTS). You can run all test cases internally and make sure that your implementation passes them. This isn’t equivalent to submission of your product for conformance.

If you don’t have access, please work with .(JavaScript must be enabled to view this email address) to put the Agreement in place.

What is the policy about the payment for a Conformance Test? In the Khronos Adopter's Agreement, it says the total dues should be paid prior to getting the Conformance Test Package (CTP). Can we access the CTP before the actual payment?

Conformance test submission fee payment must be received before you may download the official conformance test package and before you can submit your results for review. If you would like an invoice to become an adopter for any of our APIs, please review the Adopter pages.

We, are working with a Khronos Adopter as a subcontractor on for a Khronos Technology. This Adopter has used the sample source code, customized it and distributed to us as a source code and a binary code. We need to integrate this with our own software modules, and then distribute to our customers after we compile them together. What are the limitations on redistribution?

The Adopters Agreement for Khronos Technologies includes a license for the source to the tests.

The Test Source may ONLY be used to port and run the tests - this code may not be re-distributed.

Any Open Source sample source wrappers or implementations may be distributed freely as long as the copyright notices in the software are met.

How many conformance tests can I submit for a particular technology?

Your conformance test fee lets you make an unlimited number of Submissions for any number of Conformant Products using any version of the technology up to and including the latest version of the Tests included in the current Adopters Package at the time of execution of the Adopters Agreement, at your selected Fee.

What are the currently available conformance tests and fees?
All memberships levels and pricing are available from our Become a Member Information page. Currently available conformance tests are available here.
How much does it cost to become an Adopter Member and submit Conformance Tests for a particular Khronos technology?
All memberships levels and pricing are available from our Become a Member Information page.
How do I become a Khronos Adopting Member and submit my product to the Conformance Test Process

To understand the Adopters program and conformance testing, please review the Adopters web page. Be sure to review these documents:

  1. Khronos Adopters Agreement
  2. Khronos Group Conformance Test Process Procedures
  3. Khronos Group Conformance Test Process Presentation
What are the Khronos Conformance Tests and why do I want to submit my product?

Conformance Testing is performed to ensure that a product complies with the Khronos technology standards.  Products that pass the Khronos Conformance Tests are certified as compliant with the standard and may use the technology logo to advertise and promote their products.  This insures consumers with a guaranteed level of performance and thus helps product developers with a way to differentiate and validate their offerings.

Conformance Test will be available for all of the Khronos technologies.  More information is available on the Adopters web page.

safety