diff --git a/mesa-demos-8.5.0.tar.bz2 b/mesa-demos-9.0.0.tar.xz similarity index 49% rename from mesa-demos-8.5.0.tar.bz2 rename to mesa-demos-9.0.0.tar.xz index 1f2f2450581dcafb4c7084f1191d1e387bcfa3ce..1434e7f2473913fb756cda0aacf9badedd9986a8 100644 Binary files a/mesa-demos-8.5.0.tar.bz2 and b/mesa-demos-9.0.0.tar.xz differ diff --git a/mesa-demos-system-data.patch b/mesa-demos-system-data.patch new file mode 100644 index 0000000000000000000000000000000000000000..ea77cea977bd4924674d0e40ba8753a539783bb0 --- /dev/null +++ b/mesa-demos-system-data.patch @@ -0,0 +1,209 @@ +diff --git a/src/glsl/bezier.c b/src/glsl/bezier.c +index 84e0367..62996fb 100644 +--- a/src/glsl/bezier.c ++++ b/src/glsl/bezier.c +@@ -13,7 +13,7 @@ + #include "glut_wrap.h" + #include "shaderutil.h" + +-static const char *filename = "bezier.geom"; ++static const char *filename = DEMOS_DATA_DIR "bezier.geom"; + + static GLuint fragShader; + static GLuint vertShader; +diff --git a/src/glsl/blinking-teapot.c b/src/glsl/blinking-teapot.c +index 62451e9..3420066 100644 +--- a/src/glsl/blinking-teapot.c ++++ b/src/glsl/blinking-teapot.c +@@ -63,8 +63,8 @@ init_opengl (void) + exit(1); + } + +- vshad_id = CompileShaderFile (GL_VERTEX_SHADER, "blinking-teapot.vert"); +- fshad_id = CompileShaderFile (GL_FRAGMENT_SHADER, "blinking-teapot.frag"); ++ vshad_id = CompileShaderFile (GL_VERTEX_SHADER, DEMOS_DATA_DIR "blinking-teapot.vert"); ++ fshad_id = CompileShaderFile (GL_FRAGMENT_SHADER, DEMOS_DATA_DIR "blinking-teapot.frag"); + prog_id = LinkShaders (vshad_id, fshad_id); + + glUseProgram (prog_id); +diff --git a/src/glsl/brick.c b/src/glsl/brick.c +index 00d8349..f9f0ec7 100644 +--- a/src/glsl/brick.c ++++ b/src/glsl/brick.c +@@ -14,8 +14,8 @@ + #include "shaderutil.h" + + +-static char *FragProgFile = "CH06-brick.frag"; +-static char *VertProgFile = "CH06-brick.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH06-brick.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH06-brick.vert"; + + /* program/shader objects */ + static GLuint fragShader; +diff --git a/src/glsl/bump.c b/src/glsl/bump.c +index 95ad19f..f40cba0 100644 +--- a/src/glsl/bump.c ++++ b/src/glsl/bump.c +@@ -15,9 +15,9 @@ + #include "readtex.h" + + +-static char *FragProgFile = "CH11-bumpmap.frag"; +-static char *FragTexProgFile = "CH11-bumpmaptex.frag"; +-static char *VertProgFile = "CH11-bumpmap.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH11-bumpmap.frag"; ++static char *FragTexProgFile = DEMOS_DATA_DIR "CH11-bumpmaptex.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH11-bumpmap.vert"; + static char *TextureFile = DEMOS_DATA_DIR "tile.rgb"; + + /* program/shader objects */ +diff --git a/src/glsl/convolutions.c b/src/glsl/convolutions.c +index 567b358..4c681dd 100644 +--- a/src/glsl/convolutions.c ++++ b/src/glsl/convolutions.c +@@ -340,7 +340,7 @@ static void init(void) + + menuInit(); + readTexture(textureLocation); +- createProgram("convolution.vert", "convolution.frag"); ++ createProgram(DEMOS_DATA_DIR "convolution.vert", DEMOS_DATA_DIR "convolution.frag"); + + glEnable(GL_TEXTURE_2D); + glClearColor(1.0, 1.0, 1.0, 1.0); +diff --git a/src/glsl/mandelbrot.c b/src/glsl/mandelbrot.c +index 18b817c..6bbeffd 100644 +--- a/src/glsl/mandelbrot.c ++++ b/src/glsl/mandelbrot.c +@@ -14,8 +14,8 @@ + #include "shaderutil.h" + + +-static char *FragProgFile = "CH18-mandel.frag"; +-static char *VertProgFile = "CH18-mandel.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH18-mandel.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH18-mandel.vert"; + + /* program/shader objects */ + static GLuint fragShader; +diff --git a/src/glsl/meson.build b/src/glsl/meson.build +index db8c613..13564a4 100644 +--- a/src/glsl/meson.build ++++ b/src/glsl/meson.build +@@ -83,3 +83,38 @@ executable( + ], + install: true + ) ++ ++glsl_data = [ ++ 'bezier.geom', ++ 'blinking-teapot.frag', ++ 'blinking-teapot.vert', ++ 'brick.shtest', ++ 'CH06-brick.frag', ++ 'CH06-brick.vert', ++ 'CH11-bumpmap.frag', ++ 'CH11-bumpmaptex.frag', ++ 'CH11-bumpmap.vert', ++ 'CH11-toyball.frag', ++ 'CH11-toyball.vert', ++ 'CH18-mandel.frag', ++ 'CH18-mandel.vert', ++ 'convolution.frag', ++ 'convolution.vert', ++ 'cubemap.frag', ++ 'mandelbrot.shtest', ++ 'multitex.frag', ++ 'multitex.shtest', ++ 'multitex.vert', ++ 'reflect.vert', ++ 'shadowtex.frag', ++ 'simple.vert', ++ 'simplex-noise.glsl', ++ 'skinning.frag', ++ 'skinning.vert', ++ 'toyball.shtest', ++] ++ ++install_data( ++ glsl_data, ++ install_dir: get_option('datadir') / 'mesa-demos' ++) +diff --git a/src/glsl/multitex.c b/src/glsl/multitex.c +index 2f9a2fa..b51aba3 100644 +--- a/src/glsl/multitex.c ++++ b/src/glsl/multitex.c +@@ -35,8 +35,8 @@ + + static const char *Demo = "multitex"; + +-static const char *VertFile = "multitex.vert"; +-static const char *FragFile = "multitex.frag"; ++static const char *VertFile = DEMOS_DATA_DIR "multitex.vert"; ++static const char *FragFile = DEMOS_DATA_DIR "multitex.frag"; + + static const char *TexFiles[2] = + { +diff --git a/src/glsl/simplex-noise.c b/src/glsl/simplex-noise.c +index a687508..9a2a029 100644 +--- a/src/glsl/simplex-noise.c ++++ b/src/glsl/simplex-noise.c +@@ -169,7 +169,7 @@ SpecialKey(int key, int x, int y) + static void + Init(void) + { +- const char *filename = "simplex-noise.glsl"; ++ const char *filename = DEMOS_DATA_DIR "simplex-noise.glsl"; + char noiseText[10000]; + FILE *f; + int len; +diff --git a/src/glsl/skinning.c b/src/glsl/skinning.c +index b451d13..0f4e943 100644 +--- a/src/glsl/skinning.c ++++ b/src/glsl/skinning.c +@@ -20,8 +20,8 @@ + #define M_PI 3.1415926535 + #endif + +-static char *FragProgFile = "skinning.frag"; +-static char *VertProgFile = "skinning.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "skinning.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "skinning.vert"; + + /* program/shader objects */ + static GLuint fragShader; +diff --git a/src/glsl/texdemo1.c b/src/glsl/texdemo1.c +index 861d696..42308d1 100644 +--- a/src/glsl/texdemo1.c ++++ b/src/glsl/texdemo1.c +@@ -35,11 +35,11 @@ + + static const char *Demo = "texdemo1"; + +-static const char *ReflectVertFile = "reflect.vert"; +-static const char *CubeFragFile = "cubemap.frag"; ++static const char *ReflectVertFile = DEMOS_DATA_DIR "reflect.vert"; ++static const char *CubeFragFile = DEMOS_DATA_DIR "cubemap.frag"; + +-static const char *SimpleVertFile = "simple.vert"; +-static const char *SimpleTexFragFile = "shadowtex.frag"; ++static const char *SimpleVertFile = DEMOS_DATA_DIR "simple.vert"; ++static const char *SimpleTexFragFile = DEMOS_DATA_DIR "shadowtex.frag"; + + static const char *GroundImage = DEMOS_DATA_DIR "tile.rgb"; + +diff --git a/src/glsl/toyball.c b/src/glsl/toyball.c +index 17aa765..5b1f7d3 100644 +--- a/src/glsl/toyball.c ++++ b/src/glsl/toyball.c +@@ -14,8 +14,8 @@ + #include "shaderutil.h" + + +-static char *FragProgFile = "CH11-toyball.frag"; +-static char *VertProgFile = "CH11-toyball.vert"; ++static char *FragProgFile = DEMOS_DATA_DIR "CH11-toyball.frag"; ++static char *VertProgFile = DEMOS_DATA_DIR "CH11-toyball.vert"; + + /* program/shader objects */ + static GLuint fragShader; diff --git a/mesa-demos.spec b/mesa-demos.spec index 088349b2fa741269fe07db8a965974c4c1b7c4c5..e8290411c332d4f99ee5067332f496ebcc4cc8b7 100644 --- a/mesa-demos.spec +++ b/mesa-demos.spec @@ -1,22 +1,43 @@ +%global xdriinfo_ver 1.0.7 + +%bcond_with wayland + Name: mesa-demos -Version: 8.5.0 -Release: 2 +Version: 9.0.0 +Release: 1 Summary: Demo applications for testing Mesa License: MIT -URL: http://www.mesa3d.org -Source0: https://mesa.freedesktop.org/archive/demos/%{version}/%{name}-%{version}.tar.bz2 -Source1: http://www.x.org/pub/individual/app/xdriinfo-1.0.4.tar.bz2 -Source2: mesad-git-snapshot.sh +URL: https://www.mesa3d.org +Source0: https://archive.mesa3d.org/demos/%{name}-%{version}.tar.xz Patch0: mesa-demos-8.5.0-legal.patch -Patch1: meson-Fix-DEMOS_DATA_DIR-when-with-system-data-files.patch -Patch2: xdriinfo-1.0.4-glvnd.patch - -BuildRequires: gcc-c++ pkgconfig autoconf automake libtool -BuildRequires: freeglut-devel mesa-libGL-devel mesa-libEGL-devel -BuildRequires: mesa-libGLES-devel mesa-libgbm-devel libGLU-devel -BuildRequires: libXext-devel -BuildRequires: meson gcc wayland-devel wayland-protocols-devel freetype-devel +Patch1: mesa-demos-system-data.patch + +BuildRequires: gcc gcc-c++ +BuildRequires: meson >= 0.60 +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(glesv1_cm) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(glu) +BuildRequires: pkgconfig(glut) +BuildRequires: pkgconfig(glx) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(vulkan) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(xkbcommon-x11) +BuildRequires: /usr/bin/glslangValidator +%if %{with wayland} +BuildRequires: pkgconfig(libdecor-0) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(wayland-protocols) >= 1.12 +BuildRequires: pkgconfig(wayland-scanner) +%endif Provides: glxinfo glxinfo%{?__isa_bits} eglinfo es2_info Provides: glx-utils = %{version}-%{release} egl-utils = %{version}-%{release} @@ -26,66 +47,57 @@ Obsoletes: glx-utils < %{version}-%{release} egl-utils < %{version}-%{relea This package provides some demo applications for testing Mesa. It also provides the glxinfo, glxgears, eglinfo and es2_info utilities. -%package help -Summary: Help package for %{name} -Requires: %{name} = %{version}-%{release} - -%description help -This package contains some man files for %{name}. - %prep -%setup -q -n %{name}-%{version} -b1 -%patch0 -p1 -b .legal -%patch1 -p1 - -cd ../xdriinfo-1.0.4 -%patch2 -p1 -cd - +%autosetup -n %{name}-%{version} -p1 -rm -f src/demos/{pointblast.c,spriteblast.c} +# These two files are distributable, but non-free (lack of permission to modify). +rm -rf src/demos/pointblast.c +rm -rf src/demos/spriteblast.c %build %meson \ --bindir=%{_libdir}/mesa \ -Dwith-system-data-files=true \ -Dx11=enabled \ - -Dwayland=enabled \ + -Dwayland=%{?with_wayland:enabled}%{!?with_wayland:disabled} \ -Degl=enabled \ -Dgles2=enabled \ + -Dvulkan=enabled \ -Dlibdrm=enabled \ -Dosmesa=disabled %meson_build -cd ../xdriinfo-1.0.4 -%configure -%make_build -cd - - %install %meson_install -cd ../xdriinfo-1.0.4 -%make_install -cd - - -for binary_name in glxgears glxinfo eglinfo eglgears_x11 eglgears_wayland es2_info es2gears_x11 es2gears_wayland;do - find . -name $binary_name | install -m755 `xargs` %{buildroot}%{_bindir} -done - +mkdir -p %{buildroot}%{_bindir} +install -m 0755 %{_vpath_builddir}/src/xdemos/glxgears %{buildroot}%{_bindir} +install -m 0755 %{_vpath_builddir}/src/xdemos/glxinfo %{buildroot}%{_bindir} %if 0%{?__isa_bits} != 0 -find . -name glxinfo | install -m755 `xargs` %{buildroot}%{_bindir}/glxinfo%{?__isa_bits} +install -m 0755 %{_vpath_builddir}/src/xdemos/glxinfo %{buildroot}%{_bindir}/glxinfo%{?__isa_bits} +%endif + +install -m 0755 %{_vpath_builddir}/src/egl/opengl/eglinfo %{buildroot}%{_bindir} +install -m 0755 %{_vpath_builddir}/src/egl/opengl/eglgears_x11 %{buildroot}%{_bindir} +install -m 0755 %{_vpath_builddir}/src/egl/opengles2/es2_info %{buildroot}%{_bindir} +install -m 0755 %{_vpath_builddir}/src/egl/opengles2/es2gears_x11 %{buildroot}%{_bindir} +%if %{with wayland} +install -m 0755 %{_vpath_builddir}/src/egl/opengl/eglgears_wayland %{buildroot}%{_bindir} +install -m 0755 %{_vpath_builddir}/src/egl/opengles2/es2gears_wayland %{buildroot}%{_bindir} %endif %files %{_libdir}/mesa %{_bindir}/* -%{_datadir}/%{name}/ - -%files help -%{_datadir}/man/man1/xdriinfo.1* +%{_datadir}/%{name} %changelog +* Sat Sep 28 2024 Funda Wang - 9.0.0-1 +- update to 9.0.0 +- conditioned build wayland due to missing libdecor +- drop bundled xdriinfo in favour of separated package + * Wed Aug 14 2024 misaka00251 - 8.5.0-2 - Add eglgears & es2gears utilities diff --git a/mesa-demos.yaml b/mesa-demos.yaml index 6d3b0897bf14f97512cb6015dca5f386b806ed9a..71b94f703f5efa7b073cccd9b2a68672cf5cdbbd 100644 --- a/mesa-demos.yaml +++ b/mesa-demos.yaml @@ -1,4 +1,4 @@ version_control: git src_repo: https://gitlab.freedesktop.org/mesa/demos.git -tag_prefix: "mesa-demos-" -seperator: "." +tag_prefix: ^mesa-demos- +separator: "." diff --git a/mesad-git-snapshot.sh b/mesad-git-snapshot.sh deleted file mode 100644 index 8a50e44046411269fb45011a40e0827ec9e4dde2..0000000000000000000000000000000000000000 --- a/mesad-git-snapshot.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -# Usage: ./make-git-snapshot.sh [COMMIT] -# -# to make a snapshot of the given tag/branch. Defaults to HEAD. -# Point env var REF to a local mesa repo to reduce clone time. - -DIRNAME=mesa-demos-$( date +%Y%m%d ) - -echo REF ${REF:+--reference $REF} -echo DIRNAME $DIRNAME -echo HEAD ${1:-HEAD} - -rm -rf $DIRNAME - -git clone ${REF:+--reference $REF} \ - git://git.freedesktop.org/git/mesa/demos $DIRNAME - -GIT_DIR=$DIRNAME/.git git archive --format=tar --prefix=$DIRNAME/ ${1:-HEAD} \ - | bzip2 > $DIRNAME.tar.bz2 - -# rm -rf $DIRNAME diff --git a/meson-Fix-DEMOS_DATA_DIR-when-with-system-data-files.patch b/meson-Fix-DEMOS_DATA_DIR-when-with-system-data-files.patch deleted file mode 100644 index b1d04892bd7c37e3a1a20e0f5cadbee1c07d7045..0000000000000000000000000000000000000000 --- a/meson-Fix-DEMOS_DATA_DIR-when-with-system-data-files.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 49c89ab7a96a2ef5e3200e56d3043372e736e4c9 Mon Sep 17 00:00:00 2001 -From: Anders Kaseorg -Date: Mon, 11 Jul 2022 13:00:03 -0700 -Subject: [PATCH] meson: Fix DEMOS_DATA_DIR when with-system-data-files is - enabled - -DEMOS_DATA_DIR needs to be an absolute path with a trailing slash. - -Signed-off-by: Anders Kaseorg ---- - meson.build | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 282c3962..0c15274b 100644 ---- a/meson.build -+++ b/meson.build -@@ -29,7 +29,7 @@ null_dep = dependency('', required : false) - - demos_data_dir = '../data/' - if get_option('with-system-data-files') -- demos_data_dir = get_option('datadir') / 'mesa-demos' -+ demos_data_dir = get_option('prefix') / get_option('datadir') / 'mesa-demos/' - endif - add_project_arguments( - '-DDEMOS_DATA_DIR="@0@"'.format(demos_data_dir), --- -2.39.1 - diff --git a/xdriinfo-1.0.4-glvnd.patch b/xdriinfo-1.0.4-glvnd.patch deleted file mode 100644 index 0dc4c0a8f2282c3b6937e9141440377506af113b..0000000000000000000000000000000000000000 --- a/xdriinfo-1.0.4-glvnd.patch +++ /dev/null @@ -1,54 +0,0 @@ -diff -up xdriinfo-1.0.4/xdriinfo.c~ xdriinfo-1.0.4/xdriinfo.c ---- xdriinfo-1.0.4/xdriinfo.c~ 2009-10-16 23:39:10.000000000 +0200 -+++ xdriinfo-1.0.4/xdriinfo.c 2017-03-13 12:01:53.419636100 +0100 -@@ -101,23 +101,9 @@ int main (int argc, char *argv[]) { - return 1; - } - } -- /* if the argument to the options command is a driver name, we can handle -- * it without opening an X connection */ -- if (func == OPTIONS && screenNum == -1) { -- const char *options = (*GetDriverConfig) (funcArg); -- if (!options) { -- fprintf (stderr, -- "Driver \"%s\" is not installed or does not support configuration.\n", -- funcArg); -- return 1; -- } -- printf ("%s", options); -- if (isatty (STDOUT_FILENO)) -- printf ("\n"); -- return 0; -- } -+ - /* driver command needs a valid screen number */ -- else if (func == DRIVER && screenNum == -1) { -+ if (func == DRIVER && screenNum == -1) { - fprintf (stderr, "Invalid screen number \"%s\".\n", funcArg); - return 1; - } -@@ -135,6 +121,9 @@ int main (int argc, char *argv[]) { - return 1; - } - -+ /* Call glXGetClientString to load vendor libs on glvnd enabled systems */ -+ glXGetClientString (dpy, GLX_EXTENSIONS); -+ - switch (func) { - case NSCREENS: - printf ("%d", nScreens); -@@ -154,7 +143,13 @@ int main (int argc, char *argv[]) { - break; - } - case OPTIONS: { -- const char *name = (*GetScreenDriver) (dpy, screenNum), *options; -+ const char *name, *options; -+ -+ if (screenNum == -1) { -+ name = funcArg; -+ } else { -+ name = (*GetScreenDriver) (dpy, screenNum); -+ } - if (!name) { - fprintf (stderr, "Screen \"%d\" is not direct rendering capable.\n", - screenNum); diff --git a/xdriinfo-1.0.4.tar.bz2 b/xdriinfo-1.0.4.tar.bz2 deleted file mode 100644 index de70cb8e532b178089edb670d870794b3c595189..0000000000000000000000000000000000000000 Binary files a/xdriinfo-1.0.4.tar.bz2 and /dev/null differ