]> git.pld-linux.org Git - packages/beignet.git/blame - beignet-coffeelake.patch
- added dirty llvm11-support patch, now at least builds with llvm 11
[packages/beignet.git] / beignet-coffeelake.patch
CommitLineData
7d3d7cb5
JB
1Description: Enable Coffee Lake support
2
3Little change is needed here because the graphics core is the same as
4Kaby Lake. Includes all PCI IDs currently supported by the kernel driver
5in the drm-intel tree (Coffee Lake S, H and U devices in GT 1, 2 and 3
6configurations).
7
8Origin: upstream 7e181af2ea4d37f67406f2563c0e13fa1fdbb14b
9Author: Mark Thompson
10
11--- a/backend/src/backend/gen_program.cpp
12+++ b/backend/src/backend/gen_program.cpp
13@@ -209,6 +209,8 @@ namespace gbe {
14 ctx = GBE_NEW(BxtContext, unit, name, deviceID, relaxMath);
15 } else if (IS_KABYLAKE(deviceID)) {
16 ctx = GBE_NEW(KblContext, unit, name, deviceID, relaxMath);
17+ } else if (IS_COFFEELAKE(deviceID)) {
18+ ctx = GBE_NEW(KblContext, unit, name, deviceID, relaxMath);
19 } else if (IS_GEMINILAKE(deviceID)) {
20 ctx = GBE_NEW(GlkContext, unit, name, deviceID, relaxMath);
21 }
22@@ -328,6 +330,7 @@ namespace gbe {
23 (IS_SKYLAKE(deviceID) && MATCH_SKL_HEADER(binary)) || \
24 (IS_BROXTON(deviceID) && MATCH_BXT_HEADER(binary)) || \
25 (IS_KABYLAKE(deviceID) && MATCH_KBL_HEADER(binary)) || \
26+ (IS_COFFEELAKE(deviceID) && MATCH_KBL_HEADER(binary)) || \
27 (IS_GEMINILAKE(deviceID) && MATCH_GLK_HEADER(binary)) \
28 )
29
30@@ -436,6 +439,8 @@ namespace gbe {
31 FILL_BXT_HEADER(*binary);
32 }else if(IS_KABYLAKE(prog->deviceID)){
33 FILL_KBL_HEADER(*binary);
34+ }else if(IS_COFFEELAKE(prog->deviceID)){
35+ FILL_KBL_HEADER(*binary);
36 }else if(IS_GEMINILAKE(prog->deviceID)){
37 FILL_GLK_HEADER(*binary);
38 }else {
39--- a/src/cl_device_data.h
40+++ b/src/cl_device_data.h
41@@ -372,7 +372,59 @@
42 (devid == PCI_CHIP_GLK_3x6 || \
43 devid == PCI_CHIP_GLK_2x6)
44
45-#define IS_GEN9(devid) (IS_SKYLAKE(devid) || IS_BROXTON(devid) || IS_KABYLAKE(devid) || IS_GEMINILAKE(devid))
46+#define PCI_CHIP_COFFEELAKE_S_GT1_1 0x3E90
47+#define PCI_CHIP_COFFEELAKE_S_GT1_2 0x3E93
48+#define PCI_CHIP_COFFEELAKE_S_GT1_3 0x3E99
49+
50+#define PCI_CHIP_COFFEELAKE_U_GT1_1 0x3EA1
51+#define PCI_CHIP_COFFEELAKE_U_GT1_2 0x3EA4
52+
53+#define PCI_CHIP_COFFEELAKE_S_GT2_1 0x3E91
54+#define PCI_CHIP_COFFEELAKE_S_GT2_2 0x3E92
55+#define PCI_CHIP_COFFEELAKE_S_GT2_3 0x3E96
56+#define PCI_CHIP_COFFEELAKE_S_GT2_4 0x3E9A
57+
58+#define PCI_CHIP_COFFEELAKE_H_GT2_1 0x3E94
59+#define PCI_CHIP_COFFEELAKE_H_GT2_2 0x3E9B
60+
61+#define PCI_CHIP_COFFEELAKE_U_GT2_1 0x3EA0
62+#define PCI_CHIP_COFFEELAKE_U_GT2_2 0x3EA3
63+#define PCI_CHIP_COFFEELAKE_U_GT2_3 0x3EA9
64+
65+#define PCI_CHIP_COFFEELAKE_U_GT3_1 0x3EA2
66+#define PCI_CHIP_COFFEELAKE_U_GT3_2 0x3EA5
67+#define PCI_CHIP_COFFEELAKE_U_GT3_3 0x3EA6
68+#define PCI_CHIP_COFFEELAKE_U_GT3_4 0x3EA7
69+#define PCI_CHIP_COFFEELAKE_U_GT3_5 0x3EA8
70+
71+#define IS_CFL_GT1(devid) \
72+ (devid == PCI_CHIP_COFFEELAKE_S_GT1_1 || \
73+ devid == PCI_CHIP_COFFEELAKE_S_GT1_2 || \
74+ devid == PCI_CHIP_COFFEELAKE_S_GT1_3 || \
75+ devid == PCI_CHIP_COFFEELAKE_U_GT1_1 || \
76+ devid == PCI_CHIP_COFFEELAKE_U_GT1_2)
77+
78+#define IS_CFL_GT2(devid) \
79+ (devid == PCI_CHIP_COFFEELAKE_S_GT2_1 || \
80+ devid == PCI_CHIP_COFFEELAKE_S_GT2_2 || \
81+ devid == PCI_CHIP_COFFEELAKE_S_GT2_3 || \
82+ devid == PCI_CHIP_COFFEELAKE_S_GT2_4 || \
83+ devid == PCI_CHIP_COFFEELAKE_H_GT2_1 || \
84+ devid == PCI_CHIP_COFFEELAKE_H_GT2_2 || \
85+ devid == PCI_CHIP_COFFEELAKE_U_GT2_1 || \
86+ devid == PCI_CHIP_COFFEELAKE_U_GT2_2 || \
87+ devid == PCI_CHIP_COFFEELAKE_U_GT2_3)
88+
89+#define IS_CFL_GT3(devid) \
90+ (devid == PCI_CHIP_COFFEELAKE_U_GT3_1 || \
91+ devid == PCI_CHIP_COFFEELAKE_U_GT3_2 || \
92+ devid == PCI_CHIP_COFFEELAKE_U_GT3_3 || \
93+ devid == PCI_CHIP_COFFEELAKE_U_GT3_4 || \
94+ devid == PCI_CHIP_COFFEELAKE_U_GT3_5)
95+
96+#define IS_COFFEELAKE(devid) (IS_CFL_GT1(devid) || IS_CFL_GT2(devid) || IS_CFL_GT3(devid))
97+
98+#define IS_GEN9(devid) (IS_SKYLAKE(devid) || IS_BROXTON(devid) || IS_KABYLAKE(devid) || IS_GEMINILAKE(devid) || IS_COFFEELAKE(devid))
99
100 #define MAX_OCLVERSION(devid) (IS_GEN9(devid) ? 200 : 120)
101
102--- a/src/cl_device_id.c
103+++ b/src/cl_device_id.c
104@@ -274,6 +274,36 @@ static struct _cl_device_id intel_glk12eu_device = {
105 #include "cl_gen9_device.h"
106 };
107
108+static struct _cl_device_id intel_cfl_gt1_device = {
109+ .max_compute_unit = 12,
110+ .max_thread_per_unit = 7,
111+ .sub_slice_count = 2,
112+ .max_work_item_sizes = {512, 512, 512},
113+ .max_work_group_size = 256,
114+ .max_clock_frequency = 1000,
115+#include "cl_gen9_device.h"
116+};
117+
118+static struct _cl_device_id intel_cfl_gt2_device = {
119+ .max_compute_unit = 24,
120+ .max_thread_per_unit = 7,
121+ .sub_slice_count = 3,
122+ .max_work_item_sizes = {512, 512, 512},
123+ .max_work_group_size = 256,
124+ .max_clock_frequency = 1000,
125+#include "cl_gen9_device.h"
126+};
127+
128+static struct _cl_device_id intel_cfl_gt3_device = {
129+ .max_compute_unit = 48,
130+ .max_thread_per_unit = 7,
131+ .sub_slice_count = 6,
132+ .max_work_item_sizes = {512, 512, 512},
133+ .max_work_group_size = 256,
134+ .max_clock_frequency = 1000,
135+#include "cl_gen9_device.h"
136+};
137+
138 LOCAL cl_device_id
139 cl_get_gt_device(cl_device_type device_type)
140 {
141@@ -785,6 +815,64 @@ glk12eu_break:
142 cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id);
143 break;
144
145+ case PCI_CHIP_COFFEELAKE_S_GT1_1:
146+ case PCI_CHIP_COFFEELAKE_S_GT1_2:
147+ case PCI_CHIP_COFFEELAKE_S_GT1_3:
148+ DECL_INFO_STRING(cfl_gt1_break, intel_cfl_gt1_device, name, "Intel(R) UHD Graphics Coffee Lake Desktop GT1");
149+ case PCI_CHIP_COFFEELAKE_U_GT1_1:
150+ case PCI_CHIP_COFFEELAKE_U_GT1_2:
151+ DECL_INFO_STRING(cfl_gt1_break, intel_cfl_gt1_device, name, "Intel(R) UHD Graphics Coffee Lake Mobile GT1");
152+cfl_gt1_break:
153+ intel_cfl_gt1_device.device_id = device_id;
154+ intel_cfl_gt1_device.platform = cl_get_platform_default();
155+ ret = &intel_cfl_gt1_device;
156+ cl_intel_platform_get_default_extension(ret);
157+#ifdef ENABLE_FP64
158+ cl_intel_platform_enable_extension(ret, cl_khr_fp64_ext_id);
159+#endif
160+ cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id);
161+ break;
162+
163+ case PCI_CHIP_COFFEELAKE_S_GT2_1:
164+ case PCI_CHIP_COFFEELAKE_S_GT2_2:
165+ case PCI_CHIP_COFFEELAKE_S_GT2_3:
166+ case PCI_CHIP_COFFEELAKE_S_GT2_4:
167+ DECL_INFO_STRING(cfl_gt2_break, intel_cfl_gt2_device, name, "Intel(R) UHD Graphics Coffee Lake Desktop GT2");
168+ case PCI_CHIP_COFFEELAKE_H_GT2_1:
169+ case PCI_CHIP_COFFEELAKE_H_GT2_2:
170+ DECL_INFO_STRING(cfl_gt2_break, intel_cfl_gt2_device, name, "Intel(R) UHD Graphics Coffee Lake Halo GT2");
171+ case PCI_CHIP_COFFEELAKE_U_GT2_1:
172+ case PCI_CHIP_COFFEELAKE_U_GT2_2:
173+ case PCI_CHIP_COFFEELAKE_U_GT2_3:
174+ DECL_INFO_STRING(cfl_gt2_break, intel_cfl_gt2_device, name, "Intel(R) UHD Graphics Coffee Lake Mobile GT2");
175+cfl_gt2_break:
176+ intel_cfl_gt2_device.device_id = device_id;
177+ intel_cfl_gt2_device.platform = cl_get_platform_default();
178+ ret = &intel_cfl_gt2_device;
179+ cl_intel_platform_get_default_extension(ret);
180+#ifdef ENABLE_FP64
181+ cl_intel_platform_enable_extension(ret, cl_khr_fp64_ext_id);
182+#endif
183+ cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id);
184+ break;
185+
186+ case PCI_CHIP_COFFEELAKE_U_GT3_1:
187+ case PCI_CHIP_COFFEELAKE_U_GT3_2:
188+ case PCI_CHIP_COFFEELAKE_U_GT3_3:
189+ case PCI_CHIP_COFFEELAKE_U_GT3_4:
190+ case PCI_CHIP_COFFEELAKE_U_GT3_5:
191+ DECL_INFO_STRING(cfl_gt3_break, intel_cfl_gt3_device, name, "Intel(R) UHD Graphics Coffee Lake Mobile GT3");
192+cfl_gt3_break:
193+ intel_cfl_gt3_device.device_id = device_id;
194+ intel_cfl_gt3_device.platform = cl_get_platform_default();
195+ ret = &intel_cfl_gt3_device;
196+ cl_intel_platform_get_default_extension(ret);
197+#ifdef ENABLE_FP64
198+ cl_intel_platform_enable_extension(ret, cl_khr_fp64_ext_id);
199+#endif
200+ cl_intel_platform_enable_extension(ret, cl_khr_fp16_ext_id);
201+ break;
202+
203 case PCI_CHIP_SANDYBRIDGE_BRIDGE:
204 case PCI_CHIP_SANDYBRIDGE_GT1:
205 case PCI_CHIP_SANDYBRIDGE_GT2:
206@@ -992,7 +1080,10 @@ LOCAL cl_bool is_gen_device(cl_device_id device) {
207 device == &intel_kbl_gt3_device ||
208 device == &intel_kbl_gt4_device ||
209 device == &intel_glk18eu_device ||
210- device == &intel_glk12eu_device;
211+ device == &intel_glk12eu_device ||
212+ device == &intel_cfl_gt1_device ||
213+ device == &intel_cfl_gt2_device ||
214+ device == &intel_cfl_gt3_device;
215 }
216
217 LOCAL cl_int
218@@ -1420,7 +1511,9 @@ cl_device_get_version(cl_device_id device, cl_int *ver)
219 || device == &intel_bxt18eu_device || device == &intel_bxt12eu_device || device == &intel_kbl_gt1_device
220 || device == &intel_kbl_gt2_device || device == &intel_kbl_gt3_device
221 || device == &intel_kbl_gt4_device || device == &intel_kbl_gt15_device
222- || device == &intel_glk18eu_device || device == &intel_glk12eu_device) {
223+ || device == &intel_glk18eu_device || device == &intel_glk12eu_device
224+ || device == &intel_cfl_gt1_device || device == &intel_cfl_gt1_device
225+ || device == &intel_cfl_gt3_device) {
226 *ver = 9;
227 } else
228 return CL_INVALID_VALUE;
This page took 0.094024 seconds and 4 git commands to generate.