clinfo
3 years agocl_khr_device_uuid support github/provisional-30
Giuseppe Bilotta [Fri, 20 Nov 2020 11:22:42 +0000 (12:22 +0100)] 
cl_khr_device_uuid support

3 years agoSupport for cl_ext_cxx_for_opencl
Giuseppe Bilotta [Fri, 20 Nov 2020 10:35:12 +0000 (11:35 +0100)] 
Support for cl_ext_cxx_for_opencl

3 years agoRearrange some queries based on dependencies
Giuseppe Bilotta [Fri, 20 Nov 2020 10:27:11 +0000 (11:27 +0100)] 
Rearrange some queries based on dependencies

3 years agoUpdate man page
Giuseppe Bilotta [Fri, 20 Nov 2020 10:20:31 +0000 (11:20 +0100)] 
Update man page

3 years agoSupport cl_khr_extended_versioning as platform extension
Giuseppe Bilotta [Fri, 20 Nov 2020 10:12:52 +0000 (11:12 +0100)] 
Support cl_khr_extended_versioning as platform extension

3 years agoSupport cl_khr_extended_versioning as device extension
Giuseppe Bilotta [Fri, 20 Nov 2020 10:08:44 +0000 (11:08 +0100)] 
Support cl_khr_extended_versioning as device extension

3 years agoTypos in comments
Giuseppe Bilotta [Fri, 20 Nov 2020 10:09:56 +0000 (11:09 +0100)] 
Typos in comments

3 years agoCL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED
Giuseppe Bilotta [Fri, 20 Nov 2020 06:41:24 +0000 (07:41 +0100)] 
CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED

3 years agoDevice enqueue support is a bitfield, not a bool
Giuseppe Bilotta [Fri, 20 Nov 2020 06:30:01 +0000 (07:30 +0100)] 
Device enqueue support is a bitfield, not a bool

It has also been renamed from CL_DEVICE_DEVICE_ENQUEUE_SUPPORT to
CL_DEVICE_DEVICE_ENQUEUE_CAPABILITIES.

3 years agoAdd a couple of TODOs
Giuseppe Bilotta [Fri, 20 Nov 2020 00:32:43 +0000 (01:32 +0100)] 
Add a couple of TODOs

3 years ago3.0 OpenCL versions and features
Giuseppe Bilotta [Fri, 20 Nov 2020 00:30:53 +0000 (01:30 +0100)] 
3.0 OpenCL versions and features

3 years agoPreferred work-group size multiple device prop
Giuseppe Bilotta [Fri, 20 Nov 2020 00:27:43 +0000 (01:27 +0100)] 
Preferred work-group size multiple device prop

3 years agoBunch of boolean props
Giuseppe Bilotta [Fri, 20 Nov 2020 00:24:38 +0000 (01:24 +0100)] 
Bunch of boolean props

3 years agoAtomic memory/fences support
Giuseppe Bilotta [Fri, 20 Nov 2020 00:11:57 +0000 (01:11 +0100)] 
Atomic memory/fences support

3 years agoMore «stuff with versions» properties
Giuseppe Bilotta [Thu, 19 Nov 2020 23:47:33 +0000 (00:47 +0100)] 
More «stuff with versions» properties

3 years agoSupport CL_DEVICE_EXTENSIONS_WITH_VERSION and make homogeneous
Giuseppe Bilotta [Thu, 19 Nov 2020 23:43:45 +0000 (00:43 +0100)] 
Support CL_DEVICE_EXTENSIONS_WITH_VERSION and make homogeneous

3 years agoAdd support for CL_PLATFORM_EXTENSIONS_WITH_VERSION
Giuseppe Bilotta [Thu, 19 Nov 2020 23:23:03 +0000 (00:23 +0100)] 
Add support for CL_PLATFORM_EXTENSIONS_WITH_VERSION

3 years agoIntroduce support for CL_{PLATFORM,DEVICE}_NUMERIC_VERSION
Giuseppe Bilotta [Thu, 19 Nov 2020 22:33:37 +0000 (23:33 +0100)] 
Introduce support for CL_{PLATFORM,DEVICE}_NUMERIC_VERSION

3 years agoFuture-proof loader version check
Giuseppe Bilotta [Thu, 19 Nov 2020 21:14:49 +0000 (22:14 +0100)] 
Future-proof loader version check

If the loader claims a version higher than the highest version clinfo
knows about, we should not warn about version mismatches, because we
cannot actually check if what the loader claims is correct or not.

SImilarly, we comparing loader and maximum platform version, we trust
what the loader claims if it's higher than what we know about, but use
our detected version otherwise.

3 years agoAllow specification of single device to show info about
Giuseppe Bilotta [Tue, 17 Nov 2020 20:41:00 +0000 (21:41 +0100)] 
Allow specification of single device to show info about

3 years agoUpdated loader version detection to OpenCL 3.0.
Brice Videau [Thu, 22 Oct 2020 22:15:05 +0000 (22:15 +0000)] 
Updated loader version detection to OpenCL 3.0.

3 years agoFix a typo
bdenhollander [Sat, 10 Oct 2020 18:51:51 +0000 (14:51 -0400)] 
Fix a typo

3 years agoAvoid false positives in extensions detection
Giuseppe Bilotta [Mon, 5 Oct 2020 16:38:31 +0000 (18:38 +0200)] 
Avoid false positives in extensions detection

Pad the extension string with spaces and check for the extension string
surrounded by spaces.

3 years agoAdd architecture ppc64le to travis build
ddeka2910 [Sun, 4 Oct 2020 08:34:43 +0000 (14:04 +0530)] 
Add architecture ppc64le to travis build

3 years agoFix no device handling for checkNullGetDevices
Giuseppe Bilotta [Sun, 5 Jul 2020 19:23:49 +0000 (21:23 +0200)] 
Fix no device handling for checkNullGetDevices

The main issue was that we were updating the non-error buffer, even
though an error condition was present in this case, so error buffer
should have been updated instead.

While we're at it, cleanup the output for this case, pointing out that
no device was found and that we're only tentatively guessing what the
associated platform might be.

4 years agoFix CL_DEVICE_COMPUTE_UNITS_BITFIELD define name
Giuseppe Bilotta [Sun, 3 May 2020 15:33:43 +0000 (17:33 +0200)] 
Fix CL_DEVICE_COMPUTE_UNITS_BITFIELD define name

This is for an Arm extension, but was missing the _ARM suffix. When the
define was added to the official headers, it was done with the correct
name, but I forgot to update it too.

4 years agoImprove Android support
Giuseppe Bilotta [Fri, 10 Apr 2020 11:55:51 +0000 (13:55 +0200)] 
Improve Android support

Extend the default library path to add the vendor libraries
(which is where `libOpenCL.so` is typically found),
and include some documentation on how to build clinfo on Android in a
Termux session.

Running still requires a library search path override due to the
way the Bionic runtime linker works (no DT_RPATH or DT_RUNPATH support).

Android is not autodetected (`uname -s` returns `Linux`) so it has to be
manually specified by the user. (A possible idea would be to look at the
output of `uname -o` in Linux, since this does mention Android.)

4 years agoTypo in Makefile
Giuseppe Bilotta [Fri, 10 Apr 2020 08:34:03 +0000 (10:34 +0200)] 
Typo in Makefile

4 years agoDocument LLVM CommandLine issue
Giuseppe Bilotta [Sun, 29 Mar 2020 14:04:54 +0000 (16:04 +0200)] 
Document LLVM CommandLine issue

4 years agoUpdate documentation about CL_DEVICE_GLOBAL_FREE_MEMORY_AMD
Giuseppe Bilotta [Sun, 29 Mar 2020 13:48:32 +0000 (15:48 +0200)] 
Update documentation about CL_DEVICE_GLOBAL_FREE_MEMORY_AMD

4 years agoPreliminary support for cl_arm_job_slot_selection
Giuseppe Bilotta [Sun, 29 Mar 2020 13:46:30 +0000 (15:46 +0200)] 
Preliminary support for cl_arm_job_slot_selection

4 years agoBetter handling of CL_DEVICE_GLOBAL_FREE_MEMORY_AMD
Giuseppe Bilotta [Sun, 29 Mar 2020 12:54:26 +0000 (14:54 +0200)] 
Better handling of CL_DEVICE_GLOBAL_FREE_MEMORY_AMD

ROCm chooses how many values to return depending on the requested size.
Since we know it returns two at most, let's ask for all of them.

4 years agoImprove support for CL_DEVICE_P2P_DEVICES_AMD
Giuseppe Bilotta [Sun, 29 Mar 2020 12:39:09 +0000 (14:39 +0200)] 
Improve support for CL_DEVICE_P2P_DEVICES_AMD

This property cannot be queried using the standard array query approach
due to the way it's implemented in ROCm (at least the version I have
tried). Work around this by directly querying the array values,
and only doing so when the CL_DEVICE_NUM_P2P_DEVICES_AMD query
returned a positive value.

4 years agoMissing attribute from cl_amd_device_attribute_query
Giuseppe Bilotta [Fri, 27 Dec 2019 18:50:09 +0000 (19:50 +0100)] 
Missing attribute from cl_amd_device_attribute_query

4 years agoHow to report missing information
Giuseppe Bilotta [Thu, 12 Dec 2019 22:11:29 +0000 (23:11 +0100)] 
How to report missing information

4 years agoAdd a TODO
Giuseppe Bilotta [Thu, 11 Jul 2019 14:51:04 +0000 (16:51 +0200)] 
Add a TODO

5 years agoIt should be kernel void, not void kernel
Giuseppe Bilotta [Sun, 17 Mar 2019 21:24:24 +0000 (22:24 +0100)] 
It should be kernel void, not void kernel

Most platforms don't care, but apparently Vivante does.

Closes GitHub issue #41.

5 years agoFixes for cl_arm_core_id
Giuseppe Bilotta [Wed, 12 Dec 2018 13:50:48 +0000 (14:50 +0100)] 
Fixes for cl_arm_core_id

5 years agocl_intel_dx9_media_sharing values are not consecutive
Giuseppe Bilotta [Thu, 11 Oct 2018 12:48:26 +0000 (14:48 +0200)] 
cl_intel_dx9_media_sharing values are not consecutive

Split their enumeration so we can keep the ranged search during
printout.

5 years agoTentative support for cl_arm_core_id v2
Giuseppe Bilotta [Tue, 14 Aug 2018 07:03:55 +0000 (09:03 +0200)] 
Tentative support for cl_arm_core_id v2

5 years agoUpdate fetch script for Windows CI
Giuseppe Bilotta [Thu, 7 Jun 2018 18:49:05 +0000 (20:49 +0200)] 
Update fetch script for Windows CI

5 years agoPrepare for new unified headers from Khronos
Giuseppe Bilotta [Thu, 7 Jun 2018 18:30:38 +0000 (20:30 +0200)] 
Prepare for new unified headers from Khronos

5 years agoBetter support for OpenCL 1.0 platforms and devices
Giuseppe Bilotta [Thu, 7 Jun 2018 17:59:55 +0000 (19:59 +0200)] 
Better support for OpenCL 1.0 platforms and devices

6 years agoOne-liner to find faulty platforms
Giuseppe Bilotta [Wed, 25 Apr 2018 15:24:43 +0000 (17:24 +0200)] 
One-liner to find faulty platforms

6 years agoAdd a note about platforms causing a segmentation fault
Giuseppe Bilotta [Wed, 25 Apr 2018 15:11:22 +0000 (17:11 +0200)] 
Add a note about platforms causing a segmentation fault

6 years agoVersion 2.2.18.04.06 2.2.18.04.06
Giuseppe Bilotta [Fri, 6 Apr 2018 05:50:01 +0000 (07:50 +0200)] 
Version 2.2.18.04.06

6 years agoFix a typo github/diri origin/diri
Kristofer Rye [Thu, 5 Apr 2018 22:09:09 +0000 (17:09 -0500)] 
Fix a typo

6 years agoTune hex format specifier
Giuseppe Bilotta [Tue, 3 Apr 2018 20:42:23 +0000 (22:42 +0200)] 
Tune hex format specifier

Use "%#" instead of "0x%", and use lowercase hex everywhere.

6 years agoFixup floating-point support output/fetch
Giuseppe Bilotta [Tue, 3 Apr 2018 20:33:44 +0000 (22:33 +0200)] 
Fixup floating-point support output/fetch

In the reorganization, it was being printed unconditionally even in raw
mode, where we only want to output it only when it's expected. Split
the DINFO in HUMAN vs RAW to achieve this now.

6 years agoUn-globalize platform_sname_maxlen
Giuseppe Bilotta [Tue, 3 Apr 2018 19:12:38 +0000 (21:12 +0200)] 
Un-globalize platform_sname_maxlen

6 years agoUn-globalize maxdevs
Giuseppe Bilotta [Tue, 3 Apr 2018 19:06:46 +0000 (21:06 +0200)] 
Un-globalize maxdevs

6 years agoUn-globalize icdl properties
Giuseppe Bilotta [Tue, 3 Apr 2018 19:04:33 +0000 (21:04 +0200)] 
Un-globalize icdl properties

6 years agoUn-globalize max_plat_version
Giuseppe Bilotta [Tue, 3 Apr 2018 18:55:56 +0000 (20:55 +0200)] 
Un-globalize max_plat_version

6 years agomacOS and its stupid different include paths
Giuseppe Bilotta [Mon, 2 Apr 2018 15:27:50 +0000 (17:27 +0200)] 
macOS and its stupid different include paths

6 years agocond_prop_mode should be ignored in brief mode
Giuseppe Bilotta [Mon, 2 Apr 2018 14:08:58 +0000 (16:08 +0200)] 
cond_prop_mode should be ignored in brief mode

6 years agoUse printPlatformDevices for offline devices too
Giuseppe Bilotta [Mon, 2 Apr 2018 14:06:30 +0000 (16:06 +0200)] 
Use printPlatformDevices for offline devices too

6 years agoStart refactoring of platform device info output
Giuseppe Bilotta [Mon, 2 Apr 2018 09:12:54 +0000 (11:12 +0200)] 
Start refactoring of platform device info output

This will allow us to coalesce processOfflineDevicesAMD with
the 'standard' device info printing.

6 years agoRefactor printPlatformName
Giuseppe Bilotta [Mon, 2 Apr 2018 09:04:24 +0000 (11:04 +0200)] 
Refactor printPlatformName

Still not satisfied by the complexity of the logic, may need some
rethinking of the whole I*_STR mess.

6 years agoMove output options to own header
Giuseppe Bilotta [Mon, 2 Apr 2018 00:29:35 +0000 (02:29 +0200)] 
Move output options to own header

6 years agoSimplify printDeviceInfo signature
Giuseppe Bilotta [Mon, 2 Apr 2018 00:20:48 +0000 (02:20 +0200)] 
Simplify printDeviceInfo signature

6 years agoOutput options aren't global anymore either
Giuseppe Bilotta [Mon, 2 Apr 2018 00:09:34 +0000 (02:09 +0200)] 
Output options aren't global anymore either

6 years agoUnify listPlatformAndDevices and showDevices
Giuseppe Bilotta [Sun, 1 Apr 2018 23:13:00 +0000 (01:13 +0200)] 
Unify listPlatformAndDevices and showDevices

6 years agoGet rid of global platform list
Giuseppe Bilotta [Sun, 1 Apr 2018 21:25:26 +0000 (23:25 +0200)] 
Get rid of global platform list

Put the relevant data in a structure that gets passed around.

6 years agoTypos
Giuseppe Bilotta [Sat, 31 Mar 2018 23:21:08 +0000 (01:21 +0200)] 
Typos

6 years agoFormal correctness: PRIu32 instead of u
Giuseppe Bilotta [Sat, 31 Mar 2018 23:12:03 +0000 (01:12 +0200)] 
Formal correctness: PRIu32 instead of u

Also place pdata closer to related static variables, and fix a missing
closed parenthesis.

6 years agoFurther work on fetch vs show split
Giuseppe Bilotta [Sat, 31 Mar 2018 22:48:33 +0000 (00:48 +0200)] 
Further work on fetch vs show split

With the exception of array and composite values, all device info
functions separate the fetch from the rendering, with the fetch
functions filling up ret and the value field, and returning the value
itself.

6 years agoFix comments
Giuseppe Bilotta [Sat, 31 Mar 2018 20:33:21 +0000 (22:33 +0200)] 
Fix comments

6 years agoRemove extra empty line
Giuseppe Bilotta [Sat, 31 Mar 2018 20:29:49 +0000 (22:29 +0200)] 
Remove extra empty line

6 years agoSwitch to cl_bool where it makes sense
Giuseppe Bilotta [Sat, 31 Mar 2018 20:27:29 +0000 (22:27 +0200)] 
Switch to cl_bool where it makes sense

6 years agoGet rid of the Makefile/GNUMakefile split
Giuseppe Bilotta [Fri, 30 Mar 2018 20:14:20 +0000 (22:14 +0200)] 
Get rid of the Makefile/GNUMakefile split

We can leverage the difference in syntax between the two main make
variants to get the OS, which was the only missing part.

For those interested in a full-fledged “autoconf”, or in general in
learning more tricks on how to write portable Makefiles, I highly
recommend looking at this masterpiece:

https://github.com/wahern/autoguess/blob/config-guess/config.mk.guess

6 years agoSplit definitions of *_info_ret to own header file
Giuseppe Bilotta [Wed, 28 Mar 2018 19:25:27 +0000 (21:25 +0200)] 
Split definitions of *_info_ret to own header file

6 years agoMissing strbuf init
Giuseppe Bilotta [Wed, 28 Mar 2018 17:21:26 +0000 (19:21 +0200)] 
Missing strbuf init

6 years agoFix -a flag not working correctly
Giuseppe Bilotta [Wed, 28 Mar 2018 17:19:11 +0000 (19:19 +0200)] 
Fix -a flag not working correctly

6 years agoDeallocate what was allocated
Giuseppe Bilotta [Wed, 28 Mar 2018 17:01:42 +0000 (19:01 +0200)] 
Deallocate what was allocated

6 years agoInitialize strbuf in listPlatformsAndDevices
Giuseppe Bilotta [Wed, 28 Mar 2018 16:56:33 +0000 (18:56 +0200)] 
Initialize strbuf in listPlatformsAndDevices

6 years agoReorganize handling of empty values
Giuseppe Bilotta [Wed, 28 Mar 2018 16:54:04 +0000 (18:54 +0200)] 
Reorganize handling of empty values

6 years agoRemove global strbuf
Giuseppe Bilotta [Wed, 28 Mar 2018 15:45:55 +0000 (17:45 +0200)] 
Remove global strbuf

To achieve this, all info retrieval functions get a new “ret” typ that
includes a buffer with the textual description of the result, which is
used to pass strings around.

6 years agoDIRI: global strbuf suppression, step 1
Giuseppe Bilotta [Tue, 27 Mar 2018 21:22:51 +0000 (23:22 +0200)] 
DIRI: global strbuf suppression, step 1

Introduce the _strbuf structure and switch to it, making most uses
explicit.

6 years agoForgot had_error => err renaming in strbuf.h
Giuseppe Bilotta [Tue, 27 Mar 2018 19:57:18 +0000 (21:57 +0200)] 
Forgot had_error => err renaming in strbuf.h

6 years agoHeader fencing cleanup
Giuseppe Bilotta [Tue, 27 Mar 2018 19:53:35 +0000 (21:53 +0200)] 
Header fencing cleanup

6 years agoDIRI: sanitize error location management
Giuseppe Bilotta [Mon, 26 Mar 2018 23:45:58 +0000 (01:45 +0200)] 
DIRI: sanitize error location management

Get rid of the error-related globals and shuffle arround a new info_loc
structure carrying the salient information.

As a bonus, we now pass the relevant platform to all device info checks,
and we get rid of a number of shadowing and global overrides.

6 years agoTypo
Giuseppe Bilotta [Mon, 26 Mar 2018 21:33:48 +0000 (23:33 +0200)] 
Typo

6 years agoDIRI: more sophisticated return
Giuseppe Bilotta [Mon, 26 Mar 2018 17:08:01 +0000 (19:08 +0200)] 
DIRI: more sophisticated return

This is the first step in fixing the Device Information Retrieval
Insanity. The relevant functions now return a structure that includes
the error condition as well as (in most cases) the actual return value.

This needs to be further improved, including array return values and
raw vs human representation.

6 years agoVersion 2.2.18.03.26 2.2.18.03.26
Giuseppe Bilotta [Mon, 26 Mar 2018 15:55:02 +0000 (17:55 +0200)] 
Version 2.2.18.03.26

6 years agoAMD offline info whitelist tuning and cleanup
Giuseppe Bilotta [Mon, 26 Mar 2018 14:42:14 +0000 (16:42 +0200)] 
AMD offline info whitelist tuning and cleanup

6 years agoPhrasing
Giuseppe Bilotta [Sun, 25 Mar 2018 06:43:58 +0000 (08:43 +0200)] 
Phrasing

6 years agoMention the most typical use cases for clinfo
Giuseppe Bilotta [Sun, 25 Mar 2018 06:40:43 +0000 (08:40 +0200)] 
Mention the most typical use cases for clinfo

6 years agoTravis CI build status
Giuseppe Bilotta [Sun, 25 Mar 2018 06:31:16 +0000 (08:31 +0200)] 
Travis CI build status

6 years agoWhitespace cleanup
Giuseppe Bilotta [Sun, 25 Mar 2018 06:26:54 +0000 (08:26 +0200)] 
Whitespace cleanup

6 years agoImprove checkNullCtxFromType
Giuseppe Bilotta [Sat, 24 Mar 2018 21:47:35 +0000 (22:47 +0100)] 
Improve checkNullCtxFromType

Apparently Apple returs CL_INVALID_VALUE instead of
CL_INVALID_DEVICE_TYPE for _CUSTOM types. Take the opportunity to clean
up the way errors are reported, and split each case of failure..

6 years agoGitHub doesn't like style tags inside tables in Markdown
Giuseppe Bilotta [Sat, 24 Mar 2018 17:13:13 +0000 (18:13 +0100)] 
GitHub doesn't like style tags inside tables in Markdown

On an unrelated noted, GitHub is starting to get on my nerves.

6 years agoExpand README
Giuseppe Bilotta [Sat, 24 Mar 2018 17:09:35 +0000 (18:09 +0100)] 
Expand README

Add minimal usage and a link to Windows binaries.

6 years agoInterop list: don't print last group separator
Giuseppe Bilotta [Fri, 23 Mar 2018 09:25:15 +0000 (10:25 +0100)] 
Interop list: don't print last group separator

6 years agoSwapped conditional in interop list
Giuseppe Bilotta [Fri, 23 Mar 2018 08:50:54 +0000 (09:50 +0100)] 
Swapped conditional in interop list

6 years agoAppVeyor support github/appveyor origin/appveyor
Giuseppe Bilotta [Thu, 22 Mar 2018 20:52:27 +0000 (21:52 +0100)] 
AppVeyor support

6 years agoImprove Windows OpenCL dev fetcher
Giuseppe Bilotta [Thu, 22 Mar 2018 20:44:24 +0000 (21:44 +0100)] 
Improve Windows OpenCL dev fetcher

Now it also accepts x64 as parameter to fetch 64-bit libs.

6 years agoMakefile.win arch detection tuning
Giuseppe Bilotta [Thu, 22 Mar 2018 18:59:16 +0000 (19:59 +0100)] 
Makefile.win arch detection tuning

6 years agoScript to set up a minimal OpenCL build env in Windows
Giuseppe Bilotta [Thu, 22 Mar 2018 17:12:24 +0000 (18:12 +0100)] 
Script to set up a minimal OpenCL build env in Windows

6 years agoAdd missing header to Makefile.win
Giuseppe Bilotta [Thu, 22 Mar 2018 16:28:52 +0000 (17:28 +0100)] 
Add missing header to Makefile.win

6 years agoVersion 2.2.18.03.22 2.2.18.03.22
Giuseppe Bilotta [Thu, 22 Mar 2018 15:17:55 +0000 (16:17 +0100)] 
Version 2.2.18.03.22