[Mesa-dev] [PATCH] meson: Add some presets for s390 and ppc

Adam Jackson ajax at redhat.com
Fri Sep 28 19:59:16 UTC 2018


s390 doesn't have working llvm, so llvmpipe isn't an option. softpipe
might be more featureful but classic swrast is faster. s390x has working
llvm so we can build llvmpipe there.

ppc doesn't have working llvm either (so give it classic swrast too),
but at least it has a PCI bus you could maybe plug things into. Build
gallium nouveau and r300 there, they might not work very well but at
least PowerPC Macs had cards of that vintage. For ppc64 and ppc64le,
build the gallium drivers corresponding to PCIE cards, and llvmpipe.

For all of the above, don't build Vulkan drivers yet. radv should in
principle Just Work on ppc64le, but that's true of aarch64 too, and
we're not building radv by default there yet either.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 meson.build | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/meson.build b/meson.build
index 97693b91ecf..71a19110d17 100644
--- a/meson.build
+++ b/meson.build
@@ -96,10 +96,11 @@ system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly', 'linux'].cont
 _drivers = get_option('dri-drivers')
 if _drivers.contains('auto')
   if system_has_kms_drm
-    # TODO: PPC, Sparc
     if ['x86', 'x86_64'].contains(host_machine.cpu_family())
       _drivers = ['i915', 'i965', 'r100', 'r200', 'nouveau']
-    elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
+    elif ['s390', 'ppc'].contains(host_machine.cpu_family())
+      _drivers = ['swrast']
+    elif ['arm', 'aarch64', 's390x', 'ppc64', 'ppc64le'].contains(host_machine.cpu_family())
       _drivers = []
     else
       error('Unknown architecture @0 at . Please pass -Ddri-drivers to set driver options. Patches gladly accepted to fix this.'.format(
@@ -126,7 +127,6 @@ with_dri = _drivers.length() != 0 and _drivers != ['']
 _drivers = get_option('gallium-drivers')
 if _drivers.contains('auto')
   if system_has_kms_drm
-    # TODO: PPC, Sparc
     if ['x86', 'x86_64'].contains(host_machine.cpu_family())
       _drivers = [
         'r300', 'r600', 'radeonsi', 'nouveau', 'virgl', 'svga', 'swrast'
@@ -136,6 +136,20 @@ if _drivers.contains('auto')
         'pl111', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'imx', 'nouveau',
         'tegra', 'virgl', 'swrast',
       ]
+    elif ['ppc'].contains(host_machine.cpu_family())
+      _drivers = [
+        'nouveau', 'r300',
+      ]
+    elif ['ppc64', 'ppc64le'].contains(host_machine.cpu_family())
+      _drivers = [
+        'r600', 'radeonsi', 'nouveau', 'swrast'
+      ]
+    elif ['s390'].contains(host_machine.cpu_family())
+      _drivers = []
+    elif ['s390x'].contains(host_machine.cpu_family())
+      _drivers = [
+        'swrast'
+      ]
     else
       error('Unknown architecture @0 at . Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.'.format(
             host_machine.cpu_family()))
@@ -179,7 +193,7 @@ if _vulkan_drivers.contains('auto')
   if system_has_kms_drm
     if host_machine.cpu_family().startswith('x86')
       _vulkan_drivers = ['amd', 'intel']
-    elif ['arm', 'aarch64'].contains(host_machine.cpu_family())
+    elif ['arm', 'aarch64', 'ppc', 'ppc64', 'ppc64le', 's390', 's390x'].contains(host_machine.cpu_family())
       _vulkan_drivers = []
     else
       error('Unknown architecture @0 at . Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.'.format(
-- 
2.17.1



More information about the mesa-dev mailing list