KhronosGroup / KhronosGroup/OpenCL-CTS

Review how we deal with beta/provisional/experimental extensions

Open
#2,331 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
232
Forks
235
Avg merge
8d 7h
Merged PRs (30d)
18

Description

In https://github.com/KhronosGroup/OpenCL-Headers/pull/276 we started guarding the definitions for provisional extensions under an opt-in macro. We intend to use the same macro for other experimental extensions. The CTS has been assuming that all definitions are always available, provisional or otherwise. In order to not break CTS builds, beta extensions were always enabled as a first step with https://github.com/KhronosGroup/OpenCL-CTS/pull/2330.

We should review how we manage beta/provisiona/experimental extensions.

The build system has an `USE_CL_EXPERIMENTAL` option that we always turn on in CI jobs. This option, in turn, defines a `CL_EXPERIMENTAL` macro that is not AFAICT used in the code base.

I think we may want to either:

1. Remove `USE_CL_EXPERIMENTAL` and `CL_EXPERIMENTAL` and always build and test all extensions, beta or not.
2. Introduce clear infrastructure and policies for dealing with beta extensions. Probably something along the lines of:
- A build option that guards the inclusion of all tests that rely on beta extensions (on or off by default?)
- Coverage in the CI for both builds with and without the option turned on
- Think about how we would move extension tests out of under that build option

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the build-system USE_CL_EXPERIMENTAL option and searching the CTS sources and CI jobs for CL_EXPERIMENTAL and beta or provisional extension usage. Determine whether the current setup should be removed or replaced with explicit policies and coverage for builds with and without experimental extensions; the issue does not define a final approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
build-system, ci-cd, testing-qa
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.