Added OpenCL Universal Driver Support for Win10 RS3 (#21)
authorOfir Cohen <ofircohenn@gmail.com>
Tue, 3 Oct 2017 14:37:14 +0000 (17:37 +0300)
committerKedar Patil <kepatil@nvidia.com>
Tue, 3 Oct 2017 14:37:14 +0000 (09:37 -0500)
commit188be6047481ea3c0c2ba5a7583ee13c8c3b2333
tree081357501d046055f296f94f8f85082972efa729
parent6849f617e991e8a46eebf746df43032175f263b3
Added OpenCL Universal Driver Support for Win10 RS3 (#21)

Starting from Windows 10 RS3+ Graphics Drivers are no longer allowed to
write HKLM entries, and hence the current registry key:
HKLM\SOFTWARE\Khronos\OpenCL\Vendors

Is no longer applicable to graphics drivers for registering their ICD.
Instead, graphics drivers can write to either of the 2 registry keys
below:
1) Display Adapter HKR
2) Software Components HKR

Graphics Drivers (starting from RS3) have dedicated component INF files and are
referenced via the CopyINF directive and/or (optional) "INF AddComponent directive".

Every such component, e.g. OpenCL instance (ICD), is assigned a unique device
instance ID (e.g. 0000, 0001, etc) under the "Software Component" GUID and use it to
store the path to its ICD.

Therefore we enumerate ICDs in the following places (and also in the following order):
1) Display Adapters HKRs (using the display adapter GUID)
2) Software Component HKRs (using the CM_* APIs to traverse the device tree)
3) The usual "Vendors" registry key (see above)

Corresponding ICD extension updates were made with KhronosGroup/OpenCL-Registry#30.
CMakeLists.txt
OpenCL.rc
icd.c
icd.h
icd_windows.c
icd_windows_hkr.c [new file with mode: 0644]
icd_windows_hkr.h [new file with mode: 0644]