mesa 20.3.2-1 (znver1;x86_64;aarch64) 2021-13449
9999
Status | published | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Submitter | angrypenguinpoland [@T] gmail.com | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Platform | rolling | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Repository | main | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
URL | https://abf.openmandriva.org/build_lists/930224 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Packages |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Build Date | 2021-01-06 13:39:32 +0000 UTC | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Last Updated | 2021-01-11 17:35:39.420020366 +0000 UTC |
$ git diff --patch-with-stat --summary 4c92b8e39264c42260fbb9e1d66cb062a6c9bba6..af7ecf6c126cde9e3e841040ac8a9c770e6535a2 .abf.yml | 2 +- 3449.patch | 58 --- mesa-19.2.0-rc3-meson-radeon-arm-riscv.patch | 40 -- mesa-20.0.3-amd-non-x86.patch | 12 - mesa-20.1-rc4-compile.patch | 12 + mesa-20.1.1-fix-opencl.patch | 306 ++++++++++++++ mesa-20.2.0-rc1-llvm-libunwind.patch | 12 + mesa-20.3.0-meson-radeon-arm-riscv-ppc.patch | 39 ++ mesa.spec | 584 +++++++++++++++++++++++++-- test.c | 60 +++ 10 files changed, 976 insertions(+), 149 deletions(-) delete mode 100644 3449.patch delete mode 100644 mesa-19.2.0-rc3-meson-radeon-arm-riscv.patch delete mode 100644 mesa-20.0.3-amd-non-x86.patch create mode 100644 mesa-20.1-rc4-compile.patch create mode 100644 mesa-20.1.1-fix-opencl.patch create mode 100644 mesa-20.2.0-rc1-llvm-libunwind.patch create mode 100644 mesa-20.3.0-meson-radeon-arm-riscv-ppc.patch create mode 100644 test.c diff --git a/.abf.yml b/.abf.yml index 62aa9ae..30379c2 100644 --- a/.abf.yml +++ b/.abf.yml @@ -1,2 +1,2 @@ sources: - mesa-20.0.7.tar.xz: e64184e38fcc7788ced2693e6576f16821e71753 + mesa-20.3.2.tar.xz: 59522f71ceff124c1fd7b68d9e7f4ad177f38a0e diff --git a/3449.patch b/3449.patch deleted file mode 100644 index 2d3581a..0000000 --- a/3449.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 94788a3a29dfed1e5d4fd5cfb91a9b67b0b013cc Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org> -Date: Fri, 17 Jan 2020 18:33:52 +0100 -Subject: [PATCH] kmsro: Extend to include imx-dcss -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This allows using the dcss display controllers (with the dcss drm -modesetting driver) along with the Etnaviv render-only drivers. DCSS is -found on i.MX SoCs. - -Signed-off-by: Guido Günther <agx@sigxcpu.org> ---- - src/gallium/drivers/kmsro/Android.mk | 1 + - src/gallium/targets/dri/meson.build | 1 + - src/gallium/targets/dri/target.c | 1 + - 3 files changed, 3 insertions(+) - -diff --git a/src/gallium/drivers/kmsro/Android.mk b/src/gallium/drivers/kmsro/Android.mk -index 7c39f97b81b..56edab20f13 100644 ---- a/src/gallium/drivers/kmsro/Android.mk -+++ b/src/gallium/drivers/kmsro/Android.mk -@@ -40,6 +40,7 @@ GALLIUM_TARGET_DRIVERS += hx8357d - GALLIUM_TARGET_DRIVERS += ili9225 - GALLIUM_TARGET_DRIVERS += ili9341 - GALLIUM_TARGET_DRIVERS += imx -+GALLIUM_TARGET_DRIVERS += imx-dcss - GALLIUM_TARGET_DRIVERS += ingenic-drm - GALLIUM_TARGET_DRIVERS += stm - GALLIUM_TARGET_DRIVERS += mcde -diff --git a/src/gallium/targets/dri/meson.build b/src/gallium/targets/dri/meson.build -index 954b2182ce4..7ebcec16cf3 100644 ---- a/src/gallium/targets/dri/meson.build -+++ b/src/gallium/targets/dri/meson.build -@@ -73,6 +73,7 @@ foreach d : [[with_gallium_kmsro, [ - 'ili9225_dri.so', - 'ili9341_dri.so', - 'imx-drm_dri.so', -+ 'imx-dcss_dri.so', - 'ingenic-drm_dri.so', - 'mcde_dri.so', - 'meson_dri.so', -diff --git a/src/gallium/targets/dri/target.c b/src/gallium/targets/dri/target.c -index f71f690a70e..7e49378e4bc 100644 ---- a/src/gallium/targets/dri/target.c -+++ b/src/gallium/targets/dri/target.c -@@ -98,6 +98,7 @@ DEFINE_LOADER_DRM_ENTRYPOINT(hx8357d) - DEFINE_LOADER_DRM_ENTRYPOINT(ili9225) - DEFINE_LOADER_DRM_ENTRYPOINT(ili9341) - DEFINE_LOADER_DRM_ENTRYPOINT(imx_drm) -+DEFINE_LOADER_DRM_ENTRYPOINT(imx_dcss) - DEFINE_LOADER_DRM_ENTRYPOINT(ingenic_drm) - DEFINE_LOADER_DRM_ENTRYPOINT(mcde) - DEFINE_LOADER_DRM_ENTRYPOINT(meson) --- -2.24.1 - diff --git a/mesa-19.2.0-rc3-meson-radeon-arm-riscv.patch b/mesa-19.2.0-rc3-meson-radeon-arm-riscv.patch deleted file mode 100644 index 7a7bf12..0000000 --- a/mesa-19.2.0-rc3-meson-radeon-arm-riscv.patch +++ /dev/null @@ -1,40 +0,0 @@ -diff -up mesa-19.2.0-rc3/meson.build.2~ mesa-19.2.0-rc3/meson.build ---- mesa-19.2.0-rc3/meson.build.2~ 2019-09-11 18:23:35.000000000 +0200 -+++ mesa-19.2.0-rc3/meson.build 2019-09-13 01:42:07.786526054 +0200 -@@ -125,8 +125,8 @@ if dri_drivers.contains('auto') - # TODO: PPC, Sparc - if ['x86', 'x86_64'].contains(host_machine.cpu_family()) - dri_drivers = ['i915', 'i965', 'r100', 'r200', 'nouveau'] -- elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) -- dri_drivers = [] -+ elif ['arm', 'aarch64', 'riscv64'].contains(host_machine.cpu_family()) -+ dri_drivers = ['r100', 'r200', 'nouveau'] - else - error('Unknown architecture @0@. Please pass -Ddri-drivers to set driver options. Patches gladly accepted to fix this.'.format( - host_machine.cpu_family())) -@@ -160,7 +160,13 @@ if gallium_drivers.contains('auto') - elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) - gallium_drivers = [ - 'kmsro', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau', -- 'tegra', 'virgl', 'lima', 'panfrost', 'swrast' -+ 'tegra', 'virgl', 'lima', 'panfrost', 'swrast', -+ 'r300', 'r600', 'radeonsi' -+ ] -+ elif ['riscv64'].contains(host_machine.cpu_family()) -+ gallium_drivers = [ -+ 'nouveau', 'swrast', -+ 'r300', 'r600', 'radeonsi' - ] - else - error('Unknown architecture @0@. Please pass -Dgallium-drivers to set driver options. Patches gladly accepted to fix this.'.format( -@@ -215,8 +221,8 @@ 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()) -- _vulkan_drivers = [] -+ elif ['arm', 'aarch64', 'riscv64'].contains(host_machine.cpu_family()) -+ _vulkan_drivers = ['amd'] - else - error('Unknown architecture @0@. Please pass -Dvulkan-drivers to set driver options. Patches gladly accepted to fix this.'.format( - host_machine.cpu_family())) diff --git a/mesa-20.0.3-amd-non-x86.patch b/mesa-20.0.3-amd-non-x86.patch deleted file mode 100644 index 4aa9179..0000000 --- a/mesa-20.0.3-amd-non-x86.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up mesa-20.0.3/src/amd/addrlib/inc/addrtypes.h.2~ mesa-20.0.3/src/amd/addrlib/inc/addrtypes.h ---- mesa-20.0.3/src/amd/addrlib/inc/addrtypes.h.2~ 2020-04-02 13:35:20.510114470 +0200 -+++ mesa-20.0.3/src/amd/addrlib/inc/addrtypes.h 2020-04-02 13:36:48.386741907 +0200 -@@ -87,7 +87,7 @@ typedef int INT; - #endif - - #ifndef ADDR_FASTCALL -- #if defined(__GNUC__) -+ #if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__)) - #define ADDR_FASTCALL __attribute__((regparm(0))) - #else - #define ADDR_FASTCALL __fastcall diff --git a/mesa-20.1-rc4-compile.patch b/mesa-20.1-rc4-compile.patch new file mode 100644 index 0000000..3567050 --- /dev/null +++ b/mesa-20.1-rc4-compile.patch @@ -0,0 +1,12 @@ +diff -up mesa-20.1.0-rc4/src/gallium/auxiliary/util/u_debug_stack.c.omv~ mesa-20.1.0-rc4/src/gallium/auxiliary/util/u_debug_stack.c +--- mesa-20.1.0-rc4/src/gallium/auxiliary/util/u_debug_stack.c.omv~ 2020-05-28 04:22:47.724685959 +0200 ++++ mesa-20.1.0-rc4/src/gallium/auxiliary/util/u_debug_stack.c 2020-05-28 04:23:02.093837627 +0200 +@@ -94,7 +94,7 @@ debug_backtrace_capture(struct debug_sta + unw_proc_info_t pip; + unsigned i = 0; + +- pip.unwind_info = NULL; ++ pip.unwind_info = (intptr_t)NULL; + + unw_getcontext(&context); + unw_init_local(&cursor, &context); diff --git a/mesa-20.1.1-fix-opencl.patch b/mesa-20.1.1-fix-opencl.patch new file mode 100644 index 0000000..f471042 --- /dev/null +++ b/mesa-20.1.1-fix-opencl.patch @@ -0,0 +1,306 @@ +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/clApiRename.h.1~ mesa-20.3.0/src/gallium/frontends/clover/api/clApiRename.h +--- mesa-20.3.0/src/gallium/frontends/clover/api/clApiRename.h.1~ 2020-12-05 16:57:24.164472720 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/clApiRename.h 2020-12-05 16:57:24.164472720 +0100 +@@ -0,0 +1,148 @@ ++#pragma once ++ ++#define clGetPlatformIDs clGetPlatformIDsMESA ++#define GetPlatformInfo GetPlatformInfoMESA ++#define clGetDeviceIDs clGetDeviceIDsMESA ++#define clGetDeviceInfo clGetDeviceInfoMESA ++#define clCreateContext clCreateContextMESA ++#define clCreateContextFromType clCreateContextFromTypeMESA ++#define clRetainContext clRetainContextMESA ++#define clReleaseContext clReleaseContextMESA ++#define clGetContextInfo clGetContextInfoMESA ++#define clCreateCommandQueue clCreateCommandQueueMESA ++#define clRetainCommandQueue clRetainCommandQueueMESA ++#define clReleaseCommandQueue clReleaseCommandQueueMESA ++#define clGetCommandQueueInfo clGetCommandQueueInfoMESA ++#define clSetCommandQueueProperty clSetCommandQueuePropertyMESA ++#define clCreateBuffer clCreateBufferMESA ++#define clCreateImage2D clCreateImage2DMESA ++#define clCreateImage3D clCreateImage3DMESA ++#define clRetainMemObject clRetainMemObjectMESA ++#define clReleaseMemObject clReleaseMemObjectMESA ++#define clGetSupportedImageFormats clGetSupportedImageFormatsMESA ++#define clGetMemObjectInfo clGetMemObjectInfoMESA ++#define clGetImageInfo clGetImageInfoMESA ++#define clCreateSampler clCreateSamplerMESA ++#define clRetainSampler clRetainSamplerMESA ++#define clReleaseSampler clReleaseSamplerMESA ++#define clGetSamplerInfo clGetSamplerInfoMESA ++#define clCreateProgramWithSource clCreateProgramWithSourceMESA ++#define clCreateProgramWithBinary clCreateProgramWithBinaryMESA ++#define clRetainProgram clRetainProgramMESA ++#define clReleaseProgram clReleaseProgramMESA ++#define clBuildProgram clBuildProgramMESA ++#define clUnloadCompiler clUnloadCompilerMESA ++#define clGetProgramInfo clGetProgramInfoMESA ++#define clGetProgramBuildInfo clGetProgramBuildInfoMESA ++#define clCreateKernel clCreateKernelMESA ++#define clCreateKernelsInProgram clCreateKernelsInProgramMESA ++#define clRetainKernel clRetainKernelMESA ++#define clReleaseKernel clReleaseKernelMESA ++#define clSetKernelArg clSetKernelArgMESA ++#define clGetKernelInfo clGetKernelInfoMESA ++#define clGetKernelWorkGroupInfo clGetKernelWorkGroupInfoMESA ++#define clWaitForEvents clWaitForEventsMESA ++#define clGetEventInfo clGetEventInfoMESA ++#define clRetainEvent clRetainEventMESA ++#define clReleaseEvent clReleaseEventMESA ++#define clGetEventProfilingInfo clGetEventProfilingInfoMESA ++#define clFlush clFlushMESA ++#define clFinish clFinishMESA ++#define clEnqueueReadBuffer clEnqueueReadBufferMESA ++#define clEnqueueWriteBuffer clEnqueueWriteBufferMESA ++#define clEnqueueCopyBuffer clEnqueueCopyBufferMESA ++#define clEnqueueReadImage clEnqueueReadImageMESA ++#define clEnqueueWriteImage clEnqueueWriteImageMESA ++#define clEnqueueCopyImage clEnqueueCopyImageMESA ++#define clEnqueueCopyImageToBuffer clEnqueueCopyImageToBufferMESA ++#define clEnqueueCopyBufferToImage clEnqueueCopyBufferToImageMESA ++#define clEnqueueMapBuffer clEnqueueMapBufferMESA ++#define clEnqueueMapImage clEnqueueMapImageMESA ++#define clEnqueueUnmapMemObject clEnqueueUnmapMemObjectMESA ++#define clEnqueueNDRangeKernel clEnqueueNDRangeKernelMESA ++#define clEnqueueTask clEnqueueTaskMESA ++#define clEnqueueNativeKernel clEnqueueNativeKernelMESA ++#define clEnqueueMarker clEnqueueMarkerMESA ++#define clEnqueueWaitForEvents clEnqueueWaitForEventsMESA ++#define clEnqueueBarrier clEnqueueBarrierMESA ++#define GetExtensionFunctionAddress GetExtensionFunctionAddressMESA ++#define clCreateFromGLBuffer clCreateFromGLBufferMESA ++#define gclCreateFromGLTexture2D gclCreateFromGLTexture2DMESA ++#define gclCreateFromGLTexture3D gclCreateFromGLTexture3DMESA ++#define gclCreateFromGLRenderbuffer gclCreateFromGLRenderbufferMESA ++#define gclGetGLObjectInfo gclGetGLObjectInfoMESA ++#define gclGetGLTextureInfo gclGetGLTextureInfoMESA ++#define gclEnqueueAcquireGLObjects gclEnqueueAcquireGLObjectsMESA ++#define gclEnqueueReleaseGLObjects gclEnqueueReleaseGLObjectsMESA ++#define gclGetGLContextInfoKHR gclGetGLContextInfoKHRMESA ++#define gclGetDeviceIDsFromD3D10KHR gclGetDeviceIDsFromD3D10KHRMESA ++#define gclCreateFromD3D10BufferKHR gclCreateFromD3D10BufferKHRMESA ++#define gclCreateFromD3D10Texture2DKHR gclCreateFromD3D10Texture2DKHRMESA ++#define gclCreateFromD3D10Texture3DKHR gclCreateFromD3D10Texture3DKHRMESA ++#define gclEnqueueAcquireD3D10ObjectsKHR gclEnqueueAcquireD3D10ObjectsKHRMESA ++#define gclEnqueueReleaseD3D10ObjectsKHR gclEnqueueReleaseD3D10ObjectsKHRMESA ++#define clSetEventCallback clSetEventCallbackMESA ++#define clCreateSubBuffer clCreateSubBufferMESA ++#define clSetMemObjectDestructorCallback clSetMemObjectDestructorCallbackMESA ++#define clCreateUserEvent clCreateUserEventMESA ++#define clSetUserEventStatus clSetUserEventStatusMESA ++#define clEnqueueReadBufferRect clEnqueueReadBufferRectMESA ++#define clEnqueueWriteBufferRect clEnqueueWriteBufferRectMESA ++#define clEnqueueCopyBufferRect clEnqueueCopyBufferRectMESA ++#define gclCreateSubDevicesEXT gclCreateSubDevicesEXTMESA ++#define gclRetainDeviceEXT gclRetainDeviceEXTMESA ++#define gclReleaseDeviceEXT gclReleaseDeviceEXTMESA ++#define gclCreateEventFromGLsyncKHR gclCreateEventFromGLsyncKHRMESA ++#define clCreateSubDevices clCreateSubDevicesMESA ++#define clRetainDevice clRetainDeviceMESA ++#define clReleaseDevice clReleaseDeviceMESA ++#define clCreateImage clCreateImageMESA ++#define clCreateProgramWithBuiltInKernels clCreateProgramWithBuiltInKernelsMESA ++#define clCompileProgram clCompileProgramMESA ++#define clLinkProgram clLinkProgramMESA ++#define clUnloadPlatformCompiler clUnloadPlatformCompilerMESA ++#define clGetKernelArgInfo clGetKernelArgInfoMESA ++#define clEnqueueFillBuffer clEnqueueFillBufferMESA ++#define clEnqueueFillImage clEnqueueFillImageMESA ++#define clEnqueueMigrateMemObjects clEnqueueMigrateMemObjectsMESA ++#define clEnqueueMarkerWithWaitList clEnqueueMarkerWithWaitListMESA ++#define clEnqueueBarrierWithWaitList clEnqueueBarrierWithWaitListMESA ++#define GetExtensionFunctionAddressForPlatform GetExtensionFunctionAddressForPlatformMESA ++#define gclCreateFromGLTexture gclCreateFromGLTextureMESA ++#define gclGetDeviceIDsFromD3D11KHR gclGetDeviceIDsFromD3D11KHRMESA ++#define gclCreateFromD3D11BufferKHR gclCreateFromD3D11BufferKHRMESA ++#define gclCreateFromD3D11Texture2DKHR gclCreateFromD3D11Texture2DKHRMESA ++#define gclCreateFromD3D11Texture3DKHR gclCreateFromD3D11Texture3DKHRMESA ++#define gclCreateFromDX9MediaSurfaceKHR gclCreateFromDX9MediaSurfaceKHRMESA ++#define gclEnqueueAcquireD3D11ObjectsKHR gclEnqueueAcquireD3D11ObjectsKHRMESA ++#define gclEnqueueReleaseD3D11ObjectsKHR gclEnqueueReleaseD3D11ObjectsKHRMESA ++#define gclGetDeviceIDsFromDX9MediaAdapterKHR gclGetDeviceIDsFromDX9MediaAdapterKHRMESA ++#define gclEnqueueAcquireDX9MediaSurfacesKHR gclEnqueueAcquireDX9MediaSurfacesKHRMESA ++#define gclEnqueueReleaseDX9MediaSurfacesKHR gclEnqueueReleaseDX9MediaSurfacesKHRMESA ++#define gclCreateFromEGLImageKHR gclCreateFromEGLImageKHRMESA ++#define gclEnqueueAcquireEGLObjectsKHR gclEnqueueAcquireEGLObjectsKHRMESA ++#define gclEnqueueReleaseEGLObjectsKHR gclEnqueueReleaseEGLObjectsKHRMESA ++#define gclCreateEventFromEGLSyncKHR gclCreateEventFromEGLSyncKHRMESA ++#define clCreateCommandQueueWithProperties clCreateCommandQueueWithPropertiesMESA ++#define gclCreatePipe gclCreatePipeMESA ++#define gclGetPipeInfo gclGetPipeInfoMESA ++#define clSVMAlloc clSVMAllocMESA ++#define clSVMFree clSVMFreeMESA ++#define clEnqueueSVMFree clEnqueueSVMFreeMESA ++#define clEnqueueSVMMemcpy clEnqueueSVMMemcpyMESA ++#define clEnqueueSVMMemFill clEnqueueSVMMemFillMESA ++#define clEnqueueSVMMap clEnqueueSVMMapMESA ++#define clEnqueueSVMUnmap clEnqueueSVMUnmapMESA ++#define gclCreateSamplerWithProperties gclCreateSamplerWithPropertiesMESA ++#define clSetKernelArgSVMPointer clSetKernelArgSVMPointerMESA ++#define clSetKernelExecInfo clSetKernelExecInfoMESA ++#define gclGetKernelSubGroupInfoKHR gclGetKernelSubGroupInfoKHRMESA ++#define gclCloneKernel gclCloneKernelMESA ++#define gclCreateProgramWithIL gclCreateProgramWithILMESA ++#define clEnqueueSVMMigrateMem clEnqueueSVMMigrateMemMESA ++#define gclGetDeviceAndHostTimer gclGetDeviceAndHostTimerMESA ++#define gclGetHostTimer gclGetHostTimerMESA ++#define gclGetKernelSubGroupInfo gclGetKernelSubGroupInfoMESA ++#define gclSetDefaultDeviceCommandQueue gclSetDefaultDeviceCommandQueueMESA ++#define gclSetProgramReleaseCallback gclSetProgramReleaseCallbackMESA ++#define gclSetProgramSpecializationConstant gclSetProgramSpecializationConstantMESA +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/context.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/context.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/context.cpp.1~ 2020-12-03 18:59:53.543230800 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/context.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/util.hpp" + #include "core/context.hpp" + #include "core/platform.hpp" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/device.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/device.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/device.cpp.1~ 2020-12-03 18:59:53.543230800 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/device.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/util.hpp" + #include "core/platform.hpp" + #include "core/device.hpp" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.cpp.1~ 2020-12-03 18:59:53.543230800 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/dispatch.hpp" + + namespace clover { +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.hpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.hpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.hpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/dispatch.hpp 2020-12-05 16:57:24.165472735 +0100 +@@ -23,6 +23,7 @@ + #ifndef API_DISPATCH_HPP + #define API_DISPATCH_HPP + ++#include "clApiRename.h" + #include "CL/cl.h" + #include "CL/cl_ext.h" + #include "CL/cl_egl.h" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/event.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/event.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/event.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/event.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/util.hpp" + #include "core/event.hpp" + +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/interop.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/interop.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/interop.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/interop.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -21,6 +21,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "core/event.hpp" + #include "api/util.hpp" + +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/kernel.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/kernel.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/kernel.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/kernel.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/util.hpp" + #include "core/kernel.hpp" + #include "core/event.hpp" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/memory.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/memory.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/memory.cpp.1~ 2020-12-05 16:57:24.165472735 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/memory.cpp 2020-12-05 17:05:04.393194879 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "util/format/u_format.h" + #include "util/u_math.h" + #include "api/util.hpp" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/platform.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/platform.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/platform.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/platform.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -22,6 +22,7 @@ + + #include <unordered_map> + ++#include "clApiRename.h" + #include "api/dispatch.hpp" + #include "api/util.hpp" + #include "core/platform.hpp" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/program.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/program.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/program.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/program.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/util.hpp" + #include "core/program.hpp" + #include "util/u_debug.h" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/queue.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/queue.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/queue.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/queue.cpp 2020-12-05 16:57:24.165472735 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/util.hpp" + #include "core/queue.hpp" + +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/sampler.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/sampler.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/sampler.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/sampler.cpp 2020-12-05 16:57:24.166472749 +0100 +@@ -20,6 +20,7 @@ + // OTHER DEALINGS IN THE SOFTWARE. + // + ++#include "clApiRename.h" + #include "api/util.hpp" + #include "core/sampler.hpp" + +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/transfer.cpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/transfer.cpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/transfer.cpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/transfer.cpp 2020-12-05 16:57:24.166472749 +0100 +@@ -22,6 +22,7 @@ + + #include <cstring> + ++#include "clApiRename.h" + #include "util/bitscan.h" + + #include "api/dispatch.hpp" +diff -up mesa-20.3.0/src/gallium/frontends/clover/api/util.hpp.1~ mesa-20.3.0/src/gallium/frontends/clover/api/util.hpp +--- mesa-20.3.0/src/gallium/frontends/clover/api/util.hpp.1~ 2020-12-03 18:59:53.544231000 +0100 ++++ mesa-20.3.0/src/gallium/frontends/clover/api/util.hpp 2020-12-05 16:57:24.166472749 +0100 +@@ -26,6 +26,7 @@ + #include <cassert> + #include <iostream> + ++#include "clApiRename.h" + #include "core/error.hpp" + #include "core/property.hpp" + #include "util/algorithm.hpp" diff --git a/mesa-20.2.0-rc1-llvm-libunwind.patch b/mesa-20.2.0-rc1-llvm-libunwind.patch new file mode 100644 index 0000000..4d6ec4e --- /dev/null +++ b/mesa-20.2.0-rc1-llvm-libunwind.patch @@ -0,0 +1,12 @@ +diff -up mesa-20.2.0-rc1/src/util/u_debug_stack.c.omv~ mesa-20.2.0-rc1/src/util/u_debug_stack.c +--- mesa-20.2.0-rc1/src/util/u_debug_stack.c.omv~ 2020-08-09 19:46:22.109959412 +0200 ++++ mesa-20.2.0-rc1/src/util/u_debug_stack.c 2020-08-09 19:46:26.785120395 +0200 +@@ -94,7 +94,7 @@ debug_backtrace_capture(struct debug_sta + unw_proc_info_t pip; + unsigned i = 0; + +- pip.unwind_info = NULL; ++ pip.unwind_info = 0L; + + unw_getcontext(&context); + unw_init_local(&cursor, &context); diff --git a/mesa-20.3.0-meson-radeon-arm-riscv-ppc.patch b/mesa-20.3.0-meson-radeon-arm-riscv-ppc.patch new file mode 100644 index 0000000..597386d --- /dev/null +++ b/mesa-20.3.0-meson-radeon-arm-riscv-ppc.patch @@ -0,0 +1,39 @@ +diff -up mesa-20.3.0/meson.build.4~ mesa-20.3.0/meson.build +--- mesa-20.3.0/meson.build.4~ 2020-12-05 18:08:39.527130070 +0100 ++++ mesa-20.3.0/meson.build 2020-12-05 18:13:26.131270428 +0100 +@@ -161,8 +161,8 @@ if dri_drivers.contains('auto') + # TODO: PPC, Sparc + if ['x86', 'x86_64'].contains(host_machine.cpu_family()) + dri_drivers = ['i915', 'i965', 'r100', 'r200', 'nouveau'] +- elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) +- dri_drivers = [] ++ elif ['arm', 'aarch64', 'riscv64', 'ppc64', 'ppc64le'].contains(host_machine.cpu_family()) ++ dri_drivers = ['r100', 'r200', 'nouveau'] + elif ['mips', 'mips64'].contains(host_machine.cpu_family()) + dri_drivers = ['r100', 'r200', 'nouveau'] + else +@@ -199,7 +199,12 @@ if gallium_drivers.contains('auto') + elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) + gallium_drivers = [ + 'kmsro', 'v3d', 'vc4', 'freedreno', 'etnaviv', 'nouveau', +- 'tegra', 'virgl', 'lima', 'panfrost', 'swrast' ++ 'tegra', 'virgl', 'lima', 'panfrost', 'swrast', ++ 'r300', 'r600', 'radeonsi' ++ ] ++ elif ['riscv64', 'ppc64', 'ppc64le'].contains(host_machine.cpu_family()) ++ gallium_drivers = [ ++ 'nouveau', 'swrast', 'r300', 'r600', 'radeonsi' + ] + elif ['mips', 'mips64'].contains(host_machine.cpu_family()) + gallium_drivers = [ +@@ -251,8 +256,8 @@ if _vulkan_drivers.contains('auto') + if system_has_kms_drm + if host_machine.cpu_family().startswith('x86') + _vulkan_drivers = ['amd', 'intel', 'swrast'] +- elif ['arm', 'aarch64'].contains(host_machine.cpu_family()) +- _vulkan_drivers = ['swrast'] ++ elif ['arm', 'aarch64', 'riscv64', 'ppc64', 'ppc64le'].contains(host_machine.cpu_family()) ++ _vulkan_drivers = ['amd', 'swrast'] + elif ['mips', 'mips64'].contains(host_machine.cpu_family()) + _vulkan_drivers = ['amd', 'swrast'] + else diff --git a/mesa.spec b/mesa.spec index 72877e1..cd3f06d 100644 --- a/mesa.spec +++ b/mesa.spec @@ -4,13 +4,17 @@ # (aco) Needed for the dri drivers %define _disable_ld_no_undefined 1 -# We disable LTO because of a compile error in the Intel Vulkan driver -# last seen with Mesa 19.2.0-rc1 and (interestingly) both gcc 9.2 and clang 9.0-rc2 -# Use BFD as ith LLD this errors occurs ld: error: TLS attribute mismatch: _glapi_tls_Dispatch +# Mesa is used by wine and steam +%ifarch %{x86_64} +%bcond_without compat32 +%else +%bcond_with compat32 +%endif + # -fno-strict-aliasing is added because of numerous warnings, strict -# aliasing might generate broekn code. -%global optflags %{optflags} -O3 -fno-strict-aliasing -fuse-ld=gold -%global ldflags %{ldflags} -fno-strict-aliasing +# aliasing might generate broken code. +%global optflags %{optflags} -O3 -fno-strict-aliasing +%global ldflags %{build_ldflags} -fno-strict-aliasing %define git %{nil} %define git_branch %(echo %{version} |cut -d. -f1-2) @@ -51,66 +55,92 @@ %define osmesamajor 8 %define libosmesa %mklibname osmesa %{osmesamajor} %define devosmesa %mklibname osmesa -d +%define lib32osmesa libosmesa%{osmesamajor} +%define dev32osmesa libosmesa-devel %define eglmajor 0 %define eglname EGL_mesa %define libegl %mklibname %{eglname} %{eglmajor} %define devegl %mklibname %{eglname} -d +%define lib32egl lib%{eglname}%{eglmajor} +%define dev32egl lib%{eglname}-devel %define glmajor 0 %define glname GLX_mesa %define libgl %mklibname %{glname} %{glmajor} %define devgl %mklibname GL -d +%define lib32gl lib%{glname}%{glmajor} +%define dev32gl libGL-devel %define devvulkan %mklibname vulkan-intel -d +%define dev32vulkan libvulkan-intel-devel %define glesv1major 1 %define glesv1name GLESv1_CM %define libglesv1 %mklibname %{glesv1name} %{glesv1major} %define devglesv1 %mklibname %{glesv1name} -d +%define lib32glesv1 lib%{glesv1name}%{glesv1major} +%define dev32glesv1 lib%{glesv1name}-devel %define glesv2major 2 %define glesv2name GLESv2 %define libglesv2 %mklibname %{glesv2name}_ %{glesv2major} %define devglesv2 %mklibname %{glesv2name} -d +%define lib32glesv2 lib%{glesv2name}_%{glesv2major} +%define dev32glesv2 lib%{glesv2name}-devel %define devglesv3 %mklibname glesv3 -d +%define dev32glesv3 libglesv3-devel %define d3dmajor 1 %define d3dname d3dadapter9 %define libd3d %mklibname %{d3dname} %{d3dmajor} %define devd3d %mklibname %{d3dname} -d +%define lib32d3d lib%{d3dname}%{d3dmajor} +%define dev32d3d lib%{d3dname}-devel %define glapimajor 0 %define glapiname glapi %define libglapi %mklibname %{glapiname} %{glapimajor} %define devglapi %mklibname %{glapiname} -d +%define lib32glapi lib%{glapiname}%{glapimajor} +%define dev32glapi lib%{glapiname}-devel %define dridrivers %mklibname dri-drivers %define vdpaudrivers %mklibname vdpau-drivers +%define dridrivers32 libdri-drivers +%define vdpaudrivers32 libvdpau-drivers %define gbmmajor 1 %define gbmname gbm %define libgbm %mklibname %{gbmname} %{gbmmajor} %define devgbm %mklibname %{gbmname} -d +%define lib32gbm lib%{gbmname}%{gbmmajor} +%define dev32gbm lib%{gbmname}-devel %define xatrackermajor 2 %define xatrackername xatracker %define libxatracker %mklibname %xatrackername %{xatrackermajor} %define devxatracker %mklibname %xatrackername -d +%define lib32xatracker lib%{xatrackername}%{xatrackermajor} +%define dev32xatracker lib%{xatrackername}-devel %define swravxmajor 0 %define swravxname swravx %define libswravx %mklibname %swravxname %{swravxmajor} +%define lib32swravx lib%{swravxname}%{swravxmajor} %define swravx2major 0 %define swravx2name swravx2 %define libswravx2 %mklibname %swravx2name %{swravx2major} +%define lib32swravx2 lib%{swravx2name}%{swravx2major} %define clmajor 1 %define clname mesaopencl %define libcl %mklibname %clname %clmajor %define devcl %mklibname %clname -d +%define lib32cl lib%{clname}%{clmajor} +%define dev32cl lib%{clname}-devel %define mesasrcdir %{_prefix}/src/Mesa/ %define driver_dir %{_libdir}/dri @@ -119,7 +149,7 @@ Summary: OpenGL %{opengl_ver} compatible 3D graphics library Name: mesa -Version: 20.0.7 +Version: 20.3.2 %if "%{relc}%{git}" == "" Release: 1 %else @@ -149,6 +179,8 @@ Source100: %{name}.rpmlintrc %define dricorename dricore %define devdricore %mklibname %{dricorename} -d %define libdricore %mklibname %{dricorename} 9 +%define dev32dricore lib%{dricorename}-devel +%define lib32dricore lib%{dricorename}9 Obsoletes: %{libdricore} < %{EVRD} Obsoletes: %{devdricore} < %{EVRD} @@ -156,16 +188,19 @@ Obsoletes: %{name}-xorg-drivers < %{EVRD} Obsoletes: %{name}-xorg-drivers-radeon < %{EVRD} Obsoletes: %{name}-xorg-drivers-nouveau < %{EVRD} +# Without this patch, the OpenCL ICD calls into MesaOpenCL, +# which for some reason calls back into the OpenCL ICD instead +# of calling its own function by the same name. +Patch0: mesa-20.1.1-fix-opencl.patch +# Not used in the spec; this is a test case to verify patch0 +# is still needed. If this code works without the patch, the +# patch can be removed. If it crashes/takes forever (infinite +# loop), the patch is still needed. +Source50: test.c + Patch1: mesa-19.2.3-arm32-buildfix.patch -Patch2: mesa-20.0.3-amd-non-x86.patch -%ifarch %{ix86} -Patch4: mesa-19.2.0-rc3-32bit-buildfix.patch -%endif -%ifarch %{armx} riscv64 -Patch5: mesa-19.2.0-rc3-meson-radeon-arm-riscv.patch -%endif -# https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3449 -Patch6: https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3449.patch +Patch3: mesa-20.2.0-rc1-llvm-libunwind.patch +Patch5: mesa-20.3.0-meson-radeon-arm-riscv-ppc.patch # fedora patches #Patch15: mesa-9.2-hardware-float.patch @@ -249,12 +284,6 @@ BuildRequires: pkgconfig(xvmc) #BuildRequires: pkgconfig(valgrind) # for libsupc++.a BuildRequires: stdc++-static-devel -# (tpg) with openssl a steam crashes -# Program received signal SIGSEGV, Segmentation fault. -# 0xf63db8d5 in OPENSSL_ia32_cpuid () from /lib/libcrypto.so.1.0.0 -# crypto is needed for shader cache which uses the SHA-1 -# (tpg) strting from 2019-04-15 and openssl-1.1.1b-5 this is fixed -BuildRequires: pkgconfig(libssl) >= 1.1.1b-5 %if %{with opencl} BuildRequires: pkgconfig(libclc) BuildRequires: clang-devel @@ -274,6 +303,58 @@ BuildRequires: pkgconfig(wayland-protocols) >= 1.8 # package mesa Requires: libGL.so.1%{_arch_tag_suffix} +%if %{with compat32} +BuildRequires: devel(libdrm) +BuildRequires: devel(libX11) +BuildRequires: devel(libXdamage) +BuildRequires: devel(libXext) +BuildRequires: devel(libXfixes) +BuildRequires: devel(libXi) +BuildRequires: devel(libXmu) +BuildRequires: devel(libXt) +BuildRequires: devel(libXxf86vm) +BuildRequires: devel(libxshmfence) +BuildRequires: devel(libXrandr) +BuildRequires: devel(libxcb-dri3) +BuildRequires: devel(libxcb-present) +BuildRequires: devel(libXv) +BuildRequires: devel(libXvMC) +BuildRequires: devel(libxcb) +BuildRequires: devel(libXau) +BuildRequires: devel(libXdmcp) +BuildRequires: devel(libsensors) +BuildRequires: libsensors.so.5 +BuildRequires: devel(libLLVMCore) +BuildRequires: devel(libclangCodeGen) +BuildRequires: devel(libclangFrontendTool) +BuildRequires: devel(libclangFrontend) +BuildRequires: devel(libclangDriver) +BuildRequires: devel(libclangSerialization) +BuildRequires: devel(libclangParse) +BuildRequires: devel(libclangSema) +BuildRequires: devel(libclangAnalysis) +BuildRequires: devel(libclangAST) +BuildRequires: devel(libclangASTMatchers) +BuildRequires: devel(libclangEdit) +BuildRequires: devel(libclangLex) +BuildRequires: devel(libclangBasic) +BuildRequires: devel(libPolly) +BuildRequires: devel(libzstd) +BuildRequires: devel(libwayland-client) +BuildRequires: devel(libwayland-server) +BuildRequires: devel(libffi) +BuildRequires: devel(libelf) +BuildRequires: devel(libunwind) +BuildRequires: devel(libva) +BuildRequires: devel(libz) +BuildRequires: devel(libexpat) +BuildRequires: devel(libvdpau) +BuildRequires: devel(libOpenGL) +BuildRequires: devel(libGLdispatch) +BuildRequires: devel(libXrandr) +BuildRequires: devel(libXrender) +%endif + %description Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. @@ -290,6 +371,7 @@ Requires: %{dridrivers}-radeon = %{EVRD} %endif %ifarch %{ix86} %{x86_64} Requires: %{dridrivers}-intel = %{EVRD} +Requires: %{dridrivers}-iris = %{EVRD} %endif Requires: %{dridrivers}-nouveau = %{EVRD} %endif @@ -336,6 +418,20 @@ Suggests: libvdpau-va-gl %description -n %{dridrivers}-intel DRI and XvMC drivers for Intel graphics chipsets + +This is the old-style driver - if you have a recent Intel GPU, +you may also be interested in the more modern (but currently +probably less stable) %{dridrivers}-iris package. + +%package -n %{dridrivers}-iris +Summary: More modern DRI Drivers for Intel graphics chips +Group: System/Libraries + +%description -n %{dridrivers}-iris +A modern driver for Intel Gen 8+ graphics chipsets. + +This driver supports GPUs also supported by %{dridrivers}-intel. +The -intel driver is (for now) more stable. %endif %package -n %{dridrivers}-nouveau @@ -662,6 +758,228 @@ Provides: d3d-devel = %{EVRD} %description -n %{devd3d} This package contains the headers needed to compile Direct3D 9 programs. +%if %{with compat32} +%package -n %{dridrivers32} +Summary: Mesa DRI drivers (32-bit) +Group: System/Libraries +Requires: %{dridrivers32}-swrast = %{EVRD} +%if %{with r600} +Requires: %{dridrivers32}-radeon = %{EVRD} +%endif +Requires: %{dridrivers32}-intel = %{EVRD} +Requires: %{dridrivers32}-iris = %{EVRD} +Requires: %{dridrivers32}-nouveau = %{EVRD} +%rename %{vdpaudrivers32} + +%description -n %{dridrivers32} +DRI and XvMC drivers. + +%package -n %{lib32gl} +Summary: Files for Mesa (GL and GLX libs) (32-bit) +Group: System/Libraries +Suggests: %{dridrivers32} >= %{version}-%{release} + +%description -n %{lib32gl} +Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. +GL and GLX parts. + +%package -n %{dev32gl} +Summary: Development files for Mesa (OpenGL compatible 3D lib) (32-bit) +Group: Development/C +%if %{with glvnd} +Requires: devel(libGL) +%endif +Requires: %{dev32egl} = %{EVRD} +Requires: %{devgl} = %{EVRD} + +%description -n %{dev32gl} +This package contains the headers needed to compile Mesa programs. + +%package -n %{lib32glapi} +Summary: Files for mesa (glapi libs) (32-bit) +Group: System/Libraries + +%description -n %{lib32glapi} +This package provides the glapi shared library used by gallium. + +%package -n %{dev32glapi} +Summary: Development files for glapi libs (32-bit) +Group: Development/C +Requires: %{devglapi} = %{version}-%{release} +Requires: %{lib32glapi} = %{version}-%{release} + +%description -n %{dev32glapi} +This package contains the headers needed to compile programs against +the glapi shared library. + +%package -n %{lib32gbm} +Summary: Files for Mesa (gbm libs) (32-bit) +Group: System/Libraries + +%description -n %{lib32gbm} +Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. +GBM (Graphics Buffer Manager) parts. + +%package -n %{dev32gbm} +Summary: Development files for Mesa (gbm libs) (32-bit) +Group: Development/C +Requires: %{devgbm} = %{version}-%{release} +Requires: %{lib32gbm} = %{version}-%{release} + +%description -n %{dev32gbm} +Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. +GBM (Graphics Buffer Manager) development parts. + +%package -n %{lib32xatracker} +Summary: Files for mesa (xatracker libs) (32-bit) +Group: System/Libraries + +%description -n %{lib32xatracker} +This package provides the xatracker shared library used by gallium. + +%package -n %{dev32xatracker} +Summary: Development files for xatracker libs (32-bit) +Group: Development/C +Requires: %{lib32xatracker} = %{version}-%{release} +Requires: %{devxatracker} = %{version}-%{release} + +%description -n %{dev32xatracker} +This package contains the headers needed to compile programs against +the xatracker shared library. + +%package -n %{lib32osmesa} +Summary: Mesa offscreen rendering library (32-bit) +Group: System/Libraries + +%description -n %{lib32osmesa} +Mesa offscreen rendering libraries for rendering OpenGL into +application-allocated blocks of memory. + +%package -n %{dev32osmesa} +Summary: Development files for libosmesa (32-bit) +Group: Development/C +Requires: %{lib32osmesa} = %{version}-%{release} +Requires: %{devosmesa} = %{version}-%{release} + +%description -n %{dev32osmesa} +This package contains the headers needed to compile programs against +the Mesa offscreen rendering library. + +%package -n %{lib32d3d} +Summary: Mesa Gallium Direct3D 9 state tracker (32-bit) +Group: System/Libraries + +%description -n %{lib32d3d} +OpenGL ES is a low-level, lightweight API for advanced embedded graphics using +well-defined subset profiles of OpenGL. + +This package provides Direct3D 9 support. + +%package -n %{dev32d3d} +Summary: Development files for Direct3D 9 libs +Group: Development/C +Requires: %{devd3d} = %{version}-%{release} +Requires: %{lib32d3d} = %{version}-%{release} + +%description -n %{dev32d3d} +This package contains the headers needed to compile Direct3D 9 programs. + +%package -n %{lib32egl} +Summary: Files for Mesa (EGL libs) (32-bit) +Group: System/Libraries +%if %{with glvnd} +Requires: libglvnd-egl%{?_isa} +%endif + +%description -n %{lib32egl} +Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. +EGL parts. + +%package -n %{dev32egl} +Summary: Development files for Mesa (EGL libs) (32-bit) +Group: Development/C +Requires: %{lib32egl} = %{version}-%{release} +Requires: %{devegl} = %{version}-%{release} + +%description -n %{dev32egl} +Mesa is an OpenGL %{opengl_ver} compatible 3D graphics library. +EGL development parts. + +%package -n %{dridrivers32}-intel +Summary: DRI Drivers for Intel graphics chipsets (32-bit) +Group: System/Libraries + +%description -n %{dridrivers32}-intel +DRI and XvMC drivers for Intel graphics chipsets + +%package -n %{dridrivers32}-iris +Summary: Modern DRI Drivers for Intel graphics chipsets (32-bit) +Group: System/Libraries + +%description -n %{dridrivers32}-iris +Modern DRI and XvMC drivers for Intel graphics chipsets + +%package -n %{dridrivers32}-radeon +Summary: DRI Drivers for AMD/ATI Radeon graphics chipsets (32-bit) +Group: System/Libraries + +%description -n %{dridrivers32}-radeon +DRI and XvMC drivers for AMD/ATI Radeon graphics chipsets + +%package -n %{dridrivers32}-nouveau +Summary: DRI Drivers for NVIDIA graphics chipsets using the Nouveau driver (32-bit) +Group: System/Libraries + +%description -n %{dridrivers32}-nouveau +DRI and XvMC drivers for Nvidia graphics chipsets + +%package -n %{dridrivers32}-swrast +Summary: DRI Drivers for software rendering (32-bit) +Group: System/Libraries + +%description -n %{dridrivers32}-swrast +Generic DRI driver using CPU rendering + +%package -n %{dridrivers32}-virtio +Summary: DRI Drivers for virtual environments +Group: System/Libraries + +%description -n %{dridrivers32}-virtio +Generic DRI driver for virtual environments. + +%package -n %{dridrivers32}-vmwgfx +Summary: DRI Drivers for VMWare guest OS +Group: System/Libraries + +%description -n %{dridrivers32}-vmwgfx +DRI and XvMC drivers for VMWare guest Operating Systems. + +%package -n %{lib32cl} +Summary: Mesa OpenCL libs (32-bit) +Group: System/Libraries + +%description -n %{lib32cl} +Open Computing Language (OpenCL) is a framework for writing programs that +execute across heterogeneous platforms consisting of central processing units +(CPUs), graphics processing units (GPUs), DSPs and other processors. + +OpenCL includes a language (based on C99) for writing kernels (functions that +execute on OpenCL devices), plus application programming interfaces (APIs) that +are used to define and then control the platforms. OpenCL provides parallel +computing using task-based and data-based parallelism. OpenCL is an open +standard maintained by the non-profit technology consortium Khronos Group. +It has been adopted by Intel, Advanced Micro Devices, Nvidia, and ARM Holdings. + +%package -n %{dev32cl} +Summary: Development files for OpenCL libs (32-bit) +Group: Development/Other +Requires: %{lib32cl} = %{version}-%{release} +Requires: %{devcl} = %{version}-%{release} + +%description -n %{dev32cl} +Development files for the OpenCL library +%endif + %if %{with opencl} %package -n %{libcl} Summary: Mesa OpenCL libs @@ -822,8 +1140,76 @@ cp -f src/mesa/drivers/dri/{radeon,r200}/radeon_screen.c || : %if %{with gcc} export CC=gcc export CXX=g++ +%endif + +%if %{with compat32} +cat >llvm-config <<EOF +#!/bin/sh +/usr/bin/llvm-config "\$@" |sed -e 's,lib64,lib,g' +EOF +chmod +x llvm-config +export PATH="$(pwd):${PATH}" + +cat >i686.cross <<EOF +[binaries] +pkgconfig = 'pkg-config' +cmake = 'cmake' +llvm-config = '$(pwd)/llvm-config' + +[host_machine] +system = 'linux' +cpu_family = 'x86' +cpu = 'i686' +endian = 'little' +EOF + +if ! %meson32 \ + --cross-file=i686.cross \ + -Db_ndebug=true \ + -Dc_std=c11 \ + -Dcpp_std=c++17 \ + -Ddri-drivers=auto \ + -Dgallium-drivers=auto \ +%if %{with opencl} + -Dgallium-opencl=icd \ %else -%global ldflags %{ldflags} -fuse-ld=gold + -Dgallium-opencl=disabled \ +%endif + -Dgallium-va=enabled \ + -Dgallium-vdpau=enabled \ + -Dgallium-xa=enabled \ + -Dgallium-xvmc=enabled \ + -Dgallium-nine=true \ + -Dglx=auto \ + -Dplatforms=auto \ + -Dvulkan-drivers=auto \ + -Dxlib-lease=auto \ + -Dosmesa=gallium \ +%if %{with glvnd} + -Dglvnd=true \ +%endif + -Ddri3=enabled \ + -Degl=enabled \ + -Dgbm=enabled \ + -Dgles1=enabled \ + -Dgles2=enabled \ + -Dglx-direct=true \ + -Dllvm=enabled \ + -Dlmsensors=enabled \ + -Dopengl=true \ + -Dshader-cache=enabled \ + -Dshared-glapi=enabled \ + -Dshared-llvm=enabled \ + -Dswr-arches=avx,avx2,knl,skx \ + -Dselinux=false \ + -Dbuild-tests=false \ + -Dtools=""; then + + cat build32/meson-logs/meson-log.txt >/dev/stderr +fi + +%ninja_build -C build32/ +rm llvm-config %endif if ! %meson \ @@ -837,10 +1223,10 @@ if ! %meson \ %else -Dgallium-opencl=disabled \ %endif - -Dgallium-va=true \ - -Dgallium-vdpau=true \ - -Dgallium-xa=true \ - -Dgallium-xvmc=true \ + -Dgallium-va=enabled \ + -Dgallium-vdpau=enabled \ + -Dgallium-xa=enabled \ + -Dgallium-xvmc=enabled \ -Dgallium-nine=true \ -Dglx=auto \ -Dplatforms=auto \ @@ -850,18 +1236,18 @@ if ! %meson \ %if %{with glvnd} -Dglvnd=true \ %endif - -Ddri3=true \ - -Degl=true \ - -Dgbm=true \ - -Dgles1=true \ - -Dgles2=true \ + -Ddri3=enabled \ + -Degl=enabled \ + -Dgbm=enabled \ + -Dgles1=enabled \ + -Dgles2=enabled \ -Dglx-direct=true \ - -Dllvm=true \ + -Dllvm=enabled \ -Dlmsensors=true \ -Dopengl=true \ -Dshader-cache=true \ - -Dshared-glapi=true \ - -Dshared-llvm=true \ + -Dshared-glapi=enabled \ + -Dshared-llvm=enabled \ -Dswr-arches=avx,avx2,knl,skx \ -Dselinux=false \ -Dbuild-tests=false \ @@ -873,6 +1259,9 @@ fi %ninja_build -C build/ %install +%if %{with compat32} +%ninja_install -C build32/ +%endif %ninja_install -C build/ %if %{with glvnd} @@ -965,8 +1354,10 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc %files -n %{dridrivers}-radeon %{_libdir}/dri/r?00_dri.so %{_libdir}/dri/radeon_dri.so -%{_libdir}/libXvMCgallium.so +#{_libdir}/libXvMCgallium.so +%{_libdir}/libXvMCgallium.so.1* %{_libdir}/libXvMCr?00.so +%{_libdir}/libXvMCr?00.so.1* %{_libdir}/dri/radeonsi_dri.so %{_libdir}/libvulkan_radeon.so %{_datadir}/vulkan/icd.d/radeon_icd.*.json @@ -994,14 +1385,29 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc %files -n %{dridrivers}-intel %{_libdir}/dri/i9?5_dri.so -%{_libdir}/dri/iris_dri.so %{_libdir}/libvulkan_intel.so %{_datadir}/vulkan/icd.d/intel_icd.*.json +%{_libdir}/libintel_noop_drm_shim.so + +%files -n %{dridrivers}-iris +%{_libdir}/dri/iris_dri.so +%{_libdir}/gallium-pipe/pipe_iris.so + +%if %{with compat32} +%files -n %{dridrivers32}-intel +%{_prefix}/lib/dri/i9?5_dri.so +%{_prefix}/lib/libvulkan_intel.so + +%files -n %{dridrivers32}-iris +%{_prefix}/lib/dri/iris_dri.so +%{_prefix}/lib/gallium-pipe/pipe_iris.so +%endif %endif %files -n %{dridrivers}-nouveau %{_libdir}/dri/nouveau*_dri.so %{_libdir}/libXvMCnouveau.so +%{_libdir}/libXvMCnouveau.so.1* %if %{with va} %{_libdir}/dri/nouveau_drv_video.so %endif @@ -1015,6 +1421,8 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc %if %{with opencl} %{_libdir}/gallium-pipe/pipe_swrast.so %endif +%{_libdir}/libvulkan_lvp.so +%{_datadir}/vulkan/icd.d/lvp_icd.*.json %ifnarch %{riscv} %files -n %{dridrivers}-virtio @@ -1023,6 +1431,7 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc %ifarch %{armx} %files -n %{dridrivers}-freedreno +%{_bindir}/computerator %{_libdir}/dri/kgsl_dri.so %{_libdir}/dri/msm_dri.so %{_libdir}/libfreedreno_noop_drm_shim.so @@ -1063,6 +1472,7 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc %{_libdir}/dri/imx-dcss_dri.so %{_libdir}/dri/ingenic-drm_dri.so %{_libdir}/dri/mcde_dri.so +%{_libdir}/dri/mediatek_dri.so %{_libdir}/dri/meson_dri.so %{_libdir}/dri/mi0283qt_dri.so %{_libdir}/dri/mxsfb-drm_dri.so @@ -1241,12 +1651,12 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc %{_bindir}/intel_dump_gpu %{_bindir}/intel_error2aub %{_bindir}/intel_sanitize_gpu +%{_bindir}/intel_stub_gpu %{_libexecdir}/libintel_dump_gpu.so %{_libexecdir}/libintel_sanitize_gpu.so %endif %ifarch %{armx} %{_bindir}/etnaviv_compiler -%{_bindir}/ir3_compiler %endif %{_bindir}/glsl_compiler %{_bindir}/glsl_test @@ -1258,3 +1668,101 @@ rm -rf %{buildroot}%{_libdir}/pkgconfig/wayland-egl.pc %{_bindir}/xvmc_rendering %{_bindir}/xvmc_subpicture %{_bindir}/xvmc_surface + +%if %{with compat32} +%files -n %{lib32d3d} +%dir %{_prefix}/lib/d3d +%{_prefix}/lib/d3d/d3dadapter9.so.%{d3dmajor}* + +%files -n %{dev32d3d} +%{_prefix}/lib/d3d/d3dadapter9.so +%{_prefix}/lib/pkgconfig/d3d.pc + +%files -n %{dridrivers32}-swrast +%{_prefix}/lib/dri/swrast_dri.so +%{_prefix}/lib/dri/kms_swrast_dri.so +%{_prefix}/lib/gallium-pipe/pipe_swrast.so +%{_prefix}/lib/libvulkan_lvp.so + +%files -n %{lib32egl} +%{_prefix}/lib/libEGL_mesa.so.%{eglmajor}* + +%files -n %{dev32egl} +%{_prefix}/lib/libEGL_mesa.so + +%files -n %{dridrivers32}-nouveau +%{_prefix}/lib/dri/nouveau*_dri.so +%{_prefix}/lib/libXvMCnouveau.so +%{_prefix}/lib/libXvMCnouveau.so.1* +%{_prefix}/lib/dri/nouveau_drv_video.so +%{_prefix}/lib/gallium-pipe/pipe_nouveau.so +%{_prefix}/lib/vdpau/libvdpau_nouveau.so* + +%files -n %{dridrivers32}-radeon +%{_prefix}/lib/dri/r?00_dri.so +%{_prefix}/lib/dri/radeon_dri.so +#{_prefix}/lib/libXvMCgallium.so +%{_prefix}/lib/libXvMCgallium.so.1 +%{_prefix}/lib/libXvMCr?00.so +%{_prefix}/lib/libXvMCr?00.so.1* +%{_prefix}/lib/dri/radeonsi_dri.so +%{_prefix}/lib/libvulkan_radeon.so +%{_prefix}/lib/gallium-pipe/pipe_r?00.so +%{_prefix}/lib/dri/r600_drv_video.so +%{_prefix}/lib/dri/radeonsi_drv_video.so +%{_prefix}/lib/gallium-pipe/pipe_radeonsi.so +%{_prefix}/lib/vdpau/libvdpau_r?00.so* +%{_prefix}/lib/vdpau/libvdpau_radeonsi.so* +%{_prefix}/lib/libXvMCr600.so + +%files -n %{dridrivers32}-virtio +%{_prefix}/lib/dri/virtio_gpu_dri.so + +%files -n %{dridrivers32}-vmwgfx +%{_prefix}/lib/dri/vmwgfx_dri.so +%{_prefix}/lib/gallium-pipe/pipe_vmwgfx.so + +%files -n %{lib32gl} +%{_prefix}/lib/libGLX_mesa.so.0* +%dir %{_prefix}/lib/dri +%dir %{_prefix}/lib/gallium-pipe + +%files -n %{dev32gl} +%{_prefix}/lib/pkgconfig/dri.pc +%{_prefix}/lib/libGLX_mesa.so + +%files -n %{lib32cl} +%{_prefix}/lib/libMesaOpenCL.so.* + +%files -n %{dev32cl} +%{_prefix}/lib/libMesaOpenCL.so + +%files -n %{lib32osmesa} +%{_prefix}/lib/libOSMesa.so.%{osmesamajor}* + +%files -n %{dev32osmesa} +%{_prefix}/lib/libOSMesa.so +%{_prefix}/lib/pkgconfig/osmesa.pc + +%files -n %{lib32xatracker} +%{_prefix}/lib/libxatracker.so.* + +%files -n %{dev32xatracker} +%{_prefix}/lib/libxatracker.so +%{_prefix}/lib/pkgconfig/xatracker.pc + +%files -n %{lib32gbm} +%{_prefix}/lib/libgbm.so.* + +%files -n %{dev32gbm} +%{_prefix}/lib/libgbm.so +%{_prefix}/lib/pkgconfig/gbm.pc + +%files -n %{lib32glapi} +%{_prefix}/lib/libglapi.so.* + +%files -n %{dev32glapi} +%{_prefix}/lib/libglapi.so + +%files -n %{dridrivers32} +%endif diff --git a/test.c b/test.c new file mode 100644 index 0000000..b022c56 --- /dev/null +++ b/test.c @@ -0,0 +1,60 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <CL/cl.h> + +int main() { + /* Host/device data structures */ + cl_platform_id platform; + cl_device_id *devices; + cl_uint num_devices, addr_data; + cl_int i, err; + cl_uint nplat; + + /* Extension data */ + char name_data[48], ext_data[4096]; + + /* Identify a platform */ + err = clGetPlatformIDs(1, &platform, &nplat); + if(err < 0) { + perror("Couldn't find any platforms"); + exit(1); + } + fprintf(stderr, "Found %u platforms\n", nplat); + + /* Determine number of connected devices */ + err = clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, 1, NULL, &num_devices); + if(err < 0) { + perror("Couldn't find any devices"); + exit(1); + } else + fprintf(stderr, "Found %u devices\n", num_devices); + + /* Access connected devices */ + devices = (cl_device_id*) + malloc(sizeof(cl_device_id) * num_devices); + clGetDeviceIDs(platform, CL_DEVICE_TYPE_GPU, + num_devices, devices, NULL); + + /* Obtain data for each connected device */ + for(i=0; i<num_devices; i++) { + err = clGetDeviceInfo(devices[i], CL_DEVICE_NAME, + sizeof(name_data), name_data, NULL); + if(err < 0) { + perror("Couldn't read extension data"); + exit(1); + } + clGetDeviceInfo(devices[i], CL_DEVICE_ADDRESS_BITS, + sizeof(ext_data), &addr_data, NULL); + + clGetDeviceInfo(devices[i], CL_DEVICE_EXTENSIONS, + sizeof(ext_data), ext_data, NULL); + + printf("NAME: %s\nADDRESS_WIDTH: %u\nEXTENSIONS: %s", + name_data, addr_data, ext_data); + } + + free(devices); + return 0; +}
Not Available
benbullard79 [@T] cox.net | No Comment. | 1193d 10hrs |
benbullard79 [@T] cox.net | No Comment. | 1193d 10hrs |