Skip to content

Latest commit

 

History

History
85 lines (60 loc) · 2.63 KB

rfc-0003.md

File metadata and controls

85 lines (60 loc) · 2.63 KB
rfc title author discussions-to status
3
Removing support for Vulkan
Colin Davidson <colin.davidson@codeplay.com>
draft
Table of Contents * Table of Contents {:toc}

Abstract

Vulkan API is incomplete and requires installing Vulkan SDK, as well as being enabled by default. It has a maintenance and design overhead and is not being used, as well as leading to customer confusion. It is proposed that it should be removed in its entirety.

Motivation

Support for Vulkan is incomplete and cannot be used for full Vulkan support. It is not being used anywhere at present and leads to requirement on installing the Vulkan SDK in order to build OCK. This is also enabled by default and has led to confusion among users of OCK, particularly in the requirements for building. It also leads to strange dependency such as the mutex which doesn't really belong in the compiler_pipeline passes.

Rationale

By removing it altogether this avoids any confusion on the part of the user and reduces the maintenance overhead.

Specification

Remove everything under source/vk and from all documentation that refers to it, as well as any github workflow or docker requirements such as installing the vulkan SDK. This should also be reflected in the CHANGELOG.md file ready for the release notes.

Backwards Compatibility

Since the Vulkan API will no longer be supported, there will be no backward compatibility in this regard. However the default build will still work for the OpenCL API, so current customers are unlikely to be affected.

Security Implications

None

How to Teach This

This should be added to the next release notes.

Reference Implementation

The reference implementation is here. Note this makes the majority of the changes necessary, but is not complete and there are some TODOs to check.

Rejected Ideas

We could keep it as is but have it disabled by default and only test it in our nightly testing. Although this has its merits, the author feels that Vulkan is of little benefit as is and we would get an overall lowering of our maintenance by dropping it altogether. Having something but not testing it leads to bitrot and inability to know whether a change breaks anything. We could do a very specific test overnight though as a possibility if we want to keep it disabled by default.

Open Issues

None

Footnotes

None

Copyright

This document is placed in the public domain or under the CC0-1.0-Universal license, whichever is more permissive.