Skip to content

Dithermaster/OpenCL-Registry

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenCL-Registry

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

In the past, the OpenCL registry was maintained in a public Subversion repository. The history in that repository has not been imported to github, but it is still available at https://cvs.khronos.org/svn/repos/registry/trunk/public/cl/ .

Reserving OpenCL Enumerant Ranges

OpenCL enumerants are documented in 'xml/cl.xml'. New ranges can be allocated by proposing a pull request to master modifying this file, 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 master. At that point you can use values from your assigned range for API extensions.

Adding Extension Specifications

Extension specification documents can be added by proposing a pull request to master, adding the specification '.txt' file under 'extensions/<vendor>/filename.txt'. You must also:

  • Modify 'extensions/registry.py' to include the extension, using the next free extension number. Execute the python script 'nextfree.py' in the 'extensions/' directory to find the next free number. The extension flags must be marked as public , similar to other entries in 'registry.py', for the extension to be linked from the registry index page.

  • Include that extension number in the extension specification document

  • In the 'extensions/' directory, make to regenerate the HTML index file 'clext.php' from 'registry.py'. If this doesn’t succeed due to not having the right Python version or something like that, we’ll take care of it when merging to master.

  • We are no longer registering extension numbers in 'xml/cl.xml', for consistency with the combined GL registry scripts.

Sometimes extension text files contain inappropriate UTF-8 characters. They should be restricted to the ASCII subset of UTF-8 at present. They can be removed using the iconv Linux command-line tool via

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

(see internal Bugzilla issue 16141 for more).

We will be transitioning to an asciidoc-based extension specification format at some point.

Repository Contents

Interesting files in this repository include:

  • 'index.php' - toplevel index page for the web view. This relies on PHP include files found elsewhere on https://www.khronos.org and so is not very useful in isolation.

  • 'xml/cl.xml' - enumerant and extension number registry. Documents the assigned OpenCL enumerant ranges, and the names and index numbers assigned to OpenCL extension specifications.

  • 'extensions/' - OpenCL extension specifications, grouped into vendor-specific subdirectories.

    • 'extensions/registry.py' - extension registry.

    • 'extensions/makeindex.py' - create HTML extension indices from 'registry.py'.

    • 'extensions/nextfree.py' - determine the next free extension number in 'registry.py'.

  • 'sdk/' - OpenCL reference pages and reference cards. There are separate sets for each API version.

  • 'specs/' - OpenCL specification documents.

About

OpenCL API and Extension Registry.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 97.9%
  • C++ 1.0%
  • Ruby 0.3%
  • Makefile 0.3%
  • XSLT 0.3%
  • PHP 0.1%
  • Other 0.1%