Updated GLES patch

This commit is contained in:
2025-03-20 23:44:58 +03:00
parent 691b8e22bd
commit 05755827ce
2 changed files with 98 additions and 3 deletions

View File

@@ -1,4 +1,4 @@
From 11edf7c743f418fdd937afc5b79565b8951dc671 Mon Sep 17 00:00:00 2001
From 824c835772a988e4a1dcffee1cd23ee04f62d083 Mon Sep 17 00:00:00 2001
From: Sergey Lapin <slapinid@gmail.com>
Date: Thu, 20 Mar 2025 21:49:14 +0300
Subject: [PATCH] Made GLES work on X11
@@ -8,7 +8,13 @@ Subject: [PATCH] Made GLES work on X11
.../gles2/rasterizer_canvas_base_gles2.cpp | 3 +
drivers/gles2/rasterizer_gles2.cpp | 10 +
drivers/gles2/rasterizer_storage_gles2.cpp | 3 +
modules/denoise/config.py | 2 +-
modules/gdnative/nativescript/SCsub | 2 +-
modules/mono/build_scripts/mono_configure.py | 2 +-
modules/mono/config.py | 2 +-
modules/raycast/SCsub | 2 +-
modules/webm/config.py | 2 +-
modules/webm/libvpx/SCsub | 4 +-
platform/x11es/SCsub | 27 +
platform/x11es/context_gl_x11.cpp | 306 ++
platform/x11es/context_gl_x11.h | 89 +
@@ -31,7 +37,7 @@ Subject: [PATCH] Made GLES work on X11
platform/x11es/platform_x11_builders.py | 18 +
platform/x11es/power_x11.cpp | 571 +++
platform/x11es/power_x11.h | 65 +
27 files changed, 10992 insertions(+), 2 deletions(-)
33 files changed, 11000 insertions(+), 8 deletions(-)
create mode 100644 platform/x11es/SCsub
create mode 100644 platform/x11es/context_gl_x11.cpp
create mode 100644 platform/x11es/context_gl_x11.h
@@ -129,6 +135,53 @@ index 497d8d991f..5427df69d8 100644
// enable extensions manually for android and ios
#ifndef UWP_ENABLED
diff --git a/modules/denoise/config.py b/modules/denoise/config.py
index b2c95de048..21d6a28b22 100644
--- a/modules/denoise/config.py
+++ b/modules/denoise/config.py
@@ -5,7 +5,7 @@ def can_build(env, platform):
# as doing lightmap generation and denoising on Android or HTML5
# would be a bit far-fetched.
# Note: oneDNN doesn't support ARM64, OIDN needs updating to the latest version
- supported_platform = platform in ["x11", "osx", "windows", "server"]
+ supported_platform = platform in ["x11", "x11es", "osx", "windows", "server"]
supported_arch = env["bits"] == "64"
if env["arch"].startswith("arm"):
supported_arch = False
diff --git a/modules/gdnative/nativescript/SCsub b/modules/gdnative/nativescript/SCsub
index b1ddb2489c..a1c4dee9f7 100644
--- a/modules/gdnative/nativescript/SCsub
+++ b/modules/gdnative/nativescript/SCsub
@@ -5,5 +5,5 @@ Import("env_gdnative")
env_gdnative.add_source_files(env.modules_sources, "*.cpp")
-if "platform" in env and env["platform"] in ["x11", "iphone"]:
+if "platform" in env and env["platform"] in ["x11", "x11es", "iphone"]:
env.Append(LINKFLAGS=["-rdynamic"])
diff --git a/modules/mono/build_scripts/mono_configure.py b/modules/mono/build_scripts/mono_configure.py
index 4de7cb743c..0e9abb8a22 100644
--- a/modules/mono/build_scripts/mono_configure.py
+++ b/modules/mono/build_scripts/mono_configure.py
@@ -59,7 +59,7 @@ def copy_file(src_dir, dst_dir, src_name, dst_name=""):
def is_desktop(platform):
- return platform in ["windows", "osx", "x11", "server", "uwp", "haiku"]
+ return platform in ["windows", "osx", "x11", "x11es", "server", "uwp", "haiku"]
def is_unix_like(platform):
diff --git a/modules/mono/config.py b/modules/mono/config.py
index 5fb83590c4..fe9197a255 100644
--- a/modules/mono/config.py
+++ b/modules/mono/config.py
@@ -1,4 +1,4 @@
-supported_platforms = ["windows", "osx", "x11", "server", "android", "haiku", "javascript", "iphone"]
+supported_platforms = ["windows", "osx", "x11", "x11es", "server", "android", "haiku", "javascript", "iphone"]
def can_build(env, platform):
diff --git a/modules/raycast/SCsub b/modules/raycast/SCsub
index dcade4b520..89a2cfa7b2 100644
--- a/modules/raycast/SCsub
@@ -142,6 +195,48 @@ index dcade4b520..89a2cfa7b2 100644
env_thirdparty.Append(CXXFLAGS=["-flax-vector-conversions"])
env_thirdparty.Append(
diff --git a/modules/webm/config.py b/modules/webm/config.py
index 1f2f402f3a..d95569734e 100644
--- a/modules/webm/config.py
+++ b/modules/webm/config.py
@@ -5,7 +5,7 @@ def can_build(env, platform):
return False
# Can work in theory but our libvpx/SCsub is too broken to compile NEON .s
# files properly on Linux arm32. Could be fixed by someone motivated.
- if platform in ["x11", "server"] and env["arch"] in ["arm", "arm32"]:
+ if platform in ["x11", "server", "x11es"] and env["arch"] in ["arm", "arm32"]:
return False
return True
diff --git a/modules/webm/libvpx/SCsub b/modules/webm/libvpx/SCsub
index 4170d5456f..77acfb87db 100644
--- a/modules/webm/libvpx/SCsub
+++ b/modules/webm/libvpx/SCsub
@@ -227,7 +227,7 @@ if env["platform"] == "uwp":
elif env["platform"] != "windows": # Disable for Windows, yasm SIMD optimizations trigger crash (GH-50862).
import platform
- is_x11_or_server_arm = (env["platform"] == "x11" or env["platform"] == "server") and (
+ is_x11_or_server_arm = (env["platform"] == "x11" or env["platform"] == "server" or env["platform"] == "x11es") and (
platform.machine().startswith("arm")
or platform.machine().startswith("aarch")
or ("arch" in env and env["arch"].startswith("arm"))
@@ -243,6 +243,7 @@ elif env["platform"] != "windows": # Disable for Windows, yasm SIMD optimizatio
and (
env["platform"] == "windows"
or env["platform"] == "x11"
+ or env["platform"] == "x11es"
or env["platform"] == "haiku"
or is_macos_x86
or is_android_x86
@@ -312,6 +313,7 @@ if webm_cpu_arm:
env["platform"] == "android"
and env["android_arch"] == "armv7"
or env["platform"] == "x11"
+ or env["platform"] == "x11es"
or env["platform"] == "server"
):
# Append to preserve base ASFLAGS on Android.
diff --git a/platform/x11es/SCsub b/platform/x11es/SCsub
new file mode 100644
index 0000000000..3777596c80