The ‘mesa-darwin’ stuff was very out of date (2012). This moves darwin
to use the newer mesa. Stuff seems to build okay. Needs more testing
on other stuff though (libraries work). No drivers build but that is
how it should work on macOS.
/cc @cstrahan @Anton-Latukha
Mesa usually uses the timestamps of the llvm and driver shared libraries
as a cache key. In /nix/store these are all zero, so we'll include
$(drivers) in the cache key, which should be unique for all combinations
of mesa and llvm versions.
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.
The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:
```
ISA: ARMv8 {-A, -R, -M}
/ \
Mode: Aarch32 Aarch64
| / \
Encoding: A64 A32 T32
```
At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.
The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.
[1]: https://developer.arm.com/products/architecture/a-profile
This will install drirc to the location where mesa expects to find it.
You can test with:
LIBGL_DEBUG=1 glxgears
An error message will be printed if drirc can't be found.
It seems that all uses of `libva` it in nixpkgs except `mesa` and itself actually
either will gain from using `libva-full` instead of `libva-minimal` by default
or simply won't care.
* Implement libGL as a symlink package which uses libraries from libglvnd and
headers from Mesa (since ones from libglvnd are outdated).
* Use libGL_driver.driverLink treewide; add FHS paths where possible.
Resolved the following conflicts (by carefully applying patches from the both
branches since the fork point):
pkgs/development/libraries/epoxy/default.nix
pkgs/development/libraries/gtk+/3.x.nix
pkgs/development/python-modules/asgiref/default.nix
pkgs/development/python-modules/daphne/default.nix
pkgs/os-specific/linux/systemd/default.nix