mesa: Updates for 23.1.0

* Update patch to more correctly solve GLView.h depend
  * Upstreamed via mesa PR 22512
* Cleanup mesa packages
This commit is contained in:
Alexander von Gluck IV
2023-04-15 09:56:41 -05:00
parent cf4acde49c
commit da2d05ab37
2 changed files with 196 additions and 49 deletions

View File

@@ -6,7 +6,7 @@ providing 3D rendering to Haiku applications."
HOMEPAGE="https://www.mesa3d.org/"
COPYRIGHT="1999-2022 Brian Paul"
LICENSE="MIT"
REVISION="1"
REVISION="3"
SOURCE_URI="https://mesa.freedesktop.org/archive/mesa-23.1.0-rc1.tar.xz" # -rc1 vs _rc1
#SOURCE_URI="https://mesa.freedesktop.org/archive/mesa-${portVersion}.tar.xz"
CHECKSUM_SHA256="a119a04e14a6dbae9df170de9c7d0047e11df1dc020cc6db00666654a71fe41a"
@@ -15,6 +15,8 @@ SOURCE_DIR="mesa-23.1.0-rc1" # -rc1 vs _rc1
#PATCHES="mesa-$portVersion.patchset"
PATCHES="mesa-23.1.0.patchset" # -rc1 vs _rc1
ADDITIONAL_FILES="50_mesa.json"
ARCHITECTURES="?all !x86_gcc2"
SECONDARY_ARCHITECTURES="?x86"
@@ -51,7 +53,7 @@ DESCRIPTION_eglvnd="This glvnd rendering driver package provides \
software pipe rendering (with LLVM-bosted performance)."
PROVIDES_eglvnd="
mesa${secondaryArchSuffix}_swpipe = $portVersion
mesa${secondaryArchSuffix}_eglvnd = $portVersion
"
REQUIRES_eglvnd="
mesa$secondaryArchSuffix == $portVersion base
@@ -132,11 +134,17 @@ INSTALL()
# Mesa's EGL render driver
mkdir -p $addOnsDir/opengl/egl_vendor.d
mv $(find $libDir -name 'libEGL_mesa.so.0') \
"$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0"
ln -sr "$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0" "$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0.0.0"
mv $libDir/libEGL_mesa.so* "$addOnsDir/opengl/egl_vendor.d/"
# Vulkan lavapipe driver
mv $libDir/libvulkan_lvp.so \
"$addOnsDir/vulkan/icd.d"
# remove stock glvnd json
rm -rf $dataDir/glvnd
# remove dri stuff
rm -rf $dataDir/drirc.d
rm -rf $libDir/haiku
# Configure Mesa EGL Vendor Renderer
@@ -144,7 +152,7 @@ INSTALL()
# Set some nice version info
appVersion=${portVersion//\./ }
setversion "$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0" -app $appVersion -long \
setversion "$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0.0.0" -app $appVersion -long \
"Mesa EGL rendering drivers"
setversion "$addOnsDir/vulkan/icd.d/libvulkan_lvp.so" -app $appVersion -long \
"Vulkan software rasteriser driver"
@@ -160,16 +168,22 @@ INSTALL()
$developDir
# swpipe renderer package
packageEntries swpipe \
"$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0" \
packageEntries eglvnd \
"$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0.0.0" \
"$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so.0" \
"$addOnsDir/opengl/egl_vendor.d/libEGL_mesa.so" \
"$addOnsDir/opengl/egl_vendor.d/50_mesa.json"
# lavapipe renderer package
packageEntries lavapipe \
"$addOnsDir/vulkan/icd.d/libvulkan_lvp.so"
"$addOnsDir/vulkan/icd.d/libvulkan_lvp.so" \
"$addOnsDir/vulkan/icd.d/lvp_icd.x86_64.json"
rmdir "$addOnsDir"/opengl
# Remove empty directories from mesa package
rmdir "$addOnsDir/vulkan/icd.d"
rmdir "$addOnsDir/vulkan"
rmdir "$addOnsDir/opengl/egl_vendor.d"
rmdir "$addOnsDir/opengl"
}
TEST()

View File

@@ -1,40 +1,75 @@
From 73e30222bdce9ac66e16c0e2b524856f2cf5aa38 Mon Sep 17 00:00:00 2001
From a0c384a6165b7e5ad021cb974a6c9c9fe391b492 Mon Sep 17 00:00:00 2001
From: Alexander von Gluck IV <kallisti5@unixzen.com>
Date: Sat, 15 Apr 2023 08:08:43 -0500
Subject: [PATCH] gallium/frontends/hgl: Convert to system GLView.h.
Subject: [PATCH] hgl: Redefine visual options in hgl_context.h
* This is needed for our BGL_INDEX, BGL_ALPHA, BGL_DEPTH, etc.
* For now, move the visual mask flags into hgl_context.h
* This removes an un-needed dependency on GLView.h from glvnd
* Eventually, these need converted into normal EGL parameters
---
meson.build | 1 +
src/gallium/frontends/hgl/hgl.c | 3 +--
src/gallium/frontends/hgl/meson.build | 1 +
3 files changed, 3 insertions(+), 2 deletions(-)
src/egl/drivers/haiku/egl_haiku.cpp | 21 +++------------------
src/gallium/frontends/hgl/hgl.c | 18 ++++++++----------
src/gallium/frontends/hgl/hgl_context.h | 16 ++++++++++++++++
3 files changed, 27 insertions(+), 28 deletions(-)
diff --git a/meson.build b/meson.build
index c7a4be82e59..7610defb896 100644
--- a/meson.build
+++ b/meson.build
@@ -1524,6 +1524,7 @@ endif
diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp
index 3069c7edb42..94866e12315 100644
--- a/src/egl/drivers/haiku/egl_haiku.cpp
+++ b/src/egl/drivers/haiku/egl_haiku.cpp
@@ -53,21 +53,6 @@ extern "C" {
#include "target-helpers/inline_sw_helper.h"
}
if with_platform_haiku
dep_network = cc.find_library('network')
+ dep_glkit = dependency('gl', version : '>= 1.0')
endif
-#define BGL_RGB 0
-#define BGL_INDEX 1
-#define BGL_SINGLE 0
-#define BGL_DOUBLE 2
-#define BGL_DIRECT 0
-#define BGL_INDIRECT 4
-#define BGL_ACCUM 8
-#define BGL_ALPHA 16
-#define BGL_DEPTH 32
-#define BGL_OVERLAY 64
-#define BGL_UNDERLAY 128
-#define BGL_STENCIL 512
-#define BGL_SHARE_CONTEXT 1024
-
-
#ifdef DEBUG
# define TRACE(x...) printf("egl_haiku: " x)
# define CALLED() TRACE("CALLED: %s\n", __PRETTY_FUNCTION__)
@@ -121,7 +106,7 @@ haiku_create_window_surface(_EGLDisplay *disp, _EGLConfig *conf, void *native_wi
}
dep_futex = null_dep
struct st_visual visual;
- hgl_get_st_visual(&visual, BGL_DOUBLE|BGL_DEPTH);
+ hgl_get_st_visual(&visual, HGL_DOUBLE|HGL_DEPTH);
wgl_surf->fb = hgl_create_st_framebuffer(hgl_dpy->disp, &visual, native_window);
if (!wgl_surf->fb) {
@@ -158,7 +143,7 @@ haiku_create_pbuffer_surface(_EGLDisplay *disp, _EGLConfig *conf, const EGLint *
struct st_visual visual;
- hgl_get_st_visual(&visual, BGL_DOUBLE|BGL_DEPTH);
+ hgl_get_st_visual(&visual, HGL_DOUBLE|HGL_DEPTH);
wgl_surf->fb = hgl_create_st_framebuffer(hgl_dpy->disp, &visual, NULL);
if (!wgl_surf->fb) {
@@ -429,7 +414,7 @@ haiku_create_context(_EGLDisplay *disp, _EGLConfig *conf,
struct haiku_egl_display *hgl_dpy = haiku_egl_display(disp);
struct st_visual visual;
- hgl_get_st_visual(&visual, BGL_DOUBLE|BGL_DEPTH);
+ hgl_get_st_visual(&visual, HGL_DOUBLE|HGL_DEPTH);
struct haiku_egl_context* context = (struct haiku_egl_context*) calloc(1, sizeof (*context));
if (!context) {
diff --git a/src/gallium/frontends/hgl/hgl.c b/src/gallium/frontends/hgl/hgl.c
index 7fd5745d90f..a730593ba04 100644
index 7fd5745d90f..8392f2ad2f7 100644
--- a/src/gallium/frontends/hgl/hgl.c
+++ b/src/gallium/frontends/hgl/hgl.c
@@ -10,6 +10,7 @@
#include "hgl_context.h"
#include <stdio.h>
+#include <GLView.h>
#include "util/format/u_formats.h"
#include "util/u_atomic.h"
@@ -18,8 +19,6 @@
@@ -18,8 +18,6 @@
#include "util/u_inlines.h"
#include "state_tracker/st_context.h"
@@ -43,18 +78,116 @@ index 7fd5745d90f..a730593ba04 100644
#ifdef DEBUG
# define TRACE(x...) printf("hgl:frontend: " x)
diff --git a/src/gallium/frontends/hgl/meson.build b/src/gallium/frontends/hgl/meson.build
index 3b6348db338..ac4540558c4 100644
--- a/src/gallium/frontends/hgl/meson.build
+++ b/src/gallium/frontends/hgl/meson.build
@@ -31,6 +31,7 @@ endif
libsthgl = static_library(
'sthgl',
files_libsthgl,
+ dependencies : [dep_glkit],
include_directories : [
inc_include, inc_util, inc_mesa, inc_mapi, inc_src,
inc_gallium, inc_gallium_aux
@@ -321,39 +319,39 @@ hgl_get_st_visual(struct st_visual* visual, ulong options)
assert(visual);
// Determine color format
- if ((options & BGL_INDEX) != 0) {
+ if ((options & HGL_INDEX) != 0) {
// Index color
visual->color_format = PIPE_FORMAT_B5G6R5_UNORM;
// TODO: Indexed color depth buffer?
visual->depth_stencil_format = PIPE_FORMAT_NONE;
} else {
// RGB color
- visual->color_format = (options & BGL_ALPHA)
+ visual->color_format = (options & HGL_ALPHA)
? PIPE_FORMAT_BGRA8888_UNORM : PIPE_FORMAT_BGRX8888_UNORM;
// TODO: Determine additional stencil formats
- visual->depth_stencil_format = (options & BGL_DEPTH)
+ visual->depth_stencil_format = (options & HGL_DEPTH)
? PIPE_FORMAT_Z24_UNORM_S8_UINT : PIPE_FORMAT_NONE;
}
- visual->accum_format = (options & BGL_ACCUM)
+ visual->accum_format = (options & HGL_ACCUM)
? PIPE_FORMAT_R16G16B16A16_SNORM : PIPE_FORMAT_NONE;
visual->buffer_mask |= ST_ATTACHMENT_FRONT_LEFT_MASK;
- if ((options & BGL_DOUBLE) != 0) {
+ if ((options & HGL_DOUBLE) != 0) {
TRACE("double buffer enabled\n");
visual->buffer_mask |= ST_ATTACHMENT_BACK_LEFT_MASK;
}
#if 0
- if ((options & BGL_STEREO) != 0) {
+ if ((options & HGL_STEREO) != 0) {
visual->buffer_mask |= ST_ATTACHMENT_FRONT_RIGHT_MASK;
- if ((options & BGL_DOUBLE) != 0)
+ if ((options & HGL_DOUBLE) != 0)
visual->buffer_mask |= ST_ATTACHMENT_BACK_RIGHT_MASK;
}
#endif
- if ((options & BGL_DEPTH) || (options & BGL_STENCIL))
+ if ((options & HGL_DEPTH) || (options & HGL_STENCIL))
visual->buffer_mask |= ST_ATTACHMENT_DEPTH_STENCIL_MASK;
TRACE("%s: Visual color format: %s\n", __func__,
diff --git a/src/gallium/frontends/hgl/hgl_context.h b/src/gallium/frontends/hgl/hgl_context.h
index 03e567af2de..6c36bf93474 100644
--- a/src/gallium/frontends/hgl/hgl_context.h
+++ b/src/gallium/frontends/hgl/hgl_context.h
@@ -17,6 +17,22 @@
#include "frontend/api.h"
+// visual options
+#define HGL_RGB 0
+#define HGL_INDEX 1
+#define HGL_SINGLE 0
+#define HGL_DOUBLE 2
+#define HGL_DIRECT 0
+#define HGL_INDIRECT 4
+#define HGL_ACCUM 8
+#define HGL_ALPHA 16
+#define HGL_DEPTH 32
+#define HGL_OVERLAY 64
+#define HGL_UNDERLAY 128
+#define HGL_STENCIL 512
+#define HGL_SHARE_CONTEXT 1024
+
+
#ifdef __cplusplus
extern "C" {
#endif
--
2.37.3
From 9f063a17d5149b963b7e6a25659373dac9f9c905 Mon Sep 17 00:00:00 2001
From: Alexander von Gluck IV <kallisti5@unixzen.com>
Date: Sat, 15 Apr 2023 10:06:37 -0500
Subject: [PATCH] egl/haiku: Drop some dead cleanup code
---
src/egl/drivers/haiku/egl_haiku.cpp | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp
index 94866e12315..c01be7b0f5e 100644
--- a/src/egl/drivers/haiku/egl_haiku.cpp
+++ b/src/egl/drivers/haiku/egl_haiku.cpp
@@ -314,7 +314,6 @@ static EGLBoolean
haiku_initialize_impl(_EGLDisplay *disp, void *platformDisplay)
{
struct haiku_egl_display *hgl_dpy;
- const char* err;
hgl_dpy = (struct haiku_egl_display*)calloc(1, sizeof(struct haiku_egl_display));
if (!hgl_dpy)
@@ -355,10 +354,6 @@ haiku_initialize_impl(_EGLDisplay *disp, void *platformDisplay)
haiku_add_configs_for_visuals(disp);
return EGL_TRUE;
-
-cleanup:
- haiku_display_destroy(disp);
- return _eglError(EGL_NOT_INITIALIZED, err);
}
--
2.37.3