KhronosGroup / OpenCL-Registry

OpenCL API and Extension Registry.
112 stars 42 forks source link

= OpenCL-Registry

The OpenCL-Registry repository contains the OpenCL API and Extension Registry, including specifications, reference pages, and reference cards. It is also used as a backing store for the web view of the registry at https://registry.khronos.org/OpenCL/ ; commits to the main branch of this repository will be reflected there.

Please file issues with the OpenCL API (specification bugs, feature requests, etc.) in the companion link:https://github.com/KhronosGroup/OpenCL-Docs[OpenCL-Docs] repository.

Issues that should be filed in this repository include adding OpenCL extension specifications, and problems with the structure and content of the registry itself.

== Reserving OpenCL Enumerant Ranges

OpenCL enumerants are now documented in the link:https://github.com/KhronosGroup/OpenCL-Docs[OpenCL-Docs] repository in the file link:https://github.com/KhronosGroup/OpenCL-Docs/blob/main/xml/cl.xml[xml/cl.xml].

New enumerant ranges can be allocated by proposing a pull request to main branch of OpenCL-Docs modifying cl.xml, following the existing examples. Allocate ranges starting at the lowest free values available (search for "Reserved for vendor extensions"). Ranges are not officially allocated until your pull request is accepted into main branch of the OpenCL-Docs repository. At that point you can use values from your assigned range for API extensions.

== Adding Khronos Extension Specifications

Khronos khr extensions must now be documented in the OpenCL API and OpenCL C Specifications, written as conditionally-included markup. Propose a pull request against the appropriate specification markup and XML files in the link:https://github.com/KhronosGroup/OpenCL-Docs[OpenCL-Docs] repository.

== Adding Vendor Extension Specifications

Vendor extension specification documents should be written as separate asciidoc markup files in the link:https://github.com/KhronosGroup/OpenCL-Docs[OpenCL-Docs] repository. Use the link:https://github.com/KhronosGroup/OpenCL-Docs/blob/main/extensions/cl_extension_template.asciidoc[asciidoc extension template] and follow the markup style of existing, similar extensions. Propose a pull request against the appropriate specification markup and XML files in the link:https://github.com/KhronosGroup/OpenCL-Docs[OpenCL-Docs] repository when you are ready to publish the extension.

The repository maintainer will assist with importing the HTML generated from the asciidoc source file and making needed changes to files in this repository when publishing:

Older extensions are written as text (.txt) files. Sometimes extension text files contain inappropriate UTF-8 characters. They should be restricted to the ASCII subset of UTF-8. Problematic characters can be identified using the iconv Linux command-line tool:

iconv -c -f utf-8 -t ascii filename.txt

== Repository Contents

Interesting files in this repository include: