diff options
author | Drommer | 2022-06-03 23:36:09 +0300 |
---|---|---|
committer | Drommer | 2022-06-03 23:36:09 +0300 |
commit | 9cd47b7a20eab0dece24e1e56a8b2ddc828bccb6 (patch) | |
tree | 035fbbd4a82665844cde076184cd349fa8e55beb | |
parent | cc04b7568ba8dbb01871386044d581a7d7c8bec1 (diff) | |
download | aur-9cd47b7a20eab0dece24e1e56a8b2ddc828bccb6.tar.gz |
Update
-rw-r--r-- | .SRCINFO | 27 | ||||
-rw-r--r-- | PKGBUILD | 96 | ||||
-rw-r--r-- | cflags.patch | 49 | ||||
-rw-r--r-- | cl_accelerator_intel.patch | 147 | ||||
-rw-r--r-- | coffeelake-cometlake-amberlake.patch | 289 | ||||
-rw-r--r-- | fix-docs-links.patch | 63 | ||||
-rw-r--r-- | gbe_bin_generater.patch | 49 | ||||
-rw-r--r-- | reduce-notfound-output.patch | 41 |
8 files changed, 711 insertions, 50 deletions
@@ -1,31 +1,42 @@ pkgbase = beignet pkgdesc = An open source OpenCL implementation for Intel IvyBridge & Haswell iGPUs - pkgver = 1.3.2+12+gfc5f430c - pkgrel = 4 - url = https://01.org/beignet + pkgver = 1.3.2.r3283.419c0417 + pkgrel = 1 + url = https://www.freedesktop.org/wiki/Software/Beignet/ arch = x86_64 license = LGPL makedepends = git - makedepends = llvm + makedepends = llvm10 makedepends = cmake makedepends = python makedepends = ocl-icd depends = glu - depends = llvm-libs - depends = clang + depends = llvm10-libs + depends = clang10 depends = mesa depends = opencl-headers provides = opencl-intel provides = opencl-driver conflicts = opencl-intel - source = git+https://anongit.freedesktop.org/git/beignet.git#commit=fc5f430cb7b7a8f694d86acbb038bd5b38ec389c + source = git+https://github.com/intel/beignet.git#commit=419c041736c5d19cd9c9e7f90717792a01826638 source = llvm8.patch source = llvm9.patch source = llvm10.patch + source = cflags.patch + source = cl_accelerator_intel.patch + source = coffeelake-cometlake-amberlake.patch + source = fix-docs-links.patch + source = gbe_bin_generater.patch + source = reduce-notfound-output.patch sha256sums = SKIP sha256sums = d24e4d8a1a791dc02c91117f900143789dd6f01eaa89292ad67c4fb4eaf84328 sha256sums = 5913a93fe6ef77b91480bb6d27c7875673294c0a8a924b2ac66756d0d3577908 sha256sums = 2eb9b0801e24f4e537033b41a6bc462e4082f6216d62933240ca3010020ea779 + sha256sums = 4e6c37dc7b5b40321b4f460d712b88bb644dd061a747ce94aa68187b26b15440 + sha256sums = 2e058d2d0f30c7a528ccbbd48de2750bdad18927f29891ee53e9d6923250e60b + sha256sums = f76b383d53adf441865d25e887d12bbbe5956f1ea4836acc99f060f626a7d39f + sha256sums = 88ad44b0299a934610c6bb7e404f539d8c3dde0a4d9fa3e9a7b0f86b670a2e74 + sha256sums = 7f55e2ddb98e94276a31fae297c1d465c8c3c893068d982cadf28501c88a7810 + sha256sums = 3f51f892f6cba9c4af81a15117f833769a2526032df93fd928426ed77ffd343b pkgname = beignet - @@ -1,61 +1,73 @@ -# Maintainer: -# Contributor: Bruno Pagani <archange@archlinux.org> -# Contributor: Antoine Lubineau <antoine@lubignon.info> -# Contributor: Leopold Bloom <blinxwang@gmail.com> -# Contributor: Michal Krenek (a.k.a. Mikos) <m.krenek@gmail.com> +# Maintainer: Drommer <drommer@github.com> pkgname=beignet -pkgver=1.3.2+12+gfc5f430c -pkgrel=4 +pkgver=1.3.2.r3283.419c0417 +pkgrel=1 pkgdesc="An open source OpenCL implementation for Intel IvyBridge & Haswell iGPUs" -arch=(x86_64) -url="https://01.org/${pkgname}" -license=(LGPL) -depends=(glu llvm-libs clang mesa opencl-headers) -makedepends=(git llvm cmake python ocl-icd) -provides=(opencl-intel opencl-driver) -conflicts=(opencl-intel) -_commit=fc5f430cb7b7a8f694d86acbb038bd5b38ec389c # master as of 2018-08-20 -source=( - "git+https://anongit.freedesktop.org/git/beignet.git#commit=$_commit" - llvm8.patch - llvm9.patch - llvm10.patch +arch=('x86_64') +url="https://www.freedesktop.org/wiki/Software/Beignet/" +license=('LGPL') +depends=('glu' 'llvm10-libs' 'clang10' 'mesa' 'opencl-headers') +makedepends=('git' 'llvm10' 'cmake' 'python' 'ocl-icd') +provides=('opencl-intel' 'opencl-driver') +conflicts=('opencl-intel') +source=("git+https://github.com/intel/beignet.git#commit=419c041736c5d19cd9c9e7f90717792a01826638" + "llvm8.patch" + "llvm9.patch" + "llvm10.patch" + "cflags.patch" + "cl_accelerator_intel.patch" + "coffeelake-cometlake-amberlake.patch" + "fix-docs-links.patch" + "gbe_bin_generater.patch" + "reduce-notfound-output.patch" ) -sha256sums=( - SKIP - d24e4d8a1a791dc02c91117f900143789dd6f01eaa89292ad67c4fb4eaf84328 - 5913a93fe6ef77b91480bb6d27c7875673294c0a8a924b2ac66756d0d3577908 - 2eb9b0801e24f4e537033b41a6bc462e4082f6216d62933240ca3010020ea779 +sha256sums=('SKIP' + 'd24e4d8a1a791dc02c91117f900143789dd6f01eaa89292ad67c4fb4eaf84328' + '5913a93fe6ef77b91480bb6d27c7875673294c0a8a924b2ac66756d0d3577908' + '2eb9b0801e24f4e537033b41a6bc462e4082f6216d62933240ca3010020ea779' + '4e6c37dc7b5b40321b4f460d712b88bb644dd061a747ce94aa68187b26b15440' + '2e058d2d0f30c7a528ccbbd48de2750bdad18927f29891ee53e9d6923250e60b' + 'f76b383d53adf441865d25e887d12bbbe5956f1ea4836acc99f060f626a7d39f' + '88ad44b0299a934610c6bb7e404f539d8c3dde0a4d9fa3e9a7b0f86b670a2e74' + '7f55e2ddb98e94276a31fae297c1d465c8c3c893068d982cadf28501c88a7810' + '3f51f892f6cba9c4af81a15117f833769a2526032df93fd928426ed77ffd343b' ) -prepare() { - cd ${pkgname} +pkgver() { + cd $pkgname + printf "1.3.2.r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" +} - # Remove implementation of cl_intel_device_side_avc_motion_estimation - # (conflicts with the implemention in Clang 8) - git revert -n 9b7ca443cf7b 9cb7ff4c285d +prepare() { + cd $pkgname - # Patches from FreeBSD + Debian to build with newer LLVM - patch -Np1 -i ../llvm8.patch - patch -Np1 -i ../llvm9.patch + git revert -n 9b7ca443cf7b 9cb7ff4c285d 1bd0d252d733 - # https://lists.freedesktop.org/archives/beignet/2020-January/009251.html - # https://github.com/intel/opencl-clang/commit/77ae1114c7bf79d724f5129461 - patch -Np1 -i ../llvm10.patch + patch -Np1 -i ../llvm8.patch + patch -Np1 -i ../llvm9.patch + patch -Np1 -i ../llvm10.patch + patch -Np1 -i ../cflags.patch + patch -Np1 -i ../cl_accelerator_intel.patch + patch -Np1 -i ../coffeelake-cometlake-amberlake.patch + patch -Np1 -i ../fix-docs-links.patch + patch -Np1 -i ../gbe_bin_generater.patch + patch -Np1 -i ../reduce-notfound-output.patch } build() { - cmake -B build -S ${pkgname} \ + cd $pkgname + + cmake -DLLVM_INSTALL_DIR=/opt/llvm10/bin \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=/usr/lib \ -DCMAKE_BUILD_TYPE=RELEASE - make -C build + make } package() { - make -C build DESTDIR="${pkgdir}" install - # Remove headers already provided by 'opencl-headers' - cd "${pkgdir}"/usr/include/CL - rm cl.h cl_egl.h cl_ext.h cl_gl.h cl_gl_ext.h cl_platform.h opencl.h + cd $pkgname + make DESTDIR=$pkgdir install + # Remove headers already provided by 'opencl-headers' + rm -f $pkgdir/usr/include/CL/{cl.h,cl_{egl.h,ext.h,gl.h,gl_ext.h,platform.h},opencl.h} } diff --git a/cflags.patch b/cflags.patch new file mode 100644 index 000000000000..1bedcf14d7a7 --- /dev/null +++ b/cflags.patch @@ -0,0 +1,49 @@ +Description: Set compiler flags + +Respect CFLAGS,CXXFLAGS,LDFLAGS (security hardening etc.) +Be verbose +Disable non-policy-compliant instruction set assumptions (slows the +OpenCL compiler by ~few%, no effect on OpenCL execution speed) + +Author: Simon Richter <sjr@debian.org>,Rebecca Palmer <rebecca_palmer@zoho.com> +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -31,7 +31,6 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINA + + INCLUDE (FindPkgConfig) + +-SET(CMAKE_VERBOSE_MAKEFILE "false") + set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/") + INCLUDE (GNUInstallDirs OPTIONAL) + # support old CMake without GNUInstallDirs +@@ -73,9 +72,9 @@ ADD_DEFINITIONS(-DGEN7_SAMPLER_CLAMP_BOR + + # compiler flag setting + if (COMPILER STREQUAL "GCC") +- set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -funroll-loops -fstrict-aliasing -msse2 -msse3 -mssse3 -msse4.1 -fPIC -Wall -mfpmath=sse -Wcast-align -Wl,-E") ++ set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -funroll-loops -fstrict-aliasing -fPIC -Wall -Wcast-align -Wl,-E") + elseif (COMPILER STREQUAL "CLANG") +- set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -funroll-loops -fstrict-aliasing -msse2 -msse3 -mssse3 -msse4.1 -fPIC -Wall") ++ set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -funroll-loops -fstrict-aliasing -fPIC -Wall") + elseif (COMPILER STREQUAL "ICC") + set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -wd2928 -Wall -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E") + endif () +--- a/backend/src/sys/platform.hpp ++++ b/backend/src/sys/platform.hpp +@@ -41,15 +41,6 @@ + #define __X86__ + #endif + +-/* We require SSE ... */ +-#ifndef __SSE__ +-#define __SSE__ +-#endif +- +-/* ... and SSE2 */ +-#ifndef __SSE2__ +-#define __SSE2__ +-#endif + + #if defined(_INCLUDED_IMM) + // #define __AVX__ + diff --git a/cl_accelerator_intel.patch b/cl_accelerator_intel.patch new file mode 100644 index 000000000000..c60dcaa29acd --- /dev/null +++ b/cl_accelerator_intel.patch @@ -0,0 +1,147 @@ +Description: Move cl_intel_accelerator to cl_intel.h + +Beignet's own headers define cl_intel_accelerator etc directly in +cl_ext.h, but khronos-opencl-headers 2.2~ places these in a separate +file cl_ext_intel.h, and older versions do not include it at all. + +Author: Rebecca N. Palmer <rebecca_palmer@zoho.com> +Forwarded: https://lists.freedesktop.org/archives/beignet/2018-July/009217.html + +--- a/include/CL/cl_intel.h ++++ b/include/CL/cl_intel.h +@@ -26,6 +26,115 @@ + extern "C" { + #endif + ++#if defined(__CL_EXT_H) && !defined(cl_intel_accelerator) ++#ifdef CL_VERSION_2_2 ++#include "CL/cl_ext_intel.h" ++#else ++/********************************* ++* cl_intel_accelerator extension * ++*********************************/ ++#define cl_intel_accelerator 1 ++#define cl_intel_motion_estimation 1 ++ ++typedef struct _cl_accelerator_intel* cl_accelerator_intel; ++typedef cl_uint cl_accelerator_type_intel; ++typedef cl_uint cl_accelerator_info_intel; ++ ++typedef struct _cl_motion_estimation_desc_intel { ++ cl_uint mb_block_type; ++ cl_uint subpixel_mode; ++ cl_uint sad_adjust_mode; ++ cl_uint search_path_type; ++} cl_motion_estimation_desc_intel; ++ ++/* Error Codes */ ++#define CL_INVALID_ACCELERATOR_INTEL -1094 ++#define CL_INVALID_ACCELERATOR_TYPE_INTEL -1095 ++#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL -1096 ++#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL -1097 ++ ++/* Deprecated Error Codes */ ++#define CL_INVALID_ACCELERATOR_INTEL_DEPRECATED -6000 ++#define CL_INVALID_ACCELERATOR_TYPE_INTEL_DEPRECATED -6001 ++#define CL_INVALID_ACCELERATOR_DESCRIPTOR_INTEL_DEPRECATED -6002 ++#define CL_ACCELERATOR_TYPE_NOT_SUPPORTED_INTEL_DEPRECATED -6003 ++ ++/* cl_accelerator_type_intel */ ++#define CL_ACCELERATOR_TYPE_MOTION_ESTIMATION_INTEL 0x0 ++ ++/* cl_accelerator_info_intel */ ++#define CL_ACCELERATOR_DESCRIPTOR_INTEL 0x4090 ++#define CL_ACCELERATOR_REFERENCE_COUNT_INTEL 0x4091 ++#define CL_ACCELERATOR_CONTEXT_INTEL 0x4092 ++#define CL_ACCELERATOR_TYPE_INTEL 0x4093 ++ ++/*cl_motion_detect_desc_intel flags */ ++#define CL_ME_MB_TYPE_16x16_INTEL 0x0 ++#define CL_ME_MB_TYPE_8x8_INTEL 0x1 ++#define CL_ME_MB_TYPE_4x4_INTEL 0x2 ++ ++#define CL_ME_SUBPIXEL_MODE_INTEGER_INTEL 0x0 ++#define CL_ME_SUBPIXEL_MODE_HPEL_INTEL 0x1 ++#define CL_ME_SUBPIXEL_MODE_QPEL_INTEL 0x2 ++ ++#define CL_ME_SAD_ADJUST_MODE_NONE_INTEL 0x0 ++#define CL_ME_SAD_ADJUST_MODE_HAAR_INTEL 0x1 ++ ++#define CL_ME_SEARCH_PATH_RADIUS_2_2_INTEL 0x0 ++#define CL_ME_SEARCH_PATH_RADIUS_4_4_INTEL 0x1 ++#define CL_ME_SEARCH_PATH_RADIUS_16_12_INTEL 0x5 ++ ++extern CL_API_ENTRY cl_accelerator_intel CL_API_CALL ++clCreateAcceleratorINTEL( ++ cl_context /* context */, ++ cl_accelerator_type_intel /* accelerator_type */, ++ size_t /* descriptor_size */, ++ const void* /* descriptor */, ++ cl_int* /* errcode_ret */ ) CL_EXT_SUFFIX__VERSION_1_2; ++ ++typedef CL_API_ENTRY cl_accelerator_intel ++ (CL_API_CALL *clCreateAcceleratorINTEL_fn)( ++ cl_context /* context */, ++ cl_accelerator_type_intel /* accelerator_type */, ++ size_t /* descriptor_size */, ++ const void* /* descriptor */, ++ cl_int* /* errcode_ret */ ) CL_EXT_SUFFIX__VERSION_1_2; ++ ++extern CL_API_ENTRY cl_int CL_API_CALL ++clGetAcceleratorInfoINTEL ++( ++ cl_accelerator_intel /* accelerator */, ++ cl_accelerator_info_intel /* param_name */, ++ size_t /* param_value_size */, ++ void* /* param_value */, ++ size_t* /* param_value_size_ret */ ) CL_EXT_SUFFIX__VERSION_1_2; ++ ++typedef CL_API_ENTRY cl_int ++ (CL_API_CALL *clGetAcceleratorInfoINTEL_fn)( ++ cl_accelerator_intel /* accelerator */, ++ cl_accelerator_info_intel /* param_name */, ++ size_t /* param_value_size */, ++ void* /* param_value */, ++ size_t* /* param_value_size_ret */ ) CL_EXT_SUFFIX__VERSION_1_2; ++ ++extern CL_API_ENTRY cl_int CL_API_CALL ++clRetainAcceleratorINTEL( ++ cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2; ++ ++typedef CL_API_ENTRY cl_int ++ (CL_API_CALL *clRetainAcceleratorINTEL_fn)( ++ cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2; ++ ++extern CL_API_ENTRY cl_int CL_API_CALL ++clReleaseAcceleratorINTEL( ++ cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2; ++ ++typedef CL_API_ENTRY cl_int ++ (CL_API_CALL *clReleaseAcceleratorINTEL_fn)( ++ cl_accelerator_intel /* accelerator */ ) CL_EXT_SUFFIX__VERSION_1_2; ++#endif ++#endif ++ + #define CL_MEM_PINNABLE (1 << 10) + + /* Track allocations and report current number of unfreed allocations */ +--- a/src/cl_accelerator_intel.h ++++ b/src/cl_accelerator_intel.h +@@ -4,6 +4,7 @@ + #include "cl_base_object.h" + #include "CL/cl.h" + #include "CL/cl_ext.h" ++#include "CL/cl_intel.h" + #include <stdint.h> + + struct _cl_accelerator_intel { +--- a/src/cl_driver.h ++++ b/src/cl_driver.h +@@ -24,6 +24,7 @@ + #include <stdlib.h> + #include "cl_driver_type.h" + #include "CL/cl_ext.h" ++#include "CL/cl_intel.h" + /* Various limitations we should remove actually */ + #define GEN_MAX_SURFACES 256 + #define GEN_MAX_SAMPLERS 16 diff --git a/coffeelake-cometlake-amberlake.patch b/coffeelake-cometlake-amberlake.patch new file mode 100644 index 000000000000..0d0817ed01e0 --- /dev/null +++ b/coffeelake-cometlake-amberlake.patch @@ -0,0 +1,289 @@ +Description: Add Comet Lake/Amber Lake/more Coffee Lake support + +Minimally tested, I suggest using intel-opencl-icd instead if possible + +Author: Ridley Combs +Bug-Ubuntu: https://launchpad.net/bugs/1905340 +Origin: https://github.com/intel/beignet/pull/20/files + +--- a/backend/src/backend/gen_program.cpp ++++ b/backend/src/backend/gen_program.cpp +@@ -211,6 +211,10 @@ namespace gbe { + ctx = GBE_NEW(KblContext, unit, name, deviceID, relaxMath); + } else if (IS_COFFEELAKE(deviceID)) { + ctx = GBE_NEW(KblContext, unit, name, deviceID, relaxMath); ++ } else if (IS_COMETLAKE(deviceID)) { ++ ctx = GBE_NEW(KblContext, unit, name, deviceID, relaxMath); ++ } else if (IS_AMBERLAKE(deviceID)) { ++ ctx = GBE_NEW(KblContext, unit, name, deviceID, relaxMath); + } else if (IS_GEMINILAKE(deviceID)) { + ctx = GBE_NEW(GlkContext, unit, name, deviceID, relaxMath); + } +@@ -331,6 +335,8 @@ namespace gbe { + (IS_BROXTON(deviceID) && MATCH_BXT_HEADER(binary)) || \ + (IS_KABYLAKE(deviceID) && MATCH_KBL_HEADER(binary)) || \ + (IS_COFFEELAKE(deviceID) && MATCH_KBL_HEADER(binary)) || \ ++ (IS_COMETLAKE(deviceID) && MATCH_KBL_HEADER(binary)) || \ ++ (IS_AMBERLAKE(deviceID) && MATCH_KBL_HEADER(binary)) || \ + (IS_GEMINILAKE(deviceID) && MATCH_GLK_HEADER(binary)) \ + ) + +@@ -441,6 +447,10 @@ namespace gbe { + FILL_KBL_HEADER(*binary); + }else if(IS_COFFEELAKE(prog->deviceID)){ + FILL_KBL_HEADER(*binary); ++ }else if(IS_COMETLAKE(prog->deviceID)){ ++ FILL_KBL_HEADER(*binary); ++ }else if(IS_AMBERLAKE(prog->deviceID)){ ++ FILL_KBL_HEADER(*binary); + }else if(IS_GEMINILAKE(prog->deviceID)){ + FILL_GLK_HEADER(*binary); + }else { +--- a/src/cl_device_data.h ++++ b/src/cl_device_data.h +@@ -376,6 +376,8 @@ + #define PCI_CHIP_COFFEELAKE_S_GT1_2 0x3E93 + #define PCI_CHIP_COFFEELAKE_S_GT1_3 0x3E99 + ++#define PCI_CHIP_COFFEELAKE_H_GT1_1 0x3E9C ++ + #define PCI_CHIP_COFFEELAKE_U_GT1_1 0x3EA1 + #define PCI_CHIP_COFFEELAKE_U_GT1_2 0x3EA4 + +@@ -383,6 +385,7 @@ + #define PCI_CHIP_COFFEELAKE_S_GT2_2 0x3E92 + #define PCI_CHIP_COFFEELAKE_S_GT2_3 0x3E96 + #define PCI_CHIP_COFFEELAKE_S_GT2_4 0x3E9A ++#define PCI_CHIP_COFFEELAKE_S_GT2_5 0x3E98 + + #define PCI_CHIP_COFFEELAKE_H_GT2_1 0x3E94 + #define PCI_CHIP_COFFEELAKE_H_GT2_2 0x3E9B +@@ -401,6 +404,7 @@ + (devid == PCI_CHIP_COFFEELAKE_S_GT1_1 || \ + devid == PCI_CHIP_COFFEELAKE_S_GT1_2 || \ + devid == PCI_CHIP_COFFEELAKE_S_GT1_3 || \ ++ devid == PCI_CHIP_COFFEELAKE_H_GT1_1 || \ + devid == PCI_CHIP_COFFEELAKE_U_GT1_1 || \ + devid == PCI_CHIP_COFFEELAKE_U_GT1_2) + +@@ -409,6 +413,7 @@ + devid == PCI_CHIP_COFFEELAKE_S_GT2_2 || \ + devid == PCI_CHIP_COFFEELAKE_S_GT2_3 || \ + devid == PCI_CHIP_COFFEELAKE_S_GT2_4 || \ ++ devid == PCI_CHIP_COFFEELAKE_S_GT2_5 || \ + devid == PCI_CHIP_COFFEELAKE_H_GT2_1 || \ + devid == PCI_CHIP_COFFEELAKE_H_GT2_2 || \ + devid == PCI_CHIP_COFFEELAKE_U_GT2_1 || \ +@@ -424,7 +429,65 @@ + + #define IS_COFFEELAKE(devid) (IS_CFL_GT1(devid) || IS_CFL_GT2(devid) || IS_CFL_GT3(devid)) + +-#define IS_GEN9(devid) (IS_SKYLAKE(devid) || IS_BROXTON(devid) || IS_KABYLAKE(devid) || IS_GEMINILAKE(devid) || IS_COFFEELAKE(devid)) ++#define PCI_CHIP_COMETLAKE_S_GT1_1 0x9BA5 ++#define PCI_CHIP_COMETLAKE_S_GT1_2 0x9BA8 ++ ++#define PCI_CHIP_COMETLAKE_H_GT1_1 0x9BA4 ++#define PCI_CHIP_COMETLAKE_H_GT1_2 0x9BA2 ++ ++#define PCI_CHIP_COMETLAKE_U_GT1_1 0x9B21 ++#define PCI_CHIP_COMETLAKE_U_GT1_2 0x9BAA ++#define PCI_CHIP_COMETLAKE_U_GT1_3 0x9BAC ++ ++#define PCI_CHIP_COMETLAKE_S_GT2_1 0x9BC5 ++#define PCI_CHIP_COMETLAKE_S_GT2_2 0x9BC8 ++ ++#define PCI_CHIP_COMETLAKE_H_GT2_1 0x9BC4 ++#define PCI_CHIP_COMETLAKE_H_GT2_2 0x9BC2 ++ ++#define PCI_CHIP_COMETLAKE_W_GT2_1 0x9BC6 ++#define PCI_CHIP_COMETLAKE_W_GT2_2 0x9BE6 ++#define PCI_CHIP_COMETLAKE_W_GT2_3 0x9BF6 ++ ++#define PCI_CHIP_COMETLAKE_U_GT2_1 0x9B41 ++#define PCI_CHIP_COMETLAKE_U_GT2_2 0x9BCA ++#define PCI_CHIP_COMETLAKE_U_GT2_3 0x9BCC ++ ++#define IS_CML_GT1(devid) \ ++ (devid == PCI_CHIP_COMETLAKE_S_GT1_1 || \ ++ devid == PCI_CHIP_COMETLAKE_S_GT1_2 || \ ++ devid == PCI_CHIP_COMETLAKE_H_GT1_1 || \ ++ devid == PCI_CHIP_COMETLAKE_H_GT1_2 || \ ++ devid == PCI_CHIP_COMETLAKE_U_GT1_1 || \ ++ devid == PCI_CHIP_COMETLAKE_U_GT1_2 || \ ++ devid == PCI_CHIP_COMETLAKE_U_GT1_3) ++ ++#define IS_CML_GT2(devid) \ ++ (devid == PCI_CHIP_COMETLAKE_S_GT2_1 || \ ++ devid == PCI_CHIP_COMETLAKE_S_GT2_2 || \ ++ devid == PCI_CHIP_COMETLAKE_H_GT2_1 || \ ++ devid == PCI_CHIP_COMETLAKE_H_GT2_2 || \ ++ devid == PCI_CHIP_COMETLAKE_W_GT2_1 || \ ++ devid == PCI_CHIP_COMETLAKE_W_GT2_2 || \ ++ devid == PCI_CHIP_COMETLAKE_W_GT2_3 || \ ++ devid == PCI_CHIP_COMETLAKE_U_GT2_1 || \ ++ devid == PCI_CHIP_COMETLAKE_U_GT2_2 || \ ++ devid == PCI_CHIP_COMETLAKE_U_GT2_3) ++ ++#define IS_COMETLAKE(devid) (IS_CML_GT1(devid) || IS_CML_GT2(devid)) ++ ++#define PCI_CHIP_AMBERLAKE_Y_GT2_1 0x591C ++#define PCI_CHIP_AMBERLAKE_Y_GT2_2 0x87C0 ++#define PCI_CHIP_AMBERLAKE_Y_GT2_3 0x87CA ++ ++#define IS_AML_GT2(devid) \ ++ (devid == PCI_CHIP_AMBERLAKE_Y_GT2_1 || \ ++ devid == PCI_CHIP_AMBERLAKE_Y_GT2_2 || \ ++ devid == PCI_CHIP_AMBERLAKE_Y_GT2_3) ++ ++#define IS_AMBERLAKE(devid) (IS_AML_GT2(devid)) ++ ++#define IS_GEN9(devid) (IS_SKYLAKE(devid) || IS_BROXTON(devid) || IS_KABYLAKE(devid) || IS_GEMINILAKE(devid) || IS_COFFEELAKE(devid) || IS_COMETLAKE(devid) || IS_AMBERLAKE(devid)) + + #define MAX_OCLVERSION(devid) (IS_GEN9(devid) ? 200 : 120) + +--- a/src/cl_device_id.c ++++ b/src/cl_device_id.c +@@ -304,6 +304,36 @@ static struct _cl_device_id intel_cfl_gt3_device = { + #include "cl_gen9_device.h" + }; + ++static struct _cl_device_id intel_cml_gt1_device = { ++ .max_compute_unit = 12, ++ .max_thread_per_unit = 7, ++ .sub_slice_count = 2, ++ .max_work_item_sizes = {512, 512, 512}, ++ .max_work_group_size = 256, ++ .max_clock_frequency = 1000, ++#include "cl_gen9_device.h" ++}; ++ ++static struct _cl_device_id intel_cml_gt2_device = { ++ .max_compute_unit = 24, ++ .max_thread_per_unit = 7, ++ .sub_slice_count = 3, ++ .max_work_item_sizes = {512, 512, 512}, ++ .max_work_group_size = 256, ++ .max_clock_frequency = 1000, ++#include "cl_gen9_device.h" ++}; ++ ++static struct _cl_device_id intel_aml_gt2_device = { ++ .max_compute_unit = 24, ++ .max_thread_per_unit = 7, ++ .sub_slice_count = 3, ++ .max_work_item_sizes = {512, 512, 512}, ++ .max_work_group_size = 256, ++ .max_clock_frequency = 1000, ++#include "cl_gen9_device.h" ++}; ++ + LOCAL cl_device_id + cl_get_gt_device(cl_device_type device_type) + { +@@ -819,6 +849,8 @@ cl_get_gt_device(cl_device_type device_type) + case PCI_CHIP_COFFEELAKE_S_GT1_2: + case PCI_CHIP_COFFEELAKE_S_GT1_3: + DECL_INFO_STRING(cfl_gt1_break, intel_cfl_gt1_device, name, "Intel(R) UHD Graphics Coffee Lake Desktop GT1"); ++ case PCI_CHIP_COFFEELAKE_H_GT1_1: ++ DECL_INFO_STRING(cfl_gt1_break, intel_cfl_gt1_device, name, "Intel(R) UHD Graphics Coffee Lake Halo GT1"); + case PCI_CHIP_COFFEELAKE_U_GT1_1: + case PCI_CHIP_COFFEELAKE_U_GT1_2: + DECL_INFO_STRING(cfl_gt1_break, intel_cfl_gt1_device, name, "Intel(R) UHD Graphics Coffee Lake Mobile GT1"); +@@ -837,6 +869,7 @@ cl_get_gt_device(cl_device_type device_type) + case PCI_CHIP_COFFEELAKE_S_GT2_2: + case PCI_CHIP_COFFEELAKE_S_GT2_3: + case PCI_CHIP_COFFEELAKE_S_GT2_4: ++ case PCI_CHIP_COFFEELAKE_S_GT2_5: + DECL_INFO_STRING(cfl_gt2_break, intel_cfl_gt2_device, name, "Intel(R) UHD Graphics Coffee Lake Desktop GT2"); + case PCI_CHIP_COFFEELAKE_H_GT2_1: + case PCI_CHIP_COFFEELAKE_H_GT2_2: +@@ -873,6 +906,67 @@ cl_get_gt_device(cl_device_type device_type) + cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id); + break; + ++ case PCI_CHIP_COMETLAKE_S_GT1_1: ++ case PCI_CHIP_COMETLAKE_S_GT1_2: ++ DECL_INFO_STRING(cml_gt1_break, intel_cml_gt1_device, name, "Intel(R) UHD Graphics Comet Lake Desktop GT1"); ++ case PCI_CHIP_COMETLAKE_H_GT1_1: ++ case PCI_CHIP_COMETLAKE_H_GT1_2: ++ DECL_INFO_STRING(cml_gt1_break, intel_cml_gt1_device, name, "Intel(R) UHD Graphics Comet Lake Halo GT1"); ++ case PCI_CHIP_COMETLAKE_U_GT1_1: ++ case PCI_CHIP_COMETLAKE_U_GT1_2: ++ case PCI_CHIP_COMETLAKE_U_GT1_3: ++ DECL_INFO_STRING(cml_gt1_break, intel_cml_gt1_device, name, "Intel(R) UHD Graphics Comet Lake Mobile GT1"); ++cml_gt1_break: ++ intel_cml_gt1_device.device_id = device_id; ++ intel_cml_gt1_device.platform = cl_get_platform_default(); ++ ret = &intel_cml_gt1_device; ++ cl_intel_platform_get_default_extension(ret); ++#ifdef ENABLE_FP64 ++ cl_intel_platform_enable_extension(ret, cl_khr_fp64_ext_id); ++#endif ++ cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id); ++ break; ++ ++ case PCI_CHIP_COMETLAKE_S_GT2_1: ++ case PCI_CHIP_COMETLAKE_S_GT2_2: ++ DECL_INFO_STRING(cml_gt2_break, intel_cml_gt2_device, name, "Intel(R) UHD Graphics Comet Lake Desktop GT2"); ++ case PCI_CHIP_COMETLAKE_H_GT2_1: ++ case PCI_CHIP_COMETLAKE_H_GT2_2: ++ DECL_INFO_STRING(cml_gt2_break, intel_cml_gt2_device, name, "Intel(R) UHD Graphics Comet Lake Halo GT2"); ++ case PCI_CHIP_COMETLAKE_W_GT2_1: ++ case PCI_CHIP_COMETLAKE_W_GT2_2: ++ case PCI_CHIP_COMETLAKE_W_GT2_3: ++ DECL_INFO_STRING(cml_gt2_break, intel_cml_gt2_device, name, "Intel(R) UHD Graphics Comet Lake Workstation GT2"); ++ case PCI_CHIP_COMETLAKE_U_GT2_1: ++ case PCI_CHIP_COMETLAKE_U_GT2_2: ++ case PCI_CHIP_COMETLAKE_U_GT2_3: ++ DECL_INFO_STRING(cml_gt2_break, intel_cml_gt2_device, name, "Intel(R) UHD Graphics Comet Lake Mobile GT2"); ++cml_gt2_break: ++ intel_cml_gt2_device.device_id = device_id; ++ intel_cml_gt2_device.platform = cl_get_platform_default(); ++ ret = &intel_cml_gt2_device; ++ cl_intel_platform_get_default_extension(ret); ++#ifdef ENABLE_FP64 ++ cl_intel_platform_enable_extension(ret, cl_khr_fp64_ext_id); ++#endif ++ cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id); ++ break; ++ ++ case PCI_CHIP_AMBERLAKE_Y_GT2_1: ++ case PCI_CHIP_AMBERLAKE_Y_GT2_2: ++ case PCI_CHIP_AMBERLAKE_Y_GT2_3: ++ DECL_INFO_STRING(aml_gt2_break, intel_aml_gt2_device, name, "Intel(R) UHD Graphics Amber Lake ULX GT2"); ++aml_gt2_break: ++ intel_aml_gt2_device.device_id = device_id; ++ intel_aml_gt2_device.platform = cl_get_platform_default(); ++ ret = &intel_aml_gt2_device; ++ cl_intel_platform_get_default_extension(ret); ++#ifdef ENABLE_FP64 ++ cl_intel_platform_enable_extension(ret, cl_khr_fp64_ext_id); ++#endif ++ cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id); ++ break; ++ + case PCI_CHIP_SANDYBRIDGE_BRIDGE: + case PCI_CHIP_SANDYBRIDGE_GT1: + case PCI_CHIP_SANDYBRIDGE_GT2: +@@ -1083,7 +1177,10 @@ LOCAL cl_bool is_gen_device(cl_device_id device) { + device == &intel_glk12eu_device || + device == &intel_cfl_gt1_device || + device == &intel_cfl_gt2_device || +- device == &intel_cfl_gt3_device; ++ device == &intel_cfl_gt3_device || ++ device == &intel_cml_gt1_device || ++ device == &intel_cml_gt2_device || ++ device == &intel_aml_gt2_device; + } + + LOCAL cl_int +@@ -1513,7 +1610,8 @@ cl_device_get_version(cl_device_id device, cl_int *ver) + || device == &intel_kbl_gt4_device || device == &intel_kbl_gt15_device + || device == &intel_glk18eu_device || device == &intel_glk12eu_device + || device == &intel_cfl_gt1_device || device == &intel_cfl_gt1_device +- || device == &intel_cfl_gt3_device) { ++ || device == &intel_cfl_gt3_device || device == &intel_cml_gt1_device ++ || device == &intel_cml_gt2_device || device == &intel_aml_gt2_device) { + *ver = 9; + } else + return CL_INVALID_VALUE; diff --git a/fix-docs-links.patch b/fix-docs-links.patch new file mode 100644 index 000000000000..940da1f24458 --- /dev/null +++ b/fix-docs-links.patch @@ -0,0 +1,63 @@ +Description: Fix broken links and list syntax in documentation + +The upstream documentation is meant to be a part of a larger wiki, +and does not work properly when built as-is on its own + +Author: Rebecca N. Palmer <rebecca_palmer@zoho.com> + +--- a/docs/Beignet.mdwn ++++ b/docs/Beignet.mdwn +@@ -11,7 +11,7 @@ about the compiler, please refer to `bac + + News + ---- +-[[Beignet project news|Beignet/NEWS]] ++[[Beignet project news|NEWS]] + + Prerequisite + ------------ +@@ -139,6 +139,7 @@ need to refer the "Known Issues" section + + Normally, beignet needs to run under X server environment as normal user. If there isn't X server, + beignet provides two alternative to run: ++ + * Run as root without X. + * Enable the drm render nodes by passing drm.rnodes=1 to the kernel boot args, then you can run beignet with non-root and without X. + +@@ -288,15 +289,15 @@ Please specify your hardware when report + + Documents for OpenCL application developers + ------------------------------------------- +-- [[Cross compile (yocto)|Beignet/howto/cross-compiler-howto]] +-- [[Work with old system without c++11|Beignet/howto/oldgcc-howto]] +-- [[Kernel Optimization Guide|Beignet/optimization-guide]] +-- [[Libva Buffer Sharing|Beignet/howto/libva-buffer-sharing-howto]] +-- [[V4l2 Buffer Sharing|Beignet/howto/v4l2-buffer-sharing-howto]] ++- [[Cross compile (yocto)|howto/cross-compiler-howto]] ++- [[Work with old system without c++11|howto/oldgcc-howto]] ++- [[Kernel Optimization Guide|optimization-guide]] ++- [[Libva Buffer Sharing|howto/libva-buffer-sharing-howto]] ++- [[V4l2 Buffer Sharing|howto/v4l2-buffer-sharing-howto]] +-- [[OpenGL Buffer Sharing|Beignet/howto/gl-buffer-sharing-howto]] +-- [[Video Motion Estimation|Beignet/howto/video-motion-estimation-howto]] +-- [[Stand Alone Unit Test|Beignet/howto/stand-alone-utest-howto]] +-- [[Android build|Beignet/howto/android-build-howto]] ++- [[OpenGL Buffer Sharing|howto/gl-buffer-sharing-howto]] ++- [[Video Motion Estimation|howto/video-motion-estimation-howto]] ++- [[Stand Alone Unit Test|howto/stand-alone-utest-howto]] ++- [[Android build|howto/android-build-howto]] + + The wiki URL is as below: + [http://www.freedesktop.org/wiki/Software/Beignet/](http://www.freedesktop.org/wiki/Software/Beignet/) +--- a/docs/howto/video-motion-estimation-howto.mdwn ++++ b/docs/howto/video-motion-estimation-howto.mdwn +@@ -66,6 +66,6 @@ Please go through it for details. + More references + --------------- + +-https://www.khronos.org/registry/cl/extensions/intel/cl_intel_accelerator.txt +-https://www.khronos.org/registry/cl/extensions/intel/cl_intel_motion_estimation.txt +-https://software.intel.com/en-us/articles/intro-to-motion-estimation-extension-for-opencl ++[https://www.khronos.org/registry/cl/extensions/intel/cl_intel_accelerator.txt](https://www.khronos.org/registry/cl/extensions/intel/cl_intel_accelerator.txt) ++[https://www.khronos.org/registry/cl/extensions/intel/cl_intel_motion_estimation.txt](https://www.khronos.org/registry/cl/extensions/intel/cl_intel_motion_estimation.txt) ++[https://software.intel.com/en-us/articles/intro-to-motion-estimation-extension-for-opencl](https://software.intel.com/en-us/articles/intro-to-motion-estimation-extension-for-opencl) diff --git a/gbe_bin_generater.patch b/gbe_bin_generater.patch new file mode 100644 index 000000000000..b773927e51aa --- /dev/null +++ b/gbe_bin_generater.patch @@ -0,0 +1,49 @@ +diff -git a/backend/src/gbe_bin_generater.cpp b/backend/src/gbe_bin_generater.cpp +--- a/backend/src/gbe_bin_generater.cpp ++++ b/backend/src/gbe_bin_generater.cpp +@@ -108,7 +108,7 @@ + return *this; + } + +- const char* file_map_open (void) throw (int); ++ const char* file_map_open (void) noexcept(false); + + const char* get_code (void) { + return code; +@@ -144,8 +144,8 @@ + return 1; + } + +- void build_program(void) throw(int); +- void serialize_program(void) throw(int); ++ void build_program(void) noexcept(false); ++ void serialize_program(void) noexcept(false); + }; + + string program_build_instance::bin_path; +@@ -153,7 +153,7 @@ + #define OUTS_UPDATE_SZ(elt) SERIALIZE_OUT(elt, oss, header_sz) + #define OUTF_UPDATE_SZ(elt) SERIALIZE_OUT(elt, ofs, header_sz) + +-void program_build_instance::serialize_program(void) throw(int) ++void program_build_instance::serialize_program(void) noexcept(false) + { + ofstream ofs; + ostringstream oss; +@@ -271,7 +271,7 @@ + } + + +-void program_build_instance::build_program(void) throw(int) ++void program_build_instance::build_program(void) noexcept(false) + { + gbe_program opaque = NULL; + if(gen_pci_id){ +@@ -289,7 +289,7 @@ + } + } + +-const char* program_build_instance::file_map_open(void) throw(int) ++const char* program_build_instance::file_map_open(void) noexcept(false) + { + void * address; diff --git a/reduce-notfound-output.patch b/reduce-notfound-output.patch new file mode 100644 index 000000000000..93924c90f17d --- /dev/null +++ b/reduce-notfound-output.patch @@ -0,0 +1,41 @@ +Description: Reduce error spew on unsupported hardware + +Loading beignet on unsupported hardware produces ~20 errors, even +if another ICD is also installed that does support the hardware. +Replace these with one message that explicitly says what to do. + +Author: Rebecca N. Palmer <rebecca_palmer@zoho.com> + +--- a/src/cl_device_id.c ++++ b/src/cl_device_id.c +@@ -797,10 +797,10 @@ glk12eu_break: + case PCI_CHIP_SANDYBRIDGE_BRIDGE_S: + case PCI_CHIP_SANDYBRIDGE_S_GT: + // Intel(R) HD Graphics SandyBridge not supported yet ++ default: ++ fprintf(stderr, "beignet-opencl-icd: no supported GPU found, this is probably the wrong opencl-icd package for this hardware\n(If you have multiple ICDs installed and OpenCL works, you can ignore this message)\n"); + ret = NULL; + break; +- default: +- printf("cl_get_gt_device(): error, unknown device: %x\n", device_id); + } + + if (ret == NULL) +--- a/src/intel/intel_driver.c ++++ b/src/intel/intel_driver.c +@@ -263,7 +263,6 @@ if(!intel_driver_is_active(intel)) { + } + + if(!intel_driver_is_active(intel)) { +- fprintf(stderr, "Device open failed, aborting...\n"); + return CL_DEVICE_NOT_FOUND; + } + +@@ -324,7 +323,6 @@ drm_client_t client; + // usually dev_name = "/dev/dri/card%d" + dev_fd = open(dev_name, O_RDWR); + if (dev_fd == -1) { +- fprintf(stderr, "open(\"%s\", O_RDWR) failed: %s\n", dev_name, strerror(errno)); + return 0; + } + |