KhronosGroup / KhronosGroup/OpenCL-CTS

Remove the dependency on GLEW/GLUT/GL for a full conformance run.

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

Description

Currently a full conformance run (all the tests in `opencl_conformance_tests_full.csv`) requires the
presence of GLEW, GLUT and an OpenGL implementation. This dependency comes from the OpenCL-GL Sharing test, which requires the above libraries and their headers to build. There is a path through this test suite that discovers the device being tested isn't compatible with CL-GL sharing and exits, skipping the test and registering a pass. Requiring OpenGL to build a test that then skips itself because the device being tested isn't compatible with OpenGL seems like a needless dependency. I have some proposals for ways to remove this dependency:
* The simple solution: remove OpenCL-GL Sharing from the required tests list. A test which just exits and registers a pass if the feature being tested isn't supported doesn't seem like a test that should be required.
* If there is a good reason to keep it, change cmake variable `GL_IS_SUPPORTED`'s behaviour so that if disabled it still builds the test, but only the path that skips it and without the gl dependency. I have this solution prototyped locally, it does require substantial `#ifdef`ing.
* As an alternative to the above, change the `run_conformance.py` script's behaviour so that it doesn't fail when it discovers the absence of an optional test (the gl and d3d compatibility tests), and instead prints an appropriate message about skipping it and moves on.

Contributor guide

No contributing guide indexed for this repository

Research direction

Read opencl_conformance_tests_full.csv and the CMake handling of GL_IS_SUPPORTED, then inspect the OpenCL-GL Sharing test and run_conformance.py. Compare the proposed approaches and verify that a full conformance run no longer requires GLEW, GLUT, or an OpenGL implementation while unsupported optional tests are handled consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, cpp, python
Domain
build-system, testing-qa
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.