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