[Mesa-dev] [PATCH 0/5 v3] A few clover fixes for both CTS and eventual 1.2 support

Aaron Watry awatry at gmail.com
Thu Mar 1 19:39:03 UTC 2018


The first two patches of the previous series [1] landed upstream a while back.

When I bump my platform/device versions to 1.2, the clang instance has
been confirmed to enable 1.2 language features (like the static keyword
required in test/cl/program/execute/static.cl, which goes skip->pass), while
building a program with -cl-std=CL1.1 still leaves the 1.2 features disabled.

I've also updated my clover platform version to 2.2 and device version to
2.0 and verified that I see expected behavior when specifying a -cl-std of:
  1.0 - Invalid build options error (-cl-std=CL1.0 isn't valid).
  1.1 - Build proceeds with version 1.1
  1.2 - Build proceeds with version 1.2
  2.0 - Build proceeds with version 2.0
  2.1 - Invalid build options error
  2.2 - Invalid build options error

Changes since version 2:
  - Squashed several patches together as Pierre suggested and tried to avoid
    introducing and then changing API in later patches
  - Enable the -cl-std and __OPENCL_VERSION__ changes at the same time
  - Remove switch statements for version detection and created an array of
    struct cl_version with several attributes instead that can be matched on.
    Seems a lot cleaner that way (to me).

Major changes since v1:
  Addressed Pierre's build-breakage comments
  Added a check for cl-std > device_clc_version
  Added a patch to pass the device object down into invocation.cpp
    instead of adding a bunch of device-based arguments.
  Use device_clc_version for cl version detection instead of device_version
  Added device_clc_version in device.cpp/hpp

Anyway, happy reviewing.

Cc: Jan Vesely <jan.vesely at rutgers.edu>
Cc: Pierre Moreau <pierre.morrow at free.fr>
Cc: Francisco Jerez <currojerez at riseup.net>


1 - https://lists.freedesktop.org/archives/mesa-dev/2017-July/164699.html



More information about the mesa-dev mailing list