• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# R600 shader from NIR
2
3This code is an attempt to implement a NIR backend for r600.
4
5## State
6
7Supported hardware: Evergreen and NI (tested on CEDAR and BARTS)
8
9Thanks to soft fp64 the OpenGL version is now 4.5
10
11sb has been enabled for nir to be able to run some more demanding work loads. The aim is
12still to get rid of it.
13
14
15piglits gpu passes mostly like with TGSI, there are some fixes but also a few regressions.
16
17CTS gles
18 - 2 passes like with TGSI
19 - 3 no regressions, a few fixes compared to TGSI
20 - 31
21    * a few fixes with interpolation specifiers
22    * synchronization has some unstable tests, this might be because global synchronization is missing (in both)
23
24GL CTS:
25  * a few regressions and a hang with KHR-GL43.compute_shader.shared-max
26
27piglit:
28  * spilling arrays is broken on Barts (but it works on Cedar)
29  * a few tests fail because the register limit is exhausted, and needlessly so, because
30    with better RA it would work
31
32## Needed optimizations:
33
34  - Register allocator and scheduler (Could the sb allocator and scheduler
35    be ported?)
36
37  - peepholes:
38    - compare + set predicate
39
40  - copy propagation:
41    - Moves from inputs are usually not required, they could be forwarded
42    - texture operations often move additional parameters in extra registers
43      but they are actually needed in the same registers they come from and
44      could just be swizzled into the right place
45      (lower in NIR like it is done in e.g. in ETNAVIV)
46