external/mesa
Revision | a3ddc7a0baaa011963e4904433f9c8fc4329096d (tree) |
---|---|
Time | 2021-07-08 21:42:26 |
Author | Chih-Wei Huang <cwhuang@linu...> |
Commiter | Chih-Wei Huang |
Merge remote-tracking branch 'mesa/21.1' into pie-x86
@@ -2,6 +2,8 @@ | ||
2 | 2 | Write-Host "Refreshing Windows TLS CA cache" |
3 | 3 | (New-Object System.Net.WebClient).DownloadString("https://github.com") >$null |
4 | 4 | |
5 | +$env:PYTHONUTF8=1 | |
6 | + | |
5 | 7 | Get-Date |
6 | 8 | Write-Host "Compiling Mesa" |
7 | 9 | $builddir = New-Item -ItemType Directory -Name "_build" |
@@ -1,5 +1,5054 @@ | ||
1 | 1 | [ |
2 | 2 | { |
3 | + "sha": "40b67a292297606f0a7576e3ef4087028d5edd17", | |
4 | + "description": "anv: allocate bigger batches as we grow command buffers", | |
5 | + "nominated": true, | |
6 | + "nomination_type": 0, | |
7 | + "resolution": 1, | |
8 | + "main_sha": null, | |
9 | + "because_sha": null | |
10 | + }, | |
11 | + { | |
12 | + "sha": "5853f17c304d9f9acb2c4ad826f447d19405ec15", | |
13 | + "description": "anv: Advertise VK_KHR_shader_subgroup_uniform_control_flow", | |
14 | + "nominated": false, | |
15 | + "nomination_type": null, | |
16 | + "resolution": 4, | |
17 | + "main_sha": null, | |
18 | + "because_sha": null | |
19 | + }, | |
20 | + { | |
21 | + "sha": "6ad88a8f086da55916b567a328b981b14ddfdcf8", | |
22 | + "description": "spirv: Support SPV_KHR_subgroup_uniform_control_flow", | |
23 | + "nominated": false, | |
24 | + "nomination_type": null, | |
25 | + "resolution": 4, | |
26 | + "main_sha": null, | |
27 | + "because_sha": null | |
28 | + }, | |
29 | + { | |
30 | + "sha": "a219073e9b4384d785b467660230c5eb41e6c549", | |
31 | + "description": "spirv: Update headers and metadata from latest Khronos commit", | |
32 | + "nominated": false, | |
33 | + "nomination_type": null, | |
34 | + "resolution": 4, | |
35 | + "main_sha": null, | |
36 | + "because_sha": null | |
37 | + }, | |
38 | + { | |
39 | + "sha": "3a9289eaedc1fe7b92783a94dbe3a5fc308471c5", | |
40 | + "description": "nir: Add test to check edge case in Split ALU optimization", | |
41 | + "nominated": false, | |
42 | + "nomination_type": null, | |
43 | + "resolution": 4, | |
44 | + "main_sha": null, | |
45 | + "because_sha": null | |
46 | + }, | |
47 | + { | |
48 | + "sha": "b9519297955c3a75095f986b0e29afaf3a8c923a", | |
49 | + "description": "nir/opt_if: Don't split ALU for single block infinite loops", | |
50 | + "nominated": true, | |
51 | + "nomination_type": 1, | |
52 | + "resolution": 1, | |
53 | + "main_sha": null, | |
54 | + "because_sha": "0881e90c09965818b02e359474a6f7446b41d647" | |
55 | + }, | |
56 | + { | |
57 | + "sha": "7b89e4d1048d6104f07930d3717ee543253dad50", | |
58 | + "description": "i965: Prevent invalid framebuffer usage", | |
59 | + "nominated": false, | |
60 | + "nomination_type": null, | |
61 | + "resolution": 4, | |
62 | + "main_sha": null, | |
63 | + "because_sha": null | |
64 | + }, | |
65 | + { | |
66 | + "sha": "6a0c0d0da9b27d2868f993dcd71220bf2bd7e18f", | |
67 | + "description": "i915: Prevent invalid framebuffer usage", | |
68 | + "nominated": false, | |
69 | + "nomination_type": null, | |
70 | + "resolution": 4, | |
71 | + "main_sha": null, | |
72 | + "because_sha": null | |
73 | + }, | |
74 | + { | |
75 | + "sha": "40b1668ebdc47d5a816f62cf59cf77993b3933a6", | |
76 | + "description": "amd/ci: Use MESA_VK_IGNORE_CONFORMANCE_WARNING to reduce warnings", | |
77 | + "nominated": false, | |
78 | + "nomination_type": null, | |
79 | + "resolution": 4, | |
80 | + "main_sha": null, | |
81 | + "because_sha": null | |
82 | + }, | |
83 | + { | |
84 | + "sha": "ed77bf3c4ecfc1837eb868cb435f7632d2240ab7", | |
85 | + "description": "ci: Unify on MESA_VK_IGNORE_CONFORMANCE_WARNING", | |
86 | + "nominated": false, | |
87 | + "nomination_type": null, | |
88 | + "resolution": 4, | |
89 | + "main_sha": null, | |
90 | + "because_sha": null | |
91 | + }, | |
92 | + { | |
93 | + "sha": "6a79ee97f48ee99718b97bb8870a74faeecd56d9", | |
94 | + "description": "anv: VK_EXT_multi_draw implementation", | |
95 | + "nominated": false, | |
96 | + "nomination_type": null, | |
97 | + "resolution": 4, | |
98 | + "main_sha": null, | |
99 | + "because_sha": null | |
100 | + }, | |
101 | + { | |
102 | + "sha": "1e39f2c1994abb7183ebc05de29e11561c388eb5", | |
103 | + "description": "anv: unify some draw state vertex constant emission", | |
104 | + "nominated": false, | |
105 | + "nomination_type": null, | |
106 | + "resolution": 4, | |
107 | + "main_sha": null, | |
108 | + "because_sha": null | |
109 | + }, | |
110 | + { | |
111 | + "sha": "15a2e5dcdb9317a090915e89fae44467296a4512", | |
112 | + "description": "zink: repack zink_context struct a bit", | |
113 | + "nominated": false, | |
114 | + "nomination_type": null, | |
115 | + "resolution": 4, | |
116 | + "main_sha": null, | |
117 | + "because_sha": null | |
118 | + }, | |
119 | + { | |
120 | + "sha": "d01e7b50b88ae6a12df5a5772ad817d8e9f58bb3", | |
121 | + "description": "freedreno, tu: Set SP_XS_PVT_MEM_HW_STACK_OFFSET", | |
122 | + "nominated": false, | |
123 | + "nomination_type": null, | |
124 | + "resolution": 4, | |
125 | + "main_sha": null, | |
126 | + "because_sha": null | |
127 | + }, | |
128 | + { | |
129 | + "sha": "02b8f8704cfa7d4514795c9e5b8444e4a5c2fb25", | |
130 | + "description": "freedreno/a6xx: Make SP_XS_PVT_MEM_HW_STACK_OFFSET non-inline", | |
131 | + "nominated": false, | |
132 | + "nomination_type": null, | |
133 | + "resolution": 4, | |
134 | + "main_sha": null, | |
135 | + "because_sha": null | |
136 | + }, | |
137 | + { | |
138 | + "sha": "fdc0f489e098d320593a1c6837a19726c84d90e9", | |
139 | + "description": "ir3: add ldg.a,stg.a which allow complex in-place offset calculation", | |
140 | + "nominated": false, | |
141 | + "nomination_type": null, | |
142 | + "resolution": 4, | |
143 | + "main_sha": null, | |
144 | + "because_sha": null | |
145 | + }, | |
146 | + { | |
147 | + "sha": "4b06db0548603a719c836070b7b8959bce45a2c2", | |
148 | + "description": "freedreno/isa: add uoffset type to print positive-only offsets", | |
149 | + "nominated": false, | |
150 | + "nomination_type": null, | |
151 | + "resolution": 4, | |
152 | + "main_sha": null, | |
153 | + "because_sha": null | |
154 | + }, | |
155 | + { | |
156 | + "sha": "ba1c989348de066b35678fb1e6151dccd26831eb", | |
157 | + "description": "freedreno/computerator: pass iova of buffer to const register", | |
158 | + "nominated": false, | |
159 | + "nomination_type": null, | |
160 | + "resolution": 4, | |
161 | + "main_sha": null, | |
162 | + "because_sha": null | |
163 | + }, | |
164 | + { | |
165 | + "sha": "e791b2045a47e95b4d63910add3ecdbcacf52d1f", | |
166 | + "description": "anv: do not dereference VkPipelineMultisampleStateCreateInfo always", | |
167 | + "nominated": false, | |
168 | + "nomination_type": null, | |
169 | + "resolution": 4, | |
170 | + "main_sha": null, | |
171 | + "because_sha": null | |
172 | + }, | |
173 | + { | |
174 | + "sha": "a9fd4fa26c64275168946fa4d29ad066c0da7bc4", | |
175 | + "description": "turnip: early exit in tu6_draw_common to save cpu cycles", | |
176 | + "nominated": false, | |
177 | + "nomination_type": null, | |
178 | + "resolution": 4, | |
179 | + "main_sha": null, | |
180 | + "because_sha": null | |
181 | + }, | |
182 | + { | |
183 | + "sha": "815a85dd7c44f4be4cbf5b351836c921a7a923fd", | |
184 | + "description": "turnip: do not re-emit same vs params", | |
185 | + "nominated": false, | |
186 | + "nomination_type": null, | |
187 | + "resolution": 4, | |
188 | + "main_sha": null, | |
189 | + "because_sha": null | |
190 | + }, | |
191 | + { | |
192 | + "sha": "63e80d441a741202cf8190fbc56dccd3bd5b4c3f", | |
193 | + "description": "intel/genxml: Remove old scratch fields on GFX version 12.5", | |
194 | + "nominated": false, | |
195 | + "nomination_type": null, | |
196 | + "resolution": 4, | |
197 | + "main_sha": null, | |
198 | + "because_sha": null | |
199 | + }, | |
200 | + { | |
201 | + "sha": "eeeea5cb873b40418c738e25e4032fb1fd9b7ac9", | |
202 | + "description": "anv: Add support for scratch on XeHP", | |
203 | + "nominated": false, | |
204 | + "nomination_type": null, | |
205 | + "resolution": 4, | |
206 | + "main_sha": null, | |
207 | + "because_sha": null | |
208 | + }, | |
209 | + { | |
210 | + "sha": "ae18e1e707c4be005256305a30b747ab1bdf55d8", | |
211 | + "description": "iris: Add support for scratch on XeHP", | |
212 | + "nominated": false, | |
213 | + "nomination_type": null, | |
214 | + "resolution": 4, | |
215 | + "main_sha": null, | |
216 | + "because_sha": null | |
217 | + }, | |
218 | + { | |
219 | + "sha": "545011b445b31279e9c6b837b71f2953fa42f1f5", | |
220 | + "description": "iris: Add a MEMZONE_BINDLESS and uploader", | |
221 | + "nominated": false, | |
222 | + "nomination_type": null, | |
223 | + "resolution": 4, | |
224 | + "main_sha": null, | |
225 | + "because_sha": null | |
226 | + }, | |
227 | + { | |
228 | + "sha": "8ca0513ecaef6b3f70f9a6c2550ad75baf202052", | |
229 | + "description": "intel/genxml: Add new ScratchSpaceBuffer fields on GFX version 12.5", | |
230 | + "nominated": false, | |
231 | + "nomination_type": null, | |
232 | + "resolution": 4, | |
233 | + "main_sha": null, | |
234 | + "because_sha": null | |
235 | + }, | |
236 | + { | |
237 | + "sha": "1e242785c3155e71fec2ffcc7a814392ef9c90fe", | |
238 | + "description": "intel/fs: Implement load/store_scratch on XeHP", | |
239 | + "nominated": false, | |
240 | + "nomination_type": null, | |
241 | + "resolution": 4, | |
242 | + "main_sha": null, | |
243 | + "because_sha": null | |
244 | + }, | |
245 | + { | |
246 | + "sha": "c38812be1df41469b8995dbbcf3b327a3aeae5c3", | |
247 | + "description": "intel/fs: Implement spilling on XeHP", | |
248 | + "nominated": false, | |
249 | + "nomination_type": null, | |
250 | + "resolution": 4, | |
251 | + "main_sha": null, | |
252 | + "because_sha": null | |
253 | + }, | |
254 | + { | |
255 | + "sha": "96ee78778b515d5b71038c6ac16ad6f627c5062e", | |
256 | + "description": "intel/isl: Add support for scratch buffers", | |
257 | + "nominated": false, | |
258 | + "nomination_type": null, | |
259 | + "resolution": 4, | |
260 | + "main_sha": null, | |
261 | + "because_sha": null | |
262 | + }, | |
263 | + { | |
264 | + "sha": "443627fcc0e95ccce36521f4e6bbb48b7b6152a5", | |
265 | + "description": "intel/genxml: Add SURFTYPE_SCRATCH on GFX version 12.5", | |
266 | + "nominated": false, | |
267 | + "nomination_type": null, | |
268 | + "resolution": 4, | |
269 | + "main_sha": null, | |
270 | + "because_sha": null | |
271 | + }, | |
272 | + { | |
273 | + "sha": "ea43465dbfc856f114491deb605393f7ac9b6101", | |
274 | + "description": "Revert \"freedreno: Cooperate with tc to stop checking the BC for resource_busy().\"", | |
275 | + "nominated": false, | |
276 | + "nomination_type": 2, | |
277 | + "resolution": 4, | |
278 | + "main_sha": null, | |
279 | + "because_sha": "5cb043cf82af4af88dbfe83ce1eff4cc41e2a766" | |
280 | + }, | |
281 | + { | |
282 | + "sha": "be94bad12606c98ae3a06579b6740d20b11dca98", | |
283 | + "description": "zink: flush pending clears if a resource is bound as a descriptor", | |
284 | + "nominated": false, | |
285 | + "nomination_type": null, | |
286 | + "resolution": 4, | |
287 | + "main_sha": null, | |
288 | + "because_sha": null | |
289 | + }, | |
290 | + { | |
291 | + "sha": "9a027bebb5e1d66cff9e29b7c4d423443afc1de0", | |
292 | + "description": "zink: only queue deferred descriptor layout change on first bind or change", | |
293 | + "nominated": false, | |
294 | + "nomination_type": null, | |
295 | + "resolution": 4, | |
296 | + "main_sha": null, | |
297 | + "because_sha": null | |
298 | + }, | |
299 | + { | |
300 | + "sha": "8f897ae7c168b64de699776eaf7701dada1a0b6c", | |
301 | + "description": "zink: improve automatic layout transitions for sampler+image descriptors", | |
302 | + "nominated": false, | |
303 | + "nomination_type": null, | |
304 | + "resolution": 4, | |
305 | + "main_sha": null, | |
306 | + "because_sha": null | |
307 | + }, | |
308 | + { | |
309 | + "sha": "8a345adf208c46c3a551500015a432f11358ef44", | |
310 | + "description": "zink: use bind counts to more accurately determine image descriptor's exact layout", | |
311 | + "nominated": false, | |
312 | + "nomination_type": null, | |
313 | + "resolution": 4, | |
314 | + "main_sha": null, | |
315 | + "because_sha": null | |
316 | + }, | |
317 | + { | |
318 | + "sha": "e8a188a86e463c2eab41fc7e813663c9952e8a93", | |
319 | + "description": "zink: only do deferred image barriers if layout changes", | |
320 | + "nominated": false, | |
321 | + "nomination_type": null, | |
322 | + "resolution": 4, | |
323 | + "main_sha": null, | |
324 | + "because_sha": null | |
325 | + }, | |
326 | + { | |
327 | + "sha": "d3b7b355840531db9e122530504664d319c01c39", | |
328 | + "description": "zink: split deferring of barriers to image and buffer functions", | |
329 | + "nominated": false, | |
330 | + "nomination_type": null, | |
331 | + "resolution": 4, | |
332 | + "main_sha": null, | |
333 | + "because_sha": null | |
334 | + }, | |
335 | + { | |
336 | + "sha": "0e390d2f835c24ebb59b4a3373668ddce6228cdf", | |
337 | + "description": "zink: break out image descriptor layout into util function", | |
338 | + "nominated": false, | |
339 | + "nomination_type": null, | |
340 | + "resolution": 4, | |
341 | + "main_sha": null, | |
342 | + "because_sha": null | |
343 | + }, | |
344 | + { | |
345 | + "sha": "04578badc9e8dd1d76c5440964f3493b5afecc08", | |
346 | + "description": "ci/windows: fix zink msvc build-rules", | |
347 | + "nominated": false, | |
348 | + "nomination_type": 1, | |
349 | + "resolution": 4, | |
350 | + "main_sha": null, | |
351 | + "because_sha": "a426d7c2643eaa472fc01b5cc5f0bc89e7ac917b" | |
352 | + }, | |
353 | + { | |
354 | + "sha": "d0cbd39a5cf2645734b95fdc1cc6debfd4578646", | |
355 | + "description": "microsoft/spirv_to_dxil: Add drive_location assignment", | |
356 | + "nominated": false, | |
357 | + "nomination_type": null, | |
358 | + "resolution": 4, | |
359 | + "main_sha": null, | |
360 | + "because_sha": null | |
361 | + }, | |
362 | + { | |
363 | + "sha": "aa7aa7c78fca41a09af7693aa69571602ccb694c", | |
364 | + "description": "microsoft/compiler: Switch io sort to use nir_sort_variables_with_modes", | |
365 | + "nominated": false, | |
366 | + "nomination_type": null, | |
367 | + "resolution": 4, | |
368 | + "main_sha": null, | |
369 | + "because_sha": null | |
370 | + }, | |
371 | + { | |
372 | + "sha": "8a5333c105f4d99c139c866af1074366dcd7adb4", | |
373 | + "description": "nir: Add modes filter to nir_sort_variables", | |
374 | + "nominated": false, | |
375 | + "nomination_type": null, | |
376 | + "resolution": 4, | |
377 | + "main_sha": null, | |
378 | + "because_sha": null | |
379 | + }, | |
380 | + { | |
381 | + "sha": "81cb20bd17c7ad0ac94f41462685635df25fd16e", | |
382 | + "description": "nir: Add a function for sorting variables", | |
383 | + "nominated": false, | |
384 | + "nomination_type": null, | |
385 | + "resolution": 4, | |
386 | + "main_sha": null, | |
387 | + "because_sha": null | |
388 | + }, | |
389 | + { | |
390 | + "sha": "cf385cf68c542c2391052d692582bdc0f723dc65", | |
391 | + "description": "util: Add qsort_r/s args adapter for MSVC and BSD/macOS", | |
392 | + "nominated": false, | |
393 | + "nomination_type": null, | |
394 | + "resolution": 4, | |
395 | + "main_sha": null, | |
396 | + "because_sha": null | |
397 | + }, | |
398 | + { | |
399 | + "sha": "1df2acfbb81f37e4c3d2a49f570ccfc96b32eb8c", | |
400 | + "description": "util: Add simple test for util_qsort_r", | |
401 | + "nominated": false, | |
402 | + "nomination_type": null, | |
403 | + "resolution": 4, | |
404 | + "main_sha": null, | |
405 | + "because_sha": null | |
406 | + }, | |
407 | + { | |
408 | + "sha": "bdd460fdcbfd45aa7d48a53feb753d0c5529b392", | |
409 | + "description": "util: Add an implementation of qsort_r for non-GNU platforms", | |
410 | + "nominated": false, | |
411 | + "nomination_type": null, | |
412 | + "resolution": 4, | |
413 | + "main_sha": null, | |
414 | + "because_sha": null | |
415 | + }, | |
416 | + { | |
417 | + "sha": "e2e22720dcaeb73a2236d4d8d776ece64e137d04", | |
418 | + "description": "d3d12, microsoft/compiler: Moving driver_location allocation to compiler", | |
419 | + "nominated": false, | |
420 | + "nomination_type": null, | |
421 | + "resolution": 4, | |
422 | + "main_sha": null, | |
423 | + "because_sha": null | |
424 | + }, | |
425 | + { | |
426 | + "sha": "d0f1698a733c0d642ed7bf0391fe9ea796197043", | |
427 | + "description": "d3d12, microsoft/compiler: Switching semantic names to TEXCOORD", | |
428 | + "nominated": false, | |
429 | + "nomination_type": null, | |
430 | + "resolution": 4, | |
431 | + "main_sha": null, | |
432 | + "because_sha": null | |
433 | + }, | |
434 | + { | |
435 | + "sha": "b8e2374950345f2b7b9a899d5a4c1ba40997f033", | |
436 | + "description": "microsoft/compiler: Remove de-duplication of arbitrary semantic names", | |
437 | + "nominated": false, | |
438 | + "nomination_type": null, | |
439 | + "resolution": 4, | |
440 | + "main_sha": null, | |
441 | + "because_sha": null | |
442 | + }, | |
443 | + { | |
444 | + "sha": "83f8b19f9b72eb618fe6f8504978f5d6133675ec", | |
445 | + "description": "vulkan/wsi/wayland: implement the full format table", | |
446 | + "nominated": false, | |
447 | + "nomination_type": null, | |
448 | + "resolution": 4, | |
449 | + "main_sha": null, | |
450 | + "because_sha": null | |
451 | + }, | |
452 | + { | |
453 | + "sha": "8d0d2e82e7506d15a98b7889dd1478d472fdef0b", | |
454 | + "description": "tu/kgsl: Fix file descriptor double close", | |
455 | + "nominated": false, | |
456 | + "nomination_type": null, | |
457 | + "resolution": 4, | |
458 | + "main_sha": null, | |
459 | + "because_sha": null | |
460 | + }, | |
461 | + { | |
462 | + "sha": "a426d7c2643eaa472fc01b5cc5f0bc89e7ac917b", | |
463 | + "description": "ci/windows: enable msvc builds of zink", | |
464 | + "nominated": false, | |
465 | + "nomination_type": null, | |
466 | + "resolution": 4, | |
467 | + "main_sha": null, | |
468 | + "because_sha": null | |
469 | + }, | |
470 | + { | |
471 | + "sha": "b437fb810a83382cfae9aa2f38875a9a47e011a1", | |
472 | + "description": "ci/windows: work around meson encoding issues", | |
473 | + "nominated": true, | |
474 | + "nomination_type": 0, | |
475 | + "resolution": 1, | |
476 | + "main_sha": null, | |
477 | + "because_sha": null | |
478 | + }, | |
479 | + { | |
480 | + "sha": "f815026d36f32a83326b09113ed28ff3263bb7a0", | |
481 | + "description": "zink: cast pointers to uintptr_t", | |
482 | + "nominated": false, | |
483 | + "nomination_type": 1, | |
484 | + "resolution": 4, | |
485 | + "main_sha": null, | |
486 | + "because_sha": "d80d9e1c9354135f3b4a5788e94ba2a09aeec2fe" | |
487 | + }, | |
488 | + { | |
489 | + "sha": "bae4dca8e461640d8bed57dc77875afb4d5087ce", | |
490 | + "description": "aux/trace: fix bool argument", | |
491 | + "nominated": true, | |
492 | + "nomination_type": 1, | |
493 | + "resolution": 1, | |
494 | + "main_sha": null, | |
495 | + "because_sha": "c1270d4845d39939d6a7d3b1b81e0d2f9e33133d" | |
496 | + }, | |
497 | + { | |
498 | + "sha": "ea5707c52f5e45f16ef554ee3d9fe2d3f318dae5", | |
499 | + "description": "turnip: Disable buffer texturing on 422 formats.", | |
500 | + "nominated": false, | |
501 | + "nomination_type": null, | |
502 | + "resolution": 4, | |
503 | + "main_sha": null, | |
504 | + "because_sha": null | |
505 | + }, | |
506 | + { | |
507 | + "sha": "6bc88c26b69d53c0f60e5348ad87cd35e59f16d4", | |
508 | + "description": "ci/turnip: Document create_instance_device_intentional_alloc_fail's fail.", | |
509 | + "nominated": false, | |
510 | + "nomination_type": null, | |
511 | + "resolution": 4, | |
512 | + "main_sha": null, | |
513 | + "because_sha": null | |
514 | + }, | |
515 | + { | |
516 | + "sha": "55000408f9ff7d3fb82e0746c0182e69d27139db", | |
517 | + "description": "turnip: Use vk_startup_errorf() in more startup paths.", | |
518 | + "nominated": false, | |
519 | + "nomination_type": null, | |
520 | + "resolution": 4, | |
521 | + "main_sha": null, | |
522 | + "because_sha": null | |
523 | + }, | |
524 | + { | |
525 | + "sha": "31f8b704816d191936962a66e9afe18a878221a5", | |
526 | + "description": "turnip: Link more MRs and issues related to our xfails.", | |
527 | + "nominated": false, | |
528 | + "nomination_type": null, | |
529 | + "resolution": 4, | |
530 | + "main_sha": null, | |
531 | + "because_sha": null | |
532 | + }, | |
533 | + { | |
534 | + "sha": "4b44e28526dcc6a8d4cb59d4b904a71fc2a40590", | |
535 | + "description": "freedreno/ir3: Report RA failure with mesa_loge().", | |
536 | + "nominated": false, | |
537 | + "nomination_type": null, | |
538 | + "resolution": 4, | |
539 | + "main_sha": null, | |
540 | + "because_sha": null | |
541 | + }, | |
542 | + { | |
543 | + "sha": "45b7b57a838b5f91e993e5b8b42fdc3fe3d8b9ac", | |
544 | + "description": "iris/ci: disable amly jobs", | |
545 | + "nominated": false, | |
546 | + "nomination_type": null, | |
547 | + "resolution": 4, | |
548 | + "main_sha": null, | |
549 | + "because_sha": null | |
550 | + }, | |
551 | + { | |
552 | + "sha": "b14bd285f8f48bdb495f9902282ffc0c178fcb70", | |
553 | + "description": "aco/ra: handle copies of copies better", | |
554 | + "nominated": false, | |
555 | + "nomination_type": null, | |
556 | + "resolution": 4, | |
557 | + "main_sha": null, | |
558 | + "because_sha": null | |
559 | + }, | |
560 | + { | |
561 | + "sha": "995e218993767651c128cd89c5f90b6684fb4b50", | |
562 | + "description": "aco/ra: handle copies of definition registers", | |
563 | + "nominated": false, | |
564 | + "nomination_type": null, | |
565 | + "resolution": 4, | |
566 | + "main_sha": null, | |
567 | + "because_sha": null | |
568 | + }, | |
569 | + { | |
570 | + "sha": "d31dd812925150adc4e137d5915455ad894eaa0e", | |
571 | + "description": "anv: Claim to be a discrete GPU if has_lmem", | |
572 | + "nominated": false, | |
573 | + "nomination_type": null, | |
574 | + "resolution": 4, | |
575 | + "main_sha": null, | |
576 | + "because_sha": null | |
577 | + }, | |
578 | + { | |
579 | + "sha": "b6a1063c2ece41c3bb7e212f09a51884bc56ab51", | |
580 | + "description": "intel/dev: Set has_local_mem for DG1", | |
581 | + "nominated": false, | |
582 | + "nomination_type": null, | |
583 | + "resolution": 4, | |
584 | + "main_sha": null, | |
585 | + "because_sha": null | |
586 | + }, | |
587 | + { | |
588 | + "sha": "e505c221fa79a36445aa23c63238ec6d8998c599", | |
589 | + "description": "anv: Allocate scratch and workaround BO in local memory", | |
590 | + "nominated": false, | |
591 | + "nomination_type": null, | |
592 | + "resolution": 4, | |
593 | + "main_sha": null, | |
594 | + "because_sha": null | |
595 | + }, | |
596 | + { | |
597 | + "sha": "6352371ff64d9e1c5c456dbcbf31092f39609418", | |
598 | + "description": "anv: Allocate BO in appropriate region", | |
599 | + "nominated": false, | |
600 | + "nomination_type": null, | |
601 | + "resolution": 4, | |
602 | + "main_sha": null, | |
603 | + "because_sha": null | |
604 | + }, | |
605 | + { | |
606 | + "sha": "3f8eca7f82bd0432c18887ac4334f51e240143b7", | |
607 | + "description": "anv: Wrapper around I915_GEM_CREATE_EXT_MEMORY_REGIONS", | |
608 | + "nominated": false, | |
609 | + "nomination_type": null, | |
610 | + "resolution": 4, | |
611 | + "main_sha": null, | |
612 | + "because_sha": null | |
613 | + }, | |
614 | + { | |
615 | + "sha": "65e8d72bc106b0cce62d2037aa0e7f1babf42d13", | |
616 | + "description": "anv: Query memory region info", | |
617 | + "nominated": false, | |
618 | + "nomination_type": null, | |
619 | + "resolution": 4, | |
620 | + "main_sha": null, | |
621 | + "because_sha": null | |
622 | + }, | |
623 | + { | |
624 | + "sha": "aa3775c8e4aa0bf063121eada45564e1d2c8bb14", | |
625 | + "description": "iris: Map with WC on non-LLC platforms.", | |
626 | + "nominated": false, | |
627 | + "nomination_type": null, | |
628 | + "resolution": 4, | |
629 | + "main_sha": null, | |
630 | + "because_sha": null | |
631 | + }, | |
632 | + { | |
633 | + "sha": "b6a7400dfdb4e41c3c3fb3e4afa93464635be423", | |
634 | + "description": "iris/bufmgr: Add flag to allocate from local memory.", | |
635 | + "nominated": false, | |
636 | + "nomination_type": null, | |
637 | + "resolution": 4, | |
638 | + "main_sha": null, | |
639 | + "because_sha": null | |
640 | + }, | |
641 | + { | |
642 | + "sha": "55be94dcab4eebd10ae11c3f982c4c91b67fb3a7", | |
643 | + "description": "iris/bufmgr: Add new set of buckets for local memory.", | |
644 | + "nominated": false, | |
645 | + "nomination_type": null, | |
646 | + "resolution": 4, | |
647 | + "main_sha": null, | |
648 | + "because_sha": null | |
649 | + }, | |
650 | + { | |
651 | + "sha": "e60114b2ae117b0f9cc55de57ab397804c8d6bf8", | |
652 | + "description": "iris/bufmgr: Query memory region info.", | |
653 | + "nominated": false, | |
654 | + "nomination_type": null, | |
655 | + "resolution": 4, | |
656 | + "main_sha": null, | |
657 | + "because_sha": null | |
658 | + }, | |
659 | + { | |
660 | + "sha": "84069acfd4129956e3fdb0076e1b3f79b8f9386b", | |
661 | + "description": "iris/bufmgr: Align vma addresses to 64K for local memory", | |
662 | + "nominated": false, | |
663 | + "nomination_type": null, | |
664 | + "resolution": 4, | |
665 | + "main_sha": null, | |
666 | + "because_sha": null | |
667 | + }, | |
668 | + { | |
669 | + "sha": "cb6feae0b5c83b36af6538f1d0dae51f76ead4cd", | |
670 | + "description": "intel/devinfo: Add has_local_mem", | |
671 | + "nominated": false, | |
672 | + "nomination_type": null, | |
673 | + "resolution": 4, | |
674 | + "main_sha": null, | |
675 | + "because_sha": null | |
676 | + }, | |
677 | + { | |
678 | + "sha": "8dc3c91a5ce118f358bf5aa36d2a4a6b0b4e3789", | |
679 | + "description": "include/drm-uapi: bump headers", | |
680 | + "nominated": false, | |
681 | + "nomination_type": null, | |
682 | + "resolution": 4, | |
683 | + "main_sha": null, | |
684 | + "because_sha": null | |
685 | + }, | |
686 | + { | |
687 | + "sha": "2fe2eb1911f4425f76a6f5f7b9d47f80bf0c5571", | |
688 | + "description": "radv: Implement VK_EXT_acquire_drm_display", | |
689 | + "nominated": false, | |
690 | + "nomination_type": null, | |
691 | + "resolution": 4, | |
692 | + "main_sha": null, | |
693 | + "because_sha": null | |
694 | + }, | |
695 | + { | |
696 | + "sha": "f9944899a7f80994661fb0e8b4a09e1d5f3c8caf", | |
697 | + "description": "vulkan/wsi: Implement VK_EXT_acquire_drm_display", | |
698 | + "nominated": false, | |
699 | + "nomination_type": null, | |
700 | + "resolution": 4, | |
701 | + "main_sha": null, | |
702 | + "because_sha": null | |
703 | + }, | |
704 | + { | |
705 | + "sha": "fdf22aad739fdb9575e6839646dc3e948c5b40fc", | |
706 | + "description": "vulkan/wsi: add drm_fd param to wsi_display_get_connector", | |
707 | + "nominated": false, | |
708 | + "nomination_type": null, | |
709 | + "resolution": 4, | |
710 | + "main_sha": null, | |
711 | + "because_sha": null | |
712 | + }, | |
713 | + { | |
714 | + "sha": "7fb70ee2d51bd4a309641edb331f16e87e059447", | |
715 | + "description": "docs/isl: Improve the bit[6] swizzling section of the tiling chapter", | |
716 | + "nominated": false, | |
717 | + "nomination_type": null, | |
718 | + "resolution": 4, | |
719 | + "main_sha": null, | |
720 | + "because_sha": null | |
721 | + }, | |
722 | + { | |
723 | + "sha": "b8030ab1ea91cf4ba9ebac80d8d5aebd41f3bf80", | |
724 | + "description": "isl,docs: Add a chapter on AUX state tracking", | |
725 | + "nominated": false, | |
726 | + "nomination_type": null, | |
727 | + "resolution": 4, | |
728 | + "main_sha": null, | |
729 | + "because_sha": null | |
730 | + }, | |
731 | + { | |
732 | + "sha": "94a52bc85cd1f75eae66c9b1c03272b1a68ff5fd", | |
733 | + "description": "isl,iris: Move the extra_aux_surf logic into iris", | |
734 | + "nominated": false, | |
735 | + "nomination_type": null, | |
736 | + "resolution": 4, | |
737 | + "main_sha": null, | |
738 | + "because_sha": null | |
739 | + }, | |
740 | + { | |
741 | + "sha": "37f76aab1c7b3c7aa7066ef8f2406e9e2fdf8057", | |
742 | + "description": "isl: Take a hiz_or_mcs_surf in isl_surf_supports_ccs", | |
743 | + "nominated": false, | |
744 | + "nomination_type": null, | |
745 | + "resolution": 4, | |
746 | + "main_sha": null, | |
747 | + "because_sha": null | |
748 | + }, | |
749 | + { | |
750 | + "sha": "2d2590a879b211b2ec290299467d1fc1b8e772b9", | |
751 | + "description": "isl: Assert some iris invariants in isl_surf_get_ccs_surf", | |
752 | + "nominated": false, | |
753 | + "nomination_type": null, | |
754 | + "resolution": 4, | |
755 | + "main_sha": null, | |
756 | + "because_sha": null | |
757 | + }, | |
758 | + { | |
759 | + "sha": "6fe82e6c1e36892d9c9625e233a9f250893630a2", | |
760 | + "description": "asahi: Fix macOS macro.", | |
761 | + "nominated": false, | |
762 | + "nomination_type": 1, | |
763 | + "resolution": 4, | |
764 | + "main_sha": null, | |
765 | + "because_sha": "26b19bda3068ecee3b10ff2eed6b5c4f027abcba" | |
766 | + }, | |
767 | + { | |
768 | + "sha": "9aff548ff4f6c2d52bfca972050324e0eba043ec", | |
769 | + "description": "libgl-gdi: add missing include", | |
770 | + "nominated": true, | |
771 | + "nomination_type": 1, | |
772 | + "resolution": 1, | |
773 | + "main_sha": null, | |
774 | + "because_sha": "fdfe4a4d307377f078a01d05a247c4f61d208be8" | |
775 | + }, | |
776 | + { | |
777 | + "sha": "fa784acbdfed22be75e4184cd3599a98a4e76de4", | |
778 | + "description": "zink: remove some needless moltenvk details", | |
779 | + "nominated": false, | |
780 | + "nomination_type": null, | |
781 | + "resolution": 4, | |
782 | + "main_sha": null, | |
783 | + "because_sha": null | |
784 | + }, | |
785 | + { | |
786 | + "sha": "ccb9f8670e7d8c0e33d3fcb9857a2b3eac5a47ec", | |
787 | + "description": "zink: do not store moltenvk functions in screen", | |
788 | + "nominated": false, | |
789 | + "nomination_type": null, | |
790 | + "resolution": 4, | |
791 | + "main_sha": null, | |
792 | + "because_sha": null | |
793 | + }, | |
794 | + { | |
795 | + "sha": "95cbb560cf73ba60086b3c91d35ebcf577a95320", | |
796 | + "description": "zink: remove unused moltenvk functions", | |
797 | + "nominated": true, | |
798 | + "nomination_type": 1, | |
799 | + "resolution": 1, | |
800 | + "main_sha": null, | |
801 | + "because_sha": "c2cb2dd3bc68d0d61fa483a3927563bab08c93e9" | |
802 | + }, | |
803 | + { | |
804 | + "sha": "7b220f8694d1e2934b6ed7fc702f0a4a441d2031", | |
805 | + "description": "zink: unbreak moltenvk code", | |
806 | + "nominated": false, | |
807 | + "nomination_type": 1, | |
808 | + "resolution": 4, | |
809 | + "main_sha": null, | |
810 | + "because_sha": "55748681032b41bf09b92111064807a8c46216bf" | |
811 | + }, | |
812 | + { | |
813 | + "sha": "e979ecbd45670590d6b46de51215d5bc757da4ce", | |
814 | + "description": "zink: remove unused function-pointers", | |
815 | + "nominated": false, | |
816 | + "nomination_type": 1, | |
817 | + "resolution": 4, | |
818 | + "main_sha": null, | |
819 | + "because_sha": "55748681032b41bf09b92111064807a8c46216bf" | |
820 | + }, | |
821 | + { | |
822 | + "sha": "efa863990a264cbafeadbe04f7f486da000c7983", | |
823 | + "description": "zink: drop unused macros", | |
824 | + "nominated": false, | |
825 | + "nomination_type": 1, | |
826 | + "resolution": 4, | |
827 | + "main_sha": null, | |
828 | + "because_sha": "55748681032b41bf09b92111064807a8c46216bf" | |
829 | + }, | |
830 | + { | |
831 | + "sha": "d2114bf413a75fc40159cb037c0a773517f93c8c", | |
832 | + "description": "crocus: fix another printf specifier.", | |
833 | + "nominated": false, | |
834 | + "nomination_type": null, | |
835 | + "resolution": 4, | |
836 | + "main_sha": null, | |
837 | + "because_sha": null | |
838 | + }, | |
839 | + { | |
840 | + "sha": "78c979dc9311e7bb3d4180db4a9b366c532921e2", | |
841 | + "description": "crocus/gfx6: always be dirtying gs attachments for xfb", | |
842 | + "nominated": false, | |
843 | + "nomination_type": null, | |
844 | + "resolution": 4, | |
845 | + "main_sha": null, | |
846 | + "because_sha": null | |
847 | + }, | |
848 | + { | |
849 | + "sha": "7399d6028f5363d9b90e57b95a539ce2476d8792", | |
850 | + "description": "crocus: Avoid replacing backing storage for buffers with no contents", | |
851 | + "nominated": false, | |
852 | + "nomination_type": null, | |
853 | + "resolution": 4, | |
854 | + "main_sha": null, | |
855 | + "because_sha": null | |
856 | + }, | |
857 | + { | |
858 | + "sha": "0fa4b64f6c349da91bde6bcadda307b249705862", | |
859 | + "description": "crocus: dirty blend state more often.", | |
860 | + "nominated": false, | |
861 | + "nomination_type": null, | |
862 | + "resolution": 4, | |
863 | + "main_sha": null, | |
864 | + "because_sha": null | |
865 | + }, | |
866 | + { | |
867 | + "sha": "a74c16e5f8bd0647f8d5bf199eccd1551b0949e3", | |
868 | + "description": "crocus/gfx6: fix sampler view first level.", | |
869 | + "nominated": false, | |
870 | + "nomination_type": null, | |
871 | + "resolution": 4, | |
872 | + "main_sha": null, | |
873 | + "because_sha": null | |
874 | + }, | |
875 | + { | |
876 | + "sha": "0acd202858aae3774fdd0b1d92af4485a4e464f2", | |
877 | + "description": "intel/genxml: fix gfx6 GS SVB_INDEX encoding", | |
878 | + "nominated": false, | |
879 | + "nomination_type": null, | |
880 | + "resolution": 4, | |
881 | + "main_sha": null, | |
882 | + "because_sha": null | |
883 | + }, | |
884 | + { | |
885 | + "sha": "c282a082bef05d21aebf7f9a6c95d80f4b01cd23", | |
886 | + "description": "crocus/query: poll the syncobj in the no wait situation", | |
887 | + "nominated": false, | |
888 | + "nomination_type": null, | |
889 | + "resolution": 4, | |
890 | + "main_sha": null, | |
891 | + "because_sha": null | |
892 | + }, | |
893 | + { | |
894 | + "sha": "9ca6abd424c7f1a3c24dc5f4c021eed75613a3ae", | |
895 | + "description": "vl/dri3: Don't leak regions on the X server", | |
896 | + "nominated": false, | |
897 | + "nomination_type": null, | |
898 | + "resolution": 4, | |
899 | + "main_sha": null, | |
900 | + "because_sha": null | |
901 | + }, | |
902 | + { | |
903 | + "sha": "7e9424d91b06aca12d258959f68f7f7c7a2f12a8", | |
904 | + "description": "loader/dri3: Don't churn through xfixes regions in SwapBuffers", | |
905 | + "nominated": false, | |
906 | + "nomination_type": null, | |
907 | + "resolution": 4, | |
908 | + "main_sha": null, | |
909 | + "because_sha": null | |
910 | + }, | |
911 | + { | |
912 | + "sha": "34e4622983b70baf8e565502de1d63df71b066a7", | |
913 | + "description": "loader/dri3: Properly initialize the XFIXES extension", | |
914 | + "nominated": false, | |
915 | + "nomination_type": null, | |
916 | + "resolution": 4, | |
917 | + "main_sha": null, | |
918 | + "because_sha": null | |
919 | + }, | |
920 | + { | |
921 | + "sha": "888b7ba33822dafea1ec19bda6d9ea06c8c5adad", | |
922 | + "description": "radeonsi: optimize set_inlinable_constants when they don't change", | |
923 | + "nominated": false, | |
924 | + "nomination_type": null, | |
925 | + "resolution": 4, | |
926 | + "main_sha": null, | |
927 | + "because_sha": null | |
928 | + }, | |
929 | + { | |
930 | + "sha": "86355b5984da9ac54f3ab99ab8da879af4cfc262", | |
931 | + "description": "ac/gpu_info: adjust the condition for use_late_alloc", | |
932 | + "nominated": false, | |
933 | + "nomination_type": null, | |
934 | + "resolution": 4, | |
935 | + "main_sha": null, | |
936 | + "because_sha": null | |
937 | + }, | |
938 | + { | |
939 | + "sha": "ff42fd1fdfc6f8935f105d95acf92bc505483e4e", | |
940 | + "description": "radeonsi: don't use NGG culling on 1 RB chips", | |
941 | + "nominated": false, | |
942 | + "nomination_type": null, | |
943 | + "resolution": 4, | |
944 | + "main_sha": null, | |
945 | + "because_sha": null | |
946 | + }, | |
947 | + { | |
948 | + "sha": "f7afcc3d11d170a4820a1e5defc9f3e26b2c7f7d", | |
949 | + "description": "radeonsi: remove incorrect comment about hangs in gfx10_ngg_gs_emit_epilogue", | |
950 | + "nominated": false, | |
951 | + "nomination_type": null, | |
952 | + "resolution": 4, | |
953 | + "main_sha": null, | |
954 | + "because_sha": null | |
955 | + }, | |
956 | + { | |
957 | + "sha": "593f3b3a5a35426ea0d24c1a33ffa980429c68f2", | |
958 | + "description": "radeonsi: if shader culling culls all vertices, cull the primitive exports too", | |
959 | + "nominated": false, | |
960 | + "nomination_type": null, | |
961 | + "resolution": 4, | |
962 | + "main_sha": null, | |
963 | + "because_sha": null | |
964 | + }, | |
965 | + { | |
966 | + "sha": "defc7c92d90728ec66bea736a18bb8180ab60228", | |
967 | + "description": "radeonsi: document why VBO descriptors in user SGPRs are beneficial", | |
968 | + "nominated": false, | |
969 | + "nomination_type": null, | |
970 | + "resolution": 4, | |
971 | + "main_sha": null, | |
972 | + "because_sha": null | |
973 | + }, | |
974 | + { | |
975 | + "sha": "f99f7c06e71d6194d4206bde58a8acb5a42d90ed", | |
976 | + "description": "lavapipe: implement multidraw ext", | |
977 | + "nominated": false, | |
978 | + "nomination_type": null, | |
979 | + "resolution": 4, | |
980 | + "main_sha": null, | |
981 | + "because_sha": null | |
982 | + }, | |
983 | + { | |
984 | + "sha": "be0e34450b4202975792806c88a381cae597491f", | |
985 | + "description": "zink: use depth/stencil-only layouts for depth/stencil-only formats", | |
986 | + "nominated": false, | |
987 | + "nomination_type": null, | |
988 | + "resolution": 4, | |
989 | + "main_sha": null, | |
990 | + "because_sha": null | |
991 | + }, | |
992 | + { | |
993 | + "sha": "d22cdcd33a4ee2e47b07235f986273b9b69d5804", | |
994 | + "description": "util: add work around for the game We Happy Few", | |
995 | + "nominated": true, | |
996 | + "nomination_type": 0, | |
997 | + "resolution": 1, | |
998 | + "main_sha": null, | |
999 | + "because_sha": null | |
1000 | + }, | |
1001 | + { | |
1002 | + "sha": "a067f54f3e1606c916da57f61d692a859d4a58fb", | |
1003 | + "description": "ci/i915g: Skip the piglit glx tests since we're not running X.", | |
1004 | + "nominated": false, | |
1005 | + "nomination_type": null, | |
1006 | + "resolution": 4, | |
1007 | + "main_sha": null, | |
1008 | + "because_sha": null | |
1009 | + }, | |
1010 | + { | |
1011 | + "sha": "1ccb8ab8011da054c27962e18bc63aabf90c1375", | |
1012 | + "description": "i915g: Finish out blend factor overrides for both RGBx and A8.", | |
1013 | + "nominated": false, | |
1014 | + "nomination_type": null, | |
1015 | + "resolution": 4, | |
1016 | + "main_sha": null, | |
1017 | + "because_sha": null | |
1018 | + }, | |
1019 | + { | |
1020 | + "sha": "2683c7bf9ada52f92163cd6b27fb588ea80c47b4", | |
1021 | + "description": "i915g: Fix bad naming of depth texture formats.", | |
1022 | + "nominated": false, | |
1023 | + "nomination_type": null, | |
1024 | + "resolution": 4, | |
1025 | + "main_sha": null, | |
1026 | + "because_sha": null | |
1027 | + }, | |
1028 | + { | |
1029 | + "sha": "078030973bfe8164b529f77d2d68ebbe602e6a2a", | |
1030 | + "description": "ir3/ra: Fix corner case in collect handling", | |
1031 | + "nominated": false, | |
1032 | + "nomination_type": 1, | |
1033 | + "resolution": 4, | |
1034 | + "main_sha": null, | |
1035 | + "because_sha": "0ffcb19b9d9fbe902224542047c389a661fbf816" | |
1036 | + }, | |
1037 | + { | |
1038 | + "sha": "3dc8c5985858db451ca4a2465ccd2b85ffd8f90f", | |
1039 | + "description": "ir3: Remove IR3_REG_DEST", | |
1040 | + "nominated": false, | |
1041 | + "nomination_type": null, | |
1042 | + "resolution": 4, | |
1043 | + "main_sha": null, | |
1044 | + "because_sha": null | |
1045 | + }, | |
1046 | + { | |
1047 | + "sha": "def96adaee49bed7473cb21488c19f6ab60ed6d3", | |
1048 | + "description": "ir3: Remove regs array", | |
1049 | + "nominated": false, | |
1050 | + "nomination_type": null, | |
1051 | + "resolution": 4, | |
1052 | + "main_sha": null, | |
1053 | + "because_sha": null | |
1054 | + }, | |
1055 | + { | |
1056 | + "sha": "57aeef5c13538b78ad4fa88cfdc812442b64fb77", | |
1057 | + "description": "ir3/frontend: Switch to srcs/dsts arrays", | |
1058 | + "nominated": false, | |
1059 | + "nomination_type": null, | |
1060 | + "resolution": 4, | |
1061 | + "main_sha": null, | |
1062 | + "because_sha": null | |
1063 | + }, | |
1064 | + { | |
1065 | + "sha": "5785abb9ed305167f9eb617bd0880413a74cf08f", | |
1066 | + "description": "ir3/opts: Switch to srcs/dsts arrays", | |
1067 | + "nominated": false, | |
1068 | + "nomination_type": null, | |
1069 | + "resolution": 4, | |
1070 | + "main_sha": null, | |
1071 | + "because_sha": null | |
1072 | + }, | |
1073 | + { | |
1074 | + "sha": "58fb0a01e17bfbadbe1ebe1acd5b05e6f50a1e91", | |
1075 | + "description": "ir3/validate: Switch to srcs/dsts arrays", | |
1076 | + "nominated": false, | |
1077 | + "nomination_type": null, | |
1078 | + "resolution": 4, | |
1079 | + "main_sha": null, | |
1080 | + "because_sha": null | |
1081 | + }, | |
1082 | + { | |
1083 | + "sha": "050ec77d1bcd091b8f588d1e14f151398576b8fe", | |
1084 | + "description": "ir3/print: Switch to srcs/dsts arrays", | |
1085 | + "nominated": false, | |
1086 | + "nomination_type": null, | |
1087 | + "resolution": 4, | |
1088 | + "main_sha": null, | |
1089 | + "because_sha": null | |
1090 | + }, | |
1091 | + { | |
1092 | + "sha": "1b4990eea65c6d81aa486d88b36dd0641f349ad4", | |
1093 | + "description": "ir3/legalize: Switch to srcs/dsts arrays", | |
1094 | + "nominated": false, | |
1095 | + "nomination_type": null, | |
1096 | + "resolution": 4, | |
1097 | + "main_sha": null, | |
1098 | + "because_sha": null | |
1099 | + }, | |
1100 | + { | |
1101 | + "sha": "abebc1f53ffd1e8e57de06e4884b7178def2f7f7", | |
1102 | + "description": "ir3/array_to_ssa: Switch to srcs/dsts arrays", | |
1103 | + "nominated": false, | |
1104 | + "nomination_type": null, | |
1105 | + "resolution": 4, | |
1106 | + "main_sha": null, | |
1107 | + "because_sha": null | |
1108 | + }, | |
1109 | + { | |
1110 | + "sha": "dd13081e03545664c46de763e0fc4aef787a3c6b", | |
1111 | + "description": "ir3/parser: Switch to srcs/dsts arrays", | |
1112 | + "nominated": false, | |
1113 | + "nomination_type": null, | |
1114 | + "resolution": 4, | |
1115 | + "main_sha": null, | |
1116 | + "because_sha": null | |
1117 | + }, | |
1118 | + { | |
1119 | + "sha": "af48cfc06b69e1d322a533a8b467deebf6630484", | |
1120 | + "description": "ir3/ra: Switch to srcs/dsts arrays", | |
1121 | + "nominated": false, | |
1122 | + "nomination_type": null, | |
1123 | + "resolution": 4, | |
1124 | + "main_sha": null, | |
1125 | + "because_sha": null | |
1126 | + }, | |
1127 | + { | |
1128 | + "sha": "d3e08327cf85ef0b07c8e4920c168329cf66ec41", | |
1129 | + "description": "ir3/core: Switch to srcs/dsts arrays", | |
1130 | + "nominated": false, | |
1131 | + "nomination_type": null, | |
1132 | + "resolution": 4, | |
1133 | + "main_sha": null, | |
1134 | + "because_sha": null | |
1135 | + }, | |
1136 | + { | |
1137 | + "sha": "50994eeabff270a1aeccf7c104104d13a2018dfd", | |
1138 | + "description": "ir3/sched: Convert to srcs/dsts arrays", | |
1139 | + "nominated": false, | |
1140 | + "nomination_type": null, | |
1141 | + "resolution": 4, | |
1142 | + "main_sha": null, | |
1143 | + "because_sha": null | |
1144 | + }, | |
1145 | + { | |
1146 | + "sha": "132dfacdcbefdfa7094dee2ec36e6770edb1c8e9", | |
1147 | + "description": "freedreno/tests: Convert to srcs/dsts", | |
1148 | + "nominated": false, | |
1149 | + "nomination_type": null, | |
1150 | + "resolution": 4, | |
1151 | + "main_sha": null, | |
1152 | + "because_sha": null | |
1153 | + }, | |
1154 | + { | |
1155 | + "sha": "bff83fc42b2fbae6a9a96b1eab9936ce6bcb3a21", | |
1156 | + "description": "freedreno/isa: Convert to srcs/dsts", | |
1157 | + "nominated": false, | |
1158 | + "nomination_type": null, | |
1159 | + "resolution": 4, | |
1160 | + "main_sha": null, | |
1161 | + "because_sha": null | |
1162 | + }, | |
1163 | + { | |
1164 | + "sha": "db7814ad56468b7fd5ffb6e8469ade10ae64a4c6", | |
1165 | + "description": "ir3: Add srcs/dsts arrays to ir3_instruction", | |
1166 | + "nominated": false, | |
1167 | + "nomination_type": null, | |
1168 | + "resolution": 4, | |
1169 | + "main_sha": null, | |
1170 | + "because_sha": null | |
1171 | + }, | |
1172 | + { | |
1173 | + "sha": "59b9935877ee29a4ad7f83ac6f0753781530f08b", | |
1174 | + "description": "ir3/legalize: Construct branch properly", | |
1175 | + "nominated": false, | |
1176 | + "nomination_type": null, | |
1177 | + "resolution": 4, | |
1178 | + "main_sha": null, | |
1179 | + "because_sha": null | |
1180 | + }, | |
1181 | + { | |
1182 | + "sha": "e93f15d4bc346dd56bdf93d81513768872d8d1fb", | |
1183 | + "description": "ir3: Add separate src/dst count in ir3_instr", | |
1184 | + "nominated": false, | |
1185 | + "nomination_type": null, | |
1186 | + "resolution": 4, | |
1187 | + "main_sha": null, | |
1188 | + "because_sha": null | |
1189 | + }, | |
1190 | + { | |
1191 | + "sha": "3071e2e93395efeba14204564eac56ce38adfa37", | |
1192 | + "description": "ir3: Split ir3_reg_create() into ir3_{src,dst}_create()", | |
1193 | + "nominated": false, | |
1194 | + "nomination_type": null, | |
1195 | + "resolution": 4, | |
1196 | + "main_sha": null, | |
1197 | + "because_sha": null | |
1198 | + }, | |
1199 | + { | |
1200 | + "sha": "9af795d9b984055042ef4ed33c6d3f2021be778a", | |
1201 | + "description": "ir3: Make ir3_instruction::address a normal register", | |
1202 | + "nominated": false, | |
1203 | + "nomination_type": null, | |
1204 | + "resolution": 4, | |
1205 | + "main_sha": null, | |
1206 | + "because_sha": null | |
1207 | + }, | |
1208 | + { | |
1209 | + "sha": "2522f387a3d640b091b5ae2ca69a5e1d23edce99", | |
1210 | + "description": "ir3: Add is_reg_special()", | |
1211 | + "nominated": false, | |
1212 | + "nomination_type": null, | |
1213 | + "resolution": 4, | |
1214 | + "main_sha": null, | |
1215 | + "because_sha": null | |
1216 | + }, | |
1217 | + { | |
1218 | + "sha": "dce680737ddb200c59c55a8c696114f793757398", | |
1219 | + "description": "ir3: Validate that ir3_register::instr is correct", | |
1220 | + "nominated": false, | |
1221 | + "nomination_type": null, | |
1222 | + "resolution": 4, | |
1223 | + "main_sha": null, | |
1224 | + "because_sha": null | |
1225 | + }, | |
1226 | + { | |
1227 | + "sha": "ef7bc4a2aa6b0a0063a478499f74a85cf3ef1dd1", | |
1228 | + "description": "ir3: Update ir3_register::instr when cloning instructions", | |
1229 | + "nominated": false, | |
1230 | + "nomination_type": null, | |
1231 | + "resolution": 4, | |
1232 | + "main_sha": null, | |
1233 | + "because_sha": null | |
1234 | + }, | |
1235 | + { | |
1236 | + "sha": "0f329ba10ae64a6c58d7945d8b1b3f19959878e2", | |
1237 | + "description": "ir3: Split read-modify-write array dests in two", | |
1238 | + "nominated": false, | |
1239 | + "nomination_type": null, | |
1240 | + "resolution": 4, | |
1241 | + "main_sha": null, | |
1242 | + "because_sha": null | |
1243 | + }, | |
1244 | + { | |
1245 | + "sha": "cc649453364dd1ea3a8efff8f3bc4290ba80e34b", | |
1246 | + "description": "ir3: Make tied sources/destinations part of the IR", | |
1247 | + "nominated": false, | |
1248 | + "nomination_type": null, | |
1249 | + "resolution": 4, | |
1250 | + "main_sha": null, | |
1251 | + "because_sha": null | |
1252 | + }, | |
1253 | + { | |
1254 | + "sha": "f953dc2cedaa412ecf56ee804ac19d4dee3b47db", | |
1255 | + "description": "amd/ci: add hawaii-specific skip and fail lists", | |
1256 | + "nominated": false, | |
1257 | + "nomination_type": null, | |
1258 | + "resolution": 4, | |
1259 | + "main_sha": null, | |
1260 | + "because_sha": null | |
1261 | + }, | |
1262 | + { | |
1263 | + "sha": "08495a948e16ac4fe54e282b77e8265551606219", | |
1264 | + "description": "pan/mdg: Add 16 bytes of padding to the end of shaders", | |
1265 | + "nominated": true, | |
1266 | + "nomination_type": 0, | |
1267 | + "resolution": 1, | |
1268 | + "main_sha": null, | |
1269 | + "because_sha": null | |
1270 | + }, | |
1271 | + { | |
1272 | + "sha": "55951ac28e7a30c2fae762990962a4410669c989", | |
1273 | + "description": "anv: fix emitting dynamic primitive topology", | |
1274 | + "nominated": true, | |
1275 | + "nomination_type": 1, | |
1276 | + "resolution": 0, | |
1277 | + "main_sha": null, | |
1278 | + "because_sha": "f6fa4a8000053fc6e9a25a30f482c59466390898" | |
1279 | + }, | |
1280 | + { | |
1281 | + "sha": "43b99e48b13f462ff2325e35ba3df930ab0ee06c", | |
1282 | + "description": "Revert \"ci: disable panfrost t760 jobs\"", | |
1283 | + "nominated": false, | |
1284 | + "nomination_type": 2, | |
1285 | + "resolution": 4, | |
1286 | + "main_sha": null, | |
1287 | + "because_sha": "854d93f73d6064a13ddc13dddf74c8c760cda1d4" | |
1288 | + }, | |
1289 | + { | |
1290 | + "sha": "2d87ea3166596a07259c96d33f3e4880417117cd", | |
1291 | + "description": "iris: take a reference to memobj bo in iris_resource_from_memobj", | |
1292 | + "nominated": false, | |
1293 | + "nomination_type": 1, | |
1294 | + "resolution": 4, | |
1295 | + "main_sha": null, | |
1296 | + "because_sha": "772dc50d162f6ac99676ef5134607f0d0e6db21e" | |
1297 | + }, | |
1298 | + { | |
1299 | + "sha": "52547cfbd0dac490ddff6bd8e4f25539fb994d80", | |
1300 | + "description": "radeonsi: disable ngg culling on llvm < 12", | |
1301 | + "nominated": true, | |
1302 | + "nomination_type": 0, | |
1303 | + "resolution": 1, | |
1304 | + "main_sha": null, | |
1305 | + "because_sha": null | |
1306 | + }, | |
1307 | + { | |
1308 | + "sha": "9b7cba7724f5cc407a889a1feeccf7c9fb105f50", | |
1309 | + "description": "anv: bound checks buffer memory binding in debug builds", | |
1310 | + "nominated": false, | |
1311 | + "nomination_type": null, | |
1312 | + "resolution": 4, | |
1313 | + "main_sha": null, | |
1314 | + "because_sha": null | |
1315 | + }, | |
1316 | + { | |
1317 | + "sha": "4dc42843423aa6b0771f863c3359c44810424d63", | |
1318 | + "description": "intel/fs: Implement Wa_14013745556 on TGL+.", | |
1319 | + "nominated": false, | |
1320 | + "nomination_type": null, | |
1321 | + "resolution": 4, | |
1322 | + "main_sha": null, | |
1323 | + "because_sha": null | |
1324 | + }, | |
1325 | + { | |
1326 | + "sha": "c19cfa9dc22b805581ac5ed3ad835fed3c8506c2", | |
1327 | + "description": "intel/fs: Fix synchronization of accumulator-clearing W/A move on TGL+.", | |
1328 | + "nominated": true, | |
1329 | + "nomination_type": 1, | |
1330 | + "resolution": 1, | |
1331 | + "main_sha": null, | |
1332 | + "because_sha": "a27542c5ddec8dd6a64a9c236cf6bea1db1b9e48" | |
1333 | + }, | |
1334 | + { | |
1335 | + "sha": "63abc083ce5e03843d72465a76fdb93064bc3eb9", | |
1336 | + "description": "intel/fs: Teach IR about EOT instruction writing the accumulator implicitly on TGL+.", | |
1337 | + "nominated": true, | |
1338 | + "nomination_type": 1, | |
1339 | + "resolution": 1, | |
1340 | + "main_sha": null, | |
1341 | + "because_sha": "a27542c5ddec8dd6a64a9c236cf6bea1db1b9e48" | |
1342 | + }, | |
1343 | + { | |
1344 | + "sha": "5e7f443de05f7865654b280ffab298172b33b863", | |
1345 | + "description": "intel/fs: Add SWSB dependency annotations for cross-pipeline WaR data hazards on XeHP+.", | |
1346 | + "nominated": false, | |
1347 | + "nomination_type": null, | |
1348 | + "resolution": 4, | |
1349 | + "main_sha": null, | |
1350 | + "because_sha": null | |
1351 | + }, | |
1352 | + { | |
1353 | + "sha": "d46bb14d140079b78d9d1478d13ac5e0864fe403", | |
1354 | + "description": "intel/fs: Implement Wa_22012725308 for cross-pipe accumulator data hazard.", | |
1355 | + "nominated": false, | |
1356 | + "nomination_type": null, | |
1357 | + "resolution": 4, | |
1358 | + "main_sha": null, | |
1359 | + "because_sha": null | |
1360 | + }, | |
1361 | + { | |
1362 | + "sha": "385da1fe36ca231fc0ad3634b1aa3be4ef679959", | |
1363 | + "description": "intel/fs: Track single accumulator in scoreboard lowering pass.", | |
1364 | + "nominated": false, | |
1365 | + "nomination_type": null, | |
1366 | + "resolution": 4, | |
1367 | + "main_sha": null, | |
1368 | + "because_sha": null | |
1369 | + }, | |
1370 | + { | |
1371 | + "sha": "231337a13af03f5579f5401cff16aa96ec796746", | |
1372 | + "description": "intel/fs/xehp: Assert that the compiler is sending all 3 coords for cubemaps.", | |
1373 | + "nominated": false, | |
1374 | + "nomination_type": null, | |
1375 | + "resolution": 4, | |
1376 | + "main_sha": null, | |
1377 | + "because_sha": null | |
1378 | + }, | |
1379 | + { | |
1380 | + "sha": "85315f5fb1b17b7e289c22da317bc3f37666d043", | |
1381 | + "description": "freedreno/ci: Use TU_IGNORE_CONFORMANCE_WARNING to reduce warnings", | |
1382 | + "nominated": false, | |
1383 | + "nomination_type": null, | |
1384 | + "resolution": 4, | |
1385 | + "main_sha": null, | |
1386 | + "because_sha": null | |
1387 | + }, | |
1388 | + { | |
1389 | + "sha": "205d6e582c08285fd1cd55cead8f8fd2becbb211", | |
1390 | + "description": "tu: Provide a toggle to avoid warnings about unsupported devices", | |
1391 | + "nominated": false, | |
1392 | + "nomination_type": null, | |
1393 | + "resolution": 4, | |
1394 | + "main_sha": null, | |
1395 | + "because_sha": null | |
1396 | + }, | |
1397 | + { | |
1398 | + "sha": "17a1cc616371d5239498386fa6850df536ad1fe4", | |
1399 | + "description": "meson/crocus: add prefer-crocus option.", | |
1400 | + "nominated": false, | |
1401 | + "nomination_type": null, | |
1402 | + "resolution": 4, | |
1403 | + "main_sha": null, | |
1404 | + "because_sha": null | |
1405 | + }, | |
1406 | + { | |
1407 | + "sha": "ec7e26234901359a694b54f72e7ac78f00b6ab60", | |
1408 | + "description": "mesa: unreference zombie buffers when creating buffers to lower memory usage", | |
1409 | + "nominated": true, | |
1410 | + "nomination_type": 1, | |
1411 | + "resolution": 1, | |
1412 | + "main_sha": null, | |
1413 | + "because_sha": "e014e3b6be638f4192d6eddd3d1033fd571f3a76" | |
1414 | + }, | |
1415 | + { | |
1416 | + "sha": "29d272f144ba800933af656717ed57adaa5e6510", | |
1417 | + "description": "crocus: fix batch state bo leak", | |
1418 | + "nominated": false, | |
1419 | + "nomination_type": null, | |
1420 | + "resolution": 4, | |
1421 | + "main_sha": null, | |
1422 | + "because_sha": null | |
1423 | + }, | |
1424 | + { | |
1425 | + "sha": "9027aae546d0674aee704b24bf4e78271c25cc06", | |
1426 | + "description": "crocus: fix vertex buffer leak on screen end.", | |
1427 | + "nominated": false, | |
1428 | + "nomination_type": null, | |
1429 | + "resolution": 4, | |
1430 | + "main_sha": null, | |
1431 | + "because_sha": null | |
1432 | + }, | |
1433 | + { | |
1434 | + "sha": "6036121a559473bea48729002d94822791c888a1", | |
1435 | + "description": "crocus: free context state properly.", | |
1436 | + "nominated": false, | |
1437 | + "nomination_type": null, | |
1438 | + "resolution": 4, | |
1439 | + "main_sha": null, | |
1440 | + "because_sha": null | |
1441 | + }, | |
1442 | + { | |
1443 | + "sha": "c9bc5e3a86d9f8468b9fec3d4736d8e0d7880f52", | |
1444 | + "description": "zink: ci updates", | |
1445 | + "nominated": false, | |
1446 | + "nomination_type": null, | |
1447 | + "resolution": 4, | |
1448 | + "main_sha": null, | |
1449 | + "because_sha": null | |
1450 | + }, | |
1451 | + { | |
1452 | + "sha": "a7847130804d47ba1f54da76dcdf8cff3a3ee706", | |
1453 | + "description": "zink: remove primconvert", | |
1454 | + "nominated": false, | |
1455 | + "nomination_type": null, | |
1456 | + "resolution": 4, | |
1457 | + "main_sha": null, | |
1458 | + "because_sha": null | |
1459 | + }, | |
1460 | + { | |
1461 | + "sha": "c032c9e32d55bb4a413876c71f537b5bdd655487", | |
1462 | + "description": "zink: export supported primitive restart types", | |
1463 | + "nominated": false, | |
1464 | + "nomination_type": null, | |
1465 | + "resolution": 4, | |
1466 | + "main_sha": null, | |
1467 | + "because_sha": null | |
1468 | + }, | |
1469 | + { | |
1470 | + "sha": "2953d709942031db91edeaa8940c63cc5517bd65", | |
1471 | + "description": "zink: export supported prim types", | |
1472 | + "nominated": false, | |
1473 | + "nomination_type": null, | |
1474 | + "resolution": 4, | |
1475 | + "main_sha": null, | |
1476 | + "because_sha": null | |
1477 | + }, | |
1478 | + { | |
1479 | + "sha": "8ac4be916ef731b830822f85879e4527fc7b5056", | |
1480 | + "description": "zink: export 8bit index buffer support based on extension presence", | |
1481 | + "nominated": false, | |
1482 | + "nomination_type": null, | |
1483 | + "resolution": 4, | |
1484 | + "main_sha": null, | |
1485 | + "because_sha": null | |
1486 | + }, | |
1487 | + { | |
1488 | + "sha": "09c28a35a5a392587b32d4ffaf1bcc8980c7ff07", | |
1489 | + "description": "zink: export PIPE_CAP_EMULATE_NONFIXED_PRIMITIVE_RESTART", | |
1490 | + "nominated": false, | |
1491 | + "nomination_type": null, | |
1492 | + "resolution": 4, | |
1493 | + "main_sha": null, | |
1494 | + "because_sha": null | |
1495 | + }, | |
1496 | + { | |
1497 | + "sha": "3fc651110c8c45d72e2cfabb80f61c68503106e2", | |
1498 | + "description": "gallium: add a pipe cap for determining driver support for prim type in restarts", | |
1499 | + "nominated": false, | |
1500 | + "nomination_type": null, | |
1501 | + "resolution": 4, | |
1502 | + "main_sha": null, | |
1503 | + "because_sha": null | |
1504 | + }, | |
1505 | + { | |
1506 | + "sha": "f8ff6eb78b749fa3f0e8492232193d8843187dfe", | |
1507 | + "description": "gallium: add a pipe cap for performing automatic prim type conversion", | |
1508 | + "nominated": false, | |
1509 | + "nomination_type": null, | |
1510 | + "resolution": 4, | |
1511 | + "main_sha": null, | |
1512 | + "because_sha": null | |
1513 | + }, | |
1514 | + { | |
1515 | + "sha": "c8e674d4e391a517103b0da6480f1fe0a7c36a11", | |
1516 | + "description": "gallium: handle automatic 8bit -> 16bit index buffer rewrites", | |
1517 | + "nominated": false, | |
1518 | + "nomination_type": null, | |
1519 | + "resolution": 4, | |
1520 | + "main_sha": null, | |
1521 | + "because_sha": null | |
1522 | + }, | |
1523 | + { | |
1524 | + "sha": "c9a65e5f77ef7c4ff72591ef1a8a57678eb8dda4", | |
1525 | + "description": "gallium: add a pipe cap to rewrite index buffers for draws using a non-fixed restart index", | |
1526 | + "nominated": false, | |
1527 | + "nomination_type": null, | |
1528 | + "resolution": 4, | |
1529 | + "main_sha": null, | |
1530 | + "because_sha": null | |
1531 | + }, | |
1532 | + { | |
1533 | + "sha": "99a60ed3786a3224e7ca0930d2c19d5f2fd3727b", | |
1534 | + "description": "util/primconvert: handle multidraws in primconvert", | |
1535 | + "nominated": false, | |
1536 | + "nomination_type": null, | |
1537 | + "resolution": 4, | |
1538 | + "main_sha": null, | |
1539 | + "because_sha": null | |
1540 | + }, | |
1541 | + { | |
1542 | + "sha": "583070748cb103560b173b5789998302d517b587", | |
1543 | + "description": "util/primconvert: handle rewriting of prim-restart draws with unsupported primtype", | |
1544 | + "nominated": false, | |
1545 | + "nomination_type": null, | |
1546 | + "resolution": 4, | |
1547 | + "main_sha": null, | |
1548 | + "because_sha": null | |
1549 | + }, | |
1550 | + { | |
1551 | + "sha": "f3fe70f10e5000e704ca010555140ef82a5af281", | |
1552 | + "description": "util/primconvert: map index buffer before getting index translator function", | |
1553 | + "nominated": false, | |
1554 | + "nomination_type": null, | |
1555 | + "resolution": 4, | |
1556 | + "main_sha": null, | |
1557 | + "because_sha": null | |
1558 | + }, | |
1559 | + { | |
1560 | + "sha": "26e718fb37a99adf13ae503155de6a144a323ec1", | |
1561 | + "description": "util/primconvert: handle indirect draws", | |
1562 | + "nominated": false, | |
1563 | + "nomination_type": null, | |
1564 | + "resolution": 4, | |
1565 | + "main_sha": null, | |
1566 | + "because_sha": null | |
1567 | + }, | |
1568 | + { | |
1569 | + "sha": "4673febf919014cb72266b7d978ef6bc6e3aba82", | |
1570 | + "description": "util/prim_restart: break out draw rewriting into separate function", | |
1571 | + "nominated": false, | |
1572 | + "nomination_type": null, | |
1573 | + "resolution": 4, | |
1574 | + "main_sha": null, | |
1575 | + "because_sha": null | |
1576 | + }, | |
1577 | + { | |
1578 | + "sha": "3eb99323172902d34c80782aaa2d110567749cd9", | |
1579 | + "description": "aux/draw: add a util function for reading back indirect draw params", | |
1580 | + "nominated": false, | |
1581 | + "nomination_type": null, | |
1582 | + "resolution": 4, | |
1583 | + "main_sha": null, | |
1584 | + "because_sha": null | |
1585 | + }, | |
1586 | + { | |
1587 | + "sha": "854d93f73d6064a13ddc13dddf74c8c760cda1d4", | |
1588 | + "description": "ci: disable panfrost t760 jobs", | |
1589 | + "nominated": false, | |
1590 | + "nomination_type": null, | |
1591 | + "resolution": 4, | |
1592 | + "main_sha": null, | |
1593 | + "because_sha": null | |
1594 | + }, | |
1595 | + { | |
1596 | + "sha": "fd09727a7d93c4669aa0adfced63fcd4972984bb", | |
1597 | + "description": "crocus: Explicitly cast value to uint64_t", | |
1598 | + "nominated": false, | |
1599 | + "nomination_type": null, | |
1600 | + "resolution": 4, | |
1601 | + "main_sha": null, | |
1602 | + "because_sha": null | |
1603 | + }, | |
1604 | + { | |
1605 | + "sha": "17f0d7ef83d753f26957359b471d2471f52a4523", | |
1606 | + "description": "amd/addrlib: remove Meson debug message()", | |
1607 | + "nominated": true, | |
1608 | + "nomination_type": 1, | |
1609 | + "resolution": 1, | |
1610 | + "main_sha": null, | |
1611 | + "because_sha": "d0767fc045a1210f9fff464b96dd68cf36fe57f9" | |
1612 | + }, | |
1613 | + { | |
1614 | + "sha": "d977e7fbe107898480506fdd7bca9b177718587a", | |
1615 | + "description": "radeon/vcn/enc: Add missing line to HEVC SPS header code", | |
1616 | + "nominated": true, | |
1617 | + "nomination_type": 1, | |
1618 | + "resolution": 1, | |
1619 | + "main_sha": null, | |
1620 | + "because_sha": "e62c7e7c6caa6c9531afb694e7952a7fc3ac4401" | |
1621 | + }, | |
1622 | + { | |
1623 | + "sha": "d3fddf63ec9e3a70f3d8c5a98794d70a234417f7", | |
1624 | + "description": "ac/llvm: don't set skip-uniform-regions to fix atomic.cmpswap", | |
1625 | + "nominated": true, | |
1626 | + "nomination_type": 1, | |
1627 | + "resolution": 0, | |
1628 | + "main_sha": null, | |
1629 | + "because_sha": "3bb65c06706a58b124e4a600eeb35a7b3c5c3a23" | |
1630 | + }, | |
1631 | + { | |
1632 | + "sha": "bdd8646306b0dad87747425812039e24da808b62", | |
1633 | + "description": "util: add force_gl_names_reuse for SWKOTOR.", | |
1634 | + "nominated": false, | |
1635 | + "nomination_type": null, | |
1636 | + "resolution": 4, | |
1637 | + "main_sha": null, | |
1638 | + "because_sha": null | |
1639 | + }, | |
1640 | + { | |
1641 | + "sha": "a9e3ddfc63209a1b401e9de4a9de791789040f71", | |
1642 | + "description": "i915g: Fix GL_ARB_copy_buffer assertion fails.", | |
1643 | + "nominated": false, | |
1644 | + "nomination_type": null, | |
1645 | + "resolution": 4, | |
1646 | + "main_sha": null, | |
1647 | + "because_sha": null | |
1648 | + }, | |
1649 | + { | |
1650 | + "sha": "7ed0aaced7604b9ac3f5a3b5c24b2cc9509a7385", | |
1651 | + "description": "nir: use a more fitting index for btd_stack_push_intel", | |
1652 | + "nominated": false, | |
1653 | + "nomination_type": null, | |
1654 | + "resolution": 4, | |
1655 | + "main_sha": null, | |
1656 | + "because_sha": null | |
1657 | + }, | |
1658 | + { | |
1659 | + "sha": "423c47de991643269a7c76ea37efe59b237fa6e7", | |
1660 | + "description": "nir: drop the btd_resume_intel intrinsic", | |
1661 | + "nominated": false, | |
1662 | + "nomination_type": null, | |
1663 | + "resolution": 4, | |
1664 | + "main_sha": null, | |
1665 | + "because_sha": null | |
1666 | + }, | |
1667 | + { | |
1668 | + "sha": "4d9fcf2799e57fccb168027a1bb8c245236eca98", | |
1669 | + "description": "intel/rt: switch to common pass for shader calls lowering", | |
1670 | + "nominated": false, | |
1671 | + "nomination_type": null, | |
1672 | + "resolution": 4, | |
1673 | + "main_sha": null, | |
1674 | + "because_sha": null | |
1675 | + }, | |
1676 | + { | |
1677 | + "sha": "1dacea10f35983833dabcad220317fe6e61db31b", | |
1678 | + "description": "anv: implement caching for ray tracing pipelines", | |
1679 | + "nominated": false, | |
1680 | + "nomination_type": null, | |
1681 | + "resolution": 4, | |
1682 | + "main_sha": null, | |
1683 | + "because_sha": null | |
1684 | + }, | |
1685 | + { | |
1686 | + "sha": "fed7ac932f38ba3daebc4f2c937cb12d8c34b14d", | |
1687 | + "description": "anv: move trivial return shader to device", | |
1688 | + "nominated": false, | |
1689 | + "nomination_type": null, | |
1690 | + "resolution": 4, | |
1691 | + "main_sha": null, | |
1692 | + "because_sha": null | |
1693 | + }, | |
1694 | + { | |
1695 | + "sha": "7c852f78c41f608aaa940f17b81deb6191937777", | |
1696 | + "description": "anv: store more RT shader data in pipeline_stage object", | |
1697 | + "nominated": false, | |
1698 | + "nomination_type": null, | |
1699 | + "resolution": 4, | |
1700 | + "main_sha": null, | |
1701 | + "because_sha": null | |
1702 | + }, | |
1703 | + { | |
1704 | + "sha": "045f4600b1cd3096ecd12cda9c28de09b7919679", | |
1705 | + "description": "anv: cache raytracing trampoline shader", | |
1706 | + "nominated": false, | |
1707 | + "nomination_type": null, | |
1708 | + "resolution": 4, | |
1709 | + "main_sha": null, | |
1710 | + "because_sha": null | |
1711 | + }, | |
1712 | + { | |
1713 | + "sha": "ab77aeb48884b611f76c9be78a610a529c01221a", | |
1714 | + "description": "blorp: add blorp string in shader keys", | |
1715 | + "nominated": false, | |
1716 | + "nomination_type": null, | |
1717 | + "resolution": 4, | |
1718 | + "main_sha": null, | |
1719 | + "because_sha": null | |
1720 | + }, | |
1721 | + { | |
1722 | + "sha": "7479fe6ae0935fb8f9e3c64c16c7e6855481d1da", | |
1723 | + "description": "anv: Implement vkCmdTraceRays and vkCmdTraceRaysIndirect", | |
1724 | + "nominated": false, | |
1725 | + "nomination_type": null, | |
1726 | + "resolution": 4, | |
1727 | + "main_sha": null, | |
1728 | + "because_sha": null | |
1729 | + }, | |
1730 | + { | |
1731 | + "sha": "ac6d7a1758cbee91caf6812333bb3416d22ad7e4", | |
1732 | + "description": "anv: Make anv_address::offset 64-bit", | |
1733 | + "nominated": false, | |
1734 | + "nomination_type": null, | |
1735 | + "resolution": 4, | |
1736 | + "main_sha": null, | |
1737 | + "because_sha": null | |
1738 | + }, | |
1739 | + { | |
1740 | + "sha": "a67d7c9dee1a74c8aa861b0b848c455686d9a09b", | |
1741 | + "description": "anv: Allow _anv_combine_address with a NULL batch", | |
1742 | + "nominated": false, | |
1743 | + "nomination_type": null, | |
1744 | + "resolution": 4, | |
1745 | + "main_sha": null, | |
1746 | + "because_sha": null | |
1747 | + }, | |
1748 | + { | |
1749 | + "sha": "f68d64dac01505560a53aabe2b8616685cace0c2", | |
1750 | + "description": "anv: Add support for vkCmdSetRayTracingPipelineStackSizeKHR", | |
1751 | + "nominated": false, | |
1752 | + "nomination_type": null, | |
1753 | + "resolution": 4, | |
1754 | + "main_sha": null, | |
1755 | + "because_sha": null | |
1756 | + }, | |
1757 | + { | |
1758 | + "sha": "02f7964a134dffe2b904d0c3dec2e058d201cdc5", | |
1759 | + "description": "anv: Compute scratch sizes for ray-tracing pipelines and shader groups", | |
1760 | + "nominated": false, | |
1761 | + "nomination_type": null, | |
1762 | + "resolution": 4, | |
1763 | + "main_sha": null, | |
1764 | + "because_sha": null | |
1765 | + }, | |
1766 | + { | |
1767 | + "sha": "c3ac9afca3890be4aed7ebcdd0e3499556964da2", | |
1768 | + "description": "anv: Create and return ray-tracing pipeline SBT handles", | |
1769 | + "nominated": false, | |
1770 | + "nomination_type": null, | |
1771 | + "resolution": 4, | |
1772 | + "main_sha": null, | |
1773 | + "because_sha": null | |
1774 | + }, | |
1775 | + { | |
1776 | + "sha": "b66d3e627a81c6b89171972c32ba2bf61665b7c5", | |
1777 | + "description": "intel/fs: Don't pull CS push constants if uses_inline_data", | |
1778 | + "nominated": false, | |
1779 | + "nomination_type": null, | |
1780 | + "resolution": 4, | |
1781 | + "main_sha": null, | |
1782 | + "because_sha": null | |
1783 | + }, | |
1784 | + { | |
1785 | + "sha": "79dc25d8679ac6ab03c43ea51255ef046883d39f", | |
1786 | + "description": "anv: Compile trivial return and trampoline shaders", | |
1787 | + "nominated": false, | |
1788 | + "nomination_type": null, | |
1789 | + "resolution": 4, | |
1790 | + "main_sha": null, | |
1791 | + "because_sha": null | |
1792 | + }, | |
1793 | + { | |
1794 | + "sha": "e10455585115d502702a3f642dfd386d0c7a0c69", | |
1795 | + "description": "anv: Compile ray-tracing shaders", | |
1796 | + "nominated": false, | |
1797 | + "nomination_type": null, | |
1798 | + "resolution": 4, | |
1799 | + "main_sha": null, | |
1800 | + "because_sha": null | |
1801 | + }, | |
1802 | + { | |
1803 | + "sha": "379b9bb7b04dc87797e49933bbfac786b7ef38fb", | |
1804 | + "description": "anv: Support fetching descriptor addresses from push constants", | |
1805 | + "nominated": false, | |
1806 | + "nomination_type": null, | |
1807 | + "resolution": 4, | |
1808 | + "main_sha": null, | |
1809 | + "because_sha": null | |
1810 | + }, | |
1811 | + { | |
1812 | + "sha": "937ffb1af0201fbb11c939ca67f7c5b6a31035fa", | |
1813 | + "description": "nir/apply_pipeline_layout: Handle bindless shaders", | |
1814 | + "nominated": false, | |
1815 | + "nomination_type": null, | |
1816 | + "resolution": 4, | |
1817 | + "main_sha": null, | |
1818 | + "because_sha": null | |
1819 | + }, | |
1820 | + { | |
1821 | + "sha": "770d3312857a2ce2130dd949f3149d14068eb760", | |
1822 | + "description": "anv: Disallow UBO pushing for bindless shaders", | |
1823 | + "nominated": false, | |
1824 | + "nomination_type": null, | |
1825 | + "resolution": 4, | |
1826 | + "main_sha": null, | |
1827 | + "because_sha": null | |
1828 | + }, | |
1829 | + { | |
1830 | + "sha": "c92fd3584835b48fe745ef3c10ac1d71c5c6c6ae", | |
1831 | + "description": "intel/rt: Use reloc constants for the resume SBT", | |
1832 | + "nominated": false, | |
1833 | + "nomination_type": null, | |
1834 | + "resolution": 4, | |
1835 | + "main_sha": null, | |
1836 | + "because_sha": null | |
1837 | + }, | |
1838 | + { | |
1839 | + "sha": "705395344d2541d038326a6f64fbff838b52a71e", | |
1840 | + "description": "intel/fs: Add support for compiling bindless shaders with resume shaders", | |
1841 | + "nominated": false, | |
1842 | + "nomination_type": null, | |
1843 | + "resolution": 4, | |
1844 | + "main_sha": null, | |
1845 | + "because_sha": null | |
1846 | + }, | |
1847 | + { | |
1848 | + "sha": "d055ac9bdf6a07f14b405d2ed1d6400e9b7c638f", | |
1849 | + "description": "intel/compiler: Add a U32 reloc type", | |
1850 | + "nominated": false, | |
1851 | + "nomination_type": null, | |
1852 | + "resolution": 4, | |
1853 | + "main_sha": null, | |
1854 | + "because_sha": null | |
1855 | + }, | |
1856 | + { | |
1857 | + "sha": "55508bbe66cdae22cc8ae74f27829fba13f393c7", | |
1858 | + "description": "intel/compiler: Generalize shader relocations a bit", | |
1859 | + "nominated": false, | |
1860 | + "nomination_type": null, | |
1861 | + "resolution": 4, | |
1862 | + "main_sha": null, | |
1863 | + "because_sha": null | |
1864 | + }, | |
1865 | + { | |
1866 | + "sha": "f7668d6fe5aed6706e7ee1c42d4053ed2c61adfb", | |
1867 | + "description": "anv,iris: Move the SHADER_RELOC enums to brw_compiler.h", | |
1868 | + "nominated": false, | |
1869 | + "nomination_type": null, | |
1870 | + "resolution": 4, | |
1871 | + "main_sha": null, | |
1872 | + "because_sha": null | |
1873 | + }, | |
1874 | + { | |
1875 | + "sha": "d95d5b146511447294f3d593d6701b6ab389e711", | |
1876 | + "description": "anv: Add support for binding ray-tracing pipelines", | |
1877 | + "nominated": false, | |
1878 | + "nomination_type": null, | |
1879 | + "resolution": 4, | |
1880 | + "main_sha": null, | |
1881 | + "because_sha": null | |
1882 | + }, | |
1883 | + { | |
1884 | + "sha": "8cc5080580b2c858097184dd662441bd61ebde0c", | |
1885 | + "description": "anv: Add a ray-tracing pipeline object", | |
1886 | + "nominated": false, | |
1887 | + "nomination_type": null, | |
1888 | + "resolution": 4, | |
1889 | + "main_sha": null, | |
1890 | + "because_sha": null | |
1891 | + }, | |
1892 | + { | |
1893 | + "sha": "dc05daf0e51b1e9fd99b9624d657cdca98d1d02e", | |
1894 | + "description": "anv: Get ready for more pipeline stages", | |
1895 | + "nominated": false, | |
1896 | + "nomination_type": null, | |
1897 | + "resolution": 4, | |
1898 | + "main_sha": null, | |
1899 | + "because_sha": null | |
1900 | + }, | |
1901 | + { | |
1902 | + "sha": "f366f6a07163d757dcd881dfe353951bbfd25710", | |
1903 | + "description": "anv: Add minimal boilerplate for VK_KHR_ray_tracing_pipeline", | |
1904 | + "nominated": false, | |
1905 | + "nomination_type": null, | |
1906 | + "resolution": 4, | |
1907 | + "main_sha": null, | |
1908 | + "because_sha": null | |
1909 | + }, | |
1910 | + { | |
1911 | + "sha": "d258b0bf0e072438fc9eb921c5335734e6794459", | |
1912 | + "description": "anv: Add support for binding acceleration structures", | |
1913 | + "nominated": false, | |
1914 | + "nomination_type": null, | |
1915 | + "resolution": 4, | |
1916 | + "main_sha": null, | |
1917 | + "because_sha": null | |
1918 | + }, | |
1919 | + { | |
1920 | + "sha": "4664c9247833924d5f4a38342fc11c3e6e251fc4", | |
1921 | + "description": "anv: Add stub support for acceleration structures", | |
1922 | + "nominated": false, | |
1923 | + "nomination_type": null, | |
1924 | + "resolution": 4, | |
1925 | + "main_sha": null, | |
1926 | + "because_sha": null | |
1927 | + }, | |
1928 | + { | |
1929 | + "sha": "e97002ebcf983ee6a8586a1564b41588a7109a6a", | |
1930 | + "description": "anv: Add minimal boilerplate for VK_KHR_acceleration_structure", | |
1931 | + "nominated": false, | |
1932 | + "nomination_type": null, | |
1933 | + "resolution": 4, | |
1934 | + "main_sha": null, | |
1935 | + "because_sha": null | |
1936 | + }, | |
1937 | + { | |
1938 | + "sha": "72437f6d540d77e7bcfcfd46938accd996684b51", | |
1939 | + "description": "spirv: Create acceleration structure and shader record variables", | |
1940 | + "nominated": true, | |
1941 | + "nomination_type": 1, | |
1942 | + "resolution": 1, | |
1943 | + "main_sha": null, | |
1944 | + "because_sha": "10b3eecd361af465e0e207fb18553ae37b924c45" | |
1945 | + }, | |
1946 | + { | |
1947 | + "sha": "5cecf826d3b4ed4282a6979e0c00713d0a5f8909", | |
1948 | + "description": "zink: don't clear batch resources on fence finish", | |
1949 | + "nominated": false, | |
1950 | + "nomination_type": null, | |
1951 | + "resolution": 4, | |
1952 | + "main_sha": null, | |
1953 | + "because_sha": null | |
1954 | + }, | |
1955 | + { | |
1956 | + "sha": "b315aa43f1c2d2f17bdd6a78cf402daae060d31c", | |
1957 | + "description": "zink: move some end-of-batch stuff to submit thread", | |
1958 | + "nominated": false, | |
1959 | + "nomination_type": null, | |
1960 | + "resolution": 4, | |
1961 | + "main_sha": null, | |
1962 | + "because_sha": null | |
1963 | + }, | |
1964 | + { | |
1965 | + "sha": "d8dc03c2131701a9e803dba43a040bbc0b980fc3", | |
1966 | + "description": "zink: flag scanout updates to batch state, not resource", | |
1967 | + "nominated": false, | |
1968 | + "nomination_type": null, | |
1969 | + "resolution": 4, | |
1970 | + "main_sha": null, | |
1971 | + "because_sha": null | |
1972 | + }, | |
1973 | + { | |
1974 | + "sha": "c1d06c402aa21745740933de79dddbdbdd38486a", | |
1975 | + "description": "zink: move fence reset to submit thread", | |
1976 | + "nominated": false, | |
1977 | + "nomination_type": null, | |
1978 | + "resolution": 4, | |
1979 | + "main_sha": null, | |
1980 | + "because_sha": null | |
1981 | + }, | |
1982 | + { | |
1983 | + "sha": "97f82493367004c6c73747000b331f8140095bfe", | |
1984 | + "description": "zink: move sparse buffer commit to screen queue", | |
1985 | + "nominated": false, | |
1986 | + "nomination_type": null, | |
1987 | + "resolution": 4, | |
1988 | + "main_sha": null, | |
1989 | + "because_sha": null | |
1990 | + }, | |
1991 | + { | |
1992 | + "sha": "478f129ee720229a2a3f5093a9f579c97951118b", | |
1993 | + "description": "zink: move queue submit thread to screen", | |
1994 | + "nominated": false, | |
1995 | + "nomination_type": null, | |
1996 | + "resolution": 4, | |
1997 | + "main_sha": null, | |
1998 | + "because_sha": null | |
1999 | + }, | |
2000 | + { | |
2001 | + "sha": "d4159963e3d3bb7f40cd506515e1ec189800abbf", | |
2002 | + "description": "zink: enforce multi-context waiting for unflushed resources on foreign batches", | |
2003 | + "nominated": false, | |
2004 | + "nomination_type": null, | |
2005 | + "resolution": 4, | |
2006 | + "main_sha": null, | |
2007 | + "because_sha": null | |
2008 | + }, | |
2009 | + { | |
2010 | + "sha": "ef418cfc5913dbd0830bb2b42d6d27d8ce4a0639", | |
2011 | + "description": "zink: make init_mem_range() a public function", | |
2012 | + "nominated": false, | |
2013 | + "nomination_type": null, | |
2014 | + "resolution": 4, | |
2015 | + "main_sha": null, | |
2016 | + "because_sha": null | |
2017 | + }, | |
2018 | + { | |
2019 | + "sha": "18c22f502439ff3d3be6738ca86a0ffc19961670", | |
2020 | + "description": "zink: break out offset alignment calculation into helper", | |
2021 | + "nominated": false, | |
2022 | + "nomination_type": null, | |
2023 | + "resolution": 4, | |
2024 | + "main_sha": null, | |
2025 | + "because_sha": null | |
2026 | + }, | |
2027 | + { | |
2028 | + "sha": "d574b0a51e8af26037a3df21981d4535b4d6117c", | |
2029 | + "description": "zink: apply zink_resource_object::offset for memory flush/invalidates", | |
2030 | + "nominated": false, | |
2031 | + "nomination_type": null, | |
2032 | + "resolution": 4, | |
2033 | + "main_sha": null, | |
2034 | + "because_sha": null | |
2035 | + }, | |
2036 | + { | |
2037 | + "sha": "d80d9e1c9354135f3b4a5788e94ba2a09aeec2fe", | |
2038 | + "description": "zink: queue v3.0", | |
2039 | + "nominated": false, | |
2040 | + "nomination_type": null, | |
2041 | + "resolution": 4, | |
2042 | + "main_sha": null, | |
2043 | + "because_sha": null | |
2044 | + }, | |
2045 | + { | |
2046 | + "sha": "28496f6ff21584766012a696b885dd4a1b4da73f", | |
2047 | + "description": "zink: remove no-longer-used resource helper functions", | |
2048 | + "nominated": false, | |
2049 | + "nomination_type": null, | |
2050 | + "resolution": 4, | |
2051 | + "main_sha": null, | |
2052 | + "because_sha": null | |
2053 | + }, | |
2054 | + { | |
2055 | + "sha": "59ec1794f63ebc977e5d8006825c8f284746f023", | |
2056 | + "description": "zink: use batch usage api for resource helper function", | |
2057 | + "nominated": false, | |
2058 | + "nomination_type": null, | |
2059 | + "resolution": 4, | |
2060 | + "main_sha": null, | |
2061 | + "because_sha": null | |
2062 | + }, | |
2063 | + { | |
2064 | + "sha": "1226628eb652171943cee3e79b61a0bdf1b9c2d1", | |
2065 | + "description": "zink: add and use fencing functions which take batch usage structs", | |
2066 | + "nominated": false, | |
2067 | + "nomination_type": null, | |
2068 | + "resolution": 4, | |
2069 | + "main_sha": null, | |
2070 | + "because_sha": null | |
2071 | + }, | |
2072 | + { | |
2073 | + "sha": "982a2dfbd4a45cfed50e4f7f77702eb27b4f866f", | |
2074 | + "description": "zink: improve tc fence disambiguation", | |
2075 | + "nominated": false, | |
2076 | + "nomination_type": null, | |
2077 | + "resolution": 4, | |
2078 | + "main_sha": null, | |
2079 | + "because_sha": null | |
2080 | + }, | |
2081 | + { | |
2082 | + "sha": "618784732a227e5aa4970b303b1e34541c5f400a", | |
2083 | + "description": "zink: only update last_finished during batch reset if the batch was used", | |
2084 | + "nominated": false, | |
2085 | + "nomination_type": null, | |
2086 | + "resolution": 4, | |
2087 | + "main_sha": null, | |
2088 | + "because_sha": null | |
2089 | + }, | |
2090 | + { | |
2091 | + "sha": "56c7e69c4d9dca0e4e0f4c56dcfe97e8b8b4aa5e", | |
2092 | + "description": "freedreno: Fix leak of the screen hash table.", | |
2093 | + "nominated": false, | |
2094 | + "nomination_type": null, | |
2095 | + "resolution": 4, | |
2096 | + "main_sha": null, | |
2097 | + "because_sha": null | |
2098 | + }, | |
2099 | + { | |
2100 | + "sha": "b76f2299544c73c831edf4b1e212427a41ccdd23", | |
2101 | + "description": "crocus/bufmgr: fix userptr left over fail", | |
2102 | + "nominated": false, | |
2103 | + "nomination_type": null, | |
2104 | + "resolution": 4, | |
2105 | + "main_sha": null, | |
2106 | + "because_sha": null | |
2107 | + }, | |
2108 | + { | |
2109 | + "sha": "45c12da2119a4808afde9f9b1c7bbd40ca58cefa", | |
2110 | + "description": "croucs: limit stencil swizzle change to older generations", | |
2111 | + "nominated": false, | |
2112 | + "nomination_type": null, | |
2113 | + "resolution": 4, | |
2114 | + "main_sha": null, | |
2115 | + "because_sha": null | |
2116 | + }, | |
2117 | + { | |
2118 | + "sha": "7eb3728e4b50fba5cbfc6e5bd1b8cffb807ba50b", | |
2119 | + "description": "zink: clear textures directly when possible", | |
2120 | + "nominated": false, | |
2121 | + "nomination_type": null, | |
2122 | + "resolution": 4, | |
2123 | + "main_sha": null, | |
2124 | + "because_sha": null | |
2125 | + }, | |
2126 | + { | |
2127 | + "sha": "a0608b3efcf82944a951a2bdc816f062dcdba64c", | |
2128 | + "description": "crocus/gen8: add support for cherryview (env var for bdw)", | |
2129 | + "nominated": false, | |
2130 | + "nomination_type": null, | |
2131 | + "resolution": 4, | |
2132 | + "main_sha": null, | |
2133 | + "because_sha": null | |
2134 | + }, | |
2135 | + { | |
2136 | + "sha": "c63030419692b433570a08d33a86e36adc16bc3a", | |
2137 | + "description": "crocus/gen8: hookup gen8 state generators", | |
2138 | + "nominated": false, | |
2139 | + "nomination_type": null, | |
2140 | + "resolution": 4, | |
2141 | + "main_sha": null, | |
2142 | + "because_sha": null | |
2143 | + }, | |
2144 | + { | |
2145 | + "sha": "edf05076a45eb8d30c8481e58dd0cea518b3b10b", | |
2146 | + "description": "crocus/gen8: handle sampler differences", | |
2147 | + "nominated": false, | |
2148 | + "nomination_type": null, | |
2149 | + "resolution": 4, | |
2150 | + "main_sha": null, | |
2151 | + "because_sha": null | |
2152 | + }, | |
2153 | + { | |
2154 | + "sha": "661f108d808e5378eba779d4af758d6f4228fb6c", | |
2155 | + "description": "croucs/gen8: handle gfx8 surface aux addr reloc.", | |
2156 | + "nominated": false, | |
2157 | + "nomination_type": null, | |
2158 | + "resolution": 4, | |
2159 | + "main_sha": null, | |
2160 | + "because_sha": null | |
2161 | + }, | |
2162 | + { | |
2163 | + "sha": "12e4da8053f6dee84774053eec4242762de3eeec", | |
2164 | + "description": "crocus/gen8: port over VFE/compute state changes", | |
2165 | + "nominated": false, | |
2166 | + "nomination_type": null, | |
2167 | + "resolution": 4, | |
2168 | + "main_sha": null, | |
2169 | + "because_sha": null | |
2170 | + }, | |
2171 | + { | |
2172 | + "sha": "612c30bff7db91645b12246bd1f12ae46c6a040c", | |
2173 | + "description": "crocus/gen8: port over ps/wm state changes from iris.", | |
2174 | + "nominated": false, | |
2175 | + "nomination_type": null, | |
2176 | + "resolution": 4, | |
2177 | + "main_sha": null, | |
2178 | + "because_sha": null | |
2179 | + }, | |
2180 | + { | |
2181 | + "sha": "5888b718472274da042bb7916b550ee227a4f019", | |
2182 | + "description": "crocus/gen8: port over vs/gs/ds state changes.", | |
2183 | + "nominated": false, | |
2184 | + "nomination_type": null, | |
2185 | + "resolution": 4, | |
2186 | + "main_sha": null, | |
2187 | + "because_sha": null | |
2188 | + }, | |
2189 | + { | |
2190 | + "sha": "457f21aa91c27b04b921dd2d49c3db4365ac68cc", | |
2191 | + "description": "crocus/gen8: add depth stencil state support", | |
2192 | + "nominated": false, | |
2193 | + "nomination_type": null, | |
2194 | + "resolution": 4, | |
2195 | + "main_sha": null, | |
2196 | + "because_sha": null | |
2197 | + }, | |
2198 | + { | |
2199 | + "sha": "524eae8b7876e7684b1d63c07cde4a941c015fba", | |
2200 | + "description": "crocus/gen8: add viewport support", | |
2201 | + "nominated": false, | |
2202 | + "nomination_type": null, | |
2203 | + "resolution": 4, | |
2204 | + "main_sha": null, | |
2205 | + "because_sha": null | |
2206 | + }, | |
2207 | + { | |
2208 | + "sha": "d12a9eda72409168ddafedee46e602f3499ffb84", | |
2209 | + "description": "crocus/gen8: add rasterizer state changes.", | |
2210 | + "nominated": false, | |
2211 | + "nomination_type": null, | |
2212 | + "resolution": 4, | |
2213 | + "main_sha": null, | |
2214 | + "because_sha": null | |
2215 | + }, | |
2216 | + { | |
2217 | + "sha": "6613c0ac374d379924add8df8ae4c627cbc3159e", | |
2218 | + "description": "crocus/gen8: refactor blend state for gen8", | |
2219 | + "nominated": false, | |
2220 | + "nomination_type": null, | |
2221 | + "resolution": 4, | |
2222 | + "main_sha": null, | |
2223 | + "because_sha": null | |
2224 | + }, | |
2225 | + { | |
2226 | + "sha": "4025c9d34096687de9c59b549fde4117e35256b0", | |
2227 | + "description": "crocus/gen8: add PS blend command support.", | |
2228 | + "nominated": false, | |
2229 | + "nomination_type": null, | |
2230 | + "resolution": 4, | |
2231 | + "main_sha": null, | |
2232 | + "because_sha": null | |
2233 | + }, | |
2234 | + { | |
2235 | + "sha": "22b9063aeecdc4dbefa6a9931aa84aa098c8fb08", | |
2236 | + "description": "crocus/gen8: add VF SGVS support.", | |
2237 | + "nominated": false, | |
2238 | + "nomination_type": null, | |
2239 | + "resolution": 4, | |
2240 | + "main_sha": null, | |
2241 | + "because_sha": null | |
2242 | + }, | |
2243 | + { | |
2244 | + "sha": "5b32fccd3f1635bef04b1621caa32a1f59e75041", | |
2245 | + "description": "crocus/gen8: add SBE swiz support", | |
2246 | + "nominated": false, | |
2247 | + "nomination_type": null, | |
2248 | + "resolution": 4, | |
2249 | + "main_sha": null, | |
2250 | + "because_sha": null | |
2251 | + }, | |
2252 | + { | |
2253 | + "sha": "88bba6a49eb50cb2f312bc0a38edc524ccd6c385", | |
2254 | + "description": "crocus/gen8: add streamout support", | |
2255 | + "nominated": false, | |
2256 | + "nomination_type": null, | |
2257 | + "resolution": 4, | |
2258 | + "main_sha": null, | |
2259 | + "because_sha": null | |
2260 | + }, | |
2261 | + { | |
2262 | + "sha": "750e0c1ff3ce467ef7107cbc8b338a8afcdcad92", | |
2263 | + "description": "crocus/gen8: add PMA fix from iris", | |
2264 | + "nominated": false, | |
2265 | + "nomination_type": null, | |
2266 | + "resolution": 4, | |
2267 | + "main_sha": null, | |
2268 | + "because_sha": null | |
2269 | + }, | |
2270 | + { | |
2271 | + "sha": "786cf437dbe806cf952fe0a6582370bfda06b339", | |
2272 | + "description": "crocus/gen8: add VF topology support", | |
2273 | + "nominated": false, | |
2274 | + "nomination_type": null, | |
2275 | + "resolution": 4, | |
2276 | + "main_sha": null, | |
2277 | + "because_sha": null | |
2278 | + }, | |
2279 | + { | |
2280 | + "sha": "961ee7e72b98fd46b245c609968bc0aabaf2f48b", | |
2281 | + "description": "crocus/gen8: state base address + misc setup state.", | |
2282 | + "nominated": false, | |
2283 | + "nomination_type": null, | |
2284 | + "resolution": 4, | |
2285 | + "main_sha": null, | |
2286 | + "because_sha": null | |
2287 | + }, | |
2288 | + { | |
2289 | + "sha": "515f9f5e401507223692ccd6b2cf64ee22fc69e1", | |
2290 | + "description": "crocus/gen8: add support for vertex instancing and index buffers.", | |
2291 | + "nominated": false, | |
2292 | + "nomination_type": null, | |
2293 | + "resolution": 4, | |
2294 | + "main_sha": null, | |
2295 | + "because_sha": null | |
2296 | + }, | |
2297 | + { | |
2298 | + "sha": "abc990df9b98302e58100783862557e574a00ba3", | |
2299 | + "description": "crocus/gen8: add raw pipe control support for gen8 workarounds", | |
2300 | + "nominated": false, | |
2301 | + "nomination_type": null, | |
2302 | + "resolution": 4, | |
2303 | + "main_sha": null, | |
2304 | + "because_sha": null | |
2305 | + }, | |
2306 | + { | |
2307 | + "sha": "117fdacc2b3d73beb92fd799b350c0481039454f", | |
2308 | + "description": "crocus/gen8: limit vertex buffer workarounds to ivb", | |
2309 | + "nominated": false, | |
2310 | + "nomination_type": null, | |
2311 | + "resolution": 4, | |
2312 | + "main_sha": null, | |
2313 | + "because_sha": null | |
2314 | + }, | |
2315 | + { | |
2316 | + "sha": "36fd6152f6b7eb9f510b2ef71f7bfda237636068", | |
2317 | + "description": "crocus/gen8: extending gen7 binding table pointers", | |
2318 | + "nominated": false, | |
2319 | + "nomination_type": null, | |
2320 | + "resolution": 4, | |
2321 | + "main_sha": null, | |
2322 | + "because_sha": null | |
2323 | + }, | |
2324 | + { | |
2325 | + "sha": "643475bad378206d296f9307430739235cbad5a6", | |
2326 | + "description": "crocus/gen8: add l3 config support", | |
2327 | + "nominated": false, | |
2328 | + "nomination_type": null, | |
2329 | + "resolution": 4, | |
2330 | + "main_sha": null, | |
2331 | + "because_sha": null | |
2332 | + }, | |
2333 | + { | |
2334 | + "sha": "d0a96d681703ed32abb1b1a0db279c96b9982167", | |
2335 | + "description": "crocus/gen8: add sampler / border color support for gen8", | |
2336 | + "nominated": false, | |
2337 | + "nomination_type": null, | |
2338 | + "resolution": 4, | |
2339 | + "main_sha": null, | |
2340 | + "because_sha": null | |
2341 | + }, | |
2342 | + { | |
2343 | + "sha": "0cec8eed70b869a80793f92fe17d6a499ed142e0", | |
2344 | + "description": "crocus/gen8: extend predicate handling to gen8.", | |
2345 | + "nominated": false, | |
2346 | + "nomination_type": null, | |
2347 | + "resolution": 4, | |
2348 | + "main_sha": null, | |
2349 | + "because_sha": null | |
2350 | + }, | |
2351 | + { | |
2352 | + "sha": "aac830ec65a3cab30e4cc44f18dfab3473ae0ba0", | |
2353 | + "description": "crocus: extend hsw cut index to gen8", | |
2354 | + "nominated": false, | |
2355 | + "nomination_type": null, | |
2356 | + "resolution": 4, | |
2357 | + "main_sha": null, | |
2358 | + "because_sha": null | |
2359 | + }, | |
2360 | + { | |
2361 | + "sha": "a422823a611109fdf7a537668876879cdf4062b1", | |
2362 | + "description": "crocus/gen8: extend image support to gen8", | |
2363 | + "nominated": false, | |
2364 | + "nomination_type": null, | |
2365 | + "resolution": 4, | |
2366 | + "main_sha": null, | |
2367 | + "because_sha": null | |
2368 | + }, | |
2369 | + { | |
2370 | + "sha": "60c03d003af992a19c724c880781a8f14a442c88", | |
2371 | + "description": "crocus/gen8: extend some compute + state functions to gen8", | |
2372 | + "nominated": false, | |
2373 | + "nomination_type": null, | |
2374 | + "resolution": 4, | |
2375 | + "main_sha": null, | |
2376 | + "because_sha": null | |
2377 | + }, | |
2378 | + { | |
2379 | + "sha": "27b86a8b5c45461e7e0bb095d169c3863a739aa6", | |
2380 | + "description": "crocus/gen8: add push constant support (extend hsw)", | |
2381 | + "nominated": false, | |
2382 | + "nomination_type": null, | |
2383 | + "resolution": 4, | |
2384 | + "main_sha": null, | |
2385 | + "because_sha": null | |
2386 | + }, | |
2387 | + { | |
2388 | + "sha": "72e5778579d04975c9a9c8f35d1e01a1f356f9e6", | |
2389 | + "description": "crocus: extend l3 config setup to gen8", | |
2390 | + "nominated": false, | |
2391 | + "nomination_type": null, | |
2392 | + "resolution": 4, | |
2393 | + "main_sha": null, | |
2394 | + "because_sha": null | |
2395 | + }, | |
2396 | + { | |
2397 | + "sha": "7210e98c003e3cca6b5e2b0740a2ec69df71467e", | |
2398 | + "description": "crocus/query: add gen8 support to queries by extending hsw checks", | |
2399 | + "nominated": false, | |
2400 | + "nomination_type": null, | |
2401 | + "resolution": 4, | |
2402 | + "main_sha": null, | |
2403 | + "because_sha": null | |
2404 | + }, | |
2405 | + { | |
2406 | + "sha": "6b5b2237a083e6b51766cd07243def9dca3ab0e4", | |
2407 | + "description": "crocus/stencil: limit stencil workaround to gen7", | |
2408 | + "nominated": false, | |
2409 | + "nomination_type": null, | |
2410 | + "resolution": 4, | |
2411 | + "main_sha": null, | |
2412 | + "because_sha": null | |
2413 | + }, | |
2414 | + { | |
2415 | + "sha": "fa52824f3d4f98a34571b24e2d367566344085aa", | |
2416 | + "description": "crocus: limit texture gather workarounds to gen7/hsw", | |
2417 | + "nominated": false, | |
2418 | + "nomination_type": null, | |
2419 | + "resolution": 4, | |
2420 | + "main_sha": null, | |
2421 | + "because_sha": null | |
2422 | + }, | |
2423 | + { | |
2424 | + "sha": "df0e131b43119be5433613f127edd1da9b738e92", | |
2425 | + "description": "crocus/gen8: limit some pipe controls to gen7/hsw", | |
2426 | + "nominated": false, | |
2427 | + "nomination_type": null, | |
2428 | + "resolution": 4, | |
2429 | + "main_sha": null, | |
2430 | + "because_sha": null | |
2431 | + }, | |
2432 | + { | |
2433 | + "sha": "22ee372eb31f6c9fc30d4a57b01abddbaec34708", | |
2434 | + "description": "crocus: refactor blend state code.", | |
2435 | + "nominated": false, | |
2436 | + "nomination_type": null, | |
2437 | + "resolution": 4, | |
2438 | + "main_sha": null, | |
2439 | + "because_sha": null | |
2440 | + }, | |
2441 | + { | |
2442 | + "sha": "a9c1c75e9ce3f6d06c5a0a1d6610a63184b5954f", | |
2443 | + "description": "crocus: convert a bunch of is_haswell into verx10 checks.", | |
2444 | + "nominated": false, | |
2445 | + "nomination_type": null, | |
2446 | + "resolution": 4, | |
2447 | + "main_sha": null, | |
2448 | + "because_sha": null | |
2449 | + }, | |
2450 | + { | |
2451 | + "sha": "ae17ffedb7fa45008a8f4264c51c6f09cbbde0f0", | |
2452 | + "description": "crocus: fixup workaround_bo to match 965.", | |
2453 | + "nominated": false, | |
2454 | + "nomination_type": null, | |
2455 | + "resolution": 4, | |
2456 | + "main_sha": null, | |
2457 | + "because_sha": null | |
2458 | + }, | |
2459 | + { | |
2460 | + "sha": "1ced4213309784151c25aee452ea13e2613895f9", | |
2461 | + "description": "crocus: rename genX proto functions to avoid iris conflicts.", | |
2462 | + "nominated": false, | |
2463 | + "nomination_type": null, | |
2464 | + "resolution": 4, | |
2465 | + "main_sha": null, | |
2466 | + "because_sha": null | |
2467 | + }, | |
2468 | + { | |
2469 | + "sha": "7cfc41aa6be77ca51b197c76b5f53b84d917747d", | |
2470 | + "description": "crocus: fixup stray tab", | |
2471 | + "nominated": false, | |
2472 | + "nomination_type": null, | |
2473 | + "resolution": 4, | |
2474 | + "main_sha": null, | |
2475 | + "because_sha": null | |
2476 | + }, | |
2477 | + { | |
2478 | + "sha": "f557d11f153cc1b92ce00fa6a7e35d56fdc5bcd4", | |
2479 | + "description": "crocus: drop dead gen prototypes.", | |
2480 | + "nominated": false, | |
2481 | + "nomination_type": null, | |
2482 | + "resolution": 4, | |
2483 | + "main_sha": null, | |
2484 | + "because_sha": null | |
2485 | + }, | |
2486 | + { | |
2487 | + "sha": "553743e04aab7abf8d9622771a15d94c40d7057d", | |
2488 | + "description": "i915g: Clear xfails for vertex texturing.", | |
2489 | + "nominated": false, | |
2490 | + "nomination_type": 1, | |
2491 | + "resolution": 4, | |
2492 | + "main_sha": null, | |
2493 | + "because_sha": "7378c6479278983de7f1f39902aade0567a53965" | |
2494 | + }, | |
2495 | + { | |
2496 | + "sha": "4ef8eebdc7cf244a999e754c070471cfc3e8425a", | |
2497 | + "description": "i915g: Use the color swizzle to reshuffle the blend const color.", | |
2498 | + "nominated": false, | |
2499 | + "nomination_type": null, | |
2500 | + "resolution": 4, | |
2501 | + "main_sha": null, | |
2502 | + "because_sha": null | |
2503 | + }, | |
2504 | + { | |
2505 | + "sha": "0fda53b57499e905ca67e7d97fbb1f224713d1aa", | |
2506 | + "description": "i915g: Simplify color write mask setup.", | |
2507 | + "nominated": false, | |
2508 | + "nomination_type": null, | |
2509 | + "resolution": 4, | |
2510 | + "main_sha": null, | |
2511 | + "because_sha": null | |
2512 | + }, | |
2513 | + { | |
2514 | + "sha": "bd4121fe0430e41d7c929fb843a27bc16e355ef5", | |
2515 | + "description": "i915g: Move cbuf color swizzle lookup to CSO creation time.", | |
2516 | + "nominated": false, | |
2517 | + "nomination_type": null, | |
2518 | + "resolution": 4, | |
2519 | + "main_sha": null, | |
2520 | + "because_sha": null | |
2521 | + }, | |
2522 | + { | |
2523 | + "sha": "5b3840d9613928b97beb26c18d2ca60471c9516f", | |
2524 | + "description": "i915g: Compute 3DSTATE_BUF_INFO flags at surface create time.", | |
2525 | + "nominated": false, | |
2526 | + "nomination_type": null, | |
2527 | + "resolution": 4, | |
2528 | + "main_sha": null, | |
2529 | + "because_sha": null | |
2530 | + }, | |
2531 | + { | |
2532 | + "sha": "f8867b3d989f3d338b0796c028aae7272b20f827", | |
2533 | + "description": "i915g: Create an i915_surface for our pipe_surfaces.", | |
2534 | + "nominated": false, | |
2535 | + "nomination_type": null, | |
2536 | + "resolution": 4, | |
2537 | + "main_sha": null, | |
2538 | + "because_sha": null | |
2539 | + }, | |
2540 | + { | |
2541 | + "sha": "51458ba9e9c7c8cc4e44b7ffb1e24ad88b25ffe3", | |
2542 | + "description": "i915g: Remove nr_cbufs loop.", | |
2543 | + "nominated": false, | |
2544 | + "nomination_type": null, | |
2545 | + "resolution": 4, | |
2546 | + "main_sha": null, | |
2547 | + "because_sha": null | |
2548 | + }, | |
2549 | + { | |
2550 | + "sha": "c6da3827d031bf4d345d3048a149bcddd52a9a11", | |
2551 | + "description": "radeon/vcn: use st_rps_bits only when it's set", | |
2552 | + "nominated": false, | |
2553 | + "nomination_type": 1, | |
2554 | + "resolution": 4, | |
2555 | + "main_sha": null, | |
2556 | + "because_sha": "c9baccb516b70469ec8dc3c64af423d35617cf04" | |
2557 | + }, | |
2558 | + { | |
2559 | + "sha": "806498eee8f0d39897c1727b82ab08cbc75f1ee5", | |
2560 | + "description": "docs/isl: Consistently use 3-space tabs", | |
2561 | + "nominated": false, | |
2562 | + "nomination_type": null, | |
2563 | + "resolution": 4, | |
2564 | + "main_sha": null, | |
2565 | + "because_sha": null | |
2566 | + }, | |
2567 | + { | |
2568 | + "sha": "105a51b16667699bcbbbaf24e5820e4a63774583", | |
2569 | + "description": "docs/nir: Use 3-space tabs", | |
2570 | + "nominated": false, | |
2571 | + "nomination_type": null, | |
2572 | + "resolution": 4, | |
2573 | + "main_sha": null, | |
2574 | + "because_sha": null | |
2575 | + }, | |
2576 | + { | |
2577 | + "sha": "2175cc3920e26e41ea980988ea465c7ad34bf24b", | |
2578 | + "description": "editorconfig: Use 3-space tabs for .rst", | |
2579 | + "nominated": false, | |
2580 | + "nomination_type": null, | |
2581 | + "resolution": 4, | |
2582 | + "main_sha": null, | |
2583 | + "because_sha": null | |
2584 | + }, | |
2585 | + { | |
2586 | + "sha": "7c6084634f8fb1af036f7649955deb48b3f90064", | |
2587 | + "description": "ci/llvmpipe: Mark two more multithread program link flakes.", | |
2588 | + "nominated": false, | |
2589 | + "nomination_type": null, | |
2590 | + "resolution": 4, | |
2591 | + "main_sha": null, | |
2592 | + "because_sha": null | |
2593 | + }, | |
2594 | + { | |
2595 | + "sha": "5cb043cf82af4af88dbfe83ce1eff4cc41e2a766", | |
2596 | + "description": "freedreno: Cooperate with tc to stop checking the BC for resource_busy().", | |
2597 | + "nominated": false, | |
2598 | + "nomination_type": null, | |
2599 | + "resolution": 4, | |
2600 | + "main_sha": null, | |
2601 | + "because_sha": null | |
2602 | + }, | |
2603 | + { | |
2604 | + "sha": "6d0aceae4db45542f8d9531ec6e9ff5bee6ed282", | |
2605 | + "description": "vk/util: add macros for multidraw", | |
2606 | + "nominated": false, | |
2607 | + "nomination_type": null, | |
2608 | + "resolution": 4, | |
2609 | + "main_sha": null, | |
2610 | + "because_sha": null | |
2611 | + }, | |
2612 | + { | |
2613 | + "sha": "8c968b8301bec54f4b7a61e4c4144ccd322ca92c", | |
2614 | + "description": "radv: advertise extendedDynamicState2LogicOp", | |
2615 | + "nominated": false, | |
2616 | + "nomination_type": null, | |
2617 | + "resolution": 4, | |
2618 | + "main_sha": null, | |
2619 | + "because_sha": null | |
2620 | + }, | |
2621 | + { | |
2622 | + "sha": "8efa8971683f50a3b9473a0be7d2027f0465a6dd", | |
2623 | + "description": "radv: implement dynamic logic op", | |
2624 | + "nominated": false, | |
2625 | + "nomination_type": null, | |
2626 | + "resolution": 4, | |
2627 | + "main_sha": null, | |
2628 | + "because_sha": null | |
2629 | + }, | |
2630 | + { | |
2631 | + "sha": "e6bf5cfe59bfc19124785d39ab25584bfbf07f5e", | |
2632 | + "description": "aco/gfx10: Emit barrier at the start of NGG VS and TES.", | |
2633 | + "nominated": true, | |
2634 | + "nomination_type": 0, | |
2635 | + "resolution": 1, | |
2636 | + "main_sha": null, | |
2637 | + "because_sha": null | |
2638 | + }, | |
2639 | + { | |
2640 | + "sha": "f9447abb365c0e33a1afeb2ed25a5f10cc4aa968", | |
2641 | + "description": "aco/gfx10: NGG zero output workaround for conservative rasterization.", | |
2642 | + "nominated": true, | |
2643 | + "nomination_type": 0, | |
2644 | + "resolution": 1, | |
2645 | + "main_sha": null, | |
2646 | + "because_sha": null | |
2647 | + }, | |
2648 | + { | |
2649 | + "sha": "25314996d058629ff9d669fe917741c29222b35b", | |
2650 | + "description": "radv/llvm: Emit s_barrier at the beginning of NGG non-GS shaders.", | |
2651 | + "nominated": true, | |
2652 | + "nomination_type": 0, | |
2653 | + "resolution": 1, | |
2654 | + "main_sha": null, | |
2655 | + "because_sha": null | |
2656 | + }, | |
2657 | + { | |
2658 | + "sha": "d970fe2e9d6a8e9997a0ce212146d62013b3b455", | |
2659 | + "description": "panfrost: Add a Vulkan driver for Midgard/Bifrost GPUs", | |
2660 | + "nominated": false, | |
2661 | + "nomination_type": null, | |
2662 | + "resolution": 4, | |
2663 | + "main_sha": null, | |
2664 | + "because_sha": null | |
2665 | + }, | |
2666 | + { | |
2667 | + "sha": "20b22efdcb72ddadb1a64e6f4dcf4f1fe4ec5b29", | |
2668 | + "description": "pan/midg: Add a flag to dump internal shaders", | |
2669 | + "nominated": false, | |
2670 | + "nomination_type": null, | |
2671 | + "resolution": 4, | |
2672 | + "main_sha": null, | |
2673 | + "because_sha": null | |
2674 | + }, | |
2675 | + { | |
2676 | + "sha": "773bc1188bcc62b5badd0f6191df079b51cc49ea", | |
2677 | + "description": "panfrost: Make panfrost_scoreboard_initialize_tiler() return the job pointer", | |
2678 | + "nominated": false, | |
2679 | + "nomination_type": null, | |
2680 | + "resolution": 4, | |
2681 | + "main_sha": null, | |
2682 | + "because_sha": null | |
2683 | + }, | |
2684 | + { | |
2685 | + "sha": "6d2ed635c349dd882b1c67d13c6d15e182ace222", | |
2686 | + "description": "panfrost: Constify the constants pointers passed to pan_blend functions", | |
2687 | + "nominated": false, | |
2688 | + "nomination_type": null, | |
2689 | + "resolution": 4, | |
2690 | + "main_sha": null, | |
2691 | + "because_sha": null | |
2692 | + }, | |
2693 | + { | |
2694 | + "sha": "aefa40886bbdfcb17848007d0b58ff34fc906c3a", | |
2695 | + "description": "anv: adjust headers for non-GNU after e9e1e0362b6c", | |
2696 | + "nominated": false, | |
2697 | + "nomination_type": 1, | |
2698 | + "resolution": 4, | |
2699 | + "main_sha": null, | |
2700 | + "because_sha": "e9e1e0362b6c2d06867e5c67b13e812f3a24c3d5" | |
2701 | + }, | |
2702 | + { | |
2703 | + "sha": "7aaa54feb53a9d0cf3277bef31547312ee56b277", | |
2704 | + "description": "radv: implement VK_EXT_physical_device_drm", | |
2705 | + "nominated": false, | |
2706 | + "nomination_type": null, | |
2707 | + "resolution": 4, | |
2708 | + "main_sha": null, | |
2709 | + "because_sha": null | |
2710 | + }, | |
2711 | + { | |
2712 | + "sha": "60ff9dea27dad8c54ac19e7586c6a45d737f8fa6", | |
2713 | + "description": "zink: use multidraw", | |
2714 | + "nominated": false, | |
2715 | + "nomination_type": null, | |
2716 | + "resolution": 4, | |
2717 | + "main_sha": null, | |
2718 | + "because_sha": null | |
2719 | + }, | |
2720 | + { | |
2721 | + "sha": "b6855b2e183e6738081fcf4a949d9d60796a205f", | |
2722 | + "description": "zink: support multidraw", | |
2723 | + "nominated": false, | |
2724 | + "nomination_type": null, | |
2725 | + "resolution": 4, | |
2726 | + "main_sha": null, | |
2727 | + "because_sha": null | |
2728 | + }, | |
2729 | + { | |
2730 | + "sha": "84199077d95f6c3022acc04e0f654b5476620aa8", | |
2731 | + "description": "zink: clear the fb clears array instead of freeing it on reset", | |
2732 | + "nominated": false, | |
2733 | + "nomination_type": null, | |
2734 | + "resolution": 4, | |
2735 | + "main_sha": null, | |
2736 | + "because_sha": null | |
2737 | + }, | |
2738 | + { | |
2739 | + "sha": "6cc2929e876204ba967e5857fb4fc35522d6f506", | |
2740 | + "description": "zink: add more clear hooks", | |
2741 | + "nominated": false, | |
2742 | + "nomination_type": null, | |
2743 | + "resolution": 4, | |
2744 | + "main_sha": null, | |
2745 | + "because_sha": null | |
2746 | + }, | |
2747 | + { | |
2748 | + "sha": "3f420b3f5521105c38cf9346238d1dbcae2030f8", | |
2749 | + "description": "zink: add a flag for disabling conditional render during blit", | |
2750 | + "nominated": false, | |
2751 | + "nomination_type": null, | |
2752 | + "resolution": 4, | |
2753 | + "main_sha": null, | |
2754 | + "because_sha": null | |
2755 | + }, | |
2756 | + { | |
2757 | + "sha": "786fa3435cd3ca884c65a432cf71a8c6fe818469", | |
2758 | + "description": "spirv_to_nir: Add environment variable to change default log level", | |
2759 | + "nominated": false, | |
2760 | + "nomination_type": null, | |
2761 | + "resolution": 4, | |
2762 | + "main_sha": null, | |
2763 | + "because_sha": null | |
2764 | + }, | |
2765 | + { | |
2766 | + "sha": "e9991d5ff1e8d471a75f2bab22b2776aef90cabd", | |
2767 | + "description": "radv: Provide a toggle to avoid warnings about unsupported devices.", | |
2768 | + "nominated": false, | |
2769 | + "nomination_type": null, | |
2770 | + "resolution": 4, | |
2771 | + "main_sha": null, | |
2772 | + "because_sha": null | |
2773 | + }, | |
2774 | + { | |
2775 | + "sha": "26af7ef67fd8d1b6bb22e9332984136ec61b358b", | |
2776 | + "description": "v3dv/build: meson infrastructure for multi-hw-version support", | |
2777 | + "nominated": false, | |
2778 | + "nomination_type": null, | |
2779 | + "resolution": 4, | |
2780 | + "main_sha": null, | |
2781 | + "because_sha": null | |
2782 | + }, | |
2783 | + { | |
2784 | + "sha": "f257c79ea4e5aebba33b37ccc7e59ebf3d0ac037", | |
2785 | + "description": "v3dv: remove gen-dependant includes from v3dv_private", | |
2786 | + "nominated": false, | |
2787 | + "nomination_type": null, | |
2788 | + "resolution": 4, | |
2789 | + "main_sha": null, | |
2790 | + "because_sha": null | |
2791 | + }, | |
2792 | + { | |
2793 | + "sha": "2e40f13f9a87d4cf73ce6aeb27925d8d0caab4dc", | |
2794 | + "description": "v3dv: don't use cl_packet_length for prepacked data", | |
2795 | + "nominated": false, | |
2796 | + "nomination_type": null, | |
2797 | + "resolution": 4, | |
2798 | + "main_sha": null, | |
2799 | + "because_sha": null | |
2800 | + }, | |
2801 | + { | |
2802 | + "sha": "1bea0d76b8ce9ecc2fa079a4e1ab98ec84442c3f", | |
2803 | + "description": "v3dv: split v3dv_descriptor hw version dependant to a new source file.", | |
2804 | + "nominated": false, | |
2805 | + "nomination_type": null, | |
2806 | + "resolution": 4, | |
2807 | + "main_sha": null, | |
2808 | + "because_sha": null | |
2809 | + }, | |
2810 | + { | |
2811 | + "sha": "67f4624c0c528d9d46dea03564817507e692ea5c", | |
2812 | + "description": "v3dv: move several hw version dependant code to their own (v3dvx) source file", | |
2813 | + "nominated": false, | |
2814 | + "nomination_type": null, | |
2815 | + "resolution": 4, | |
2816 | + "main_sha": null, | |
2817 | + "because_sha": null | |
2818 | + }, | |
2819 | + { | |
2820 | + "sha": "76634f9b8a6ff9d94566435ac9d4a34856c00e48", | |
2821 | + "description": "v3dv: split v3dv_device hw version dependant code to a new source file", | |
2822 | + "nominated": false, | |
2823 | + "nomination_type": null, | |
2824 | + "resolution": 4, | |
2825 | + "main_sha": null, | |
2826 | + "because_sha": null | |
2827 | + }, | |
2828 | + { | |
2829 | + "sha": "f526f92043adfb458e1140dde16463ae060f4901", | |
2830 | + "description": "v3dv: split v3dv_format hw version dependant code to a new source file", | |
2831 | + "nominated": false, | |
2832 | + "nomination_type": null, | |
2833 | + "resolution": 4, | |
2834 | + "main_sha": null, | |
2835 | + "because_sha": null | |
2836 | + }, | |
2837 | + { | |
2838 | + "sha": "a3793dbef3e7626dcb2b96a2757aefb2c4b05f48", | |
2839 | + "description": "v3dv: split v3dv_image hw version dependant code to a new source file", | |
2840 | + "nominated": false, | |
2841 | + "nomination_type": null, | |
2842 | + "resolution": 4, | |
2843 | + "main_sha": null, | |
2844 | + "because_sha": null | |
2845 | + }, | |
2846 | + { | |
2847 | + "sha": "ad805712edc5956cec4d73908ef35b0eb91b3827", | |
2848 | + "description": "v3dv: split v3dv_pipeline hw version dependant code to a new source file", | |
2849 | + "nominated": false, | |
2850 | + "nomination_type": null, | |
2851 | + "resolution": 4, | |
2852 | + "main_sha": null, | |
2853 | + "because_sha": null | |
2854 | + }, | |
2855 | + { | |
2856 | + "sha": "83ba3c1020da2ef04db3acf0d6a8fca26fe90e7d", | |
2857 | + "description": "v3dv: start to move and wrap hw-version code with v3dv_queue", | |
2858 | + "nominated": false, | |
2859 | + "nomination_type": null, | |
2860 | + "resolution": 4, | |
2861 | + "main_sha": null, | |
2862 | + "because_sha": null | |
2863 | + }, | |
2864 | + { | |
2865 | + "sha": "efc363a7ce667c7638c89e282cb4b365a71da894", | |
2866 | + "description": "v3dv/cmd_buffer: move cl_emit calls for Draw methods to helpers", | |
2867 | + "nominated": false, | |
2868 | + "nomination_type": null, | |
2869 | + "resolution": 4, | |
2870 | + "main_sha": null, | |
2871 | + "because_sha": null | |
2872 | + }, | |
2873 | + { | |
2874 | + "sha": "d39930fb9205bf6f3707171daa8f86a0a5a9a72f", | |
2875 | + "description": "v3dv/cmd_buffer: add helper job_emit_binning_prolog", | |
2876 | + "nominated": false, | |
2877 | + "nomination_type": null, | |
2878 | + "resolution": 4, | |
2879 | + "main_sha": null, | |
2880 | + "because_sha": null | |
2881 | + }, | |
2882 | + { | |
2883 | + "sha": "1dc8c2d9f61f58259185c05f0951fb2ffb128118", | |
2884 | + "description": "v3dv: rename v3dv_pack for v3dvx_pack", | |
2885 | + "nominated": false, | |
2886 | + "nomination_type": null, | |
2887 | + "resolution": 4, | |
2888 | + "main_sha": null, | |
2889 | + "because_sha": null | |
2890 | + }, | |
2891 | + { | |
2892 | + "sha": "7c4478f43bbb18f6c71cb85433139c1a0d2cb697", | |
2893 | + "description": "i965: fix regression in pipe control on g45", | |
2894 | + "nominated": true, | |
2895 | + "nomination_type": 1, | |
2896 | + "resolution": 1, | |
2897 | + "main_sha": null, | |
2898 | + "because_sha": "b505db3864b097fa3bbf2a35bd3184554eb449d7" | |
2899 | + }, | |
2900 | + { | |
2901 | + "sha": "91a1849ff04fc6b7b921a303823a111196ff8559", | |
2902 | + "description": "wgl: remove hard limit on pixelformats", | |
2903 | + "nominated": false, | |
2904 | + "nomination_type": null, | |
2905 | + "resolution": 4, | |
2906 | + "main_sha": null, | |
2907 | + "because_sha": null | |
2908 | + }, | |
2909 | + { | |
2910 | + "sha": "8f9368ddb7c1ae682a9943cd82bbf297151da2c3", | |
2911 | + "description": "ac/perfcounters: add a GPU block ID to every block definitions", | |
2912 | + "nominated": false, | |
2913 | + "nomination_type": null, | |
2914 | + "resolution": 4, | |
2915 | + "main_sha": null, | |
2916 | + "because_sha": null | |
2917 | + }, | |
2918 | + { | |
2919 | + "sha": "5a8776fd8c46ca257efb38cf13b02dafba9bc000", | |
2920 | + "description": "ac/perfcounters: add more SPM configuration fields", | |
2921 | + "nominated": false, | |
2922 | + "nomination_type": null, | |
2923 | + "resolution": 4, | |
2924 | + "main_sha": null, | |
2925 | + "because_sha": null | |
2926 | + }, | |
2927 | + { | |
2928 | + "sha": "3d8d6ebcb09f8506abc7c84267f97f31b55b0214", | |
2929 | + "description": "ac/perfcounters: rename num_multi to num_spm_counters", | |
2930 | + "nominated": false, | |
2931 | + "nomination_type": null, | |
2932 | + "resolution": 4, | |
2933 | + "main_sha": null, | |
2934 | + "because_sha": null | |
2935 | + }, | |
2936 | + { | |
2937 | + "sha": "da947725100249d671683d0e5ca7b9c2d5950e8c", | |
2938 | + "description": "ac/perfcounters,radeonsi: rework performance counters layout", | |
2939 | + "nominated": false, | |
2940 | + "nomination_type": null, | |
2941 | + "resolution": 4, | |
2942 | + "main_sha": null, | |
2943 | + "because_sha": null | |
2944 | + }, | |
2945 | + { | |
2946 | + "sha": "66a34be6ac37d3475c492a0c83fbe3aadb3aa016", | |
2947 | + "description": "ac/perfcounters: remove ac_pc_block_base::num_prelude", | |
2948 | + "nominated": false, | |
2949 | + "nomination_type": null, | |
2950 | + "resolution": 4, | |
2951 | + "main_sha": null, | |
2952 | + "because_sha": null | |
2953 | + }, | |
2954 | + { | |
2955 | + "sha": "100fc3020ade0a44f904d1e6a94e01c0d5a957a6", | |
2956 | + "description": "anv: provide dummy vkCmdSetPatchControlPointsEXT", | |
2957 | + "nominated": false, | |
2958 | + "nomination_type": 1, | |
2959 | + "resolution": 4, | |
2960 | + "main_sha": null, | |
2961 | + "because_sha": "0d031d1da34bd3a58d723397404c7998117abb18" | |
2962 | + }, | |
2963 | + { | |
2964 | + "sha": "91029211093c7ab9e32de101ac7499a958635ac6", | |
2965 | + "description": "llvmpipe: Add handle export for resource_get_param", | |
2966 | + "nominated": true, | |
2967 | + "nomination_type": 1, | |
2968 | + "resolution": 1, | |
2969 | + "main_sha": null, | |
2970 | + "because_sha": "2dcc9c7f54edbff075665ebe5d50f2499dc12163" | |
2971 | + }, | |
2972 | + { | |
2973 | + "sha": "d3ea8f519eab95f4911143814b412ffbbd05f2d8", | |
2974 | + "description": "docs,isl: Document Sandy Bridge HiZ/stencil", | |
2975 | + "nominated": false, | |
2976 | + "nomination_type": null, | |
2977 | + "resolution": 4, | |
2978 | + "main_sha": null, | |
2979 | + "because_sha": null | |
2980 | + }, | |
2981 | + { | |
2982 | + "sha": "8dfb240b1f063307aa5e53fb1bd0865105eef986", | |
2983 | + "description": "nir: Add raytracing shader call lowering pass.", | |
2984 | + "nominated": false, | |
2985 | + "nomination_type": null, | |
2986 | + "resolution": 4, | |
2987 | + "main_sha": null, | |
2988 | + "because_sha": null | |
2989 | + }, | |
2990 | + { | |
2991 | + "sha": "02c5dc8035b8b03d1abc74074767303951fd0a5b", | |
2992 | + "description": "nir: Add lowered vendor independent raytracing intrinsics.", | |
2993 | + "nominated": false, | |
2994 | + "nomination_type": null, | |
2995 | + "resolution": 4, | |
2996 | + "main_sha": null, | |
2997 | + "because_sha": null | |
2998 | + }, | |
2999 | + { | |
3000 | + "sha": "58f5605124a74eeac6a6156b093c9f098bb99c78", | |
3001 | + "description": "freedreno: Handle full blit discards by invalidating the resource.", | |
3002 | + "nominated": false, | |
3003 | + "nomination_type": null, | |
3004 | + "resolution": 4, | |
3005 | + "main_sha": null, | |
3006 | + "because_sha": null | |
3007 | + }, | |
3008 | + { | |
3009 | + "sha": "74ede4b353bcac7451a56c75712e25151f7c6b63", | |
3010 | + "description": "freedreno: Move the rsc-based batch flushing to helper functions.", | |
3011 | + "nominated": false, | |
3012 | + "nomination_type": null, | |
3013 | + "resolution": 4, | |
3014 | + "main_sha": null, | |
3015 | + "because_sha": null | |
3016 | + }, | |
3017 | + { | |
3018 | + "sha": "447b6f60a6902e07ca034e0ebf667e76cde93ec6", | |
3019 | + "description": "gallium/util: Introduce a helper for finding whole-resource blits.", | |
3020 | + "nominated": false, | |
3021 | + "nomination_type": null, | |
3022 | + "resolution": 4, | |
3023 | + "main_sha": null, | |
3024 | + "because_sha": null | |
3025 | + }, | |
3026 | + { | |
3027 | + "sha": "9ce44dc9bc6bfbd88639e4ebeb16680d35585088", | |
3028 | + "description": "gallium/draw: Garbage collect draw_pt_fetch_emit.", | |
3029 | + "nominated": false, | |
3030 | + "nomination_type": null, | |
3031 | + "resolution": 4, | |
3032 | + "main_sha": null, | |
3033 | + "because_sha": null | |
3034 | + }, | |
3035 | + { | |
3036 | + "sha": "5e019269d64f006ee870d47df9845d554a6851a5", | |
3037 | + "description": "gallium/draw: Garbage collect draw_set_force_passthrough", | |
3038 | + "nominated": false, | |
3039 | + "nomination_type": null, | |
3040 | + "resolution": 4, | |
3041 | + "main_sha": null, | |
3042 | + "because_sha": null | |
3043 | + }, | |
3044 | + { | |
3045 | + "sha": "ae2b7a29d20546e494d8d10dfcf5880b54e5b999", | |
3046 | + "description": "docs/envvars: document MESA_VK_WSI_PRESENT_MODE", | |
3047 | + "nominated": false, | |
3048 | + "nomination_type": null, | |
3049 | + "resolution": 4, | |
3050 | + "main_sha": null, | |
3051 | + "because_sha": null | |
3052 | + }, | |
3053 | + { | |
3054 | + "sha": "7369b1a21ee7425492eaa2e2fece0c5e0a34ba99", | |
3055 | + "description": "vulkan/wsi/wayland: simplify wl_surface version check", | |
3056 | + "nominated": false, | |
3057 | + "nomination_type": null, | |
3058 | + "resolution": 4, | |
3059 | + "main_sha": null, | |
3060 | + "because_sha": null | |
3061 | + }, | |
3062 | + { | |
3063 | + "sha": "eb98171252aeec2a165cecbac0ee0987769f1511", | |
3064 | + "description": "intel/gen125.xml: Drop GPGPU_WALKER", | |
3065 | + "nominated": false, | |
3066 | + "nomination_type": null, | |
3067 | + "resolution": 4, | |
3068 | + "main_sha": null, | |
3069 | + "because_sha": null | |
3070 | + }, | |
3071 | + { | |
3072 | + "sha": "e9e1e0362b6c2d06867e5c67b13e812f3a24c3d5", | |
3073 | + "description": "anv: implement VK_EXT_physical_device_drm", | |
3074 | + "nominated": false, | |
3075 | + "nomination_type": null, | |
3076 | + "resolution": 4, | |
3077 | + "main_sha": null, | |
3078 | + "because_sha": null | |
3079 | + }, | |
3080 | + { | |
3081 | + "sha": "6a2e3d27366c1269868de536da90d145e230dbc1", | |
3082 | + "description": "radeonsi: cleanup some primitive discard CS TODOs regarding instancing, etc.", | |
3083 | + "nominated": false, | |
3084 | + "nomination_type": null, | |
3085 | + "resolution": 4, | |
3086 | + "main_sha": null, | |
3087 | + "because_sha": null | |
3088 | + }, | |
3089 | + { | |
3090 | + "sha": "4b5eb336e18a8ccc8425e107e316a239a1f4f943", | |
3091 | + "description": "radeonsi: skip buffer_atomic_add(ptr, n) when n=0 in the prim discard CS", | |
3092 | + "nominated": false, | |
3093 | + "nomination_type": null, | |
3094 | + "resolution": 4, | |
3095 | + "main_sha": null, | |
3096 | + "because_sha": null | |
3097 | + }, | |
3098 | + { | |
3099 | + "sha": "df4de12af48b66578e5fe2fce557abd713f28980", | |
3100 | + "description": "radeonsi: drop support for triangle fans from the prim discard CS", | |
3101 | + "nominated": false, | |
3102 | + "nomination_type": null, | |
3103 | + "resolution": 4, | |
3104 | + "main_sha": null, | |
3105 | + "because_sha": null | |
3106 | + }, | |
3107 | + { | |
3108 | + "sha": "4fa58c04e4f01d39c4a95658c031f6e4437cbf7b", | |
3109 | + "description": "radeonsi: drop gfx7 support from the prim discard CS to simplify code", | |
3110 | + "nominated": false, | |
3111 | + "nomination_type": null, | |
3112 | + "resolution": 4, | |
3113 | + "main_sha": null, | |
3114 | + "because_sha": null | |
3115 | + }, | |
3116 | + { | |
3117 | + "sha": "fc95ba6c86f97876651b80150b424b179ba87d34", | |
3118 | + "description": "radeonsi: remove the Z culling option from the primitive discard CS", | |
3119 | + "nominated": false, | |
3120 | + "nomination_type": null, | |
3121 | + "resolution": 4, | |
3122 | + "main_sha": null, | |
3123 | + "because_sha": null | |
3124 | + }, | |
3125 | + { | |
3126 | + "sha": "a448074d0507e6a225f3ff97a291bac219486252", | |
3127 | + "description": "radeonsi: don't compile TES and GS draw_vbo variants for the prim discard CS", | |
3128 | + "nominated": false, | |
3129 | + "nomination_type": null, | |
3130 | + "resolution": 4, | |
3131 | + "main_sha": null, | |
3132 | + "because_sha": null | |
3133 | + }, | |
3134 | + { | |
3135 | + "sha": "b35b5926c9b077087bcfc614ecd4203b710a57aa", | |
3136 | + "description": "radeonsi: try to keep all VS input loads together for better perf", | |
3137 | + "nominated": false, | |
3138 | + "nomination_type": null, | |
3139 | + "resolution": 4, | |
3140 | + "main_sha": null, | |
3141 | + "because_sha": null | |
3142 | + }, | |
3143 | + { | |
3144 | + "sha": "901f4aa5d62f8a3e7b90233b6dd1b6e7c0dfde5a", | |
3145 | + "description": "radeonsi: remove incorrect comment about PA", | |
3146 | + "nominated": false, | |
3147 | + "nomination_type": null, | |
3148 | + "resolution": 4, | |
3149 | + "main_sha": null, | |
3150 | + "because_sha": null | |
3151 | + }, | |
3152 | + { | |
3153 | + "sha": "ce4f4a8d13c5b1b0816f6b3121131d7b63f746c2", | |
3154 | + "description": "radeonsi: set more precise max_waves in NGG code", | |
3155 | + "nominated": false, | |
3156 | + "nomination_type": null, | |
3157 | + "resolution": 4, | |
3158 | + "main_sha": null, | |
3159 | + "because_sha": null | |
3160 | + }, | |
3161 | + { | |
3162 | + "sha": "1e9cc86511f154896d0bd3beab8b96c9d62d00f6", | |
3163 | + "description": "radeonsi: merge 2 conditional blocks with same condition into 1 in culling code", | |
3164 | + "nominated": false, | |
3165 | + "nomination_type": null, | |
3166 | + "resolution": 4, | |
3167 | + "main_sha": null, | |
3168 | + "because_sha": null | |
3169 | + }, | |
3170 | + { | |
3171 | + "sha": "786678a017c5b488bd36fade440d9f5308c3d23c", | |
3172 | + "description": "radeonsi: restructure si_get_vs_vgpr_comp_cnt for readability", | |
3173 | + "nominated": false, | |
3174 | + "nomination_type": null, | |
3175 | + "resolution": 4, | |
3176 | + "main_sha": null, | |
3177 | + "because_sha": null | |
3178 | + }, | |
3179 | + { | |
3180 | + "sha": "06ff0ae4bbf7d328b64fb8f51aee791e08afdc05", | |
3181 | + "description": "freedreno: Flush if at risk of overflowing bos table", | |
3182 | + "nominated": false, | |
3183 | + "nomination_type": null, | |
3184 | + "resolution": 4, | |
3185 | + "main_sha": null, | |
3186 | + "because_sha": null | |
3187 | + }, | |
3188 | + { | |
3189 | + "sha": "5b4f670c1cf0361a7913d256e12544acf7536665", | |
3190 | + "description": "freedreno/a6xx: Handle fb_read in sysmem path", | |
3191 | + "nominated": false, | |
3192 | + "nomination_type": null, | |
3193 | + "resolution": 4, | |
3194 | + "main_sha": null, | |
3195 | + "because_sha": null | |
3196 | + }, | |
3197 | + { | |
3198 | + "sha": "1a1eabd7d8bb740a0d349bc29b35e7691ca3d0d1", | |
3199 | + "description": "freedreno/ci: Garbage collect some a630 flakes", | |
3200 | + "nominated": false, | |
3201 | + "nomination_type": null, | |
3202 | + "resolution": 4, | |
3203 | + "main_sha": null, | |
3204 | + "because_sha": null | |
3205 | + }, | |
3206 | + { | |
3207 | + "sha": "aeaeef661a8f2ba5a4f1a4ef271cd8415c81d98d", | |
3208 | + "description": "gallium/tools: improve handling of pointer arrays", | |
3209 | + "nominated": false, | |
3210 | + "nomination_type": null, | |
3211 | + "resolution": 4, | |
3212 | + "main_sha": null, | |
3213 | + "because_sha": null | |
3214 | + }, | |
3215 | + { | |
3216 | + "sha": "1e508777b453704fd6bc940345eba1ab0918a3d5", | |
3217 | + "description": "radv: allow VK_FORMAT_R8G8_SRGB sampling", | |
3218 | + "nominated": false, | |
3219 | + "nomination_type": null, | |
3220 | + "resolution": 4, | |
3221 | + "main_sha": null, | |
3222 | + "because_sha": null | |
3223 | + }, | |
3224 | + { | |
3225 | + "sha": "1a14d98fa247ef33c0787b07ff8d5f663cdc4408", | |
3226 | + "description": "nir: Document all the ALU opcodes", | |
3227 | + "nominated": false, | |
3228 | + "nomination_type": null, | |
3229 | + "resolution": 4, | |
3230 | + "main_sha": null, | |
3231 | + "because_sha": null | |
3232 | + }, | |
3233 | + { | |
3234 | + "sha": "73188c6954299d57c5b3eb30c514977895283b66", | |
3235 | + "description": "nir,docs: Add docs for NIR ALU instructions", | |
3236 | + "nominated": false, | |
3237 | + "nomination_type": null, | |
3238 | + "resolution": 4, | |
3239 | + "main_sha": null, | |
3240 | + "because_sha": null | |
3241 | + }, | |
3242 | + { | |
3243 | + "sha": "f00b5a30f5799b5072197ecb92bbcc16877109cd", | |
3244 | + "description": "nir: Require vectorized ALU ops to be all-or-nothing", | |
3245 | + "nominated": false, | |
3246 | + "nomination_type": null, | |
3247 | + "resolution": 4, | |
3248 | + "main_sha": null, | |
3249 | + "because_sha": null | |
3250 | + }, | |
3251 | + { | |
3252 | + "sha": "ea68d4a676260d9c45dfbe0cb8de8e40869b5523", | |
3253 | + "description": "nir/propagate_invariant: add invariant_prim option", | |
3254 | + "nominated": false, | |
3255 | + "nomination_type": null, | |
3256 | + "resolution": 4, | |
3257 | + "main_sha": null, | |
3258 | + "because_sha": null | |
3259 | + }, | |
3260 | + { | |
3261 | + "sha": "7144f338025e1f4db4d01cf79e1d9bda218fea0d", | |
3262 | + "description": "zink: handle custom border color without matching wrap mode case", | |
3263 | + "nominated": true, | |
3264 | + "nomination_type": 1, | |
3265 | + "resolution": 1, | |
3266 | + "main_sha": null, | |
3267 | + "because_sha": "36f4e61403a32081ffebfa3d178bfb7ba483559f" | |
3268 | + }, | |
3269 | + { | |
3270 | + "sha": "69d4fa3a1c1a376858230669569d9812a149cbc1", | |
3271 | + "description": "vulkan: Update the XML and headers to 1.2.182", | |
3272 | + "nominated": false, | |
3273 | + "nomination_type": null, | |
3274 | + "resolution": 4, | |
3275 | + "main_sha": null, | |
3276 | + "because_sha": null | |
3277 | + }, | |
3278 | + { | |
3279 | + "sha": "2e08bae9b38a241b505e882d681f6f68d346937e", | |
3280 | + "description": "nir,vc4: Suffix a bunch of unorm 4x8 opcodes _vc4", | |
3281 | + "nominated": false, | |
3282 | + "nomination_type": null, | |
3283 | + "resolution": 4, | |
3284 | + "main_sha": null, | |
3285 | + "because_sha": null | |
3286 | + }, | |
3287 | + { | |
3288 | + "sha": "0afbfee8da30d465f141d214ad6a307ed54b3b03", | |
3289 | + "description": "nir,panfrost: Suffix fsat_signed and fclamp_pos with _mali", | |
3290 | + "nominated": false, | |
3291 | + "nomination_type": null, | |
3292 | + "resolution": 4, | |
3293 | + "main_sha": null, | |
3294 | + "because_sha": null | |
3295 | + }, | |
3296 | + { | |
3297 | + "sha": "f0f713960b17328712c84dde539a76b22a8bf38b", | |
3298 | + "description": "nir,amd: Suffix nir_op_cube_face_coord/index with _amd", | |
3299 | + "nominated": false, | |
3300 | + "nomination_type": null, | |
3301 | + "resolution": 4, | |
3302 | + "main_sha": null, | |
3303 | + "because_sha": null | |
3304 | + }, | |
3305 | + { | |
3306 | + "sha": "e5510536e76e65e8a4f089a8d7acb093de853173", | |
3307 | + "description": "aco: Fix checking if load_shared is used by cross lane instructions.", | |
3308 | + "nominated": false, | |
3309 | + "nomination_type": 1, | |
3310 | + "resolution": 4, | |
3311 | + "main_sha": null, | |
3312 | + "because_sha": "b4e22eb4822d74a6e981c629ddff9bcd29b9a0ec" | |
3313 | + }, | |
3314 | + { | |
3315 | + "sha": "90c7ab08ea1325964e3c74f1f6b58f97845e3490", | |
3316 | + "description": "ci: use bash with download-git-cache.sh", | |
3317 | + "nominated": false, | |
3318 | + "nomination_type": null, | |
3319 | + "resolution": 4, | |
3320 | + "main_sha": null, | |
3321 | + "because_sha": null | |
3322 | + }, | |
3323 | + { | |
3324 | + "sha": "d074cc4af492950273960cef723c3813cff5231e", | |
3325 | + "description": "util/fossilize_db: Only lock the db file, not the index.", | |
3326 | + "nominated": false, | |
3327 | + "nomination_type": null, | |
3328 | + "resolution": 4, | |
3329 | + "main_sha": null, | |
3330 | + "because_sha": null | |
3331 | + }, | |
3332 | + { | |
3333 | + "sha": "4f0f8133a35ec2fec8d99936cd7425e40d092169", | |
3334 | + "description": "util/fossilize_db: Do not lock the fossilize db permanently.", | |
3335 | + "nominated": true, | |
3336 | + "nomination_type": 1, | |
3337 | + "resolution": 1, | |
3338 | + "main_sha": null, | |
3339 | + "because_sha": "eca6bb9540d8d1b260511cd0a71bdddb00ff4a3c" | |
3340 | + }, | |
3341 | + { | |
3342 | + "sha": "2ec1bff0f3a4450a9739d59421dc9c9fe72c94c6", | |
3343 | + "description": "util/fossilize_db: Split out reading the index.", | |
3344 | + "nominated": true, | |
3345 | + "nomination_type": 1, | |
3346 | + "resolution": 1, | |
3347 | + "main_sha": null, | |
3348 | + "because_sha": "eca6bb9540d8d1b260511cd0a71bdddb00ff4a3c" | |
3349 | + }, | |
3350 | + { | |
3351 | + "sha": "bd41c51c8f4d67d18d8a4407358ea4b71f153d2a", | |
3352 | + "description": "util/fossilize_db: Pull seek into lock.", | |
3353 | + "nominated": true, | |
3354 | + "nomination_type": 1, | |
3355 | + "resolution": 1, | |
3356 | + "main_sha": null, | |
3357 | + "because_sha": "eca6bb9540d8d1b260511cd0a71bdddb00ff4a3c" | |
3358 | + }, | |
3359 | + { | |
3360 | + "sha": "a99474fae52db73a23861c2ba961ee5424222da5", | |
3361 | + "description": "radv: Add -Wpointer-arith.", | |
3362 | + "nominated": false, | |
3363 | + "nomination_type": null, | |
3364 | + "resolution": 4, | |
3365 | + "main_sha": null, | |
3366 | + "because_sha": null | |
3367 | + }, | |
3368 | + { | |
3369 | + "sha": "72174a3eef230883444e7f7c77a89c4919bb38d5", | |
3370 | + "description": "ac/nir: Update TCS output barriers with nir_var_mem_shared.", | |
3371 | + "nominated": true, | |
3372 | + "nomination_type": 1, | |
3373 | + "resolution": 1, | |
3374 | + "main_sha": null, | |
3375 | + "because_sha": "bf966d1c1dd968116b8b547ca2739f5113caccb5" | |
3376 | + }, | |
3377 | + { | |
3378 | + "sha": "ed04cb62d898ade2670dbb486cfaebedce19bb6f", | |
3379 | + "description": "docs: use rst captions", | |
3380 | + "nominated": false, | |
3381 | + "nomination_type": null, | |
3382 | + "resolution": 4, | |
3383 | + "main_sha": null, | |
3384 | + "because_sha": null | |
3385 | + }, | |
3386 | + { | |
3387 | + "sha": "e41efc173b3c9c5e7061cab4656a2ba08731effb", | |
3388 | + "description": "docs: use more file-roles", | |
3389 | + "nominated": false, | |
3390 | + "nomination_type": null, | |
3391 | + "resolution": 4, | |
3392 | + "main_sha": null, | |
3393 | + "because_sha": null | |
3394 | + }, | |
3395 | + { | |
3396 | + "sha": "63c9d519812f48602d8d83b6c89dbcd33208f3c2", | |
3397 | + "description": "docs: drop historic meson details", | |
3398 | + "nominated": false, | |
3399 | + "nomination_type": null, | |
3400 | + "resolution": 4, | |
3401 | + "main_sha": null, | |
3402 | + "because_sha": null | |
3403 | + }, | |
3404 | + { | |
3405 | + "sha": "07cd8897fbdd8bbdb82fe93bc00a4fbf184d915e", | |
3406 | + "description": "docs: remove outdated clarification", | |
3407 | + "nominated": false, | |
3408 | + "nomination_type": null, | |
3409 | + "resolution": 4, | |
3410 | + "main_sha": null, | |
3411 | + "because_sha": null | |
3412 | + }, | |
3413 | + { | |
3414 | + "sha": "309b549f0eb8876af2af0f5599181a7ba7494f54", | |
3415 | + "description": "docs: remove outdated meson-section", | |
3416 | + "nominated": false, | |
3417 | + "nomination_type": null, | |
3418 | + "resolution": 4, | |
3419 | + "main_sha": null, | |
3420 | + "because_sha": null | |
3421 | + }, | |
3422 | + { | |
3423 | + "sha": "fa8868192b7c6b52bf7d7294b8b4525783026cb2", | |
3424 | + "description": "v3dv: remove const qualifier for resource pointer in view objects", | |
3425 | + "nominated": false, | |
3426 | + "nomination_type": null, | |
3427 | + "resolution": 4, | |
3428 | + "main_sha": null, | |
3429 | + "because_sha": null | |
3430 | + }, | |
3431 | + { | |
3432 | + "sha": "b8abedb97458470b5829f01d33663fc4d79ef976", | |
3433 | + "description": "v3dv: expose VK_KHR_copy_commands2", | |
3434 | + "nominated": false, | |
3435 | + "nomination_type": null, | |
3436 | + "resolution": 4, | |
3437 | + "main_sha": null, | |
3438 | + "because_sha": null | |
3439 | + }, | |
3440 | + { | |
3441 | + "sha": "aa61a653a5dcbebd8b5a0f32ea4dbba3cba77dd6", | |
3442 | + "description": "v3dv: implement vkCmdResolveImage2KHR", | |
3443 | + "nominated": false, | |
3444 | + "nomination_type": null, | |
3445 | + "resolution": 4, | |
3446 | + "main_sha": null, | |
3447 | + "because_sha": null | |
3448 | + }, | |
3449 | + { | |
3450 | + "sha": "8e358a74d0820e8f0735083b406b02741cf93822", | |
3451 | + "description": "v3dv: implement vkCmdCopyImage2KHR", | |
3452 | + "nominated": false, | |
3453 | + "nomination_type": null, | |
3454 | + "resolution": 4, | |
3455 | + "main_sha": null, | |
3456 | + "because_sha": null | |
3457 | + }, | |
3458 | + { | |
3459 | + "sha": "3bdc03fd28703b3c18fcc2e423fab43a9ddda4ec", | |
3460 | + "description": "v3dv: implement vkCmdCopyBufferToImage2KHR and vkCmdCopyImageToBuffer2KHR", | |
3461 | + "nominated": false, | |
3462 | + "nomination_type": null, | |
3463 | + "resolution": 4, | |
3464 | + "main_sha": null, | |
3465 | + "because_sha": null | |
3466 | + }, | |
3467 | + { | |
3468 | + "sha": "47390d6669ae57ad0594f028d8275029c3361c8e", | |
3469 | + "description": "v3dv: implement vkCmdCopyBuffer2KHR", | |
3470 | + "nominated": false, | |
3471 | + "nomination_type": null, | |
3472 | + "resolution": 4, | |
3473 | + "main_sha": null, | |
3474 | + "because_sha": null | |
3475 | + }, | |
3476 | + { | |
3477 | + "sha": "06a9a3ead56552f66139c08dc31cf312008ae0bd", | |
3478 | + "description": "v3dv: implement vkCmdBlitImage2KHR", | |
3479 | + "nominated": false, | |
3480 | + "nomination_type": null, | |
3481 | + "resolution": 4, | |
3482 | + "main_sha": null, | |
3483 | + "because_sha": null | |
3484 | + }, | |
3485 | + { | |
3486 | + "sha": "89b4f337d50c01c5782e19ee40b57a6c9e4b324b", | |
3487 | + "description": "c_std=c11 in meson default_options", | |
3488 | + "nominated": false, | |
3489 | + "nomination_type": null, | |
3490 | + "resolution": 4, | |
3491 | + "main_sha": null, | |
3492 | + "because_sha": null | |
3493 | + }, | |
3494 | + { | |
3495 | + "sha": "61a845ca19f7c1d236a7f517108c6ddb3b929c64", | |
3496 | + "description": "ac/surface: don't set DCC_PIPE_ALIGN modifier bit for gfx10 with 1 RB", | |
3497 | + "nominated": false, | |
3498 | + "nomination_type": null, | |
3499 | + "resolution": 4, | |
3500 | + "main_sha": null, | |
3501 | + "because_sha": null | |
3502 | + }, | |
3503 | + { | |
3504 | + "sha": "2acd34f2664e538836644c1a410d9ac0b937af22", | |
3505 | + "description": "ac/surface/tests: fix RB counts", | |
3506 | + "nominated": false, | |
3507 | + "nomination_type": null, | |
3508 | + "resolution": 4, | |
3509 | + "main_sha": null, | |
3510 | + "because_sha": null | |
3511 | + }, | |
3512 | + { | |
3513 | + "sha": "9c3225cb53bae8dacf6c5b1407b3c59f3de95c1c", | |
3514 | + "description": "radeonsi: move the accepting code into the bbox cull branch in NGG cull code", | |
3515 | + "nominated": false, | |
3516 | + "nomination_type": null, | |
3517 | + "resolution": 4, | |
3518 | + "main_sha": null, | |
3519 | + "because_sha": null | |
3520 | + }, | |
3521 | + { | |
3522 | + "sha": "12d2df15f178591d45193b6cc3e093281e2ea0aa", | |
3523 | + "description": "ac/llvm: add a callback to ac_cull_triangle to generate code in inner-most block", | |
3524 | + "nominated": false, | |
3525 | + "nomination_type": null, | |
3526 | + "resolution": 4, | |
3527 | + "main_sha": null, | |
3528 | + "because_sha": null | |
3529 | + }, | |
3530 | + { | |
3531 | + "sha": "18055726948f24670a31bb421cc9fa07140c1a5e", | |
3532 | + "description": "radeonsi: fix multi draws for the prim discard CS", | |
3533 | + "nominated": false, | |
3534 | + "nomination_type": null, | |
3535 | + "resolution": 4, | |
3536 | + "main_sha": null, | |
3537 | + "because_sha": null | |
3538 | + }, | |
3539 | + { | |
3540 | + "sha": "848dbe9ff7bb696250dfb2e79f7dfd661cba69b5", | |
3541 | + "description": "radeonsi: fix incorrect counting of compute_num_verts_rejected", | |
3542 | + "nominated": false, | |
3543 | + "nomination_type": null, | |
3544 | + "resolution": 4, | |
3545 | + "main_sha": null, | |
3546 | + "because_sha": null | |
3547 | + }, | |
3548 | + { | |
3549 | + "sha": "3cde2f96f9bc86de714795a7491d1cf7ede2268a", | |
3550 | + "description": "radeonsi: use ac_build_bit_count instead of opencoding it", | |
3551 | + "nominated": false, | |
3552 | + "nomination_type": null, | |
3553 | + "resolution": 4, | |
3554 | + "main_sha": null, | |
3555 | + "because_sha": null | |
3556 | + }, | |
3557 | + { | |
3558 | + "sha": "70b5a5cbbf6888bcf251b42d957529048d9e82d9", | |
3559 | + "description": "radeonsi: fix compile failures with SI_PRIM_DISCARD_DEBUG enabled", | |
3560 | + "nominated": false, | |
3561 | + "nomination_type": null, | |
3562 | + "resolution": 4, | |
3563 | + "main_sha": null, | |
3564 | + "because_sha": null | |
3565 | + }, | |
3566 | + { | |
3567 | + "sha": "b4d90b1182acb3365789755a618ef14cc7e53fa6", | |
3568 | + "description": "egl: fix in expected type", | |
3569 | + "nominated": false, | |
3570 | + "nomination_type": null, | |
3571 | + "resolution": 4, | |
3572 | + "main_sha": null, | |
3573 | + "because_sha": null | |
3574 | + }, | |
3575 | + { | |
3576 | + "sha": "7b8199e4a25b8aaca47d07c8236a9dca84f05b1f", | |
3577 | + "description": "crocus: Drop extra_aux support", | |
3578 | + "nominated": false, | |
3579 | + "nomination_type": null, | |
3580 | + "resolution": 4, | |
3581 | + "main_sha": null, | |
3582 | + "because_sha": null | |
3583 | + }, | |
3584 | + { | |
3585 | + "sha": "82de184c3a2c797eb010b982636dd34c04cd1b8e", | |
3586 | + "description": "radv: Enable VK_KHR_acceleration_structure with RADV_PERFTEST=rt.", | |
3587 | + "nominated": false, | |
3588 | + "nomination_type": null, | |
3589 | + "resolution": 4, | |
3590 | + "main_sha": null, | |
3591 | + "because_sha": null | |
3592 | + }, | |
3593 | + { | |
3594 | + "sha": "c27e3a6248c60ad094233c3ec783d9274fb9055d", | |
3595 | + "description": "radv: Add rt perftest flag.", | |
3596 | + "nominated": false, | |
3597 | + "nomination_type": null, | |
3598 | + "resolution": 4, | |
3599 | + "main_sha": null, | |
3600 | + "because_sha": null | |
3601 | + }, | |
3602 | + { | |
3603 | + "sha": "438cb7f9a31250d01984d2122b35d153c37bc1c6", | |
3604 | + "description": "radv: Expose formats for acceleration structure.", | |
3605 | + "nominated": false, | |
3606 | + "nomination_type": null, | |
3607 | + "resolution": 4, | |
3608 | + "main_sha": null, | |
3609 | + "because_sha": null | |
3610 | + }, | |
3611 | + { | |
3612 | + "sha": "9920eadf83b1c802b175b83b10beb717a75b63aa", | |
3613 | + "description": "radv: Implement load_vulkan_descriptor for acceleration structures.", | |
3614 | + "nominated": false, | |
3615 | + "nomination_type": null, | |
3616 | + "resolution": 4, | |
3617 | + "main_sha": null, | |
3618 | + "because_sha": null | |
3619 | + }, | |
3620 | + { | |
3621 | + "sha": "85e39cb325abfe09cb4d59e7a2de1976675ec94d", | |
3622 | + "description": "radv: Convert lower_intrinsics to a switch statement", | |
3623 | + "nominated": false, | |
3624 | + "nomination_type": null, | |
3625 | + "resolution": 4, | |
3626 | + "main_sha": null, | |
3627 | + "because_sha": null | |
3628 | + }, | |
3629 | + { | |
3630 | + "sha": "a4b3ce5d56e7eb22a7d0f97b4709bef6e16af16e", | |
3631 | + "description": "radv: Add acceleration structure descriptor set support.", | |
3632 | + "nominated": false, | |
3633 | + "nomination_type": null, | |
3634 | + "resolution": 4, | |
3635 | + "main_sha": null, | |
3636 | + "because_sha": null | |
3637 | + }, | |
3638 | + { | |
3639 | + "sha": "0dad88b4694cf82664f633187442ec65c14f3812", | |
3640 | + "description": "radv: Implement device-side BVH building.", | |
3641 | + "nominated": false, | |
3642 | + "nomination_type": null, | |
3643 | + "resolution": 4, | |
3644 | + "main_sha": null, | |
3645 | + "because_sha": null | |
3646 | + }, | |
3647 | + { | |
3648 | + "sha": "d51a4b4c4b0f1a6c4f73cab026d2f1b42ead547d", | |
3649 | + "description": "radv: Add initial CPU BVH building.", | |
3650 | + "nominated": false, | |
3651 | + "nomination_type": null, | |
3652 | + "resolution": 4, | |
3653 | + "main_sha": null, | |
3654 | + "because_sha": null | |
3655 | + }, | |
3656 | + { | |
3657 | + "sha": "67e949a8f80d1458a538b297e786823282bc76ee", | |
3658 | + "description": "radv: Use the global BO list for acceleration structures.", | |
3659 | + "nominated": false, | |
3660 | + "nomination_type": null, | |
3661 | + "resolution": 4, | |
3662 | + "main_sha": null, | |
3663 | + "because_sha": null | |
3664 | + }, | |
3665 | + { | |
3666 | + "sha": "f31bfda34abaf5fdd3c31497b476b11f23f728f3", | |
3667 | + "description": "util: Move the 4x4 matrix inverse function to u_math", | |
3668 | + "nominated": false, | |
3669 | + "nomination_type": null, | |
3670 | + "resolution": 4, | |
3671 | + "main_sha": null, | |
3672 | + "because_sha": null | |
3673 | + }, | |
3674 | + { | |
3675 | + "sha": "1727adfbc55dab76be75be72aad32d293774c992", | |
3676 | + "description": "freedreno/ci: Increase # of jobs for CI runners", | |
3677 | + "nominated": false, | |
3678 | + "nomination_type": null, | |
3679 | + "resolution": 4, | |
3680 | + "main_sha": null, | |
3681 | + "because_sha": null | |
3682 | + }, | |
3683 | + { | |
3684 | + "sha": "fc00abe46c2910449197be0c449f48446a43eefb", | |
3685 | + "description": "freedreno/ci: Start longest traces first", | |
3686 | + "nominated": false, | |
3687 | + "nomination_type": null, | |
3688 | + "resolution": 4, | |
3689 | + "main_sha": null, | |
3690 | + "because_sha": null | |
3691 | + }, | |
3692 | + { | |
3693 | + "sha": "714145f54c4dfc9bfcb7af10ee85bbb9e755efff", | |
3694 | + "description": "crocus/gen6: fix depth blit blorp regression.", | |
3695 | + "nominated": false, | |
3696 | + "nomination_type": null, | |
3697 | + "resolution": 4, | |
3698 | + "main_sha": null, | |
3699 | + "because_sha": null | |
3700 | + }, | |
3701 | + { | |
3702 | + "sha": "caa5c5b12e50ad85867ff06d4202c786b498ca8f", | |
3703 | + "description": "freedreno/ir3: Move NIR printing to mesa_log.", | |
3704 | + "nominated": false, | |
3705 | + "nomination_type": null, | |
3706 | + "resolution": 4, | |
3707 | + "main_sha": null, | |
3708 | + "because_sha": null | |
3709 | + }, | |
3710 | + { | |
3711 | + "sha": "990c23260319fa25f873038f776d8ab1f3f5628e", | |
3712 | + "description": "nir: Add an interface for logging shaders with mesa_log*.", | |
3713 | + "nominated": false, | |
3714 | + "nomination_type": null, | |
3715 | + "resolution": 4, | |
3716 | + "main_sha": null, | |
3717 | + "because_sha": null | |
3718 | + }, | |
3719 | + { | |
3720 | + "sha": "88fe7ab4fae7c86457f9473b67dafa6bdd8fe5da", | |
3721 | + "description": "freedreno/ir3: Move the native code output to mesa_log as well.", | |
3722 | + "nominated": false, | |
3723 | + "nomination_type": null, | |
3724 | + "resolution": 4, | |
3725 | + "main_sha": null, | |
3726 | + "because_sha": null | |
3727 | + }, | |
3728 | + { | |
3729 | + "sha": "9d458336c647a976dac2aa029fb099533fc7981d", | |
3730 | + "description": "freedreno/ir3: Use mesa_log_stream() for ir3 disassembly.", | |
3731 | + "nominated": false, | |
3732 | + "nomination_type": null, | |
3733 | + "resolution": 4, | |
3734 | + "main_sha": null, | |
3735 | + "because_sha": null | |
3736 | + }, | |
3737 | + { | |
3738 | + "sha": "250c127c200f6ccd5463c0af6bc5cd9eb607de94", | |
3739 | + "description": "util/log: Add a streaming printf interface.", | |
3740 | + "nominated": false, | |
3741 | + "nomination_type": null, | |
3742 | + "resolution": 4, | |
3743 | + "main_sha": null, | |
3744 | + "because_sha": null | |
3745 | + }, | |
3746 | + { | |
3747 | + "sha": "3863008c22375d9cc1ecfab2a816c49c8787b83f", | |
3748 | + "description": "freedreno/ir3: Move the assert output to mesa_loge().", | |
3749 | + "nominated": false, | |
3750 | + "nomination_type": null, | |
3751 | + "resolution": 4, | |
3752 | + "main_sha": null, | |
3753 | + "because_sha": null | |
3754 | + }, | |
3755 | + { | |
3756 | + "sha": "ecf807c900f0412627eb21db92bc30a43e4e46b4", | |
3757 | + "description": "freedreno: Move some driver debug printfs to mesa_logd.", | |
3758 | + "nominated": false, | |
3759 | + "nomination_type": null, | |
3760 | + "resolution": 4, | |
3761 | + "main_sha": null, | |
3762 | + "because_sha": null | |
3763 | + }, | |
3764 | + { | |
3765 | + "sha": "caf69b5b778667dbd5d777ac15cc1246ddb16c75", | |
3766 | + "description": "i915g: Add triangle provoking vertex support.", | |
3767 | + "nominated": false, | |
3768 | + "nomination_type": null, | |
3769 | + "resolution": 4, | |
3770 | + "main_sha": null, | |
3771 | + "because_sha": null | |
3772 | + }, | |
3773 | + { | |
3774 | + "sha": "ddf5c798d233940264ca3b8ecf7db285ac68958d", | |
3775 | + "description": "docs: update calendar and link releases notes for 21.1.3", | |
3776 | + "nominated": false, | |
3777 | + "nomination_type": null, | |
3778 | + "resolution": 4, | |
3779 | + "main_sha": null, | |
3780 | + "because_sha": null | |
3781 | + }, | |
3782 | + { | |
3783 | + "sha": "b8d54b7a713e1665c476a97123aae042e906d10b", | |
3784 | + "description": "docs: add release notes for 21.1.3", | |
3785 | + "nominated": false, | |
3786 | + "nomination_type": null, | |
3787 | + "resolution": 4, | |
3788 | + "main_sha": null, | |
3789 | + "because_sha": null | |
3790 | + }, | |
3791 | + { | |
3792 | + "sha": "4f86cd46eb2ae4d48886c4a68cf764fd3c31e9a3", | |
3793 | + "description": "nine: add zink to the build target", | |
3794 | + "nominated": false, | |
3795 | + "nomination_type": null, | |
3796 | + "resolution": 4, | |
3797 | + "main_sha": null, | |
3798 | + "because_sha": null | |
3799 | + }, | |
3800 | + { | |
3801 | + "sha": "f91ffe13490e33ad4e8e8c280297f0f56c0f6e6a", | |
3802 | + "description": "nine: only enable tgsi disk cache if the driver supports it", | |
3803 | + "nominated": false, | |
3804 | + "nomination_type": null, | |
3805 | + "resolution": 4, | |
3806 | + "main_sha": null, | |
3807 | + "because_sha": null | |
3808 | + }, | |
3809 | + { | |
3810 | + "sha": "977355c6e5efd781dde85d834172dd23cd4852f1", | |
3811 | + "description": "radv: fix dynamic culling and depth/stencil related dynamic states", | |
3812 | + "nominated": true, | |
3813 | + "nomination_type": 0, | |
3814 | + "resolution": 0, | |
3815 | + "main_sha": null, | |
3816 | + "because_sha": null | |
3817 | + }, | |
3818 | + { | |
3819 | + "sha": "651c6b16ff09745cb033566bc7910375868027df", | |
3820 | + "description": "radv: move pipe_misaligned and l2_coherent image checks to flags set on init", | |
3821 | + "nominated": false, | |
3822 | + "nomination_type": null, | |
3823 | + "resolution": 4, | |
3824 | + "main_sha": null, | |
3825 | + "because_sha": null | |
3826 | + }, | |
3827 | + { | |
3828 | + "sha": "e1af22d9dd7777739fbb5f1198a1dd5748d85964", | |
3829 | + "description": "radeon/vcn: allocate non-tmz context buffer for VCN2+", | |
3830 | + "nominated": false, | |
3831 | + "nomination_type": null, | |
3832 | + "resolution": 4, | |
3833 | + "main_sha": null, | |
3834 | + "because_sha": null | |
3835 | + }, | |
3836 | + { | |
3837 | + "sha": "796358e2f56b8444f2d422ea14639945be7c709e", | |
3838 | + "description": "radeon/vcn: move calc_dpb_size into create_decoder", | |
3839 | + "nominated": false, | |
3840 | + "nomination_type": null, | |
3841 | + "resolution": 4, | |
3842 | + "main_sha": null, | |
3843 | + "because_sha": null | |
3844 | + }, | |
3845 | + { | |
3846 | + "sha": "b97dedd365fbd8c2e62e0fecc89d01cfc38eb0e6", | |
3847 | + "description": "docs/isl: Add detailed documentation about CCS compression", | |
3848 | + "nominated": false, | |
3849 | + "nomination_type": null, | |
3850 | + "resolution": 4, | |
3851 | + "main_sha": null, | |
3852 | + "because_sha": null | |
3853 | + }, | |
3854 | + { | |
3855 | + "sha": "6b15ce9fa2dfcbf0a421a6846727cbce279492a7", | |
3856 | + "description": "docs/isl: Add detailed documentation about tiling on Intel GPUs", | |
3857 | + "nominated": false, | |
3858 | + "nomination_type": null, | |
3859 | + "resolution": 4, | |
3860 | + "main_sha": null, | |
3861 | + "because_sha": null | |
3862 | + }, | |
3863 | + { | |
3864 | + "sha": "0f6ebd2b73207845be0f01d49c22b0a48c7ff367", | |
3865 | + "description": "docs/isl: Add detailed documentation about isl formats", | |
3866 | + "nominated": false, | |
3867 | + "nomination_type": null, | |
3868 | + "resolution": 4, | |
3869 | + "main_sha": null, | |
3870 | + "because_sha": null | |
3871 | + }, | |
3872 | + { | |
3873 | + "sha": "3894e42590a79551541819185fbf0161990f7953", | |
3874 | + "description": "docs/isl: Document ISL's units", | |
3875 | + "nominated": false, | |
3876 | + "nomination_type": null, | |
3877 | + "resolution": 4, | |
3878 | + "main_sha": null, | |
3879 | + "because_sha": null | |
3880 | + }, | |
3881 | + { | |
3882 | + "sha": "d07ec294bb3e86a7a7f896f2d417ceffff093b1c", | |
3883 | + "description": "isl: Document more members of isl_surf", | |
3884 | + "nominated": false, | |
3885 | + "nomination_type": null, | |
3886 | + "resolution": 4, | |
3887 | + "main_sha": null, | |
3888 | + "because_sha": null | |
3889 | + }, | |
3890 | + { | |
3891 | + "sha": "831750b40b67ed07b7473d17531f70fb23b4e9b5", | |
3892 | + "description": "docs: Begin documenting ISL", | |
3893 | + "nominated": false, | |
3894 | + "nomination_type": null, | |
3895 | + "resolution": 4, | |
3896 | + "main_sha": null, | |
3897 | + "because_sha": null | |
3898 | + }, | |
3899 | + { | |
3900 | + "sha": "d3a63149dadcf9aa5b34a4cab884a233a6d6c75c", | |
3901 | + "description": "zink: remove inlinable_uniforms_dirty_mask", | |
3902 | + "nominated": false, | |
3903 | + "nomination_type": null, | |
3904 | + "resolution": 4, | |
3905 | + "main_sha": null, | |
3906 | + "because_sha": null | |
3907 | + }, | |
3908 | + { | |
3909 | + "sha": "78f820acd7d438f1864fbc76a93ac76a88042f37", | |
3910 | + "description": "zink: remove duplicated bitflag filtering for inline uniforms", | |
3911 | + "nominated": false, | |
3912 | + "nomination_type": null, | |
3913 | + "resolution": 4, | |
3914 | + "main_sha": null, | |
3915 | + "because_sha": null | |
3916 | + }, | |
3917 | + { | |
3918 | + "sha": "60348360a2dbecc27afe10fca36122976c7057d8", | |
3919 | + "description": "radv: create only one pipeline for decompressing depth/stencil images", | |
3920 | + "nominated": false, | |
3921 | + "nomination_type": null, | |
3922 | + "resolution": 4, | |
3923 | + "main_sha": null, | |
3924 | + "because_sha": null | |
3925 | + }, | |
3926 | + { | |
3927 | + "sha": "213c4c5f44f0f731a2c7538405612eea81f874fa", | |
3928 | + "description": "radv: always decompress both aspects of a depth/stencil image", | |
3929 | + "nominated": true, | |
3930 | + "nomination_type": 0, | |
3931 | + "resolution": 1, | |
3932 | + "main_sha": null, | |
3933 | + "because_sha": null | |
3934 | + }, | |
3935 | + { | |
3936 | + "sha": "50233d0daa3ca444a1f1caf6e9eab1144d28530d", | |
3937 | + "description": "radv: reject binding buffer/image when the device memory is too small", | |
3938 | + "nominated": true, | |
3939 | + "nomination_type": 0, | |
3940 | + "resolution": 1, | |
3941 | + "main_sha": null, | |
3942 | + "because_sha": null | |
3943 | + }, | |
3944 | + { | |
3945 | + "sha": "66dbd16f38e6acccb9ba3ba02d0f9bbb18e4e3b1", | |
3946 | + "description": "radeonsi: skip instance_count==0 draws on <= GFX9", | |
3947 | + "nominated": true, | |
3948 | + "nomination_type": 0, | |
3949 | + "resolution": 1, | |
3950 | + "main_sha": null, | |
3951 | + "because_sha": null | |
3952 | + }, | |
3953 | + { | |
3954 | + "sha": "2624765e66efbedd65841a11d68d3bd4a3baccbe", | |
3955 | + "description": "nvc0/ir: Initialize Limits members in constructor.", | |
3956 | + "nominated": false, | |
3957 | + "nomination_type": null, | |
3958 | + "resolution": 4, | |
3959 | + "main_sha": null, | |
3960 | + "because_sha": null | |
3961 | + }, | |
3962 | + { | |
3963 | + "sha": "5f771134ad07fc8c3755ba36b294cbf49259998e", | |
3964 | + "description": "intel/vec4: Add missing break statement.", | |
3965 | + "nominated": false, | |
3966 | + "nomination_type": 1, | |
3967 | + "resolution": 4, | |
3968 | + "main_sha": null, | |
3969 | + "because_sha": "89fd196f6b5e80fd4082ed5842e51b944907eff3" | |
3970 | + }, | |
3971 | + { | |
3972 | + "sha": "2b3fc26da8bed1f70f6631a3fc6c6cd43fe2acc2", | |
3973 | + "description": "i915g: Switch to using nir-to-tgsi.", | |
3974 | + "nominated": false, | |
3975 | + "nomination_type": null, | |
3976 | + "resolution": 4, | |
3977 | + "main_sha": null, | |
3978 | + "because_sha": null | |
3979 | + }, | |
3980 | + { | |
3981 | + "sha": "934d2c8f7f51d6e148e2b034e88a5eb6e1b9c98a", | |
3982 | + "description": "i915g: Handle fragment depth being in OUT[1] not OUT[0].", | |
3983 | + "nominated": false, | |
3984 | + "nomination_type": null, | |
3985 | + "resolution": 4, | |
3986 | + "main_sha": null, | |
3987 | + "because_sha": null | |
3988 | + }, | |
3989 | + { | |
3990 | + "sha": "026452fe466f2537ce2496efd008b16d1be5053b", | |
3991 | + "description": "nir_to_tgsi: Support integer sysvals on !CAP_INTEGERS hardware.", | |
3992 | + "nominated": false, | |
3993 | + "nomination_type": null, | |
3994 | + "resolution": 4, | |
3995 | + "main_sha": null, | |
3996 | + "because_sha": null | |
3997 | + }, | |
3998 | + { | |
3999 | + "sha": "baa8d33908cd640ef1e5c7efca931d43a46cd9f5", | |
4000 | + "description": "nir_to_tgsi: Fix internal handling of NIR uints for !CAP_INTEGERS", | |
4001 | + "nominated": false, | |
4002 | + "nomination_type": null, | |
4003 | + "resolution": 4, | |
4004 | + "main_sha": null, | |
4005 | + "because_sha": null | |
4006 | + }, | |
4007 | + { | |
4008 | + "sha": "47804f53f991c3467671e05421df437b0f34eb22", | |
4009 | + "description": "nir: Do peephole select on other instructions if the limit is ~0.", | |
4010 | + "nominated": false, | |
4011 | + "nomination_type": null, | |
4012 | + "resolution": 4, | |
4013 | + "main_sha": null, | |
4014 | + "because_sha": null | |
4015 | + }, | |
4016 | + { | |
4017 | + "sha": "aba8b6675ae3ddc136f4f48cbabb7d3e24c6d58b", | |
4018 | + "description": "nir/lower_int_to_float: Make sure the cursor is in the right spot.", | |
4019 | + "nominated": false, | |
4020 | + "nomination_type": null, | |
4021 | + "resolution": 4, | |
4022 | + "main_sha": null, | |
4023 | + "because_sha": null | |
4024 | + }, | |
4025 | + { | |
4026 | + "sha": "31ab2735dbc64c5d67b7db3ef75e9fd5969f4b2a", | |
4027 | + "description": "i915g: Allow fragment coord conventions TGSI properties to be set.", | |
4028 | + "nominated": false, | |
4029 | + "nomination_type": null, | |
4030 | + "resolution": 4, | |
4031 | + "main_sha": null, | |
4032 | + "because_sha": null | |
4033 | + }, | |
4034 | + { | |
4035 | + "sha": "942f62a9b28f9afc32185506b0a9bbf770287f84", | |
4036 | + "description": "i915: Drop assertion failure about seeing each const decled once.", | |
4037 | + "nominated": false, | |
4038 | + "nomination_type": null, | |
4039 | + "resolution": 4, | |
4040 | + "main_sha": null, | |
4041 | + "because_sha": null | |
4042 | + }, | |
4043 | + { | |
4044 | + "sha": "7378c6479278983de7f1f39902aade0567a53965", | |
4045 | + "description": "i915: Disable vertex texturing and delete the code.", | |
4046 | + "nominated": false, | |
4047 | + "nomination_type": null, | |
4048 | + "resolution": 4, | |
4049 | + "main_sha": null, | |
4050 | + "because_sha": null | |
4051 | + }, | |
4052 | + { | |
4053 | + "sha": "87f35032a664c6b93cde40777f5c587d3312d716", | |
4054 | + "description": "anv: enable multi-planar support for drm format modifier", | |
4055 | + "nominated": false, | |
4056 | + "nomination_type": null, | |
4057 | + "resolution": 4, | |
4058 | + "main_sha": null, | |
4059 | + "because_sha": null | |
4060 | + }, | |
4061 | + { | |
4062 | + "sha": "ec70092d55c913a9a24f21d184511bf65fc2ae65", | |
4063 | + "description": "anv: support multi-planar format in add_all_surfaces_explicit_layout", | |
4064 | + "nominated": false, | |
4065 | + "nomination_type": null, | |
4066 | + "resolution": 4, | |
4067 | + "main_sha": null, | |
4068 | + "because_sha": null | |
4069 | + }, | |
4070 | + { | |
4071 | + "sha": "345a4e987104406a6fb8145c841f92dadaf0b270", | |
4072 | + "description": "anv: fix some log formats", | |
4073 | + "nominated": false, | |
4074 | + "nomination_type": null, | |
4075 | + "resolution": 4, | |
4076 | + "main_sha": null, | |
4077 | + "because_sha": null | |
4078 | + }, | |
4079 | + { | |
4080 | + "sha": "6bce24e214050686c510beed5221c1259a498bb2", | |
4081 | + "description": "freedreno: Add some cheza flakes from the last week.", | |
4082 | + "nominated": false, | |
4083 | + "nomination_type": null, | |
4084 | + "resolution": 4, | |
4085 | + "main_sha": null, | |
4086 | + "because_sha": null | |
4087 | + }, | |
4088 | + { | |
4089 | + "sha": "df7fdae127a78f400f5827bd88c6db89dada6da6", | |
4090 | + "description": "freedreno: Skip staging blits from uninitialized resources.", | |
4091 | + "nominated": false, | |
4092 | + "nomination_type": null, | |
4093 | + "resolution": 4, | |
4094 | + "main_sha": null, | |
4095 | + "because_sha": null | |
4096 | + }, | |
4097 | + { | |
4098 | + "sha": "4018c5f928b01c1536a7361c0f04bbf314a1f598", | |
4099 | + "description": "freedreno: Add more detailed blit debug in FD_MESA_DEBUG=msgs.", | |
4100 | + "nominated": false, | |
4101 | + "nomination_type": null, | |
4102 | + "resolution": 4, | |
4103 | + "main_sha": null, | |
4104 | + "because_sha": null | |
4105 | + }, | |
4106 | + { | |
4107 | + "sha": "8effbeeea6f7b2de29bc9e9a85dc96fe15adf51c", | |
4108 | + "description": "freedreno/fdl: Give the tiling mode a nice name in debug dumps.", | |
4109 | + "nominated": false, | |
4110 | + "nomination_type": null, | |
4111 | + "resolution": 4, | |
4112 | + "main_sha": null, | |
4113 | + "because_sha": null | |
4114 | + }, | |
4115 | + { | |
4116 | + "sha": "57da290b52aeb411082ea1d594818b6662c23c38", | |
4117 | + "description": "freedreno: Move FD_MESA_DEBUG=msgs output to mesa_logi.", | |
4118 | + "nominated": false, | |
4119 | + "nomination_type": null, | |
4120 | + "resolution": 4, | |
4121 | + "main_sha": null, | |
4122 | + "because_sha": null | |
4123 | + }, | |
4124 | + { | |
4125 | + "sha": "d4203bf7abaa24ad20d76267a663668600b45f40", | |
4126 | + "description": "freedreno: Add perf_debug() for our software conditional rendering.", | |
4127 | + "nominated": false, | |
4128 | + "nomination_type": null, | |
4129 | + "resolution": 4, | |
4130 | + "main_sha": null, | |
4131 | + "because_sha": null | |
4132 | + }, | |
4133 | + { | |
4134 | + "sha": "6402dc17b3836dbe11dacad57a566b80c2d0db9c", | |
4135 | + "description": "freedreno: Defer freeing batch->key", | |
4136 | + "nominated": false, | |
4137 | + "nomination_type": 1, | |
4138 | + "resolution": 4, | |
4139 | + "main_sha": null, | |
4140 | + "because_sha": "507f701d9e89b891fdfa03ad23dc73acf3c5c6b4" | |
4141 | + }, | |
4142 | + { | |
4143 | + "sha": "64cb143b922b4c074a8404359e7ed9b790941744", | |
4144 | + "description": "spirv: Fix handling of OpBranchConditional with same THEN and ELSE", | |
4145 | + "nominated": true, | |
4146 | + "nomination_type": 1, | |
4147 | + "resolution": 1, | |
4148 | + "main_sha": null, | |
4149 | + "because_sha": "9c2a11430e101b820ce8d605f3cc5b0593bb4c5e" | |
4150 | + }, | |
4151 | + { | |
4152 | + "sha": "38e8d7afe30bb33218191ac681607de48753fbae", | |
4153 | + "description": "pan/mdg: Fix reading a spilt register in the bundle it's written", | |
4154 | + "nominated": true, | |
4155 | + "nomination_type": 0, | |
4156 | + "resolution": 1, | |
4157 | + "main_sha": null, | |
4158 | + "because_sha": null | |
4159 | + }, | |
4160 | + { | |
4161 | + "sha": "31d26ebf1b9d0f819c894aec10c29a44052a995a", | |
4162 | + "description": "pan/mdg: Fill from TLS before spilling non-SSA nodes", | |
4163 | + "nominated": true, | |
4164 | + "nomination_type": 0, | |
4165 | + "resolution": 1, | |
4166 | + "main_sha": null, | |
4167 | + "because_sha": null | |
4168 | + }, | |
4169 | + { | |
4170 | + "sha": "ed9a9a09f2899baadbcf700352a70df677f658ef", | |
4171 | + "description": "pan/mdg: Reorder some code in mir_spill_register", | |
4172 | + "nominated": true, | |
4173 | + "nomination_type": 0, | |
4174 | + "resolution": 1, | |
4175 | + "main_sha": null, | |
4176 | + "because_sha": null | |
4177 | + }, | |
4178 | + { | |
4179 | + "sha": "1490e7e622d1b3ffe35ad9f577f13744497c0169", | |
4180 | + "description": "pan/mdg: Add a bundle ID to instructions", | |
4181 | + "nominated": true, | |
4182 | + "nomination_type": 0, | |
4183 | + "resolution": 1, | |
4184 | + "main_sha": null, | |
4185 | + "because_sha": null | |
4186 | + }, | |
4187 | + { | |
4188 | + "sha": "3e3ec5989591cb97d45910a80f685870c6c82935", | |
4189 | + "description": "freedreno/a6xx: Skip nv_copy_image tests", | |
4190 | + "nominated": false, | |
4191 | + "nomination_type": null, | |
4192 | + "resolution": 4, | |
4193 | + "main_sha": null, | |
4194 | + "because_sha": null | |
4195 | + }, | |
4196 | + { | |
4197 | + "sha": "fff2aa46a7be9cd3af7a22c812e86de58455ce3f", | |
4198 | + "description": "freedreno/a6xx: Flip on copy_image", | |
4199 | + "nominated": false, | |
4200 | + "nomination_type": null, | |
4201 | + "resolution": 4, | |
4202 | + "main_sha": null, | |
4203 | + "because_sha": null | |
4204 | + }, | |
4205 | + { | |
4206 | + "sha": "6ca9f4f5ca686527f7ec2fcc0051f5c5dbe1df1a", | |
4207 | + "description": "freedreno: Fix for multi-draw blits", | |
4208 | + "nominated": false, | |
4209 | + "nomination_type": null, | |
4210 | + "resolution": 4, | |
4211 | + "main_sha": null, | |
4212 | + "because_sha": null | |
4213 | + }, | |
4214 | + { | |
4215 | + "sha": "9629f3aa4632f8379631a44b95f7394fdce25fa0", | |
4216 | + "description": "freedreno/a6xx: Handle u/snorm vs u/sint validation", | |
4217 | + "nominated": false, | |
4218 | + "nomination_type": null, | |
4219 | + "resolution": 4, | |
4220 | + "main_sha": null, | |
4221 | + "because_sha": null | |
4222 | + }, | |
4223 | + { | |
4224 | + "sha": "678e4842cca21c5098b0f458464375dac5153897", | |
4225 | + "description": "freedreno/a6xx: Use UNORM for SNORM copy blits", | |
4226 | + "nominated": false, | |
4227 | + "nomination_type": null, | |
4228 | + "resolution": 4, | |
4229 | + "main_sha": null, | |
4230 | + "because_sha": null | |
4231 | + }, | |
4232 | + { | |
4233 | + "sha": "70d571e558cb6e32e8631ca51f98920d4dfaeeba", | |
4234 | + "description": "freedreno/blitter: Flush before self-blits", | |
4235 | + "nominated": false, | |
4236 | + "nomination_type": null, | |
4237 | + "resolution": 4, | |
4238 | + "main_sha": null, | |
4239 | + "because_sha": null | |
4240 | + }, | |
4241 | + { | |
4242 | + "sha": "2f29425a0ac345e037a72bc62a5065cfd1e64db9", | |
4243 | + "description": "freedreno: Fix flushes with NULL batch", | |
4244 | + "nominated": false, | |
4245 | + "nomination_type": null, | |
4246 | + "resolution": 4, | |
4247 | + "main_sha": null, | |
4248 | + "because_sha": null | |
4249 | + }, | |
4250 | + { | |
4251 | + "sha": "4c67924251292106963afa4f27639fe5d3c32eef", | |
4252 | + "description": "intel/nir: Fix txs for null surfaces", | |
4253 | + "nominated": true, | |
4254 | + "nomination_type": 1, | |
4255 | + "resolution": 1, | |
4256 | + "main_sha": null, | |
4257 | + "because_sha": "05a37e2422080278a668f048cd8bc7a0e4d5d644" | |
4258 | + }, | |
4259 | + { | |
4260 | + "sha": "ac9ae97d304c5050262285db6d2fe4897a932653", | |
4261 | + "description": "freedreno: Flush batches upon destroying the ctx.", | |
4262 | + "nominated": false, | |
4263 | + "nomination_type": null, | |
4264 | + "resolution": 4, | |
4265 | + "main_sha": null, | |
4266 | + "because_sha": null | |
4267 | + }, | |
4268 | + { | |
4269 | + "sha": "2a9225d05f544925cd8f92fff41af61f71a69dfa", | |
4270 | + "description": "freedreno: Remove broken back_blit optimization.", | |
4271 | + "nominated": false, | |
4272 | + "nomination_type": null, | |
4273 | + "resolution": 4, | |
4274 | + "main_sha": null, | |
4275 | + "because_sha": null | |
4276 | + }, | |
4277 | + { | |
4278 | + "sha": "09e1fb2bceb650d700bf94f668c116ec93a58319", | |
4279 | + "description": "freedreno: Move the !MAP_WRITE write batch refcounting to the branch.", | |
4280 | + "nominated": false, | |
4281 | + "nomination_type": null, | |
4282 | + "resolution": 4, | |
4283 | + "main_sha": null, | |
4284 | + "because_sha": null | |
4285 | + }, | |
4286 | + { | |
4287 | + "sha": "fd571565d2c71c47a6894e31db84f2150b5f3e86", | |
4288 | + "description": "freedreno: Fix batch reference handling in flush_resource().", | |
4289 | + "nominated": false, | |
4290 | + "nomination_type": null, | |
4291 | + "resolution": 4, | |
4292 | + "main_sha": null, | |
4293 | + "because_sha": null | |
4294 | + }, | |
4295 | + { | |
4296 | + "sha": "cf2747e7ace0a62e18e7f0910af1ab1d4f5e1019", | |
4297 | + "description": "v3dv: implement VK_EXT_index_type_uint8", | |
4298 | + "nominated": false, | |
4299 | + "nomination_type": null, | |
4300 | + "resolution": 4, | |
4301 | + "main_sha": null, | |
4302 | + "because_sha": null | |
4303 | + }, | |
4304 | + { | |
4305 | + "sha": "d9c53c50ad37fd8474baced71d14d52e6b7ddbf6", | |
4306 | + "description": "v3dv: enable ASTC formats", | |
4307 | + "nominated": false, | |
4308 | + "nomination_type": null, | |
4309 | + "resolution": 4, | |
4310 | + "main_sha": null, | |
4311 | + "because_sha": null | |
4312 | + }, | |
4313 | + { | |
4314 | + "sha": "26a7afc94fae80a105d877d2372b3c20b07461b2", | |
4315 | + "description": "v3dv: add ASTC formats to get_compatible_tlb_format", | |
4316 | + "nominated": false, | |
4317 | + "nomination_type": null, | |
4318 | + "resolution": 4, | |
4319 | + "main_sha": null, | |
4320 | + "because_sha": null | |
4321 | + }, | |
4322 | + { | |
4323 | + "sha": "56bf92ff0b15db77e34a5382fdd047c7dc2a42fe", | |
4324 | + "description": "v3dv: divide by block size in copy_image_blit", | |
4325 | + "nominated": false, | |
4326 | + "nomination_type": null, | |
4327 | + "resolution": 4, | |
4328 | + "main_sha": null, | |
4329 | + "because_sha": null | |
4330 | + }, | |
4331 | + { | |
4332 | + "sha": "6756f55c842b98a27f41714b89b39301c4abc1de", | |
4333 | + "description": "v3dv: add the unswizzled RGBA4444 format", | |
4334 | + "nominated": false, | |
4335 | + "nomination_type": null, | |
4336 | + "resolution": 4, | |
4337 | + "main_sha": null, | |
4338 | + "because_sha": null | |
4339 | + }, | |
4340 | + { | |
4341 | + "sha": "8aaa08844fcdefb5d3ca9af871ead70ac7bef282", | |
4342 | + "description": "r600/sfn: Clean up some ALU lowering and move code", | |
4343 | + "nominated": false, | |
4344 | + "nomination_type": null, | |
4345 | + "resolution": 4, | |
4346 | + "main_sha": null, | |
4347 | + "because_sha": null | |
4348 | + }, | |
4349 | + { | |
4350 | + "sha": "82c076d2c3147d632e951bc143a65d79ca183113", | |
4351 | + "description": "r600/sfn: Don't read return values of atomic ops that are not used", | |
4352 | + "nominated": false, | |
4353 | + "nomination_type": null, | |
4354 | + "resolution": 4, | |
4355 | + "main_sha": null, | |
4356 | + "because_sha": null | |
4357 | + }, | |
4358 | + { | |
4359 | + "sha": "800bfefde58924826889756288326f24acf27e2d", | |
4360 | + "description": "r600/sfn: Drop method for emit_atomic_add, it is handled in generic code", | |
4361 | + "nominated": false, | |
4362 | + "nomination_type": null, | |
4363 | + "resolution": 4, | |
4364 | + "main_sha": null, | |
4365 | + "because_sha": null | |
4366 | + }, | |
4367 | + { | |
4368 | + "sha": "2e8901a07228d235bedc50cf69613e35183a4fac", | |
4369 | + "description": "r600/sfn: don't read back unused image atomic result values", | |
4370 | + "nominated": false, | |
4371 | + "nomination_type": null, | |
4372 | + "resolution": 4, | |
4373 | + "main_sha": null, | |
4374 | + "because_sha": null | |
4375 | + }, | |
4376 | + { | |
4377 | + "sha": "5e1a7039340cdabb4fcef63a1bd24bb927031810", | |
4378 | + "description": "r600/sfn: don't designates initializers, since they are c++20", | |
4379 | + "nominated": false, | |
4380 | + "nomination_type": null, | |
4381 | + "resolution": 4, | |
4382 | + "main_sha": null, | |
4383 | + "because_sha": null | |
4384 | + }, | |
4385 | + { | |
4386 | + "sha": "f9d8d9acbb6a620684fb4dac4affe25816587d92", | |
4387 | + "description": "iris: Avoid abort() if kernel can't allocate memory", | |
4388 | + "nominated": false, | |
4389 | + "nomination_type": null, | |
4390 | + "resolution": 4, | |
4391 | + "main_sha": null, | |
4392 | + "because_sha": null | |
4393 | + }, | |
4394 | + { | |
4395 | + "sha": "d873e30d3b29582880b23a34e047d965849ae590", | |
4396 | + "description": "v3dv: expose VK_KHR_shader_non_semantic_info", | |
4397 | + "nominated": false, | |
4398 | + "nomination_type": null, | |
4399 | + "resolution": 4, | |
4400 | + "main_sha": null, | |
4401 | + "because_sha": null | |
4402 | + }, | |
4403 | + { | |
4404 | + "sha": "0fd152dab3db152c8734b5ee0e312cab4257cd04", | |
4405 | + "description": "disk_cache: use UTIL_QUEUE_INIT_SCALE_THREADS", | |
4406 | + "nominated": false, | |
4407 | + "nomination_type": null, | |
4408 | + "resolution": 4, | |
4409 | + "main_sha": null, | |
4410 | + "because_sha": null | |
4411 | + }, | |
4412 | + { | |
4413 | + "sha": "3713dc6b2a7472a838885b9ff1e4e07f9b9b7713", | |
4414 | + "description": "util/u_queue: add UTIL_QUEUE_INIT_SCALE_THREADS flag", | |
4415 | + "nominated": false, | |
4416 | + "nomination_type": null, | |
4417 | + "resolution": 4, | |
4418 | + "main_sha": null, | |
4419 | + "because_sha": null | |
4420 | + }, | |
4421 | + { | |
4422 | + "sha": "0c88df1f6a524c52c8d893ed8db2cff01e8bd14a", | |
4423 | + "description": "util/u_queue: move function definition up", | |
4424 | + "nominated": false, | |
4425 | + "nomination_type": null, | |
4426 | + "resolution": 4, | |
4427 | + "main_sha": null, | |
4428 | + "because_sha": null | |
4429 | + }, | |
4430 | + { | |
4431 | + "sha": "edb77ec3c770135280cc321326c7924b73fb535c", | |
4432 | + "description": "radeonsi: delay sample_pos_buffer creation until first use", | |
4433 | + "nominated": false, | |
4434 | + "nomination_type": null, | |
4435 | + "resolution": 4, | |
4436 | + "main_sha": null, | |
4437 | + "because_sha": null | |
4438 | + }, | |
4439 | + { | |
4440 | + "sha": "84dca32c51e9f70b20515afd304826091c775a92", | |
4441 | + "description": "vbo: delay vbo_exec_vtx_map call", | |
4442 | + "nominated": false, | |
4443 | + "nomination_type": null, | |
4444 | + "resolution": 4, | |
4445 | + "main_sha": null, | |
4446 | + "because_sha": null | |
4447 | + }, | |
4448 | + { | |
4449 | + "sha": "3333a96b6fed7020c70af5809c791a3875b5b19a", | |
4450 | + "description": "nvc0/ir: Initialize CodeEmitterNVC0 member progType in constructor.", | |
4451 | + "nominated": false, | |
4452 | + "nomination_type": null, | |
4453 | + "resolution": 4, | |
4454 | + "main_sha": null, | |
4455 | + "because_sha": null | |
4456 | + }, | |
4457 | + { | |
4458 | + "sha": "849ab4ea0caf9e2ce3d4bb5d2f1308edff9913fd", | |
4459 | + "description": "mesa: execute glFlush asynchronously if no image has been imported/exported", | |
4460 | + "nominated": false, | |
4461 | + "nomination_type": null, | |
4462 | + "resolution": 4, | |
4463 | + "main_sha": null, | |
4464 | + "because_sha": null | |
4465 | + }, | |
4466 | + { | |
4467 | + "sha": "0336b13e1e6307429efdf560d523727d88d556aa", | |
4468 | + "description": "mesa: move _mesa_notifySwapBuffers into the x11 swrast driver", | |
4469 | + "nominated": false, | |
4470 | + "nomination_type": null, | |
4471 | + "resolution": 4, | |
4472 | + "main_sha": null, | |
4473 | + "because_sha": null | |
4474 | + }, | |
4475 | + { | |
4476 | + "sha": "b7dc72380a474aeb3ff7179536727391116a3448", | |
4477 | + "description": "mesa: add gallium flush_flags param into ctx->Driver.Flush", | |
4478 | + "nominated": false, | |
4479 | + "nomination_type": null, | |
4480 | + "resolution": 4, | |
4481 | + "main_sha": null, | |
4482 | + "because_sha": null | |
4483 | + }, | |
4484 | + { | |
4485 | + "sha": "ee6929a77986f6933d6e9717f8f5ada379248db4", | |
4486 | + "description": "st/mesa: move the st_flush_bitmap_cache call into st_flush", | |
4487 | + "nominated": false, | |
4488 | + "nomination_type": null, | |
4489 | + "resolution": 4, | |
4490 | + "main_sha": null, | |
4491 | + "because_sha": null | |
4492 | + }, | |
4493 | + { | |
4494 | + "sha": "37bf4184db5c85a92266ae604d87b59fc9797022", | |
4495 | + "description": "st/mesa: fix an incorrect comment in st_context_flush", | |
4496 | + "nominated": false, | |
4497 | + "nomination_type": null, | |
4498 | + "resolution": 4, | |
4499 | + "main_sha": null, | |
4500 | + "because_sha": null | |
4501 | + }, | |
4502 | + { | |
4503 | + "sha": "3da170faaec2a57d76e668ab56781621c23c6703", | |
4504 | + "description": "glthread: change when glFlush flushes asynchronously", | |
4505 | + "nominated": false, | |
4506 | + "nomination_type": null, | |
4507 | + "resolution": 4, | |
4508 | + "main_sha": null, | |
4509 | + "because_sha": null | |
4510 | + }, | |
4511 | + { | |
4512 | + "sha": "0510a947ba287f8b416601fcbc64512164b2918e", | |
4513 | + "description": "anv: Fix dynamic primitive topology for tess on Gfx7.x too", | |
4514 | + "nominated": true, | |
4515 | + "nomination_type": 1, | |
4516 | + "resolution": 1, | |
4517 | + "main_sha": null, | |
4518 | + "because_sha": "24342e499bc58348b257716f629dccca3c1b0833" | |
4519 | + }, | |
4520 | + { | |
4521 | + "sha": "9908da1b7a5eaf0156d458e0e24b694c070ba345", | |
4522 | + "description": "Add default driver selections for RISC-V", | |
4523 | + "nominated": false, | |
4524 | + "nomination_type": null, | |
4525 | + "resolution": 4, | |
4526 | + "main_sha": null, | |
4527 | + "because_sha": null | |
4528 | + }, | |
4529 | + { | |
4530 | + "sha": "0ea8becff0b117dd626a004331da11c8508f84bb", | |
4531 | + "description": "zink: always defer image descriptor barriers", | |
4532 | + "nominated": false, | |
4533 | + "nomination_type": null, | |
4534 | + "resolution": 4, | |
4535 | + "main_sha": null, | |
4536 | + "because_sha": null | |
4537 | + }, | |
4538 | + { | |
4539 | + "sha": "5341b985e49a5e79468c4a55c3bb02bbf4542007", | |
4540 | + "description": "zink: use fake buffer barriers for descriptors", | |
4541 | + "nominated": false, | |
4542 | + "nomination_type": null, | |
4543 | + "resolution": 4, | |
4544 | + "main_sha": null, | |
4545 | + "because_sha": null | |
4546 | + }, | |
4547 | + { | |
4548 | + "sha": "3c2f343618535bf9833111adb47c8e83f30810bc", | |
4549 | + "description": "zink: check actual mem props to determine if resource object is coherent", | |
4550 | + "nominated": false, | |
4551 | + "nomination_type": null, | |
4552 | + "resolution": 4, | |
4553 | + "main_sha": null, | |
4554 | + "because_sha": null | |
4555 | + }, | |
4556 | + { | |
4557 | + "sha": "b1b6aecf9d14eccd386378a138ae04eae1ccabfb", | |
4558 | + "description": "zink: key alloc cache on heap index, not heap flags", | |
4559 | + "nominated": false, | |
4560 | + "nomination_type": null, | |
4561 | + "resolution": 4, | |
4562 | + "main_sha": null, | |
4563 | + "because_sha": null | |
4564 | + }, | |
4565 | + { | |
4566 | + "sha": "c56a10049419401f3b28dc74d18bf6ecb82081b2", | |
4567 | + "description": "zink: avoid caching visible vram allocations", | |
4568 | + "nominated": false, | |
4569 | + "nomination_type": null, | |
4570 | + "resolution": 4, | |
4571 | + "main_sha": null, | |
4572 | + "because_sha": null | |
4573 | + }, | |
4574 | + { | |
4575 | + "sha": "18b71c0da33c31fdb2b104b27e8a7b169ce3a0bb", | |
4576 | + "description": "zink: change a bunch of sparse buffer resource checks to host-visible checks", | |
4577 | + "nominated": false, | |
4578 | + "nomination_type": null, | |
4579 | + "resolution": 4, | |
4580 | + "main_sha": null, | |
4581 | + "because_sha": null | |
4582 | + }, | |
4583 | + { | |
4584 | + "sha": "5fee58bf599cb525c9251b5f4ceed5db85803c8f", | |
4585 | + "description": "zink: collapse host_visible and non-coherent alignment alloc cases", | |
4586 | + "nominated": false, | |
4587 | + "nomination_type": null, | |
4588 | + "resolution": 4, | |
4589 | + "main_sha": null, | |
4590 | + "because_sha": null | |
4591 | + }, | |
4592 | + { | |
4593 | + "sha": "eb272f65715c21c38c0dc0f5a84f431851aa87d0", | |
4594 | + "description": "compiler/glsl: Use mutex lock while freeing up mem_ctx", | |
4595 | + "nominated": true, | |
4596 | + "nomination_type": 1, | |
4597 | + "resolution": 1, | |
4598 | + "main_sha": null, | |
4599 | + "because_sha": "e4da8b9c331cc3ae1b86b3a7860231e202463db0" | |
4600 | + }, | |
4601 | + { | |
4602 | + "sha": "4a407e0ad8801cc822666f41591094b2cbb2e826", | |
4603 | + "description": "zink: mark some functions inline", | |
4604 | + "nominated": false, | |
4605 | + "nomination_type": null, | |
4606 | + "resolution": 4, | |
4607 | + "main_sha": null, | |
4608 | + "because_sha": null | |
4609 | + }, | |
4610 | + { | |
4611 | + "sha": "e19f1124353bf0c76072d8687bb93b78fd2970cf", | |
4612 | + "description": "ir3/ra: Fix array parallelcopy confusion", | |
4613 | + "nominated": false, | |
4614 | + "nomination_type": 1, | |
4615 | + "resolution": 4, | |
4616 | + "main_sha": null, | |
4617 | + "because_sha": "0ffcb19b9d9fbe902224542047c389a661fbf816" | |
4618 | + }, | |
4619 | + { | |
4620 | + "sha": "2c21dab36e55eaa3f6b083bc5c3bc0573321fdb5", | |
4621 | + "description": "ir3: Improve printing of array parallelcopies/phis", | |
4622 | + "nominated": false, | |
4623 | + "nomination_type": null, | |
4624 | + "resolution": 4, | |
4625 | + "main_sha": null, | |
4626 | + "because_sha": null | |
4627 | + }, | |
4628 | + { | |
4629 | + "sha": "d0d2108425409defa25a13cb519a0ab7604a3bcb", | |
4630 | + "description": "shader_enums: change VERT_BIT back to the 32-bit shift", | |
4631 | + "nominated": false, | |
4632 | + "nomination_type": null, | |
4633 | + "resolution": 4, | |
4634 | + "main_sha": null, | |
4635 | + "because_sha": null | |
4636 | + }, | |
4637 | + { | |
4638 | + "sha": "45cbb08848e6c1f0219a225e0bd637c330b8d38d", | |
4639 | + "description": "gallium/pb: change alignment to 32 bits", | |
4640 | + "nominated": false, | |
4641 | + "nomination_type": null, | |
4642 | + "resolution": 4, | |
4643 | + "main_sha": null, | |
4644 | + "because_sha": null | |
4645 | + }, | |
4646 | + { | |
4647 | + "sha": "97a57538121ecda139881ea5068c1922d582ad4a", | |
4648 | + "description": "radeonsi: remove -Wstrict-overflow=0 since it doesn't seem to be needed", | |
4649 | + "nominated": false, | |
4650 | + "nomination_type": null, | |
4651 | + "resolution": 4, | |
4652 | + "main_sha": null, | |
4653 | + "because_sha": null | |
4654 | + }, | |
4655 | + { | |
4656 | + "sha": "72a395b6de004d92c5fcc15873248682d6d5582a", | |
4657 | + "description": "radeonsi: remove the chip_class dimension from the draw_vbo array", | |
4658 | + "nominated": false, | |
4659 | + "nomination_type": null, | |
4660 | + "resolution": 4, | |
4661 | + "main_sha": null, | |
4662 | + "because_sha": null | |
4663 | + }, | |
4664 | + { | |
4665 | + "sha": "1e4d91355fa9716de2432fe1f3ff93ce1de0cfd2", | |
4666 | + "description": "radeonsi: compile si_state_draw.cpp for each gfx generation separately", | |
4667 | + "nominated": false, | |
4668 | + "nomination_type": null, | |
4669 | + "resolution": 4, | |
4670 | + "main_sha": null, | |
4671 | + "because_sha": null | |
4672 | + }, | |
4673 | + { | |
4674 | + "sha": "24895f020a11caaa2a7c7f49889d633f4e712a7c", | |
4675 | + "description": "radeonsi: move a few functions from si_state_draw.cpp into si_gfx_cs.c", | |
4676 | + "nominated": false, | |
4677 | + "nomination_type": null, | |
4678 | + "resolution": 4, | |
4679 | + "main_sha": null, | |
4680 | + "because_sha": null | |
4681 | + }, | |
4682 | + { | |
4683 | + "sha": "b8ce8530a0fe4cded04f4041ba99108c173730c2", | |
4684 | + "description": "venus: remove workarounds for multi-planar format interop", | |
4685 | + "nominated": false, | |
4686 | + "nomination_type": null, | |
4687 | + "resolution": 4, | |
4688 | + "main_sha": null, | |
4689 | + "because_sha": null | |
4690 | + }, | |
4691 | + { | |
4692 | + "sha": "357e7ae30b6aae492abeb5f16e57ea8df2792ec2", | |
4693 | + "description": "anv: fix build errors after commit 8b7ff78", | |
4694 | + "nominated": false, | |
4695 | + "nomination_type": null, | |
4696 | + "resolution": 4, | |
4697 | + "main_sha": null, | |
4698 | + "because_sha": null | |
4699 | + }, | |
4700 | + { | |
4701 | + "sha": "ec1968dcc99f38a4a9ac2089373548a668e446b7", | |
4702 | + "description": "radv: fix build errors after commit 8b7ff784", | |
4703 | + "nominated": false, | |
4704 | + "nomination_type": null, | |
4705 | + "resolution": 4, | |
4706 | + "main_sha": null, | |
4707 | + "because_sha": null | |
4708 | + }, | |
4709 | + { | |
4710 | + "sha": "25972df4b796c0363441317a184d9c63e693e491", | |
4711 | + "description": "zink: ci updates", | |
4712 | + "nominated": false, | |
4713 | + "nomination_type": null, | |
4714 | + "resolution": 4, | |
4715 | + "main_sha": null, | |
4716 | + "because_sha": null | |
4717 | + }, | |
4718 | + { | |
4719 | + "sha": "d0833f611a22f4be4d1f2e5c4ba8c395552902f8", | |
4720 | + "description": "zink: support more RGBX formats", | |
4721 | + "nominated": false, | |
4722 | + "nomination_type": null, | |
4723 | + "resolution": 4, | |
4724 | + "main_sha": null, | |
4725 | + "because_sha": null | |
4726 | + }, | |
4727 | + { | |
4728 | + "sha": "1e86cdd8b7b9b817735e453dacd116473a829e00", | |
4729 | + "description": "zink: also nope out of any dst alpha blends for rgbx formats", | |
4730 | + "nominated": false, | |
4731 | + "nomination_type": null, | |
4732 | + "resolution": 4, | |
4733 | + "main_sha": null, | |
4734 | + "because_sha": null | |
4735 | + }, | |
4736 | + { | |
4737 | + "sha": "f091392c0d5412718b589310761b757f58ed4475", | |
4738 | + "description": "zink: smash dstAlphaBlendFactor to ZERO for RGBX attachments", | |
4739 | + "nominated": false, | |
4740 | + "nomination_type": null, | |
4741 | + "resolution": 4, | |
4742 | + "main_sha": null, | |
4743 | + "because_sha": null | |
4744 | + }, | |
4745 | + { | |
4746 | + "sha": "2f2976e9e1c2f4a2258d4710cdb27d011e246c5b", | |
4747 | + "description": "zink: add a more direct check for rgbx formats in create_sampler_view hook", | |
4748 | + "nominated": false, | |
4749 | + "nomination_type": null, | |
4750 | + "resolution": 4, | |
4751 | + "main_sha": null, | |
4752 | + "because_sha": null | |
4753 | + }, | |
4754 | + { | |
4755 | + "sha": "a3a6611e96fba9a519046acf4918099f600dca92", | |
4756 | + "description": "util/queue: add a global data pointer for the queue object", | |
4757 | + "nominated": false, | |
4758 | + "nomination_type": null, | |
4759 | + "resolution": 4, | |
4760 | + "main_sha": null, | |
4761 | + "because_sha": null | |
4762 | + }, | |
4763 | + { | |
4764 | + "sha": "d305a8fc5f72328a583d5db9604f412428679fa4", | |
4765 | + "description": "radeonsi: set desc[3] of all buffer descriptors at context creation", | |
4766 | + "nominated": false, | |
4767 | + "nomination_type": null, | |
4768 | + "resolution": 4, | |
4769 | + "main_sha": null, | |
4770 | + "because_sha": null | |
4771 | + }, | |
4772 | + { | |
4773 | + "sha": "42801731b8d32441f65f16a0757ed72d7c213985", | |
4774 | + "description": "radeonsi: remove no-op unref in si_set_constant_buffer", | |
4775 | + "nominated": false, | |
4776 | + "nomination_type": null, | |
4777 | + "resolution": 4, | |
4778 | + "main_sha": null, | |
4779 | + "because_sha": null | |
4780 | + }, | |
4781 | + { | |
4782 | + "sha": "a29ff4c67ec03105e6d2549b386099dcc3a347df", | |
4783 | + "description": "radeonsi: restructure si_set_sampler_views for faster unbinding trailing slots", | |
4784 | + "nominated": false, | |
4785 | + "nomination_type": null, | |
4786 | + "resolution": 4, | |
4787 | + "main_sha": null, | |
4788 | + "because_sha": null | |
4789 | + }, | |
4790 | + { | |
4791 | + "sha": "10cf7b30314a14428d0584a5383305940d4a6144", | |
4792 | + "description": "radeonsi: don't clear register fields in si_set_mutable_tex_desc_fields", | |
4793 | + "nominated": false, | |
4794 | + "nomination_type": null, | |
4795 | + "resolution": 4, | |
4796 | + "main_sha": null, | |
4797 | + "because_sha": null | |
4798 | + }, | |
4799 | + { | |
4800 | + "sha": "810e84387b4ebcafcdf9d22a4d8de313c02e1404", | |
4801 | + "description": "radeonsi: use the restrict keyword to set sampler view descriptors faster", | |
4802 | + "nominated": false, | |
4803 | + "nomination_type": null, | |
4804 | + "resolution": 4, | |
4805 | + "main_sha": null, | |
4806 | + "because_sha": null | |
4807 | + }, | |
4808 | + { | |
4809 | + "sha": "53853d0b27c1a9609cb2701c59944a91d1f76db2", | |
4810 | + "description": "radeonsi: check is_buffer once instead of 4 times in si_set_sampler_view_desc", | |
4811 | + "nominated": false, | |
4812 | + "nomination_type": null, | |
4813 | + "resolution": 4, | |
4814 | + "main_sha": null, | |
4815 | + "because_sha": null | |
4816 | + }, | |
4817 | + { | |
4818 | + "sha": "a8fc38b276fcdcf3c5f3d3ea0351843c7e8e38c3", | |
4819 | + "description": "zink: do not check buffer-format for usage-bits", | |
4820 | + "nominated": true, | |
4821 | + "nomination_type": 1, | |
4822 | + "resolution": 1, | |
4823 | + "main_sha": null, | |
4824 | + "because_sha": "00dc0036bb6d0c6de1ec3dc395e1d9e63d05ed83" | |
4825 | + }, | |
4826 | + { | |
4827 | + "sha": "662dc70002c0749cdab796701424bf6876f49b9e", | |
4828 | + "description": "zink: drop repeated usage-bit", | |
4829 | + "nominated": true, | |
4830 | + "nomination_type": 1, | |
4831 | + "resolution": 1, | |
4832 | + "main_sha": null, | |
4833 | + "because_sha": "00dc0036bb6d0c6de1ec3dc395e1d9e63d05ed83" | |
4834 | + }, | |
4835 | + { | |
4836 | + "sha": "c35fc7ad2cbb0098dc28c71481185756d327de59", | |
4837 | + "description": "zink: remove unused function", | |
4838 | + "nominated": false, | |
4839 | + "nomination_type": 1, | |
4840 | + "resolution": 4, | |
4841 | + "main_sha": null, | |
4842 | + "because_sha": "e4e20556d62729a4feaa97fcdbb18c0dd2d530cf" | |
4843 | + }, | |
4844 | + { | |
4845 | + "sha": "0360533d6c7a57fa07e16b9ddb9dbd0779e0beb0", | |
4846 | + "description": "zink: fixup signedness of subtraction", | |
4847 | + "nominated": false, | |
4848 | + "nomination_type": 1, | |
4849 | + "resolution": 4, | |
4850 | + "main_sha": null, | |
4851 | + "because_sha": "0c1fe392e8d50b08d4e5cd8f7280ceedfb331442" | |
4852 | + }, | |
4853 | + { | |
4854 | + "sha": "806251c72df16d0b5a4670dcddc5b677915496ed", | |
4855 | + "description": "zink: move queue init to screen creation", | |
4856 | + "nominated": false, | |
4857 | + "nomination_type": null, | |
4858 | + "resolution": 4, | |
4859 | + "main_sha": null, | |
4860 | + "because_sha": null | |
4861 | + }, | |
4862 | + { | |
4863 | + "sha": "0cfcc0602b8ec5ee2dfab302983d8159676720c8", | |
4864 | + "description": "zink: set subdata hook as PIPE_MAP_ONCE", | |
4865 | + "nominated": false, | |
4866 | + "nomination_type": null, | |
4867 | + "resolution": 4, | |
4868 | + "main_sha": null, | |
4869 | + "because_sha": null | |
4870 | + }, | |
4871 | + { | |
4872 | + "sha": "3e66808a821f2bdb7ee23e6aa549e0d382f38bca", | |
4873 | + "description": "zink: update pipe_screen::num_contexts", | |
4874 | + "nominated": false, | |
4875 | + "nomination_type": null, | |
4876 | + "resolution": 4, | |
4877 | + "main_sha": null, | |
4878 | + "because_sha": null | |
4879 | + }, | |
4880 | + { | |
4881 | + "sha": "24342e499bc58348b257716f629dccca3c1b0833", | |
4882 | + "description": "anv: fix dynamic primitive topology for tess", | |
4883 | + "nominated": true, | |
4884 | + "nomination_type": 1, | |
4885 | + "resolution": 1, | |
4886 | + "main_sha": null, | |
4887 | + "because_sha": "f6fa4a8000053fc6e9a25a30f482c59466390898" | |
4888 | + }, | |
4889 | + { | |
4890 | + "sha": "bcd82a90c2429d3079083a4f119ce3f99f9bb764", | |
4891 | + "description": "zink: correct type of flags to flush", | |
4892 | + "nominated": false, | |
4893 | + "nomination_type": null, | |
4894 | + "resolution": 4, | |
4895 | + "main_sha": null, | |
4896 | + "because_sha": null | |
4897 | + }, | |
4898 | + { | |
4899 | + "sha": "fde7b6694b7f2b7d60d1eedafd20c9ab00ef9cb3", | |
4900 | + "description": "zink: use alloca instead of hard-to-size vlas", | |
4901 | + "nominated": false, | |
4902 | + "nomination_type": null, | |
4903 | + "resolution": 4, | |
4904 | + "main_sha": null, | |
4905 | + "because_sha": null | |
4906 | + }, | |
4907 | + { | |
4908 | + "sha": "14597315f89b71fd5e465b9cb0844908b4fd3ae2", | |
4909 | + "description": "zink: use max-descriptor define", | |
4910 | + "nominated": false, | |
4911 | + "nomination_type": null, | |
4912 | + "resolution": 4, | |
4913 | + "main_sha": null, | |
4914 | + "because_sha": null | |
4915 | + }, | |
4916 | + { | |
4917 | + "sha": "4439f500a2c51aa25774021699b0cdbc4ae906f4", | |
4918 | + "description": "zink: introduce a define for max descriptors per type", | |
4919 | + "nominated": false, | |
4920 | + "nomination_type": null, | |
4921 | + "resolution": 4, | |
4922 | + "main_sha": null, | |
4923 | + "because_sha": null | |
4924 | + }, | |
4925 | + { | |
4926 | + "sha": "0ee48216ddbb949a73369ae378f3a4aebaa9c56e", | |
4927 | + "description": "zink: fix more initializer styles", | |
4928 | + "nominated": false, | |
4929 | + "nomination_type": null, | |
4930 | + "resolution": 4, | |
4931 | + "main_sha": null, | |
4932 | + "because_sha": null | |
4933 | + }, | |
4934 | + { | |
4935 | + "sha": "3179ce61e936e097090d88632bcd95dcaaebc8dc", | |
4936 | + "description": "zink: drop some more vla usage", | |
4937 | + "nominated": false, | |
4938 | + "nomination_type": null, | |
4939 | + "resolution": 4, | |
4940 | + "main_sha": null, | |
4941 | + "because_sha": null | |
4942 | + }, | |
4943 | + { | |
4944 | + "sha": "c14af0065e4ed743c832ccde6ea0a277f7ecf629", | |
4945 | + "description": "zink: add missing compiler-dependency", | |
4946 | + "nominated": false, | |
4947 | + "nomination_type": 1, | |
4948 | + "resolution": 4, | |
4949 | + "main_sha": null, | |
4950 | + "because_sha": "ed2fb8099e4588e058e7a18df6f63543d88bd493" | |
4951 | + }, | |
4952 | + { | |
4953 | + "sha": "b20c1c2a3bd368c86adb15606d55e5cd0ed2b8b1", | |
4954 | + "description": "zink: drop paranoid code", | |
4955 | + "nominated": false, | |
4956 | + "nomination_type": null, | |
4957 | + "resolution": 4, | |
4958 | + "main_sha": null, | |
4959 | + "because_sha": null | |
4960 | + }, | |
4961 | + { | |
4962 | + "sha": "0bb47032922b6faf043311ada0407bb43460de0c", | |
4963 | + "description": "zink: do not unmap dt-buffers twice", | |
4964 | + "nominated": true, | |
4965 | + "nomination_type": 1, | |
4966 | + "resolution": 1, | |
4967 | + "main_sha": null, | |
4968 | + "because_sha": "5159f406d895c6a253e90c6b076045ac133e55af" | |
4969 | + }, | |
4970 | + { | |
4971 | + "sha": "bb9efa527afccce2d40d196fe3b0ffa2460ea4d5", | |
4972 | + "description": "zink: split stencil ref changes to separate dirty flag", | |
4973 | + "nominated": false, | |
4974 | + "nomination_type": null, | |
4975 | + "resolution": 4, | |
4976 | + "main_sha": null, | |
4977 | + "because_sha": null | |
4978 | + }, | |
4979 | + { | |
4980 | + "sha": "e6a100b4cd5a8404877ad1d22544d76906593efb", | |
4981 | + "description": "zink: add update flag for dsa state change", | |
4982 | + "nominated": false, | |
4983 | + "nomination_type": null, | |
4984 | + "resolution": 4, | |
4985 | + "main_sha": null, | |
4986 | + "because_sha": null | |
4987 | + }, | |
4988 | + { | |
4989 | + "sha": "57ee14dd8c9b7c60c9f07c29537c7b78d02f541a", | |
4990 | + "description": "zink: add update flag for rasterizer state change", | |
4991 | + "nominated": false, | |
4992 | + "nomination_type": null, | |
4993 | + "resolution": 4, | |
4994 | + "main_sha": null, | |
4995 | + "because_sha": null | |
4996 | + }, | |
4997 | + { | |
4998 | + "sha": "541af28cb28810a041c5c363b4210d65a2fbdc4f", | |
4999 | + "description": "zink: handle nir_op_pack_64_2x32", | |
5000 | + "nominated": false, | |
5001 | + "nomination_type": null, | |
5002 | + "resolution": 4, | |
5003 | + "main_sha": null, | |
5004 | + "because_sha": null | |
5005 | + }, | |
5006 | + { | |
5007 | + "sha": "9753dec07dcdb56be5a4bf97b37b40861033a2b3", | |
5008 | + "description": "v3dv: remove sRGB blending workaround", | |
5009 | + "nominated": false, | |
5010 | + "nomination_type": null, | |
5011 | + "resolution": 4, | |
5012 | + "main_sha": null, | |
5013 | + "because_sha": null | |
5014 | + }, | |
5015 | + { | |
5016 | + "sha": "70d3ba1b689ef529aa33cc65598279a2cf274860", | |
5017 | + "description": "v3dv: clamp srgb render targets", | |
5018 | + "nominated": false, | |
5019 | + "nomination_type": null, | |
5020 | + "resolution": 4, | |
5021 | + "main_sha": null, | |
5022 | + "because_sha": null | |
5023 | + }, | |
5024 | + { | |
5025 | + "sha": "a78e7a76c81b6a11bb198ef5077f7b578c2b9b10", | |
5026 | + "description": "Revert \"v3dv: allow creating uncompressed views from compressed images and vice versa\"", | |
5027 | + "nominated": false, | |
5028 | + "nomination_type": 2, | |
5029 | + "resolution": 4, | |
5030 | + "main_sha": null, | |
5031 | + "because_sha": "b32a48c7e26bffdc696d3cceef0305e2c4731c96" | |
5032 | + }, | |
5033 | + { | |
5034 | + "sha": "8ae5b44339187521999a621efd47ebc6c718f703", | |
5035 | + "description": "v3dv: don't support VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT", | |
5036 | + "nominated": false, | |
5037 | + "nomination_type": null, | |
5038 | + "resolution": 4, | |
5039 | + "main_sha": null, | |
5040 | + "because_sha": null | |
5041 | + }, | |
5042 | + { | |
5043 | + "sha": "c1f938b6475b1c936a78f6aacf76a1601c87a0bb", | |
5044 | + "description": "nv50/ir: fix surface lowering when values get shared accross operations", | |
5045 | + "nominated": true, | |
5046 | + "nomination_type": 1, | |
5047 | + "resolution": 1, | |
5048 | + "main_sha": null, | |
5049 | + "because_sha": "869e32593a9096b845dd6106f8f86e1c41fac968" | |
5050 | + }, | |
5051 | + { | |
3 | 5052 | "sha": "561f9ae74b2b7da06bb4830aaca8d017a3dd2746", |
4 | 5053 | "description": "st/mesa: always report the max samples as supported", |
5 | 5054 | "nominated": false, |
@@ -1 +1 @@ | ||
1 | -21.1.3 | |
1 | +21.1.4 |
@@ -0,0 +1,156 @@ | ||
1 | +Mesa 21.1.4 Release Notes / 2021-06-30 | |
2 | +====================================== | |
3 | + | |
4 | +Mesa 21.1.4 is a bug fix release which fixes bugs found since the 21.1.3 release. | |
5 | + | |
6 | +Mesa 21.1.4 implements the OpenGL 4.6 API, but the version reported by | |
7 | +glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / | |
8 | +glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. | |
9 | +Some drivers don't support all the features required in OpenGL 4.6. OpenGL | |
10 | +4.6 is **only** available if requested at context creation. | |
11 | +Compatibility contexts may report a lower version depending on each driver. | |
12 | + | |
13 | +Mesa 21.1.4 implements the Vulkan 1.2 API, but the version reported by | |
14 | +the apiVersion property of the VkPhysicalDeviceProperties struct | |
15 | +depends on the particular driver being used. | |
16 | + | |
17 | +SHA256 checksum | |
18 | +--------------- | |
19 | + | |
20 | +:: | |
21 | + | |
22 | + TBD. | |
23 | + | |
24 | + | |
25 | +New features | |
26 | +------------ | |
27 | + | |
28 | +- None | |
29 | + | |
30 | + | |
31 | +Bug fixes | |
32 | +--------- | |
33 | + | |
34 | +- [anv] GravityMark (benchmark) crashes on ANV | |
35 | +- [opengl] We happy few not being rendered correctly | |
36 | +- Factorio: GPU hang when opening machine inventory | |
37 | +- RuneScape on Mesa 21.1.1 (VEGA10) has bad performance and leaks memory | |
38 | +- Supraland: flickering black bars on ground | |
39 | +- radv: GPU hang in Cyberpunk 2077 on Big Navi | |
40 | +- [amdgpu][renoir][rx5500m]: [drm:0xffffffff8198ad5e] \*ERROR* ring gfx timeout, signaled seq=10952, emitted seq=10954 | |
41 | +- [spirv-fuzz] SPIR-V parsing FAILED: Invalid back or cross-edge in the CFG | |
42 | +- panfrost Mount and Blade: Warband (glitches) | |
43 | +- anv: dEQP-VK.robustness.robustness2*no_fmt_qual.null_descriptor.samples* fail | |
44 | + | |
45 | + | |
46 | +Changes | |
47 | +------- | |
48 | + | |
49 | +Bas Nieuwenhuizen (3): | |
50 | + | |
51 | +- util/fossilize_db: Pull seek into lock. | |
52 | +- util/fossilize_db: Split out reading the index. | |
53 | +- util/fossilize_db: Do not lock the fossilize db permanently. | |
54 | + | |
55 | +Caio Marcelo de Oliveira Filho (2): | |
56 | + | |
57 | +- spirv: Fix handling of OpBranchConditional with same THEN and ELSE | |
58 | +- nir/opt_if: Don't split ALU for single block infinite loops | |
59 | + | |
60 | +Daniel Stone (1): | |
61 | + | |
62 | +- llvmpipe: Add handle export for resource_get_param | |
63 | + | |
64 | +Dave Airlie (1): | |
65 | + | |
66 | +- i965: fix regression in pipe control on g45 | |
67 | + | |
68 | +Eric Engestrom (2): | |
69 | + | |
70 | +- .pick_status.json: Update to 977355c6e5efd781dde85d834172dd23cd4852f1 | |
71 | +- .pick_status.json: Update to 40b67a292297606f0a7576e3ef4087028d5edd17 | |
72 | + | |
73 | +Erik Faye-Lund (7): | |
74 | + | |
75 | +- zink: do not unmap dt-buffers twice | |
76 | +- zink: drop repeated usage-bit | |
77 | +- zink: do not check buffer-format for usage-bits | |
78 | +- zink: remove unused moltenvk functions | |
79 | +- libgl-gdi: add missing include | |
80 | +- aux/trace: fix bool argument | |
81 | +- ci/windows: work around meson encoding issues | |
82 | + | |
83 | +Francisco Jerez (2): | |
84 | + | |
85 | +- intel/fs: Teach IR about EOT instruction writing the accumulator implicitly on TGL+. | |
86 | +- intel/fs: Fix synchronization of accumulator-clearing W/A move on TGL+. | |
87 | + | |
88 | +Icecream95 (5): | |
89 | + | |
90 | +- pan/mdg: Add a bundle ID to instructions | |
91 | +- pan/mdg: Reorder some code in mir_spill_register | |
92 | +- pan/mdg: Fill from TLS before spilling non-SSA nodes | |
93 | +- pan/mdg: Fix reading a spilt register in the bundle it's written | |
94 | +- pan/mdg: Add 16 bytes of padding to the end of shaders | |
95 | + | |
96 | +Iván Briano (1): | |
97 | + | |
98 | +- intel/nir: Fix txs for null surfaces | |
99 | + | |
100 | +Jason Ekstrand (1): | |
101 | + | |
102 | +- spirv: Create acceleration structure and shader record variables | |
103 | + | |
104 | +Karol Herbst (1): | |
105 | + | |
106 | +- nv50/ir: fix surface lowering when values get shared accross operations | |
107 | + | |
108 | +Kenneth Graunke (1): | |
109 | + | |
110 | +- anv: Fix dynamic primitive topology for tess on Gfx7.x too | |
111 | + | |
112 | +Lionel Landwerlin (1): | |
113 | + | |
114 | +- anv: allocate bigger batches as we grow command buffers | |
115 | + | |
116 | +Marek Olšák (1): | |
117 | + | |
118 | +- mesa: unreference zombie buffers when creating buffers to lower memory usage | |
119 | + | |
120 | +Martin Krastev (1): | |
121 | + | |
122 | +- compiler/glsl: Use mutex lock while freeing up mem_ctx | |
123 | + | |
124 | +Mike Blumenkrantz (2): | |
125 | + | |
126 | +- anv: fix dynamic primitive topology for tess | |
127 | +- zink: handle custom border color without matching wrap mode case | |
128 | + | |
129 | +Pierre-Eric Pelloux-Prayer (2): | |
130 | + | |
131 | +- radeonsi: skip instance_count==0 draws on <= GFX9 | |
132 | +- radeonsi: disable ngg culling on llvm < 12 | |
133 | + | |
134 | +Samuel Pitoiset (2): | |
135 | + | |
136 | +- radv: reject binding buffer/image when the device memory is too small | |
137 | +- radv: always decompress both aspects of a depth/stencil image | |
138 | + | |
139 | +Simon Ser (1): | |
140 | + | |
141 | +- amd/addrlib: remove Meson debug message() | |
142 | + | |
143 | +Thong Thai (1): | |
144 | + | |
145 | +- radeon/vcn/enc: Add missing line to HEVC SPS header code | |
146 | + | |
147 | +Timothy Arceri (1): | |
148 | + | |
149 | +- util: add work around for the game We Happy Few | |
150 | + | |
151 | +Timur Kristóf (4): | |
152 | + | |
153 | +- ac/nir: Update TCS output barriers with nir_var_mem_shared. | |
154 | +- radv/llvm: Emit s_barrier at the beginning of NGG non-GS shaders. | |
155 | +- aco/gfx10: NGG zero output workaround for conservative rasterization. | |
156 | +- aco/gfx10: Emit barrier at the start of NGG VS and TES. |
@@ -68,8 +68,6 @@ foreach w : ['-Wno-unused-variable', '-Wno-unused-local-typedefs', | ||
68 | 68 | endif |
69 | 69 | endforeach |
70 | 70 | |
71 | -message(cpp_args_addrlib) | |
72 | - | |
73 | 71 | libamdgpu_addrlib = static_library( |
74 | 72 | 'addrlib', |
75 | 73 | files_addrlib, |
@@ -2637,11 +2637,3 @@ dEQP-VK.glsl.texture_gather.offsets.min_required_offset.2d_array.rgba8ui.base_le | ||
2637 | 2637 | dEQP-VK.glsl.texture_gather.offsets.min_required_offset.2d_array.rgba8ui.base_level.sparse_level_2_amd_bias,Fail |
2638 | 2638 | dEQP-VK.glsl.texture_gather.offsets.min_required_offset.2d_array.rgba8ui.base_level.sparse_level_2_amd_lod,Fail |
2639 | 2639 | |
2640 | -# Oland specific issues, might need further investigation | |
2641 | -dEQP-VK.renderpass.suballocation.subpass_dependencies.late_fragment_tests.render_size_128_128.subpass_count_2.d32_sfloat_s8_uint,Fail | |
2642 | -dEQP-VK.renderpass.suballocation.subpass_dependencies.late_fragment_tests.render_size_128_128.subpass_count_3.d32_sfloat_s8_uint,Fail | |
2643 | -dEQP-VK.renderpass.suballocation.subpass_dependencies.late_fragment_tests.render_size_128_128.subpass_count_5.d32_sfloat_s8_uint,Fail | |
2644 | -dEQP-VK.renderpass2.suballocation.subpass_dependencies.late_fragment_tests.render_size_128_128.subpass_count_2.d32_sfloat_s8_uint,Fail | |
2645 | -dEQP-VK.renderpass2.suballocation.subpass_dependencies.late_fragment_tests.render_size_128_128.subpass_count_3.d32_sfloat_s8_uint,Fail | |
2646 | -dEQP-VK.renderpass2.suballocation.subpass_dependencies.late_fragment_tests.render_size_128_128.subpass_count_5.d32_sfloat_s8_uint,Fail | |
2647 | - |
@@ -430,6 +430,18 @@ lower_hs_output_load(nir_builder *b, | ||
430 | 430 | .align_mul = 16u, .align_offset = (nir_intrinsic_component(intrin) * 4u) % 16u); |
431 | 431 | } |
432 | 432 | |
433 | +static void | |
434 | +update_hs_scoped_barrier(nir_intrinsic_instr *intrin) | |
435 | +{ | |
436 | + /* Output loads and stores are lowered to shared memory access, | |
437 | + * so we have to update the barriers to also reflect this. | |
438 | + */ | |
439 | + unsigned mem_modes = nir_intrinsic_memory_modes(intrin); | |
440 | + if (mem_modes & nir_var_shader_out) | |
441 | + mem_modes |= nir_var_mem_shared; | |
442 | + nir_intrinsic_set_memory_modes(intrin, mem_modes); | |
443 | +} | |
444 | + | |
433 | 445 | static nir_ssa_def * |
434 | 446 | lower_hs_output_access(nir_builder *b, |
435 | 447 | nir_instr *instr, |
@@ -442,8 +454,14 @@ lower_hs_output_access(nir_builder *b, | ||
442 | 454 | intrin->intrinsic == nir_intrinsic_store_per_vertex_output) { |
443 | 455 | lower_hs_output_store(b, intrin, st); |
444 | 456 | return NIR_LOWER_INSTR_PROGRESS_REPLACE; |
445 | - } else { | |
457 | + } else if (intrin->intrinsic == nir_intrinsic_load_output || | |
458 | + intrin->intrinsic == nir_intrinsic_load_per_vertex_output) { | |
446 | 459 | return lower_hs_output_load(b, intrin, st); |
460 | + } else if (intrin->intrinsic == nir_intrinsic_scoped_barrier) { | |
461 | + update_hs_scoped_barrier(intrin); | |
462 | + return NIR_LOWER_INSTR_PROGRESS; | |
463 | + } else { | |
464 | + unreachable("intrinsic not supported by lower_hs_output_access"); | |
447 | 465 | } |
448 | 466 | } |
449 | 467 |
@@ -571,7 +589,7 @@ lower_tes_input_load(nir_builder *b, | ||
571 | 589 | } |
572 | 590 | |
573 | 591 | static bool |
574 | -filter_any_output_access(const nir_instr *instr, | |
592 | +filter_hs_output_access(const nir_instr *instr, | |
575 | 593 | UNUSED const void *st) |
576 | 594 | { |
577 | 595 | if (instr->type != nir_instr_type_intrinsic) |
@@ -581,7 +599,8 @@ filter_any_output_access(const nir_instr *instr, | ||
581 | 599 | return intrin->intrinsic == nir_intrinsic_store_output || |
582 | 600 | intrin->intrinsic == nir_intrinsic_store_per_vertex_output || |
583 | 601 | intrin->intrinsic == nir_intrinsic_load_output || |
584 | - intrin->intrinsic == nir_intrinsic_load_per_vertex_output; | |
602 | + intrin->intrinsic == nir_intrinsic_load_per_vertex_output || | |
603 | + intrin->intrinsic == nir_intrinsic_scoped_barrier; | |
585 | 604 | } |
586 | 605 | |
587 | 606 | static bool |
@@ -658,7 +677,7 @@ ac_nir_lower_hs_outputs_to_mem(nir_shader *shader, | ||
658 | 677 | }; |
659 | 678 | |
660 | 679 | nir_shader_lower_instructions(shader, |
661 | - filter_any_output_access, | |
680 | + filter_hs_output_access, | |
662 | 681 | lower_hs_output_access, |
663 | 682 | &state); |
664 | 683 |
@@ -11187,7 +11187,9 @@ void ngg_emit_sendmsg_gs_alloc_req(isel_context *ctx, Temp vtx_cnt = Temp(), Tem | ||
11187 | 11187 | bld.sopp(aco_opcode::s_sendmsg, bld.m0(tmp), -1, sendmsg_gs_alloc_req); |
11188 | 11188 | |
11189 | 11189 | if (prm_cnt_0.id()) { |
11190 | - /* Navi 1x workaround: export a zero-area triangle when GS has no output. */ | |
11190 | + /* Navi 1x workaround: export a triangle with NaN coordinates when GS has no output. | |
11191 | + * It can't have all-zero positions because that would render an undesired pixel with conservative rasterization. | |
11192 | + */ | |
11191 | 11193 | Temp first_lane = bld.sop1(Builder::s_ff1_i32, bld.def(s1), Operand(exec, bld.lm)); |
11192 | 11194 | Temp cond = bld.sop2(Builder::s_lshl, bld.def(bld.lm), bld.def(s1, scc), |
11193 | 11195 | Operand(1u, ctx->program->wave_size == 64), first_lane); |
@@ -11198,11 +11200,15 @@ void ngg_emit_sendmsg_gs_alloc_req(isel_context *ctx, Temp vtx_cnt = Temp(), Tem | ||
11198 | 11200 | bld.reset(ctx->block); |
11199 | 11201 | ctx->block->kind |= block_kind_export_end; |
11200 | 11202 | |
11203 | + /* Use zero: means that it's a triangle whose every vertex index is 0. */ | |
11201 | 11204 | Temp zero = bld.copy(bld.def(v1), Operand(0u)); |
11205 | + /* Use NaN for the coordinates, so that the rasterizer allways culls it. */ | |
11206 | + Temp nan_coord = bld.copy(bld.def(v1), Operand(-1u)); | |
11207 | + | |
11202 | 11208 | bld.exp(aco_opcode::exp, zero, Operand(v1), Operand(v1), Operand(v1), |
11203 | 11209 | 1 /* enabled mask */, V_008DFC_SQ_EXP_PRIM /* dest */, |
11204 | 11210 | false /* compressed */, true /* done */, false /* valid mask */); |
11205 | - bld.exp(aco_opcode::exp, zero, zero, zero, zero, | |
11211 | + bld.exp(aco_opcode::exp, nan_coord, nan_coord, nan_coord, nan_coord, | |
11206 | 11212 | 0xf /* enabled mask */, V_008DFC_SQ_EXP_POS /* dest */, |
11207 | 11213 | false /* compressed */, true /* done */, true /* valid mask */); |
11208 | 11214 |
@@ -11830,6 +11836,13 @@ void select_program(Program *program, | ||
11830 | 11836 | create_workgroup_barrier(bld); |
11831 | 11837 | } |
11832 | 11838 | |
11839 | + if (program->chip_class == GFX10 && | |
11840 | + program->stage.hw == HWStage::NGG && | |
11841 | + program->stage.num_sw_stages() == 1) { | |
11842 | + /* Workaround for Navi 1x HW bug to ensure all NGG waves launch before s_sendmsg(GS_ALLOC_REQ). */ | |
11843 | + Builder(ctx.program, ctx.block).sopp(aco_opcode::s_barrier, -1u, 0u); | |
11844 | + } | |
11845 | + | |
11833 | 11846 | if (check_merged_wave_info) { |
11834 | 11847 | Temp cond = merged_wave_info_to_mask(&ctx, i); |
11835 | 11848 | begin_divergent_if_then(&ctx, &ic_merged_wave_info, cond); |
@@ -5427,14 +5427,27 @@ radv_GetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory, | ||
5427 | 5427 | } |
5428 | 5428 | |
5429 | 5429 | VkResult |
5430 | -radv_BindBufferMemory2(VkDevice device, uint32_t bindInfoCount, | |
5430 | +radv_BindBufferMemory2(VkDevice _device, uint32_t bindInfoCount, | |
5431 | 5431 | const VkBindBufferMemoryInfo *pBindInfos) |
5432 | 5432 | { |
5433 | + RADV_FROM_HANDLE(radv_device, device, _device); | |
5434 | + | |
5433 | 5435 | for (uint32_t i = 0; i < bindInfoCount; ++i) { |
5434 | 5436 | RADV_FROM_HANDLE(radv_device_memory, mem, pBindInfos[i].memory); |
5435 | 5437 | RADV_FROM_HANDLE(radv_buffer, buffer, pBindInfos[i].buffer); |
5436 | 5438 | |
5437 | 5439 | if (mem) { |
5440 | + if (mem->alloc_size) { | |
5441 | + VkMemoryRequirements req; | |
5442 | + | |
5443 | + radv_GetBufferMemoryRequirements(_device, pBindInfos[i].buffer, &req); | |
5444 | + | |
5445 | + if (pBindInfos[i].memoryOffset + req.size > mem->alloc_size) { | |
5446 | + return vk_errorf(device->instance, VK_ERROR_UNKNOWN, | |
5447 | + "Device memory object too small for the buffer.\n"); | |
5448 | + } | |
5449 | + } | |
5450 | + | |
5438 | 5451 | buffer->bo = mem->bo; |
5439 | 5452 | buffer->offset = pBindInfos[i].memoryOffset; |
5440 | 5453 | } else { |
@@ -5457,14 +5470,27 @@ radv_BindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, | ||
5457 | 5470 | } |
5458 | 5471 | |
5459 | 5472 | VkResult |
5460 | -radv_BindImageMemory2(VkDevice device, uint32_t bindInfoCount, | |
5473 | +radv_BindImageMemory2(VkDevice _device, uint32_t bindInfoCount, | |
5461 | 5474 | const VkBindImageMemoryInfo *pBindInfos) |
5462 | 5475 | { |
5476 | + RADV_FROM_HANDLE(radv_device, device, _device); | |
5477 | + | |
5463 | 5478 | for (uint32_t i = 0; i < bindInfoCount; ++i) { |
5464 | 5479 | RADV_FROM_HANDLE(radv_device_memory, mem, pBindInfos[i].memory); |
5465 | 5480 | RADV_FROM_HANDLE(radv_image, image, pBindInfos[i].image); |
5466 | 5481 | |
5467 | 5482 | if (mem) { |
5483 | + if (mem->alloc_size) { | |
5484 | + VkMemoryRequirements req; | |
5485 | + | |
5486 | + radv_GetImageMemoryRequirements(_device, pBindInfos[i].image, &req); | |
5487 | + | |
5488 | + if (pBindInfos[i].memoryOffset + req.size > mem->alloc_size) { | |
5489 | + return vk_errorf(device->instance, VK_ERROR_UNKNOWN, | |
5490 | + "Device memory object too small for the image.\n"); | |
5491 | + } | |
5492 | + } | |
5493 | + | |
5468 | 5494 | image->bo = mem->bo; |
5469 | 5495 | image->offset = pBindInfos[i].memoryOffset; |
5470 | 5496 | } else { |
@@ -324,17 +324,9 @@ radv_get_depth_pipeline(struct radv_cmd_buffer *cmd_buffer, struct radv_image *i | ||
324 | 324 | struct radv_meta_state *state = &cmd_buffer->device->meta_state; |
325 | 325 | uint32_t samples = image->info.samples; |
326 | 326 | uint32_t samples_log2 = ffs(samples) - 1; |
327 | - enum radv_depth_decompress decompress; | |
327 | + enum radv_depth_decompress decompress = DECOMPRESS_DEPTH_STENCIL; | |
328 | 328 | VkPipeline *pipeline; |
329 | 329 | |
330 | - if (subresourceRange->aspectMask == VK_IMAGE_ASPECT_DEPTH_BIT) { | |
331 | - decompress = DECOMPRESS_DEPTH; | |
332 | - } else if (subresourceRange->aspectMask == VK_IMAGE_ASPECT_STENCIL_BIT) { | |
333 | - decompress = DECOMPRESS_STENCIL; | |
334 | - } else { | |
335 | - decompress = DECOMPRESS_DEPTH_STENCIL; | |
336 | - } | |
337 | - | |
338 | 330 | if (!state->depth_decomp[samples_log2].decompress_pipeline[decompress]) { |
339 | 331 | VkResult ret; |
340 | 332 |
@@ -3023,6 +3023,10 @@ ac_translate_nir_to_llvm(struct ac_llvm_compiler *ac_llvm, struct nir_shader *co | ||
3023 | 3023 | LLVMSetInitializer(ctx.gs_ngg_scratch, LLVMGetUndef(asi32)); |
3024 | 3024 | LLVMSetAlignment(ctx.gs_ngg_scratch, 4); |
3025 | 3025 | } |
3026 | + | |
3027 | + /* GFX10 hang workaround - there needs to be an s_barrier before gs_alloc_req always */ | |
3028 | + if (ctx.ac.chip_class == GFX10 && shader_count == 1) | |
3029 | + ac_build_s_barrier(&ctx.ac); | |
3026 | 3030 | } |
3027 | 3031 | |
3028 | 3032 | for (int shader_idx = 0; shader_idx < shader_count; ++shader_idx) { |
@@ -90,6 +90,8 @@ | ||
90 | 90 | |
91 | 91 | using namespace ir_builder; |
92 | 92 | |
93 | +static mtx_t builtins_lock = _MTX_INITIALIZER_NP; | |
94 | + | |
93 | 95 | /** |
94 | 96 | * Availability predicates: |
95 | 97 | * @{ |
@@ -1296,7 +1298,15 @@ builtin_builder::builtin_builder() | ||
1296 | 1298 | |
1297 | 1299 | builtin_builder::~builtin_builder() |
1298 | 1300 | { |
1301 | + mtx_lock(&builtins_lock); | |
1302 | + | |
1299 | 1303 | ralloc_free(mem_ctx); |
1304 | + mem_ctx = NULL; | |
1305 | + | |
1306 | + ralloc_free(shader); | |
1307 | + shader = NULL; | |
1308 | + | |
1309 | + mtx_unlock(&builtins_lock); | |
1300 | 1310 | } |
1301 | 1311 | |
1302 | 1312 | ir_function_signature * |
@@ -7753,7 +7763,6 @@ builtin_builder::_helper_invocation() | ||
7753 | 7763 | |
7754 | 7764 | /* The singleton instance of builtin_builder. */ |
7755 | 7765 | static builtin_builder builtins; |
7756 | -static mtx_t builtins_lock = _MTX_INITIALIZER_NP; | |
7757 | 7766 | static uint32_t builtin_users = 0; |
7758 | 7767 | |
7759 | 7768 | /** |
@@ -1091,10 +1091,14 @@ nir_lower_txs_lod(nir_builder *b, nir_tex_instr *tex) | ||
1091 | 1091 | nir_instr_rewrite_src(&tex->instr, &tex->src[lod_idx].src, |
1092 | 1092 | nir_src_for_ssa(nir_imm_int(b, 0))); |
1093 | 1093 | |
1094 | - /* TXS(LOD) = max(TXS(0) >> LOD, 1) */ | |
1094 | + /* TXS(LOD) = max(TXS(0) >> LOD, 1) | |
1095 | + * But we do min(TXS(0), TXS(LOD)) to catch the case of a null surface, | |
1096 | + * which should return 0, not 1. | |
1097 | + */ | |
1095 | 1098 | b->cursor = nir_after_instr(&tex->instr); |
1096 | - nir_ssa_def *minified = nir_imax(b, nir_ushr(b, &tex->dest.ssa, lod), | |
1097 | - nir_imm_int(b, 1)); | |
1099 | + nir_ssa_def *minified = nir_imin(b, &tex->dest.ssa, | |
1100 | + nir_imax(b, nir_ushr(b, &tex->dest.ssa, lod), | |
1101 | + nir_imm_int(b, 1))); | |
1098 | 1102 | |
1099 | 1103 | /* Make sure the component encoding the array size (if any) is not |
1100 | 1104 | * minified. |
@@ -408,6 +408,10 @@ opt_split_alu_of_phi(nir_builder *b, nir_loop *loop) | ||
408 | 408 | if (header_block->predecessors->entries != 2) |
409 | 409 | return false; |
410 | 410 | |
411 | + nir_block *continue_block = find_continue_block(loop); | |
412 | + if (continue_block == header_block) | |
413 | + return false; | |
414 | + | |
411 | 415 | nir_foreach_instr_safe(instr, header_block) { |
412 | 416 | if (instr->type != nir_instr_type_alu) |
413 | 417 | continue; |
@@ -499,8 +503,6 @@ opt_split_alu_of_phi(nir_builder *b, nir_loop *loop) | ||
499 | 503 | } |
500 | 504 | |
501 | 505 | /* Split ALU of Phi */ |
502 | - nir_block *const continue_block = find_continue_block(loop); | |
503 | - | |
504 | 506 | b->cursor = nir_after_block(prev_block); |
505 | 507 | nir_ssa_def *prev_value = clone_alu_and_replace_src_defs(b, alu, prev_srcs); |
506 | 508 |
@@ -683,7 +685,7 @@ opt_simplify_bcsel_of_phi(nir_builder *b, nir_loop *loop) | ||
683 | 685 | * continue_block from the other bcsel source. Both sources have |
684 | 686 | * already been verified to be phi nodes. |
685 | 687 | */ |
686 | - nir_block *const continue_block = find_continue_block(loop); | |
688 | + nir_block *continue_block = find_continue_block(loop); | |
687 | 689 | nir_phi_instr *const phi = nir_phi_instr_create(b->shader); |
688 | 690 | nir_phi_src *phi_src; |
689 | 691 |
@@ -722,26 +722,11 @@ vtn_process_block(struct vtn_builder *b, | ||
722 | 722 | cond_val->type->type != glsl_bool_type(), |
723 | 723 | "Condition must be a Boolean type scalar"); |
724 | 724 | |
725 | - struct vtn_block *then_block = vtn_block(b, block->branch[2]); | |
726 | - struct vtn_block *else_block = vtn_block(b, block->branch[3]); | |
727 | - | |
728 | - if (then_block == else_block) { | |
729 | - /* This is uncommon but it can happen. We treat this the same way as | |
730 | - * an unconditional branch. | |
731 | - */ | |
732 | - block->branch_type = vtn_handle_branch(b, cf_parent, then_block); | |
733 | - | |
734 | - if (block->branch_type == vtn_branch_type_none) | |
735 | - return then_block; | |
736 | - else | |
737 | - return NULL; | |
738 | - } | |
739 | - | |
740 | 725 | struct vtn_if *if_stmt = rzalloc(b, struct vtn_if); |
741 | 726 | |
742 | 727 | if_stmt->node.type = vtn_cf_node_type_if; |
743 | 728 | if_stmt->node.parent = cf_parent; |
744 | - if_stmt->condition = block->branch[1]; | |
729 | + if_stmt->header_block = block; | |
745 | 730 | list_inithead(&if_stmt->then_body); |
746 | 731 | list_inithead(&if_stmt->else_body); |
747 | 732 |
@@ -759,16 +744,20 @@ vtn_process_block(struct vtn_builder *b, | ||
759 | 744 | if_stmt->control = block->merge[2]; |
760 | 745 | } |
761 | 746 | |
747 | + struct vtn_block *then_block = vtn_block(b, block->branch[2]); | |
762 | 748 | if_stmt->then_type = vtn_handle_branch(b, &if_stmt->node, then_block); |
763 | 749 | if (if_stmt->then_type == vtn_branch_type_none) { |
764 | 750 | vtn_add_cfg_work_item(b, work_list, &if_stmt->node, |
765 | 751 | &if_stmt->then_body, then_block); |
766 | 752 | } |
767 | 753 | |
768 | - if_stmt->else_type = vtn_handle_branch(b, &if_stmt->node, else_block); | |
769 | - if (if_stmt->else_type == vtn_branch_type_none) { | |
770 | - vtn_add_cfg_work_item(b, work_list, &if_stmt->node, | |
771 | - &if_stmt->else_body, else_block); | |
754 | + struct vtn_block *else_block = vtn_block(b, block->branch[3]); | |
755 | + if (then_block != else_block) { | |
756 | + if_stmt->else_type = vtn_handle_branch(b, &if_stmt->node, else_block); | |
757 | + if (if_stmt->else_type == vtn_branch_type_none) { | |
758 | + vtn_add_cfg_work_item(b, work_list, &if_stmt->node, | |
759 | + &if_stmt->else_body, else_block); | |
760 | + } | |
772 | 761 | } |
773 | 762 | |
774 | 763 | return if_stmt->merge_block; |
@@ -1101,10 +1090,22 @@ vtn_emit_cf_list_structured(struct vtn_builder *b, struct list_head *cf_list, | ||
1101 | 1090 | |
1102 | 1091 | case vtn_cf_node_type_if: { |
1103 | 1092 | struct vtn_if *vtn_if = vtn_cf_node_as_if(node); |
1093 | + const uint32_t *branch = vtn_if->header_block->branch; | |
1094 | + vtn_assert((branch[0] & SpvOpCodeMask) == SpvOpBranchConditional); | |
1095 | + | |
1096 | + /* If both branches are the same, just emit the first block, which is | |
1097 | + * the only one we filled when building the CFG. | |
1098 | + */ | |
1099 | + if (branch[2] == branch[3]) { | |
1100 | + vtn_emit_cf_list_structured(b, &vtn_if->then_body, | |
1101 | + switch_fall_var, has_switch_break, handler); | |
1102 | + break; | |
1103 | + } | |
1104 | + | |
1104 | 1105 | bool sw_break = false; |
1105 | 1106 | |
1106 | 1107 | nir_if *nif = |
1107 | - nir_push_if(&b->nb, vtn_get_nir_ssa(b, vtn_if->condition)); | |
1108 | + nir_push_if(&b->nb, vtn_get_nir_ssa(b, branch[1])); | |
1108 | 1109 | |
1109 | 1110 | nif->control = vtn_selection_control(b, vtn_if); |
1110 | 1111 |
@@ -181,14 +181,13 @@ struct vtn_loop { | ||
181 | 181 | struct vtn_if { |
182 | 182 | struct vtn_cf_node node; |
183 | 183 | |
184 | - uint32_t condition; | |
185 | - | |
186 | 184 | enum vtn_branch_type then_type; |
187 | 185 | struct list_head then_body; |
188 | 186 | |
189 | 187 | enum vtn_branch_type else_type; |
190 | 188 | struct list_head else_body; |
191 | 189 | |
190 | + struct vtn_block *header_block; | |
192 | 191 | struct vtn_block *merge_block; |
193 | 192 | |
194 | 193 | SpvSelectionControlMask control; |
@@ -1831,6 +1831,8 @@ vtn_create_variable(struct vtn_builder *b, struct vtn_value *val, | ||
1831 | 1831 | case vtn_variable_mode_ubo: |
1832 | 1832 | case vtn_variable_mode_ssbo: |
1833 | 1833 | case vtn_variable_mode_push_constant: |
1834 | + case vtn_variable_mode_accel_struct: | |
1835 | + case vtn_variable_mode_shader_record: | |
1834 | 1836 | var->var = rzalloc(b->shader, nir_variable); |
1835 | 1837 | var->var->name = ralloc_strdup(var->var, val->name); |
1836 | 1838 |
@@ -1936,11 +1938,6 @@ vtn_create_variable(struct vtn_builder *b, struct vtn_value *val, | ||
1936 | 1938 | break; |
1937 | 1939 | } |
1938 | 1940 | |
1939 | - case vtn_variable_mode_accel_struct: | |
1940 | - case vtn_variable_mode_shader_record: | |
1941 | - /* These don't need actual variables. */ | |
1942 | - break; | |
1943 | - | |
1944 | 1941 | case vtn_variable_mode_image: |
1945 | 1942 | case vtn_variable_mode_phys_ssbo: |
1946 | 1943 | case vtn_variable_mode_generic: |
@@ -836,7 +836,7 @@ trace_screen_create(struct pipe_screen *screen) | ||
836 | 836 | const char *driver = debug_get_option("MESA_LOADER_DRIVER_OVERRIDE", NULL); |
837 | 837 | if (driver && !strcmp(driver, "zink")) { |
838 | 838 | /* the user wants zink: check whether they want to trace zink or lavapipe */ |
839 | - bool trace_lavapipe = debug_get_bool_option("ZINK_TRACE_LAVAPIPE", NULL); | |
839 | + bool trace_lavapipe = debug_get_bool_option("ZINK_TRACE_LAVAPIPE", false); | |
840 | 840 | if (!strncmp(screen->get_name(screen), "zink", 4)) { |
841 | 841 | /* this is the zink screen: only trace if lavapipe tracing is disabled */ |
842 | 842 | if (trace_lavapipe) |
@@ -53,6 +53,10 @@ | ||
53 | 53 | |
54 | 54 | #include "frontend/sw_winsys.h" |
55 | 55 | |
56 | +#ifndef _WIN32 | |
57 | +#include "drm-uapi/drm_fourcc.h" | |
58 | +#endif | |
59 | + | |
56 | 60 | |
57 | 61 | #ifdef DEBUG |
58 | 62 | static struct llvmpipe_resource resource_list; |
@@ -917,6 +921,7 @@ llvmpipe_resource_get_param(struct pipe_screen *screen, | ||
917 | 921 | uint64_t *value) |
918 | 922 | { |
919 | 923 | struct llvmpipe_resource *lpr = llvmpipe_resource(resource); |
924 | + struct winsys_handle whandle; | |
920 | 925 | |
921 | 926 | switch (param) { |
922 | 927 | case PIPE_RESOURCE_PARAM_NPLANES: |
@@ -931,10 +936,29 @@ llvmpipe_resource_get_param(struct pipe_screen *screen, | ||
931 | 936 | case PIPE_RESOURCE_PARAM_LAYER_STRIDE: |
932 | 937 | *value = lpr->img_stride[level]; |
933 | 938 | return true; |
939 | +#ifndef _WIN32 | |
934 | 940 | case PIPE_RESOURCE_PARAM_MODIFIER: |
941 | + *value = DRM_FORMAT_MOD_INVALID; | |
942 | + return true; | |
943 | +#endif | |
935 | 944 | case PIPE_RESOURCE_PARAM_HANDLE_TYPE_SHARED: |
936 | 945 | case PIPE_RESOURCE_PARAM_HANDLE_TYPE_KMS: |
937 | 946 | case PIPE_RESOURCE_PARAM_HANDLE_TYPE_FD: |
947 | + if (!lpr->dt) | |
948 | + return false; | |
949 | + | |
950 | + memset(&whandle, 0, sizeof(whandle)); | |
951 | + if (param == PIPE_RESOURCE_PARAM_HANDLE_TYPE_SHARED) | |
952 | + whandle.type = WINSYS_HANDLE_TYPE_SHARED; | |
953 | + else if (param == PIPE_RESOURCE_PARAM_HANDLE_TYPE_KMS) | |
954 | + whandle.type = WINSYS_HANDLE_TYPE_KMS; | |
955 | + else if (param == PIPE_RESOURCE_PARAM_HANDLE_TYPE_FD) | |
956 | + whandle.type = WINSYS_HANDLE_TYPE_FD; | |
957 | + | |
958 | + if (!llvmpipe_resource_get_handle(screen, context, resource, &whandle, handle_usage)) | |
959 | + return false; | |
960 | + *value = whandle.handle; | |
961 | + return true; | |
938 | 962 | default: |
939 | 963 | break; |
940 | 964 | } |
@@ -2328,15 +2328,15 @@ NVC0LoweringPass::insertOOBSurfaceOpResult(TexInstruction *su) | ||
2328 | 2328 | bld.setPosition(su, true); |
2329 | 2329 | |
2330 | 2330 | for (unsigned i = 0; su->defExists(i); ++i) { |
2331 | - ValueDef &def = su->def(i); | |
2331 | + Value *def = su->getDef(i); | |
2332 | + Value *newDef = bld.getSSA(); | |
2333 | + su->setDef(i, newDef); | |
2332 | 2334 | |
2333 | 2335 | Instruction *mov = bld.mkMov(bld.getSSA(), bld.loadImm(NULL, 0)); |
2334 | 2336 | assert(su->cc == CC_NOT_P); |
2335 | 2337 | mov->setPredicate(CC_P, su->getPredicate()); |
2336 | - Instruction *uni = bld.mkOp2(OP_UNION, TYPE_U32, bld.getSSA(), NULL, mov->getDef(0)); | |
2337 | - | |
2338 | - def.replace(uni->getDef(0), false); | |
2339 | - uni->setSrc(0, def.get()); | |
2338 | + Instruction *uni = bld.mkOp2(OP_UNION, TYPE_U32, bld.getSSA(), newDef, mov->getDef(0)); | |
2339 | + bld.mkMov(def, uni->getDef(0)); | |
2340 | 2340 | } |
2341 | 2341 | } |
2342 | 2342 |
@@ -2613,10 +2613,12 @@ NVC0LoweringPass::processSurfaceCoordsGM107(TexInstruction *su, Instruction *ret | ||
2613 | 2613 | for (unsigned i = 0; su->defExists(i); ++i) { |
2614 | 2614 | assert(i < 4); |
2615 | 2615 | |
2616 | - ValueDef &def = su->def(i); | |
2616 | + Value *def = su->getDef(i); | |
2617 | + Value *newDef = bld.getSSA(); | |
2617 | 2618 | ValueDef &def2 = su2d->def(i); |
2618 | 2619 | Instruction *mov = NULL; |
2619 | 2620 | |
2621 | + su->setDef(i, newDef); | |
2620 | 2622 | if (pred) { |
2621 | 2623 | mov = bld.mkMov(bld.getSSA(), bld.loadImm(NULL, 0)); |
2622 | 2624 | mov->setPredicate(CC_P, pred->getDef(0)); |
@@ -2624,11 +2626,10 @@ NVC0LoweringPass::processSurfaceCoordsGM107(TexInstruction *su, Instruction *ret | ||
2624 | 2626 | |
2625 | 2627 | Instruction *uni = ret[i] = bld.mkOp2(OP_UNION, TYPE_U32, |
2626 | 2628 | bld.getSSA(), |
2627 | - NULL, def2.get()); | |
2628 | - def.replace(uni->getDef(0), false); | |
2629 | - uni->setSrc(0, def.get()); | |
2629 | + newDef, def2.get()); | |
2630 | 2630 | if (mov) |
2631 | 2631 | uni->setSrc(2, mov->getDef(0)); |
2632 | + bld.mkMov(def, uni->getDef(0)); | |
2632 | 2633 | } |
2633 | 2634 | } else if (pred) { |
2634 | 2635 | // Create a UNION so that RA assigns the same registers |
@@ -2636,16 +2637,17 @@ NVC0LoweringPass::processSurfaceCoordsGM107(TexInstruction *su, Instruction *ret | ||
2636 | 2637 | for (unsigned i = 0; su->defExists(i); ++i) { |
2637 | 2638 | assert(i < 4); |
2638 | 2639 | |
2639 | - ValueDef &def = su->def(i); | |
2640 | + Value *def = su->getDef(i); | |
2641 | + Value *newDef = bld.getSSA(); | |
2642 | + su->setDef(i, newDef); | |
2640 | 2643 | |
2641 | 2644 | Instruction *mov = bld.mkMov(bld.getSSA(), bld.loadImm(NULL, 0)); |
2642 | 2645 | mov->setPredicate(CC_P, pred->getDef(0)); |
2643 | 2646 | |
2644 | 2647 | Instruction *uni = ret[i] = bld.mkOp2(OP_UNION, TYPE_U32, |
2645 | 2648 | bld.getSSA(), |
2646 | - NULL, mov->getDef(0)); | |
2647 | - def.replace(uni->getDef(0), false); | |
2648 | - uni->setSrc(0, def.get()); | |
2649 | + newDef, mov->getDef(0)); | |
2650 | + bld.mkMov(def, uni->getDef(0)); | |
2649 | 2651 | } |
2650 | 2652 | } |
2651 | 2653 |
@@ -412,6 +412,7 @@ static void radeon_enc_nalu_sps_hevc(struct radeon_encoder *enc) | ||
412 | 412 | radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_height / 2); |
413 | 413 | radeon_enc_code_ue(enc, enc->enc_pic.session_init.padding_height / 2); |
414 | 414 | } else |
415 | + radeon_enc_code_fixed_bits(enc, 0x0, 1); | |
415 | 416 | |
416 | 417 | radeon_enc_code_ue(enc, enc->enc_pic.bit_depth_luma_minus8); |
417 | 418 | radeon_enc_code_ue(enc, enc->enc_pic.bit_depth_chroma_minus8); |
@@ -1224,7 +1224,9 @@ static struct pipe_screen *radeonsi_screen_create_impl(struct radeon_winsys *ws, | ||
1224 | 1224 | sscreen->info.chip_class >= GFX10 && |
1225 | 1225 | (sscreen->info.family != CHIP_NAVI14 || |
1226 | 1226 | sscreen->info.is_pro_graphics); |
1227 | - sscreen->use_ngg_culling = sscreen->use_ngg && !(sscreen->debug_flags & DBG(NO_NGG_CULLING)); | |
1227 | + sscreen->use_ngg_culling = sscreen->use_ngg && | |
1228 | + !((sscreen->debug_flags & DBG(NO_NGG_CULLING)) || | |
1229 | + LLVM_VERSION_MAJOR <= 11 /* hangs on 11, see #4874 */); | |
1228 | 1230 | sscreen->use_ngg_streamout = false; |
1229 | 1231 | |
1230 | 1232 | /* Only set this for the cases that are known to work, which are: |
@@ -1755,8 +1755,10 @@ static void si_draw_vbo(struct pipe_context *ctx, | ||
1755 | 1755 | /* GFX6-GFX7 treat instance_count==0 as instance_count==1. There is |
1756 | 1756 | * no workaround for indirect draws, but we can at least skip |
1757 | 1757 | * direct draws. |
1758 | + * 'instance_count == 0' seems to be problematic on Renoir chips (#4866), | |
1759 | + * so simplify the condition and drop these draws for all <= GFX9 chips. | |
1758 | 1760 | */ |
1759 | - if (GFX_VERSION <= GFX7 && unlikely(!indirect && !instance_count)) | |
1761 | + if (GFX_VERSION <= GFX9 && unlikely(!indirect && !instance_count)) | |
1760 | 1762 | return; |
1761 | 1763 | |
1762 | 1764 | struct si_shader_selector *vs = sctx->shader.vs.cso; |
@@ -240,7 +240,7 @@ wrap_needs_border_color(unsigned wrap) | ||
240 | 240 | } |
241 | 241 | |
242 | 242 | static VkBorderColor |
243 | -get_border_color(const union pipe_color_union *color, bool is_integer) | |
243 | +get_border_color(const union pipe_color_union *color, bool is_integer, bool need_custom) | |
244 | 244 | { |
245 | 245 | if (is_integer) { |
246 | 246 | if (color->ui[0] == 0 && color->ui[1] == 0 && color->ui[2] == 0 && color->ui[3] == 0) |
@@ -249,7 +249,7 @@ get_border_color(const union pipe_color_union *color, bool is_integer) | ||
249 | 249 | return VK_BORDER_COLOR_INT_OPAQUE_BLACK; |
250 | 250 | if (color->ui[0] == 1 && color->ui[1] == 1 && color->ui[2] == 1 && color->ui[3] == 1) |
251 | 251 | return VK_BORDER_COLOR_INT_OPAQUE_WHITE; |
252 | - return VK_BORDER_COLOR_INT_CUSTOM_EXT; | |
252 | + return need_custom ? VK_BORDER_COLOR_INT_CUSTOM_EXT : VK_BORDER_COLOR_INT_TRANSPARENT_BLACK; | |
253 | 253 | } |
254 | 254 | |
255 | 255 | if (color->f[0] == 0 && color->f[1] == 0 && color->f[2] == 0 && color->f[3] == 0) |
@@ -258,7 +258,7 @@ get_border_color(const union pipe_color_union *color, bool is_integer) | ||
258 | 258 | return VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK; |
259 | 259 | if (color->f[0] == 1 && color->f[1] == 1 && color->f[2] == 1 && color->f[3] == 1) |
260 | 260 | return VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE; |
261 | - return VK_BORDER_COLOR_FLOAT_CUSTOM_EXT; | |
261 | + return need_custom ? VK_BORDER_COLOR_FLOAT_CUSTOM_EXT : VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK; | |
262 | 262 | } |
263 | 263 | |
264 | 264 | static void * |
@@ -302,7 +302,7 @@ zink_create_sampler_state(struct pipe_context *pctx, | ||
302 | 302 | |
303 | 303 | bool is_integer = state->border_color_is_integer; |
304 | 304 | |
305 | - sci.borderColor = get_border_color(&state->border_color, is_integer); | |
305 | + sci.borderColor = get_border_color(&state->border_color, is_integer, need_custom); | |
306 | 306 | if (sci.borderColor > VK_BORDER_COLOR_INT_OPAQUE_WHITE && need_custom) { |
307 | 307 | if (screen->info.have_EXT_custom_border_color && |
308 | 308 | screen->info.border_color_feats.customBorderColorWithoutFormat) { |
@@ -226,23 +226,16 @@ create_bci(struct zink_screen *screen, const struct pipe_resource *templ, unsign | ||
226 | 226 | VK_BUFFER_USAGE_TRANSFER_DST_BIT | |
227 | 227 | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT; |
228 | 228 | |
229 | - VkFormatProperties props = screen->format_props[templ->format]; | |
230 | - | |
231 | 229 | bci.usage |= VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | |
232 | 230 | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT | |
231 | + VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | | |
233 | 232 | VK_BUFFER_USAGE_INDEX_BUFFER_BIT | |
234 | 233 | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | |
235 | 234 | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT | |
236 | 235 | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT; |
237 | - if (props.bufferFeatures & VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT) | |
238 | - bci.usage |= VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; | |
239 | - if (props.bufferFeatures & VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT) | |
240 | - bci.usage |= VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT; | |
241 | 236 | |
242 | - if (bind & PIPE_BIND_SHADER_IMAGE) { | |
243 | - assert(props.bufferFeatures & VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT); | |
237 | + if (bind & PIPE_BIND_SHADER_IMAGE) | |
244 | 238 | bci.usage |= VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT; |
245 | - } | |
246 | 239 | return bci; |
247 | 240 | } |
248 | 241 |
@@ -1061,8 +1061,6 @@ zink_flush_frontbuffer(struct pipe_screen *pscreen, | ||
1061 | 1061 | winsys->displaytarget_unmap(winsys, res->dt); |
1062 | 1062 | } |
1063 | 1063 | |
1064 | - winsys->displaytarget_unmap(winsys, res->dt); | |
1065 | - | |
1066 | 1064 | assert(res->dt); |
1067 | 1065 | if (res->dt) |
1068 | 1066 | winsys->displaytarget_display(winsys, res->dt, winsys_drawable_handle, sub_box); |
@@ -1263,11 +1261,7 @@ zink_internal_setup_moltenvk(struct zink_screen *screen) | ||
1263 | 1261 | |
1264 | 1262 | GET_PROC_ADDR_INSTANCE(GetMoltenVKConfigurationMVK); |
1265 | 1263 | GET_PROC_ADDR_INSTANCE(SetMoltenVKConfigurationMVK); |
1266 | - | |
1267 | - GET_PROC_ADDR_INSTANCE(GetPhysicalDeviceMetalFeaturesMVK); | |
1268 | 1264 | GET_PROC_ADDR_INSTANCE(GetVersionStringsMVK); |
1269 | - GET_PROC_ADDR_INSTANCE(UseIOSurfaceMVK); | |
1270 | - GET_PROC_ADDR_INSTANCE(GetIOSurfaceMVK); | |
1271 | 1265 | |
1272 | 1266 | if (screen->vk_GetVersionStringsMVK) { |
1273 | 1267 | char molten_version[64] = {0}; |
@@ -139,11 +139,7 @@ struct zink_screen { | ||
139 | 139 | #if defined(MVK_VERSION) |
140 | 140 | PFN_vkGetMoltenVKConfigurationMVK vk_GetMoltenVKConfigurationMVK; |
141 | 141 | PFN_vkSetMoltenVKConfigurationMVK vk_SetMoltenVKConfigurationMVK; |
142 | - | |
143 | - PFN_vkGetPhysicalDeviceMetalFeaturesMVK vk_GetPhysicalDeviceMetalFeaturesMVK; | |
144 | 142 | PFN_vkGetVersionStringsMVK vk_GetVersionStringsMVK; |
145 | - PFN_vkUseIOSurfaceMVK vk_UseIOSurfaceMVK; | |
146 | - PFN_vkGetIOSurfaceMVK vk_GetIOSurfaceMVK; | |
147 | 143 | #endif |
148 | 144 | |
149 | 145 | struct { |
@@ -41,6 +41,7 @@ | ||
41 | 41 | #include "stw_winsys.h" |
42 | 42 | #include "stw_device.h" |
43 | 43 | #include "gdi/gdi_sw_winsys.h" |
44 | +#include "pipe/p_screen.h" | |
44 | 45 | #include "pipe/p_context.h" |
45 | 46 | |
46 | 47 | #ifdef GALLIUM_SOFTPIPE |
@@ -1917,6 +1917,7 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width, | ||
1917 | 1917 | struct brw_reg src[4], dst; |
1918 | 1918 | unsigned int last_insn_offset = p->next_insn_offset; |
1919 | 1919 | bool multiple_instructions_emitted = false; |
1920 | + tgl_swsb swsb = inst->sched; | |
1920 | 1921 | |
1921 | 1922 | /* From the Broadwell PRM, Volume 7, "3D-Media-GPGPU", in the |
1922 | 1923 | * "Register Region Restrictions" section: for BDW, SKL: |
@@ -1951,8 +1952,10 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width, | ||
1951 | 1952 | brw_set_default_exec_size(p, BRW_EXECUTE_16); |
1952 | 1953 | brw_set_default_mask_control(p, BRW_MASK_DISABLE); |
1953 | 1954 | brw_set_default_predicate_control(p, BRW_PREDICATE_NONE); |
1955 | + brw_set_default_swsb(p, tgl_swsb_src_dep(swsb)); | |
1954 | 1956 | brw_MOV(p, brw_acc_reg(8), brw_imm_f(0.0f)); |
1955 | 1957 | last_insn_offset = p->next_insn_offset; |
1958 | + swsb = tgl_swsb_dst_dep(swsb, 1); | |
1956 | 1959 | } |
1957 | 1960 | |
1958 | 1961 | if (!is_accum_used && !inst->eot) { |
@@ -2010,7 +2013,7 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width, | ||
2010 | 2013 | brw_set_default_saturate(p, inst->saturate); |
2011 | 2014 | brw_set_default_mask_control(p, inst->force_writemask_all); |
2012 | 2015 | brw_set_default_acc_write_control(p, inst->writes_accumulator); |
2013 | - brw_set_default_swsb(p, inst->sched); | |
2016 | + brw_set_default_swsb(p, swsb); | |
2014 | 2017 | |
2015 | 2018 | unsigned exec_size = inst->exec_size; |
2016 | 2019 | if (devinfo->ver == 7 && !devinfo->is_haswell && |
@@ -2426,8 +2429,8 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width, | ||
2426 | 2429 | } |
2427 | 2430 | |
2428 | 2431 | case FS_OPCODE_SCHEDULING_FENCE: |
2429 | - if (inst->sources == 0 && inst->sched.regdist == 0 && | |
2430 | - inst->sched.mode == TGL_SBID_NULL) { | |
2432 | + if (inst->sources == 0 && swsb.regdist == 0 && | |
2433 | + swsb.mode == TGL_SBID_NULL) { | |
2431 | 2434 | if (unlikely(debug_flag)) |
2432 | 2435 | disasm_info->use_tail = true; |
2433 | 2436 | break; |
@@ -1088,7 +1088,8 @@ backend_instruction::writes_accumulator_implicitly(const struct gen_device_info | ||
1088 | 1088 | ((opcode >= BRW_OPCODE_ADD && opcode < BRW_OPCODE_NOP) || |
1089 | 1089 | (opcode >= FS_OPCODE_DDX_COARSE && opcode <= FS_OPCODE_LINTERP))) || |
1090 | 1090 | (opcode == FS_OPCODE_LINTERP && |
1091 | - (!devinfo->has_pln || devinfo->ver <= 6)); | |
1091 | + (!devinfo->has_pln || devinfo->ver <= 6)) || | |
1092 | + (eot && devinfo->ver >= 12); /* See Wa_14010017096. */ | |
1092 | 1093 | } |
1093 | 1094 | |
1094 | 1095 | bool |
@@ -1670,7 +1670,9 @@ anv_device_alloc_bo(struct anv_device *device, | ||
1670 | 1670 | new_bo.map = anv_gem_mmap(device, new_bo.gem_handle, 0, size, 0); |
1671 | 1671 | if (new_bo.map == MAP_FAILED) { |
1672 | 1672 | anv_gem_close(device, new_bo.gem_handle); |
1673 | - return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); | |
1673 | + return vk_errorf(device, &device->vk.base, | |
1674 | + VK_ERROR_OUT_OF_HOST_MEMORY, | |
1675 | + "mmap failed: %m"); | |
1674 | 1676 | } |
1675 | 1677 | } |
1676 | 1678 |
@@ -347,6 +347,7 @@ anv_batch_emit_batch(struct anv_batch *batch, struct anv_batch *other) | ||
347 | 347 | |
348 | 348 | static VkResult |
349 | 349 | anv_batch_bo_create(struct anv_cmd_buffer *cmd_buffer, |
350 | + uint32_t size, | |
350 | 351 | struct anv_batch_bo **bbo_out) |
351 | 352 | { |
352 | 353 | VkResult result; |
@@ -357,7 +358,7 @@ anv_batch_bo_create(struct anv_cmd_buffer *cmd_buffer, | ||
357 | 358 | return vk_error(VK_ERROR_OUT_OF_HOST_MEMORY); |
358 | 359 | |
359 | 360 | result = anv_bo_pool_alloc(&cmd_buffer->device->batch_bo_pool, |
360 | - ANV_CMD_BUFFER_BATCH_SIZE, &bbo->bo); | |
361 | + size, &bbo->bo); | |
361 | 362 | if (result != VK_SUCCESS) |
362 | 363 | goto fail_alloc; |
363 | 364 |
@@ -668,11 +669,16 @@ anv_cmd_buffer_chain_batch(struct anv_batch *batch, void *_data) | ||
668 | 669 | { |
669 | 670 | struct anv_cmd_buffer *cmd_buffer = _data; |
670 | 671 | struct anv_batch_bo *new_bbo; |
672 | + /* Cap reallocation to chunk. */ | |
673 | + uint32_t alloc_size = MIN2(cmd_buffer->total_batch_size, | |
674 | + ANV_MAX_CMD_BUFFER_BATCH_SIZE); | |
671 | 675 | |
672 | - VkResult result = anv_batch_bo_create(cmd_buffer, &new_bbo); | |
676 | + VkResult result = anv_batch_bo_create(cmd_buffer, alloc_size, &new_bbo); | |
673 | 677 | if (result != VK_SUCCESS) |
674 | 678 | return result; |
675 | 679 | |
680 | + cmd_buffer->total_batch_size += alloc_size; | |
681 | + | |
676 | 682 | struct anv_batch_bo **seen_bbo = u_vector_add(&cmd_buffer->seen_bbos); |
677 | 683 | if (seen_bbo == NULL) { |
678 | 684 | anv_batch_bo_destroy(new_bbo, cmd_buffer); |
@@ -839,7 +845,11 @@ anv_cmd_buffer_init_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer) | ||
839 | 845 | |
840 | 846 | list_inithead(&cmd_buffer->batch_bos); |
841 | 847 | |
842 | - result = anv_batch_bo_create(cmd_buffer, &batch_bo); | |
848 | + cmd_buffer->total_batch_size = ANV_MIN_CMD_BUFFER_BATCH_SIZE; | |
849 | + | |
850 | + result = anv_batch_bo_create(cmd_buffer, | |
851 | + cmd_buffer->total_batch_size, | |
852 | + &batch_bo); | |
843 | 853 | if (result != VK_SUCCESS) |
844 | 854 | return result; |
845 | 855 |
@@ -945,8 +955,14 @@ anv_cmd_buffer_reset_batch_bo_chain(struct anv_cmd_buffer *cmd_buffer) | ||
945 | 955 | cmd_buffer->seen_bbos.head = 0; |
946 | 956 | cmd_buffer->seen_bbos.tail = 0; |
947 | 957 | |
948 | - *(struct anv_batch_bo **)u_vector_add(&cmd_buffer->seen_bbos) = | |
949 | - anv_cmd_buffer_current_batch_bo(cmd_buffer); | |
958 | + struct anv_batch_bo *first_bbo = anv_cmd_buffer_current_batch_bo(cmd_buffer); | |
959 | + | |
960 | + *(struct anv_batch_bo **)u_vector_add(&cmd_buffer->seen_bbos) = first_bbo; | |
961 | + | |
962 | + | |
963 | + assert(!cmd_buffer->device->can_chain_batches || | |
964 | + first_bbo->bo->size == ANV_MIN_CMD_BUFFER_BATCH_SIZE); | |
965 | + cmd_buffer->total_batch_size = first_bbo->bo->size; | |
950 | 966 | } |
951 | 967 | |
952 | 968 | void |
@@ -1024,7 +1040,7 @@ anv_cmd_buffer_end_batch_buffer(struct anv_cmd_buffer *cmd_buffer) | ||
1024 | 1040 | */ |
1025 | 1041 | batch_bo = anv_cmd_buffer_current_batch_bo(cmd_buffer); |
1026 | 1042 | } else if ((cmd_buffer->batch_bos.next == cmd_buffer->batch_bos.prev) && |
1027 | - (length < ANV_CMD_BUFFER_BATCH_SIZE / 2)) { | |
1043 | + (length < ANV_MIN_CMD_BUFFER_BATCH_SIZE / 2)) { | |
1028 | 1044 | /* If the secondary has exactly one batch buffer in its list *and* |
1029 | 1045 | * that batch buffer is less than half of the maximum size, we're |
1030 | 1046 | * probably better of simply copying it into our batch. |
@@ -1799,7 +1815,11 @@ setup_execbuf_for_cmd_buffers(struct anv_execbuf *execbuf, | ||
1799 | 1815 | .buffers_ptr = (uintptr_t) execbuf->objects, |
1800 | 1816 | .buffer_count = execbuf->bo_count, |
1801 | 1817 | .batch_start_offset = 0, |
1802 | - .batch_len = batch->next - batch->start, | |
1818 | + /* On platforms that cannot chain batch buffers because of the i915 | |
1819 | + * command parser, we have to provide the batch length. Everywhere else | |
1820 | + * we'll chain batches so no point in passing a length. | |
1821 | + */ | |
1822 | + .batch_len = device->can_chain_batches ? 0 : batch->next - batch->start, | |
1803 | 1823 | .cliprects_ptr = 0, |
1804 | 1824 | .num_cliprects = 0, |
1805 | 1825 | .DR1 = 0, |
@@ -1919,7 +1939,8 @@ anv_queue_execbuf_locked(struct anv_queue *queue, | ||
1919 | 1939 | submit->perf_query_pool; |
1920 | 1940 | |
1921 | 1941 | if (INTEL_DEBUG & DEBUG_SUBMIT) { |
1922 | - fprintf(stderr, "Batch on queue 0\n"); | |
1942 | + fprintf(stderr, "Batch offset=0x%x len=0x%x on queue 0\n", | |
1943 | + execbuf.execbuf.batch_start_offset, execbuf.execbuf.batch_len); | |
1923 | 1944 | for (uint32_t i = 0; i < execbuf.bo_count; i++) { |
1924 | 1945 | const struct anv_bo *bo = execbuf.bos[i]; |
1925 | 1946 |
@@ -1926,20 +1926,7 @@ copy_non_dynamic_state(struct anv_graphics_pipeline *pipeline, | ||
1926 | 1926 | |
1927 | 1927 | if (states & ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_TOPOLOGY) { |
1928 | 1928 | assert(pCreateInfo->pInputAssemblyState); |
1929 | - bool has_tess = false; | |
1930 | - for (uint32_t i = 0; i < pCreateInfo->stageCount; i++) { | |
1931 | - const VkPipelineShaderStageCreateInfo *sinfo = &pCreateInfo->pStages[i]; | |
1932 | - gl_shader_stage stage = vk_to_mesa_shader_stage(sinfo->stage); | |
1933 | - if (stage == MESA_SHADER_TESS_CTRL || stage == MESA_SHADER_TESS_EVAL) | |
1934 | - has_tess = true; | |
1935 | - } | |
1936 | - if (has_tess) { | |
1937 | - const VkPipelineTessellationStateCreateInfo *tess_info = | |
1938 | - pCreateInfo->pTessellationState; | |
1939 | - dynamic->primitive_topology = _3DPRIM_PATCHLIST(tess_info->patchControlPoints); | |
1940 | - } else { | |
1941 | - dynamic->primitive_topology = pCreateInfo->pInputAssemblyState->topology; | |
1942 | - } | |
1929 | + dynamic->primitive_topology = pCreateInfo->pInputAssemblyState->topology; | |
1943 | 1930 | } |
1944 | 1931 | |
1945 | 1932 | /* Section 9.2 of the Vulkan 1.0.15 spec says: |
@@ -2880,7 +2880,8 @@ struct anv_cmd_pool { | ||
2880 | 2880 | VkCommandPoolCreateFlags flags; |
2881 | 2881 | }; |
2882 | 2882 | |
2883 | -#define ANV_CMD_BUFFER_BATCH_SIZE 8192 | |
2883 | +#define ANV_MIN_CMD_BUFFER_BATCH_SIZE 8192 | |
2884 | +#define ANV_MAX_CMD_BUFFER_BATCH_SIZE (16 * 1024 * 1024) | |
2884 | 2885 | |
2885 | 2886 | enum anv_cmd_buffer_exec_mode { |
2886 | 2887 | ANV_CMD_BUFFER_EXEC_MODE_PRIMARY, |
@@ -2969,6 +2970,12 @@ struct anv_cmd_buffer { | ||
2969 | 2970 | * used. |
2970 | 2971 | */ |
2971 | 2972 | uint32_t perf_reloc_idx; |
2973 | + | |
2974 | + /** | |
2975 | + * Sum of all the anv_batch_bo sizes allocated for this command buffer. | |
2976 | + * Used to increase allocation size for long command buffers. | |
2977 | + */ | |
2978 | + uint32_t total_batch_size; | |
2972 | 2979 | }; |
2973 | 2980 | |
2974 | 2981 | /* Determine whether we can chain a given cmd_buffer to another one. We need |
@@ -338,7 +338,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer) | ||
338 | 338 | ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_TOPOLOGY)) { |
339 | 339 | uint32_t topology; |
340 | 340 | if (anv_pipeline_has_stage(pipeline, MESA_SHADER_TESS_EVAL)) |
341 | - topology = d->primitive_topology; | |
341 | + topology = pipeline->topology; | |
342 | 342 | else |
343 | 343 | topology = genX(vk_to_gen_primitive_type)[d->primitive_topology]; |
344 | 344 |
@@ -637,7 +637,7 @@ genX(cmd_buffer_flush_dynamic_state)(struct anv_cmd_buffer *cmd_buffer) | ||
637 | 637 | ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_TOPOLOGY)) { |
638 | 638 | uint32_t topology; |
639 | 639 | if (anv_pipeline_has_stage(pipeline, MESA_SHADER_TESS_EVAL)) |
640 | - topology = d->primitive_topology; | |
640 | + topology = pipeline->topology; | |
641 | 641 | else |
642 | 642 | topology = genX(vk_to_gen_primitive_type)[d->primitive_topology]; |
643 | 643 |
@@ -495,7 +495,7 @@ genX(emit_raw_pipe_control)(struct brw_context *brw, uint32_t flags, | ||
495 | 495 | pc.InstructionCacheInvalidateEnable = |
496 | 496 | flags & PIPE_CONTROL_INSTRUCTION_INVALIDATE; |
497 | 497 | pc.NotifyEnable = flags & PIPE_CONTROL_NOTIFY_ENABLE; |
498 | - #if GFX_VER >= 45 | |
498 | + #if GFX_VERx10 >= 45 | |
499 | 499 | pc.IndirectStatePointersDisable = |
500 | 500 | flags & PIPE_CONTROL_INDIRECT_STATE_POINTERS_DISABLE; |
501 | 501 | #endif |
@@ -1084,8 +1084,18 @@ _mesa_handle_bind_buffer_gen(struct gl_context *ctx, | ||
1084 | 1084 | _mesa_error(ctx, GL_OUT_OF_MEMORY, "%s", caller); |
1085 | 1085 | return false; |
1086 | 1086 | } |
1087 | - _mesa_HashInsertMaybeLocked(ctx->Shared->BufferObjects, buffer, | |
1088 | - *buf_handle, buf != NULL, | |
1087 | + _mesa_HashLockMaybeLocked(ctx->Shared->BufferObjects, | |
1088 | + ctx->BufferObjectsLocked); | |
1089 | + _mesa_HashInsertLocked(ctx->Shared->BufferObjects, buffer, | |
1090 | + *buf_handle, buf != NULL); | |
1091 | + /* If one context only creates buffers and another context only deletes | |
1092 | + * buffers, buffers don't get released because it only produces zombie | |
1093 | + * buffers. Only the context that has created the buffers can release | |
1094 | + * them. Thus, when we create buffers, we prune the list of zombie | |
1095 | + * buffers. | |
1096 | + */ | |
1097 | + unreference_zombie_buffers_for_ctx(ctx); | |
1098 | + _mesa_HashUnlockMaybeLocked(ctx->Shared->BufferObjects, | |
1089 | 1099 | ctx->BufferObjectsLocked); |
1090 | 1100 | } |
1091 | 1101 |
@@ -1763,6 +1773,13 @@ create_buffers(struct gl_context *ctx, GLsizei n, GLuint *buffers, bool dsa) | ||
1763 | 1773 | */ |
1764 | 1774 | _mesa_HashLockMaybeLocked(ctx->Shared->BufferObjects, |
1765 | 1775 | ctx->BufferObjectsLocked); |
1776 | + /* If one context only creates buffers and another context only deletes | |
1777 | + * buffers, buffers don't get released because it only produces zombie | |
1778 | + * buffers. Only the context that has created the buffers can release | |
1779 | + * them. Thus, when we create buffers, we prune the list of zombie | |
1780 | + * buffers. | |
1781 | + */ | |
1782 | + unreference_zombie_buffers_for_ctx(ctx); | |
1766 | 1783 | |
1767 | 1784 | _mesa_HashFindFreeKeys(ctx->Shared->BufferObjects, buffers, n); |
1768 | 1785 |
@@ -183,6 +183,8 @@ typedef struct midgard_instruction { | ||
183 | 183 | |
184 | 184 | midgard_branch branch; |
185 | 185 | }; |
186 | + | |
187 | + unsigned bundle_id; | |
186 | 188 | } midgard_instruction; |
187 | 189 | |
188 | 190 | typedef struct midgard_block { |
@@ -3204,6 +3204,12 @@ midgard_compile_shader_nir(nir_shader *nir, | ||
3204 | 3204 | fflush(stdout); |
3205 | 3205 | } |
3206 | 3206 | |
3207 | + /* A shader ending on a 16MB boundary causes INSTR_INVALID_PC faults, | |
3208 | + * workaround by adding some padding to the end of the shader. (The | |
3209 | + * kernel makes sure shader BOs can't cross 16MB boundaries.) */ | |
3210 | + if (binary->size) | |
3211 | + memset(util_dynarray_grow(binary, uint8_t, 16), 0, 16); | |
3212 | + | |
3207 | 3213 | if ((midgard_debug & MIDGARD_DBG_SHADERDB || inputs->shaderdb) && |
3208 | 3214 | !nir->info.internal) { |
3209 | 3215 | unsigned nr_bundles = 0, nr_ins = 0; |
@@ -842,6 +842,19 @@ mir_spill_register( | ||
842 | 842 | /* Allocate TLS slot (maybe) */ |
843 | 843 | unsigned spill_slot = !is_special ? (*spill_count)++ : 0; |
844 | 844 | |
845 | + /* For special reads, figure out how many bytes we need */ | |
846 | + unsigned read_bytemask = 0; | |
847 | + | |
848 | + /* If multiple instructions write to this destination, we'll have to | |
849 | + * fill from TLS before writing */ | |
850 | + unsigned write_count = 0; | |
851 | + | |
852 | + mir_foreach_instr_global_safe(ctx, ins) { | |
853 | + read_bytemask |= mir_bytemask_of_read_components(ins, spill_node); | |
854 | + if (ins->dest == spill_node) | |
855 | + ++write_count; | |
856 | + } | |
857 | + | |
845 | 858 | /* For TLS, replace all stores to the spilled node. For |
846 | 859 | * special reads, just keep as-is; the class will be demoted |
847 | 860 | * implicitly. For special writes, spill to a work register */ |
@@ -855,8 +868,6 @@ mir_spill_register( | ||
855 | 868 | mir_foreach_instr_in_block_safe(block, ins) { |
856 | 869 | if (ins->dest != spill_node) continue; |
857 | 870 | |
858 | - midgard_instruction st; | |
859 | - | |
860 | 871 | /* Note: it's important to match the mask of the spill |
861 | 872 | * with the mask of the instruction whose destination |
862 | 873 | * we're spilling, or otherwise we'll read invalid |
@@ -864,20 +875,59 @@ mir_spill_register( | ||
864 | 875 | */ |
865 | 876 | |
866 | 877 | if (is_special_w) { |
867 | - st = v_mov(spill_node, spill_slot); | |
878 | + midgard_instruction st = v_mov(spill_node, spill_slot); | |
868 | 879 | st.no_spill |= (1 << spill_class); |
869 | 880 | st.mask = ins->mask; |
870 | 881 | st.dest_type = st.src_types[1] = ins->dest_type; |
882 | + | |
883 | + /* Hint: don't rewrite this node */ | |
884 | + st.hint = true; | |
885 | + | |
886 | + mir_insert_instruction_after_scheduled(ctx, block, ins, st); | |
871 | 887 | } else { |
872 | - ins->dest = spill_index++; | |
888 | + unsigned dest = spill_index++; | |
889 | + | |
890 | + if (write_count > 1 && mir_bytemask(ins) != 0xF) { | |
891 | + midgard_instruction read = | |
892 | + v_load_store_scratch(dest, spill_slot, false, 0xF); | |
893 | + mir_insert_instruction_before_scheduled(ctx, block, ins, read); | |
894 | + } | |
895 | + | |
896 | + ins->dest = dest; | |
873 | 897 | ins->no_spill |= (1 << spill_class); |
874 | - st = v_load_store_scratch(ins->dest, spill_slot, true, ins->mask); | |
875 | - } | |
876 | 898 | |
877 | - /* Hint: don't rewrite this node */ | |
878 | - st.hint = true; | |
899 | + bool move = false; | |
900 | + | |
901 | + /* In the same bundle, reads of the destination | |
902 | + * of the spilt instruction need to be direct */ | |
903 | + midgard_instruction *it = ins; | |
904 | + while ((it = list_first_entry(&it->link, midgard_instruction, link)) | |
905 | + && (it->bundle_id == ins->bundle_id)) { | |
879 | 906 | |
880 | - mir_insert_instruction_after_scheduled(ctx, block, ins, st); | |
907 | + if (!mir_has_arg(it, spill_node)) continue; | |
908 | + | |
909 | + mir_rewrite_index_src_single(it, spill_node, dest); | |
910 | + | |
911 | + /* The spilt instruction will write to | |
912 | + * a work register for `it` to read but | |
913 | + * the spill needs an LD/ST register */ | |
914 | + move = true; | |
915 | + } | |
916 | + | |
917 | + if (move) | |
918 | + dest = spill_index++; | |
919 | + | |
920 | + midgard_instruction st = | |
921 | + v_load_store_scratch(dest, spill_slot, true, ins->mask); | |
922 | + mir_insert_instruction_after_scheduled(ctx, block, ins, st); | |
923 | + | |
924 | + if (move) { | |
925 | + midgard_instruction mv = v_mov(ins->dest, dest); | |
926 | + mv.no_spill |= (1 << spill_class); | |
927 | + | |
928 | + mir_insert_instruction_after_scheduled(ctx, block, ins, mv); | |
929 | + } | |
930 | + } | |
881 | 931 | |
882 | 932 | if (!is_special) |
883 | 933 | ctx->spills++; |
@@ -885,13 +935,6 @@ mir_spill_register( | ||
885 | 935 | } |
886 | 936 | } |
887 | 937 | |
888 | - /* For special reads, figure out how many bytes we need */ | |
889 | - unsigned read_bytemask = 0; | |
890 | - | |
891 | - mir_foreach_instr_global_safe(ctx, ins) { | |
892 | - read_bytemask |= mir_bytemask_of_read_components(ins, spill_node); | |
893 | - } | |
894 | - | |
895 | 938 | /* Insert a load from TLS before the first consecutive |
896 | 939 | * use of the node, rewriting to use spilled indices to |
897 | 940 | * break up the live range. Or, for special, insert a |
@@ -1416,6 +1416,10 @@ schedule_block(compiler_context *ctx, midgard_block *block) | ||
1416 | 1416 | else |
1417 | 1417 | break; |
1418 | 1418 | |
1419 | + for (unsigned i = 0; i < bundle.instruction_count; ++i) | |
1420 | + bundle.instructions[i]->bundle_id = | |
1421 | + ctx->quadword_count + block->quadword_count; | |
1422 | + | |
1419 | 1423 | util_dynarray_append(&bundles, midgard_bundle, bundle); |
1420 | 1424 | block->quadword_count += midgard_tag_props[bundle.tag].size; |
1421 | 1425 | } |
@@ -236,6 +236,10 @@ TODO: document the other workarounds. | ||
236 | 236 | <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> |
237 | 237 | </application> |
238 | 238 | |
239 | + <application name="We Happy Few" executable="GlimpseGame"> | |
240 | + <option name="allow_glsl_cross_stage_interpolation_mismatch" value="true"/> | |
241 | + </application> | |
242 | + | |
239 | 243 | <application name="Google Earth VR" executable="Earth.exe"> |
240 | 244 | <option name="allow_glsl_builtin_const_expression" value="true"/> |
241 | 245 | <option name="allow_glsl_relaxed_es" value="true"/> |
@@ -104,25 +104,122 @@ create_foz_db_filenames(char *cache_path, char *name, char **filename, | ||
104 | 104 | return true; |
105 | 105 | } |
106 | 106 | |
107 | + | |
108 | +/* This looks at stuff that was added to the index since the last time we looked at it. This is safe | |
109 | + * to do without locking the file as we assume the file is append only */ | |
110 | +static void | |
111 | +update_foz_index(struct foz_db *foz_db, FILE *db_idx, unsigned file_idx) | |
112 | +{ | |
113 | + uint64_t offset = ftell(db_idx); | |
114 | + fseek(db_idx, 0, SEEK_END); | |
115 | + size_t len = ftell(db_idx); | |
116 | + uint64_t parsed_offset = offset; | |
117 | + | |
118 | + if (offset == len) | |
119 | + return; | |
120 | + | |
121 | + fseek(db_idx, offset, SEEK_SET); | |
122 | + while (offset < len) { | |
123 | + parsed_offset = offset; | |
124 | + | |
125 | + char bytes_to_read[FOSSILIZE_BLOB_HASH_LENGTH + sizeof(struct foz_payload_header)]; | |
126 | + struct foz_payload_header *header; | |
127 | + | |
128 | + /* Corrupt entry. Our process might have been killed before we | |
129 | + * could write all data. | |
130 | + */ | |
131 | + if (offset + sizeof(bytes_to_read) > len) | |
132 | + break; | |
133 | + | |
134 | + /* NAME + HEADER in one read */ | |
135 | + if (fread(bytes_to_read, 1, sizeof(bytes_to_read), db_idx) != | |
136 | + sizeof(bytes_to_read)) | |
137 | + break; | |
138 | + | |
139 | + offset += sizeof(bytes_to_read); | |
140 | + header = (struct foz_payload_header*)&bytes_to_read[FOSSILIZE_BLOB_HASH_LENGTH]; | |
141 | + | |
142 | + /* Corrupt entry. Our process might have been killed before we | |
143 | + * could write all data. | |
144 | + */ | |
145 | + if (offset + header->payload_size > len || | |
146 | + header->payload_size != sizeof(uint64_t)) | |
147 | + break; | |
148 | + | |
149 | + char hash_str[FOSSILIZE_BLOB_HASH_LENGTH + 1] = {0}; | |
150 | + memcpy(hash_str, bytes_to_read, FOSSILIZE_BLOB_HASH_LENGTH); | |
151 | + | |
152 | + struct foz_db_entry *entry = ralloc(foz_db->mem_ctx, | |
153 | + struct foz_db_entry); | |
154 | + entry->header = *header; | |
155 | + entry->file_idx = file_idx; | |
156 | + _mesa_sha1_hex_to_sha1(entry->key, hash_str); | |
157 | + | |
158 | + /* read cache item offset from index file */ | |
159 | + uint64_t cache_offset; | |
160 | + if (fread(&cache_offset, 1, sizeof(cache_offset), db_idx) != | |
161 | + sizeof(cache_offset)) | |
162 | + return; | |
163 | + | |
164 | + entry->offset = cache_offset; | |
165 | + | |
166 | + /* Truncate the entry's hash string to a 64bit hash for use with a | |
167 | + * 64bit hash table for looking up file offsets. | |
168 | + */ | |
169 | + hash_str[16] = '\0'; | |
170 | + uint64_t key = strtoull(hash_str, NULL, 16); | |
171 | + _mesa_hash_table_u64_insert(foz_db->index_db, key, entry); | |
172 | + | |
173 | + offset += header->payload_size; | |
174 | + } | |
175 | + | |
176 | + | |
177 | + fseek(db_idx, parsed_offset, SEEK_SET); | |
178 | +} | |
179 | + | |
180 | +/* exclusive flock with timeout. timeout is in nanoseconds */ | |
181 | +static int lock_file_with_timeout(FILE *f, int64_t timeout) | |
182 | +{ | |
183 | + int err; | |
184 | + int fd = fileno(f); | |
185 | + int64_t iterations = MAX2(DIV_ROUND_UP(timeout, 1000000), 1); | |
186 | + | |
187 | + /* Since there is no blocking flock with timeout and we don't want to totally spin on getting the | |
188 | + * lock, use a nonblocking method and retry every millisecond. */ | |
189 | + for (int64_t iter = 0; iter < iterations; ++iter) { | |
190 | + err = flock(fd, LOCK_EX | LOCK_NB); | |
191 | + if (err == 0 || errno != EAGAIN) | |
192 | + break; | |
193 | + usleep(1000); | |
194 | + } | |
195 | + return err; | |
196 | +} | |
197 | + | |
107 | 198 | static bool |
108 | 199 | load_foz_dbs(struct foz_db *foz_db, FILE *db_idx, uint8_t file_idx, |
109 | 200 | bool read_only) |
110 | 201 | { |
111 | - int err = flock(fileno(foz_db->file[file_idx]), LOCK_EX | LOCK_NB); | |
112 | - if (err == -1) | |
113 | - goto fail; | |
114 | - | |
115 | - err = flock(fileno(db_idx), LOCK_EX | LOCK_NB); | |
116 | - if (err == -1) | |
117 | - goto fail; | |
118 | - | |
119 | 202 | /* Scan through the archive and get the list of cache entries. */ |
120 | 203 | fseek(db_idx, 0, SEEK_END); |
121 | 204 | size_t len = ftell(db_idx); |
122 | 205 | rewind(db_idx); |
123 | 206 | |
124 | - if (!read_only) | |
125 | - fseek(foz_db->file[file_idx], 0, SEEK_END); | |
207 | + /* Try not to take the lock if len > 0, but if it is 0 we take the lock to initialize the files. */ | |
208 | + if (len == 0) { | |
209 | + /* Wait for 100 ms in case of contention, after that we prioritize getting the app started. */ | |
210 | + int err = lock_file_with_timeout(foz_db->file[file_idx], 100000000); | |
211 | + if (err == -1) | |
212 | + goto fail; | |
213 | + | |
214 | + err = lock_file_with_timeout(db_idx, 100000000); | |
215 | + if (err == -1) | |
216 | + goto fail; | |
217 | + | |
218 | + /* Compute length again so we know nobody else did it in the meantime */ | |
219 | + fseek(db_idx, 0, SEEK_END); | |
220 | + len = ftell(db_idx); | |
221 | + rewind(db_idx); | |
222 | + } | |
126 | 223 | |
127 | 224 | if (len != 0) { |
128 | 225 | uint8_t magic[FOZ_REF_MAGIC_SIZE]; |
@@ -138,67 +235,6 @@ load_foz_dbs(struct foz_db *foz_db, FILE *db_idx, uint8_t file_idx, | ||
138 | 235 | version < FOSSILIZE_FORMAT_MIN_COMPAT_VERSION) |
139 | 236 | goto fail; |
140 | 237 | |
141 | - size_t offset = FOZ_REF_MAGIC_SIZE; | |
142 | - size_t begin_append_offset = len; | |
143 | - | |
144 | - while (offset < len) { | |
145 | - begin_append_offset = offset; | |
146 | - | |
147 | - char bytes_to_read[FOSSILIZE_BLOB_HASH_LENGTH + sizeof(struct foz_payload_header)]; | |
148 | - struct foz_payload_header *header; | |
149 | - | |
150 | - /* Corrupt entry. Our process might have been killed before we | |
151 | - * could write all data. | |
152 | - */ | |
153 | - if (offset + sizeof(bytes_to_read) > len) | |
154 | - break; | |
155 | - | |
156 | - /* NAME + HEADER in one read */ | |
157 | - if (fread(bytes_to_read, 1, sizeof(bytes_to_read), db_idx) != | |
158 | - sizeof(bytes_to_read)) | |
159 | - goto fail; | |
160 | - | |
161 | - offset += sizeof(bytes_to_read); | |
162 | - header = (struct foz_payload_header*)&bytes_to_read[FOSSILIZE_BLOB_HASH_LENGTH]; | |
163 | - | |
164 | - /* Corrupt entry. Our process might have been killed before we | |
165 | - * could write all data. | |
166 | - */ | |
167 | - if (offset + header->payload_size > len || | |
168 | - header->payload_size != sizeof(uint64_t)) | |
169 | - break; | |
170 | - | |
171 | - char hash_str[FOSSILIZE_BLOB_HASH_LENGTH + 1] = {0}; | |
172 | - memcpy(hash_str, bytes_to_read, FOSSILIZE_BLOB_HASH_LENGTH); | |
173 | - | |
174 | - struct foz_db_entry *entry = ralloc(foz_db->mem_ctx, | |
175 | - struct foz_db_entry); | |
176 | - entry->header = *header; | |
177 | - entry->file_idx = file_idx; | |
178 | - _mesa_sha1_hex_to_sha1(entry->key, hash_str); | |
179 | - | |
180 | - /* read cache item offset from index file */ | |
181 | - uint64_t cache_offset; | |
182 | - if (fread(&cache_offset, 1, sizeof(cache_offset), db_idx) != | |
183 | - sizeof(cache_offset)) | |
184 | - return false; | |
185 | - | |
186 | - entry->offset = cache_offset; | |
187 | - | |
188 | - /* Truncate the entry's hash string to a 64bit hash for use with a | |
189 | - * 64bit hash table for looking up file offsets. | |
190 | - */ | |
191 | - hash_str[16] = '\0'; | |
192 | - uint64_t key = strtoull(hash_str, NULL, 16); | |
193 | - _mesa_hash_table_u64_insert(foz_db->index_db, key, entry); | |
194 | - | |
195 | - offset += header->payload_size; | |
196 | - } | |
197 | - | |
198 | - if (!read_only && offset != len) { | |
199 | - if (fseek(db_idx, begin_append_offset, SEEK_SET) < 0) | |
200 | - goto fail; | |
201 | - } | |
202 | 238 | } else { |
203 | 239 | /* Appending to a fresh file. Make sure we have the magic. */ |
204 | 240 | if (fwrite(stream_reference_magic_and_version, 1, |
@@ -212,10 +248,17 @@ load_foz_dbs(struct foz_db *foz_db, FILE *db_idx, uint8_t file_idx, | ||
212 | 248 | goto fail; |
213 | 249 | } |
214 | 250 | |
251 | + flock(fileno(db_idx), LOCK_UN); | |
252 | + flock(fileno(foz_db->file[file_idx]), LOCK_UN); | |
253 | + | |
254 | + update_foz_index(foz_db, db_idx, file_idx); | |
255 | + | |
215 | 256 | foz_db->alive = true; |
216 | 257 | return true; |
217 | 258 | |
218 | 259 | fail: |
260 | + flock(fileno(db_idx), LOCK_UN); | |
261 | + flock(fileno(foz_db->file[file_idx]), LOCK_UN); | |
219 | 262 | foz_destroy(foz_db); |
220 | 263 | return false; |
221 | 264 | } |
@@ -329,12 +372,15 @@ foz_read_entry(struct foz_db *foz_db, const uint8_t *cache_key_160bit, | ||
329 | 372 | struct foz_db_entry *entry = |
330 | 373 | _mesa_hash_table_u64_search(foz_db->index_db, hash); |
331 | 374 | if (!entry) { |
375 | + update_foz_index(foz_db, foz_db->db_idx, 0); | |
376 | + entry = _mesa_hash_table_u64_search(foz_db->index_db, hash); | |
377 | + } | |
378 | + if (!entry) { | |
332 | 379 | simple_mtx_unlock(&foz_db->mtx); |
333 | 380 | return NULL; |
334 | 381 | } |
335 | 382 | |
336 | 383 | uint8_t file_idx = entry->file_idx; |
337 | - off_t offset = ftell(foz_db->file[file_idx]); | |
338 | 384 | if (fseek(foz_db->file[file_idx], entry->offset, SEEK_SET) < 0) |
339 | 385 | goto fail; |
340 | 386 |
@@ -367,16 +413,12 @@ foz_read_entry(struct foz_db *foz_db, const uint8_t *cache_key_160bit, | ||
367 | 413 | if (size) |
368 | 414 | *size = data_sz; |
369 | 415 | |
370 | - /* Reset file offset to the end of the file ready for writing */ | |
371 | - fseek(foz_db->file[file_idx], offset, SEEK_SET); | |
372 | - | |
373 | 416 | return data; |
374 | 417 | |
375 | 418 | fail: |
376 | 419 | free(data); |
377 | 420 | |
378 | 421 | /* reading db entry failed. reset the file offset */ |
379 | - fseek(foz_db->file[file_idx], offset, SEEK_SET); | |
380 | 422 | simple_mtx_unlock(&foz_db->mtx); |
381 | 423 | |
382 | 424 | return NULL; |
@@ -393,8 +435,20 @@ foz_write_entry(struct foz_db *foz_db, const uint8_t *cache_key_160bit, | ||
393 | 435 | if (!foz_db->alive) |
394 | 436 | return false; |
395 | 437 | |
438 | + /* Wait for 1 second. This is done outside of the mutex as I believe there is more potential | |
439 | + * for file contention than mtx contention of significant length. */ | |
440 | + int err = lock_file_with_timeout(foz_db->file[0], 1000000000); | |
441 | + if (err == -1) | |
442 | + goto fail_file; | |
443 | + | |
444 | + err = lock_file_with_timeout(foz_db->db_idx, 1000000000); | |
445 | + if (err == -1) | |
446 | + goto fail_file; | |
447 | + | |
396 | 448 | simple_mtx_lock(&foz_db->mtx); |
397 | 449 | |
450 | + update_foz_index(foz_db, foz_db->db_idx, 0); | |
451 | + | |
398 | 452 | struct foz_db_entry *entry = |
399 | 453 | _mesa_hash_table_u64_search(foz_db->index_db, hash); |
400 | 454 | if (entry) { |
@@ -409,6 +463,8 @@ foz_write_entry(struct foz_db *foz_db, const uint8_t *cache_key_160bit, | ||
409 | 463 | header.payload_size = blob_size; |
410 | 464 | header.crc = util_hash_crc32(blob, blob_size); |
411 | 465 | |
466 | + fseek(foz_db->file[0], 0, SEEK_END); | |
467 | + | |
412 | 468 | /* Write hash header to db */ |
413 | 469 | char hash_str[FOSSILIZE_BLOB_HASH_LENGTH + 1]; /* 40 digits + null */ |
414 | 470 | _mesa_sha1_format(hash_str, cache_key_160bit); |
@@ -458,11 +514,16 @@ foz_write_entry(struct foz_db *foz_db, const uint8_t *cache_key_160bit, | ||
458 | 514 | _mesa_hash_table_u64_insert(foz_db->index_db, hash, entry); |
459 | 515 | |
460 | 516 | simple_mtx_unlock(&foz_db->mtx); |
517 | + flock(fileno(foz_db->db_idx), LOCK_UN); | |
518 | + flock(fileno(foz_db->file[0]), LOCK_UN); | |
461 | 519 | |
462 | 520 | return true; |
463 | 521 | |
464 | 522 | fail: |
465 | 523 | simple_mtx_unlock(&foz_db->mtx); |
524 | +fail_file: | |
525 | + flock(fileno(foz_db->db_idx), LOCK_UN); | |
526 | + flock(fileno(foz_db->file[0]), LOCK_UN); | |
466 | 527 | return false; |
467 | 528 | } |
468 | 529 | #else |