diff --git a/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md
index 1009820105..bbdb35010b 100644
--- a/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md
+++ b/documentation/PER_DEVICE_DOCUMENTATION/RK3588/SUPPORTED_EMULATORS_AND_CORES.md
@@ -70,7 +70,7 @@ This document describes all available systems emulators and cores available for
|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**mednafen:** gba
|
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**retroarch:** DoubleCherryGB
**mednafen:** gb
|
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**retroarch:** DoubleCherryGB
**mednafen:** gb
|
-|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
|
+|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc
**dolphin:** dolphin-qt-gc (default)
**retroarch:** dolphin
|
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
|
|Nintendo|Nintendo 3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**retroarch:** panda3ds (default)
|
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
|
@@ -83,7 +83,7 @@ This document describes all available systems emulators and cores available for
|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
|
|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes_mercury_accuracy
**retroarch:** bsnes_mercury_balanced
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes
**retroarch:** bsnes_hd_beta
**mednafen:** snes_faust
**retroarch:** bsnes_mercury_accuracy
**retroarch:** bsnes_mercury_balanced
**retroarch:** bsnes_mercury_accuracy
**retroarch:** bsnes_mercury_balanced
**mednafen:** snes_faust
|
|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
|
-|Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad|**dolphin:** dolphin-sa-wii (default)
**retroarch:** dolphin
|
+|Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad|**dolphin:** dolphin-sa-wii
**dolphin:** dolphin-qt-wii (default)
**retroarch:** dolphin
|
|Palm, Inc.|Palm OS (palm)|1996|`palm`|.prc .pqa .img .pdb .zip|**retroarch:** mu (default)
|
|Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)
|
|Philips|CD-i (cdi)|1991|`cdi`|.chd .cue .iso|**retroarch:** same_cdi (default)
|
diff --git a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md
index 3946772daf..620896382b 100644
--- a/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md
+++ b/documentation/PER_DEVICE_DOCUMENTATION/S922X/SUPPORTED_EMULATORS_AND_CORES.md
@@ -70,7 +70,7 @@ This document describes all available systems emulators and cores available for
|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
|
|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**retroarch:** DoubleCherryGB
|
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**retroarch:** DoubleCherryGB
|
-|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
|
+|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**dolphin:** dolphin-qt-gc
**retroarch:** dolphin
|
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
|
|Nintendo|Nintendo 3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**lime3ds:** lime3ds-sa (default)
|
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
|
@@ -83,7 +83,7 @@ This document describes all available systems emulators and cores available for
|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes
**retroarch:** bsnes_hd_beta
|
|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes_mercury_accuracy
**retroarch:** bsnes_mercury_balanced
**retroarch:** bsnes_mercury_performance
**retroarch:** bsnes
**retroarch:** bsnes_hd_beta
**retroarch:** bsnes_mercury_accuracy
**retroarch:** bsnes_mercury_balanced
**retroarch:** bsnes_mercury_accuracy
**retroarch:** bsnes_mercury_balanced
|
|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
|
-|Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad|**dolphin:** dolphin-sa-wii (default)
**retroarch:** dolphin
|
+|Nintendo|Wii (wii)|2006|`wii`|.gcm .iso .gcz .ciso .wbfs .rvz .dol .wad|**dolphin:** dolphin-sa-wii (default)
**dolphin:** dolphin-qt-gc
**retroarch:** dolphin
|
|Palm, Inc.|Palm OS (palm)|1996|`palm`|.prc .pqa .img .pdb .zip|**retroarch:** mu (default)
|
|Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)
|
|Philips|CD-i (cdi)|1991|`cdi`|.chd .cue .iso|**retroarch:** same_cdi (default)
|
diff --git a/packages/emulators/standalone/dolphin-sa/config/AMD64/Dolphin.ini b/packages/emulators/standalone/dolphin-sa/config/AMD64/Dolphin.ini
index 7a521d1520..855fa1bf6f 100644
--- a/packages/emulators/standalone/dolphin-sa/config/AMD64/Dolphin.ini
+++ b/packages/emulators/standalone/dolphin-sa/config/AMD64/Dolphin.ini
@@ -70,6 +70,7 @@ ColumnRegion = True
ColumnSize = True
ColumnState = True
[Core]
+SkipIPL = True
HLE_BS2 = False
TimingVariance = 40
CPUCore = 4
diff --git a/packages/emulators/standalone/dolphin-sa/config/RK3399/Dolphin.ini b/packages/emulators/standalone/dolphin-sa/config/RK3399/Dolphin.ini
index 65c34791f7..fa0ee0197f 100755
--- a/packages/emulators/standalone/dolphin-sa/config/RK3399/Dolphin.ini
+++ b/packages/emulators/standalone/dolphin-sa/config/RK3399/Dolphin.ini
@@ -70,6 +70,7 @@ ColumnRegion = True
ColumnSize = True
ColumnState = True
[Core]
+SkipIPL = True
HLE_BS2 = False
TimingVariance = 40
CPUCore = 4
diff --git a/packages/emulators/standalone/dolphin-sa/config/RK3566/Dolphin.ini b/packages/emulators/standalone/dolphin-sa/config/RK3566/Dolphin.ini
index 65c34791f7..fa0ee0197f 100755
--- a/packages/emulators/standalone/dolphin-sa/config/RK3566/Dolphin.ini
+++ b/packages/emulators/standalone/dolphin-sa/config/RK3566/Dolphin.ini
@@ -70,6 +70,7 @@ ColumnRegion = True
ColumnSize = True
ColumnState = True
[Core]
+SkipIPL = True
HLE_BS2 = False
TimingVariance = 40
CPUCore = 4
diff --git a/packages/emulators/standalone/dolphin-sa/config/RK3588/Dolphin.ini b/packages/emulators/standalone/dolphin-sa/config/RK3588/Dolphin.ini
index 92e7f5bbdd..d820b1218c 100644
--- a/packages/emulators/standalone/dolphin-sa/config/RK3588/Dolphin.ini
+++ b/packages/emulators/standalone/dolphin-sa/config/RK3588/Dolphin.ini
@@ -70,6 +70,7 @@ ColumnRegion = True
ColumnSize = True
ColumnState = True
[Core]
+SkipIPL = True
HLE_BS2 = False
TimingVariance = 40
CPUCore = 4
@@ -77,7 +78,7 @@ Fastmem = True
CPUThread = True
DSPHLE = True
SkipIdle = True
-SyncOnSkipIdle = True
+SyncOnSkipIdle = False
SyncGPU = False
SyncGpuMaxDistance = 200000
SyncGpuMinDistance = -200000
@@ -120,9 +121,9 @@ RunCompareServer = False
RunCompareClient = False
EmulationSpeed = 1.00000000
FrameSkip = 0x00000003
-Overclock = 4.00000000
+Overclock = 1.0
OverclockEnable = False
-GFXBackend = OGL
+GFXBackend = Vulkan
GPUDeterminismMode = auto
PerfMapDir =
[Movie]
@@ -138,6 +139,7 @@ DumpUCode = False
Backend = Pulse
Volume = 100
CaptureLog = False
+DSPThread = True
[Input]
BackgroundInput = False
[FifoPlayer]
diff --git a/packages/emulators/standalone/dolphin-sa/config/RK3588/Hotkeys.ini b/packages/emulators/standalone/dolphin-sa/config/RK3588/Hotkeys.ini
new file mode 100644
index 0000000000..838c89f486
--- /dev/null
+++ b/packages/emulators/standalone/dolphin-sa/config/RK3588/Hotkeys.ini
@@ -0,0 +1,10 @@
+[Hotkeys]
+Device = evdev/0/Microsoft X-Box 360 pad
+Graphics Toggles/Toggle Aspect Ratio = @(MODE+EAST)
+General/Take Screenshot = @(MODE+SOUTH)
+Save State/Save to Selected Slot = @(MODE+TR)
+Load State/Load State Slot 1 = @(MODE+TL)
+Other State Hotkeys/Increase Selected State Slot = @(MODE+`Axis 7-`)
+Other State Hotkeys/Decrease Selected State Slot = @(MODE+`Axis 7+`)
+Emulation Speed/Increase Emulation Speed = @(MODE+`Full Axis 5+`)
+Emulation Speed/Decrease Emulation Speed = @(MODE+`Full Axis 2+`)
diff --git a/packages/emulators/standalone/dolphin-sa/config/S922X/Dolphin.ini b/packages/emulators/standalone/dolphin-sa/config/S922X/Dolphin.ini
index b6830af12e..d820b1218c 100644
--- a/packages/emulators/standalone/dolphin-sa/config/S922X/Dolphin.ini
+++ b/packages/emulators/standalone/dolphin-sa/config/S922X/Dolphin.ini
@@ -70,6 +70,7 @@ ColumnRegion = True
ColumnSize = True
ColumnState = True
[Core]
+SkipIPL = True
HLE_BS2 = False
TimingVariance = 40
CPUCore = 4
diff --git a/packages/emulators/standalone/dolphin-sa/config/S922X/Hotkeys.ini b/packages/emulators/standalone/dolphin-sa/config/S922X/Hotkeys.ini
new file mode 100644
index 0000000000..838c89f486
--- /dev/null
+++ b/packages/emulators/standalone/dolphin-sa/config/S922X/Hotkeys.ini
@@ -0,0 +1,10 @@
+[Hotkeys]
+Device = evdev/0/Microsoft X-Box 360 pad
+Graphics Toggles/Toggle Aspect Ratio = @(MODE+EAST)
+General/Take Screenshot = @(MODE+SOUTH)
+Save State/Save to Selected Slot = @(MODE+TR)
+Load State/Load State Slot 1 = @(MODE+TL)
+Other State Hotkeys/Increase Selected State Slot = @(MODE+`Axis 7-`)
+Other State Hotkeys/Decrease Selected State Slot = @(MODE+`Axis 7+`)
+Emulation Speed/Increase Emulation Speed = @(MODE+`Full Axis 5+`)
+Emulation Speed/Decrease Emulation Speed = @(MODE+`Full Axis 2+`)
diff --git a/packages/emulators/standalone/dolphin-sa/config/SD865/Dolphin.ini b/packages/emulators/standalone/dolphin-sa/config/SD865/Dolphin.ini
index b6830af12e..d820b1218c 100644
--- a/packages/emulators/standalone/dolphin-sa/config/SD865/Dolphin.ini
+++ b/packages/emulators/standalone/dolphin-sa/config/SD865/Dolphin.ini
@@ -70,6 +70,7 @@ ColumnRegion = True
ColumnSize = True
ColumnState = True
[Core]
+SkipIPL = True
HLE_BS2 = False
TimingVariance = 40
CPUCore = 4
diff --git a/packages/emulators/standalone/dolphin-sa/package.mk b/packages/emulators/standalone/dolphin-sa/package.mk
index cf5539b6e5..8ff265ab15 100644
--- a/packages/emulators/standalone/dolphin-sa/package.mk
+++ b/packages/emulators/standalone/dolphin-sa/package.mk
@@ -9,7 +9,16 @@ PKG_LONGDESC="Dolphin is a GameCube / Wii emulator, allowing you to play games f
PKG_TOOLCHAIN="cmake"
case ${DEVICE} in
- SD865|AMD64|RK3399)
+ RK3566)
+ PKG_SITE="https://github.com/dolphin-emu/dolphin"
+ PKG_URL="${PKG_SITE}.git"
+ PKG_VERSION="e6583f8bec814d8f3748f1d7738457600ce0de56"
+ PKG_PATCH_DIRS+=" wayland"
+ PKG_CMAKE_OPTS_TARGET+=" -DENABLE_QT=OFF \
+ -DUSE_RETRO_ACHIEVEMENTS=OFF \
+ -DENABLE_HEADLESS=ON"
+ ;;
+ *)
PKG_VERSION="8c3b9c9cf6a4c40e773c5b13ed4dc7ea1912d05b"
PKG_SITE="https://github.com/dolphin-emu/dolphin"
PKG_URL="${PKG_SITE}.git"
@@ -19,15 +28,6 @@ case ${DEVICE} in
-DUSE_RETRO_ACHIEVEMENTS=ON \
-DENABLE_HEADLESS=OFF"
;;
- *)
- PKG_SITE="https://github.com/dolphin-emu/dolphin"
- PKG_URL="${PKG_SITE}.git"
- PKG_VERSION="e6583f8bec814d8f3748f1d7738457600ce0de56"
- PKG_PATCH_DIRS+=" wayland"
- PKG_CMAKE_OPTS_TARGET+=" -DENABLE_QT=OFF \
- -DUSE_RETRO_ACHIEVEMENTS=OFF \
- -DENABLE_HEADLESS=ON"
- ;;
esac
if [ "${OPENGL_SUPPORT}" = "yes" ]; then
@@ -89,17 +89,11 @@ makeinstall_target() {
post_install() {
case ${DEVICE} in
- RK3588)
- DOLPHIN_PLATFORM="\${PLATFORM}"
- EXPORTS="if [ ! -z 'lsmod | grep panthor' ]; then LD_LIBRARY_PATH='\/usr\/lib\/libmali-valhall-g610-g13p0-x11-gbm.so' PLATFORM='wayland'; else PLATFORM='x11'; fi"
- ;;
- SD865|AMD64|RK3399)
- DOLPHIN_PLATFORM="x11"
- EXPORTS="export QT_QPA_PLATFORM=xcb"
+ RK3566)
+ DOLPHIN_PLATFORM="wayland"
;;
*)
- DOLPHIN_PLATFORM="wayland"
- EXPORTS=""
+ DOLPHIN_PLATFORM="x11"
;;
esac
sed -e "s/@DOLPHIN_PLATFORM@/${DOLPHIN_PLATFORM}/g" -i ${INSTALL}/usr/bin/start_dolphin_gc.sh
diff --git a/packages/emulators/standalone/dolphin-sa/patches/qt6/007-qt-vulkan-wayland-support.patch b/packages/emulators/standalone/dolphin-sa/patches/qt6/007-qt-vulkan-wayland-support.patch
new file mode 100644
index 0000000000..74f0b8c8cf
--- /dev/null
+++ b/packages/emulators/standalone/dolphin-sa/patches/qt6/007-qt-vulkan-wayland-support.patch
@@ -0,0 +1,387 @@
+commit 33363780457605f47a306e3b0849dcae15276eb3
+Author: Artemis Tosini
+Date: Mon Apr 6 19:47:13 2020 +0000
+
+ DolphinQt: Add support for Vulkan on Wayland
+
+ Currently, Linux users of DolphinQt can only use the X11 windowing
+ system. This commit adds support for running on top of Wayland, which
+ some compositors require in order to access full resolution on HiDPI
+ displays (such as sway). This uses the Vulkan ICD to get a Vulkan
+ surface, though does not support using wayland-egl to get an EGL
+ surface or software rendering to a native Wayland surface.
+
+ This commit does not set Wayland as the default backend when it is availaible.
+ Users who want to use it must set -DENABLE_WAYLAND=ON when compiling Dolphin
+ and run Dolphin with QT_QPA_PLATFORM=wayland.
+
+diff --git a/CMake/FindWayland.cmake b/CMake/FindWayland.cmake
+new file mode 100644
+index 0000000000..f93218b873
+--- /dev/null
++++ b/CMake/FindWayland.cmake
+@@ -0,0 +1,66 @@
++# Try to find Wayland on a Unix system
++#
++# This will define:
++#
++# WAYLAND_FOUND - True if Wayland is found
++# WAYLAND_LIBRARIES - Link these to use Wayland
++# WAYLAND_INCLUDE_DIR - Include directory for Wayland
++# WAYLAND_DEFINITIONS - Compiler flags for using Wayland
++#
++# In addition the following more fine grained variables will be defined:
++#
++# WAYLAND_CLIENT_FOUND WAYLAND_CLIENT_INCLUDE_DIR WAYLAND_CLIENT_LIBRARIES
++# WAYLAND_SERVER_FOUND WAYLAND_SERVER_INCLUDE_DIR WAYLAND_SERVER_LIBRARIES
++# WAYLAND_EGL_FOUND WAYLAND_EGL_INCLUDE_DIR WAYLAND_EGL_LIBRARIES
++#
++# Copyright (c) 2013 Martin Gräßlin
++#
++# Redistribution and use is allowed according to the terms of the BSD license.
++# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
++
++IF (NOT WIN32)
++ IF (WAYLAND_INCLUDE_DIR AND WAYLAND_LIBRARIES)
++ # In the cache already
++ SET(WAYLAND_FIND_QUIETLY TRUE)
++ ENDIF ()
++
++ # Use pkg-config to get the directories and then use these values
++ # in the FIND_PATH() and FIND_LIBRARY() calls
++ FIND_PACKAGE(PkgConfig)
++ PKG_CHECK_MODULES(PKG_WAYLAND QUIET wayland-client wayland-server wayland-egl wayland-cursor)
++
++ SET(WAYLAND_DEFINITIONS ${PKG_WAYLAND_CFLAGS})
++
++ FIND_PATH(WAYLAND_CLIENT_INCLUDE_DIR NAMES wayland-client.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
++ FIND_PATH(WAYLAND_SERVER_INCLUDE_DIR NAMES wayland-server.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
++ FIND_PATH(WAYLAND_EGL_INCLUDE_DIR NAMES wayland-egl.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
++ FIND_PATH(WAYLAND_CURSOR_INCLUDE_DIR NAMES wayland-cursor.h HINTS ${PKG_WAYLAND_INCLUDE_DIRS})
++
++ FIND_LIBRARY(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
++ FIND_LIBRARY(WAYLAND_SERVER_LIBRARIES NAMES wayland-server HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
++ FIND_LIBRARY(WAYLAND_EGL_LIBRARIES NAMES wayland-egl HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
++ FIND_LIBRARY(WAYLAND_CURSOR_LIBRARIES NAMES wayland-cursor HINTS ${PKG_WAYLAND_LIBRARY_DIRS})
++
++ set(WAYLAND_INCLUDE_DIR ${WAYLAND_CLIENT_INCLUDE_DIR} ${WAYLAND_SERVER_INCLUDE_DIR} ${WAYLAND_EGL_INCLUDE_DIR} ${WAYLAND_CURSOR_INCLUDE_DIR})
++
++ set(WAYLAND_LIBRARIES ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_EGL_LIBRARIES} ${WAYLAND_CURSOR_LIBRARIES})
++
++ list(REMOVE_DUPLICATES WAYLAND_INCLUDE_DIR)
++
++ include(FindPackageHandleStandardArgs)
++
++ FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_CLIENT DEFAULT_MSG WAYLAND_CLIENT_LIBRARIES WAYLAND_CLIENT_INCLUDE_DIR)
++ FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_SERVER DEFAULT_MSG WAYLAND_SERVER_LIBRARIES WAYLAND_SERVER_INCLUDE_DIR)
++ FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_EGL DEFAULT_MSG WAYLAND_EGL_LIBRARIES WAYLAND_EGL_INCLUDE_DIR)
++ FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND_CURSOR DEFAULT_MSG WAYLAND_CURSOR_LIBRARIES WAYLAND_CURSOR_INCLUDE_DIR)
++ FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLAND DEFAULT_MSG WAYLAND_LIBRARIES WAYLAND_INCLUDE_DIR)
++
++ MARK_AS_ADVANCED(
++ WAYLAND_INCLUDE_DIR WAYLAND_LIBRARIES
++ WAYLAND_CLIENT_INCLUDE_DIR WAYLAND_CLIENT_LIBRARIES
++ WAYLAND_SERVER_INCLUDE_DIR WAYLAND_SERVER_LIBRARIES
++ WAYLAND_EGL_INCLUDE_DIR WAYLAND_EGL_LIBRARIES
++ WAYLAND_CURSOR_INCLUDE_DIR WAYLAND_CURSOR_LIBRARIES
++ )
++
++ENDIF ()
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 799ddcb238..7bf4766dcb 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -43,6 +43,7 @@ set(DOLPHIN_DEFAULT_UPDATE_TRACK "" CACHE STRING "Name of the default update tra
+
+ if(UNIX AND NOT APPLE AND NOT ANDROID)
+ option(ENABLE_X11 "Enables X11 Support" ON)
++ option(ENABLE_WAYLAND "Enables Wayland Support" OFF)
+ endif()
+ if(NOT WIN32 AND NOT APPLE AND NOT HAIKU)
+ option(ENABLE_EGL "Enables EGL OpenGL Interface" ON)
+@@ -549,6 +550,17 @@ if(ENABLE_X11)
+ endif()
+ endif()
+
++if(ENABLE_WAYLAND)
++ find_package(Wayland)
++ if(WAYLAND_FOUND)
++ add_definitions(-DHAVE_WAYLAND=1)
++ message(STATUS "Wayland support enabled")
++ else()
++ message(WARNING "Wayland support enabled but not found. This build will not support Wayland.")
++ endif()
++endif()
++
++
+ if(ENABLE_EGL)
+ find_package(EGL)
+ if(EGL_FOUND)
+diff --git a/Source/Core/Common/WindowSystemInfo.h b/Source/Core/Common/WindowSystemInfo.h
+index 8936ad1a02..604e963ab5 100644
+--- a/Source/Core/Common/WindowSystemInfo.h
++++ b/Source/Core/Common/WindowSystemInfo.h
+@@ -19,9 +19,9 @@ struct WindowSystemInfo
+ {
+ WindowSystemInfo() = default;
+ WindowSystemInfo(WindowSystemType type_, void* display_connection_, void* render_window_,
+- void* render_surface_)
++ void* render_surface_, int width_, int height_)
+ : type(type_), display_connection(display_connection_), render_window(render_window_),
+- render_surface(render_surface_)
++ render_surface(render_surface_), width(width_), height(height_)
+ {
+ }
+
+@@ -41,6 +41,12 @@ struct WindowSystemInfo
+ // during video backend startup the surface pointer may change (MoltenVK).
+ void* render_surface = nullptr;
+
++ // Width and height of the render surface. This is necessary on Wayland as
++ // vkGetPhysicalDeviceSurfaceCapabilitiesKHR does not return the size of
++ // the VkSurfaceKHR created with vkCreateWaylandSurfaceKHR
++ int width = -1;
++ int height = -1;
++
+ // Scale of the render surface. For hidpi systems, this will be >1.
+ float render_surface_scale = 1.0f;
+ };
+diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp
+index 93ad16a59e..8af38d9d4f 100644
+--- a/Source/Core/DolphinQt/MainWindow.cpp
++++ b/Source/Core/DolphinQt/MainWindow.cpp
+@@ -196,7 +196,12 @@ static WindowSystemInfo GetWindowSystemInfo(QWindow* window)
+ QPlatformNativeInterface* pni = QGuiApplication::platformNativeInterface();
+ wsi.display_connection = pni->nativeResourceForWindow("display", window);
+ if (wsi.type == WindowSystemType::Wayland)
++ {
+ wsi.render_window = window ? pni->nativeResourceForWindow("surface", window) : nullptr;
++ QSize size = window->size();
++ wsi.width = size.width();
++ wsi.height = size.height();
++ }
+ else
+ wsi.render_window = window ? reinterpret_cast(window->winId()) : nullptr;
+ wsi.render_surface = wsi.render_window;
+@@ -1343,8 +1348,13 @@ void MainWindow::ShowGraphicsWindow()
+ static_cast(QGuiApplication::platformNativeInterface()->nativeResourceForWindow(
+ "display", windowHandle())),
+ winId());
++ m_graphics_window = new GraphicsWindow(this);
+ }
++ else
+ #endif
++ {
++ m_graphics_window = new GraphicsWindow(this);
++ }
+ m_graphics_window = new GraphicsWindow(this);
+ InstallHotkeyFilter(m_graphics_window);
+ }
+diff --git a/Source/Core/VideoBackends/OGL/CMakeLists.txt b/Source/Core/VideoBackends/OGL/CMakeLists.txt
+index 30c4f98ba2..8f07b08e11 100644
+--- a/Source/Core/VideoBackends/OGL/CMakeLists.txt
++++ b/Source/Core/VideoBackends/OGL/CMakeLists.txt
+@@ -29,7 +29,11 @@ add_library(videoogl
+
+ target_link_libraries(videoogl PUBLIC common videocommon)
+ if(X11_FOUND)
+- target_link_libraries(videoogl PRIVATE PkgConfig::X11)
++ target_link_libraries(videoogl PRIVATE PkgConfig::X11)
++endif()
++
++if(WAYLAND_FOUND)
++ target_link_libraries(videoogl PRIVATE ${WAYLAND_LIBRARIES})
+ endif()
+
+ if(MSVC)
+diff --git a/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp b/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp
+index 1005cc034a..9c1fe74b49 100644
+--- a/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp
++++ b/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp
+@@ -21,6 +21,10 @@
+ #include
+ #endif
+
++#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
++#include
++#endif
++
+ namespace Vulkan
+ {
+ SwapChain::SwapChain(const WindowSystemInfo& wsi, VkSurfaceKHR surface, bool vsync)
+@@ -84,6 +88,29 @@ VkSurfaceKHR SwapChain::CreateVulkanSurface(VkInstance instance, const WindowSys
+ }
+ #endif
+
++#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
++ if (wsi.type == WindowSystemType::Wayland)
++ {
++ VkWaylandSurfaceCreateInfoKHR surface_create_info = {
++ VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR, // VkStructureType sType
++ nullptr, // const void* pNext
++ 0, // VkWaylandSurfaceCreateFlagsKHR flags
++ static_cast(wsi.display_connection), // struct wl_display* display
++ static_cast(wsi.render_surface) // struct wl_surface* surface
++ };
++
++ VkSurfaceKHR surface;
++ VkResult res = vkCreateWaylandSurfaceKHR(instance, &surface_create_info, nullptr, &surface);
++ if (res != VK_SUCCESS)
++ {
++ LOG_VULKAN_ERROR(res, "vkCreateWaylandSurfaceKHR failed: ");
++ return VK_NULL_HANDLE;
++ }
++
++ return surface;
++ }
++#endif
++
+ #if defined(VK_USE_PLATFORM_ANDROID_KHR)
+ if (wsi.type == WindowSystemType::Android)
+ {
+@@ -302,7 +329,12 @@ bool SwapChain::CreateSwapChain()
+ // Determine the dimensions of the swap chain. Values of -1 indicate the size we specify here
+ // determines window size?
+ VkExtent2D size = surface_capabilities.currentExtent;
+- if (size.width == UINT32_MAX)
++ if (size.width == UINT32_MAX && m_wsi.type == WindowSystemType::Wayland)
++ {
++ size.width = m_wsi.width;
++ size.height = m_wsi.height;
++ }
++ else if (size.width == UINT32_MAX)
+ {
+ size.width = std::max(g_presenter->GetBackbufferWidth(), 1);
+ size.height = std::max(g_presenter->GetBackbufferHeight(), 1);
+diff --git a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
+index ed2407775a..504e347c90 100644
+--- a/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
++++ b/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
+@@ -373,6 +373,13 @@ bool VulkanContext::SelectInstanceExtensions(std::vector* extension
+ return false;
+ }
+ #endif
++#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
++ if (wstype == WindowSystemType::Wayland &&
++ !AddExtension(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME, true))
++ {
++ return false;
++ }
++#endif
+ #if defined(VK_USE_PLATFORM_ANDROID_KHR)
+ if (wstype == WindowSystemType::Android &&
+ !AddExtension(VK_KHR_ANDROID_SURFACE_EXTENSION_NAME, true))
+diff --git a/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl b/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl
+index d716ce49d2..c262a345b1 100644
+--- a/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl
++++ b/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl
+@@ -49,6 +49,11 @@ VULKAN_INSTANCE_ENTRY_POINT(vkCreateXlibSurfaceKHR, false)
+ VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceXlibPresentationSupportKHR, false)
+ #endif
+
++#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
++VULKAN_INSTANCE_ENTRY_POINT(vkCreateWaylandSurfaceKHR, false)
++VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceWaylandPresentationSupportKHR, false)
++#endif
++
+ #if defined(VK_USE_PLATFORM_ANDROID_KHR)
+ VULKAN_INSTANCE_ENTRY_POINT(vkCreateAndroidSurfaceKHR, false)
+ #endif
+index c9b92f5ac8..a728d25186 100644
+--- a/Source/Core/VideoBackends/Vulkan/VulkanLoader.h
++++ b/Source/Core/VideoBackends/Vulkan/VulkanLoader.h
+@@ -13,6 +13,10 @@
+ #define VK_USE_PLATFORM_XLIB_KHR
+ #endif
+
++#if defined(HAVE_WAYLAND)
++#define VK_USE_PLATFORM_WAYLAND_KHR
++#endif
++
+ #if defined(ANDROID)
+ #define VK_USE_PLATFORM_ANDROID_KHR
+ #endif
+diff --git a/Source/Core/DolphinQt/Host.cpp b/Source/Core/DolphinQt/Host.cpp
+index a81924cfd8..a68ca354d8 100644
+--- a/Source/Core/DolphinQt/Host.cpp
++++ b/Source/Core/DolphinQt/Host.cpp
+@@ -190,7 +190,7 @@ void Host::SetTASInputFocus(const bool focus)
+ void Host::ResizeSurface(int new_width, int new_height)
+ {
+ if (g_presenter)
+- g_presenter->ResizeSurface();
++ g_presenter->ResizeSurface(new_width, new_height);
+ }
+
+ std::vector Host_GetPreferredLocales()
+diff --git a/Source/Core/VideoBackends/Vulkan/VKGfx.cpp b/Source/Core/VideoBackends/Vulkan/VKGfx.cpp
+index d65a5d4680..e21b60b9b4 100644
+--- a/Source/Core/VideoBackends/Vulkan/VKGfx.cpp
++++ b/Source/Core/VideoBackends/Vulkan/VKGfx.cpp
+@@ -400,6 +400,7 @@ void VKGfx::CheckForSurfaceResize()
+ g_command_buffer_mgr->CheckLastPresentFail();
+
+ // Resize the swap chain.
++ m_swap_chain->UpdateSize(g_presenter->m_new_width, g_presenter->m_new_height);
+ m_swap_chain->RecreateSwapChain();
+ OnSwapChainResized();
+ }
+diff --git a/Source/Core/VideoBackends/Vulkan/VKSwapChain.h b/Source/Core/VideoBackends/Vulkan/VKSwapChain.h
+index 5f173185a0..b979453f25 100644
+--- a/Source/Core/VideoBackends/Vulkan/VKSwapChain.h
++++ b/Source/Core/VideoBackends/Vulkan/VKSwapChain.h
+@@ -53,6 +53,12 @@ public:
+ }
+ VkResult AcquireNextImage();
+
++ void UpdateSize(int width, int height)
++ {
++ m_wsi.width = width;
++ m_wsi.height = height;
++ }
++
+ bool RecreateSurface(void* native_handle);
+ bool ResizeSwapChain();
+ bool RecreateSwapChain();
+diff --git a/Source/Core/VideoCommon/Present.cpp b/Source/Core/VideoCommon/Present.cpp
+index 6813c7a4e3..5e60da81e9 100644
+--- a/Source/Core/VideoCommon/Present.cpp
++++ b/Source/Core/VideoCommon/Present.cpp
+@@ -509,9 +509,11 @@ void Presenter::ChangeSurface(void* new_surface_handle)
+ m_surface_changed.Set();
+ }
+
+-void Presenter::ResizeSurface()
++void Presenter::ResizeSurface(int width, int height)
+ {
+ std::lock_guard lock(m_swap_mutex);
++ m_new_width = width;
++ m_new_height = height;
+ m_surface_resized.Set();
+ }
+
+diff --git a/Source/Core/VideoCommon/Present.h b/Source/Core/VideoCommon/Present.h
+index 3f8f43a687..4885197f04 100644
+--- a/Source/Core/VideoCommon/Present.h
++++ b/Source/Core/VideoCommon/Present.h
+@@ -81,7 +81,8 @@ public:
+ // Final surface changing
+ // This is called when the surface is resized (WX) or the window changes (Android).
+ void ChangeSurface(void* new_surface_handle);
+- void ResizeSurface();
++ void ResizeSurface(int width, int height);
++ void ResizeSurface() { ResizeSurface(-1, -1); }
+ bool SurfaceResizedTestAndClear() { return m_surface_resized.TestAndClear(); }
+ bool SurfaceChangedTestAndClear() { return m_surface_changed.TestAndClear(); }
+ void* GetNewSurfaceHandle();
+@@ -98,6 +99,10 @@ public:
+
+ const MathUtil::Rectangle& GetTargetRectangle() const { return m_target_rectangle; }
+
++ // Set when we receive a window resize event. Useful on Wayland
++ int m_new_width = -1;
++ int m_new_height = -1;
++
+ private:
+ // Fetches the XFB texture from the texture cache.
+ // Returns true the contents have changed since last time
diff --git a/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_gc.sh b/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_gc.sh
index 8e26d0edb1..1afed7ae47 100644
--- a/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_gc.sh
+++ b/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_gc.sh
@@ -56,6 +56,15 @@ fi
rm -rf /storage/.config/dolphin-emu/StateSaves
ln -sf /storage/roms/savestates/gamecube /storage/.config/dolphin-emu/StateSaves
+#Link and copy bios and other system stuff to roms
+if [ ! -d "/storage/roms/bios/GC/" ]; then
+ mkdir -p "/storage/roms/bios/GC/"
+ cp -r /storage/.config/dolphin-emu/GC /storage/roms/bios/
+fi
+
+rm -rf /storage/.config/dolphin-emu/GC
+ln -sf /storage/roms/bios/GC /storage/.config/dolphin-emu/GC
+
#Grab a clean settings file during boot
cp -r /usr/config/dolphin-emu/GFX.ini /storage/.config/dolphin-emu.GFX.ini
cp -r /usr/config/dolphin-emu/Dolphin.ini /storage/.config/dolphin-emu.Dolphin.ini
@@ -75,6 +84,7 @@ HKEY=$(get_setting hotkey_enable_button "${PLATFORM}" "${GAME}")
SHADERM=$(get_setting shader_mode "${PLATFORM}" "${GAME}")
SHADERP=$(get_setting shader_precompile "${PLATFORM}" "${GAME}")
VSYNC=$(get_setting vsync "${PLATFORM}" "${GAME}")
+SKIPBIOS=$(get_setting use_bios "${PLATFORM}" "${GAME}")
#Set the cores to use
CORES=$(get_setting "cores" "${PLATFORM}" "${GAME}")
@@ -89,6 +99,9 @@ else
unset EMUPERF
fi
+# Default to X, set to wayland where supported
+export QT_QPA_PLATFORM=xcb
+
#Anti-Aliasing
if [ "$AA" = "0" ]
then
@@ -185,6 +198,10 @@ fi
if [ "$RENDERER" = "vulkan" ]
then
sed -i '/GFXBackend/c\GFXBackend = Vulkan' /storage/.config/dolphin-emu/Dolphin.ini
+ # Use wayland when QT and vulkan is selected
+ if [ ${DOLPHIN_CORE} = "dolphin-emu" ]; then
+ export QT_QPA_PLATFORM=wayland
+ fi
else
sed -i '/GFXBackend/c\GFXBackend = OGL' /storage/.config/dolphin-emu/Dolphin.ini
fi
@@ -251,6 +268,14 @@ fi
sed -i '/ShowFPS/c\ShowFPS = true' /storage/.config/dolphin-emu/GFX.ini
fi
+ #Skip Bios
+ if [ "$SKIPBIOS" = "false" ]
+ then
+ sed -i '/SkipIPL/c\SkipIPL = False' /storage/.config/dolphin-emu/Dolphin.ini
+ else
+ sed -i '/SkipIPL/c\SkipIPL = True' /storage/.config/dolphin-emu/Dolphin.ini
+ fi
+
#GC Controller Profile
if [ "$CON" = "south" ]
then
@@ -287,11 +312,18 @@ fi
rm -rf /storage/.local/share/dolphin-emu
ln -sf /storage/.config/dolphin-emu /storage/.local/share/dolphin-emu
-@EXPORTS@
#Retroachievements
/usr/bin/cheevos_dolphin.sh
+# Libmali exception
+if [ "$(/usr/bin/gpudriver)" = "libmali" ] && [ "${HW_DEVICE}" != "RK3566" ]; then
+ export QT_QPA_PLATFORM=wayland
+ # Force only working combo for libmali: QT + Vulkan
+ DOLPHIN_CORE=dolphin-emu
+ sed -i '/GFXBackend/c\GFXBackend = Vulkan' /storage/.config/dolphin-emu/Dolphin.ini
+fi
+
#Run commands
if [ ${DOLPHIN_CORE} = "dolphin-emu" ]; then
CMD="-b -a ${AUDIO_BACKEND}"
diff --git a/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_wii.sh b/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_wii.sh
index 7e4d056dd0..eba1dcb302 100755
--- a/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_wii.sh
+++ b/packages/emulators/standalone/dolphin-sa/scripts/start_dolphin_wii.sh
@@ -92,6 +92,9 @@ else
unset EMUPERF
fi
+# Default to X, set to wayland where supported
+export QT_QPA_PLATFORM=xcb
+
#Anti-Aliasing
if [ "$AA" = "0" ]
then
@@ -187,9 +190,13 @@ fi
#Video Backend
if [ "$RENDERER" = "vulkan" ]
then
- sed -i '/GFXBackend/c\GFXBackend = Vulkan' /storage/.config/dolphin-emu/Dolphin.ini
+ sed -i '/GFXBackend/c\GFXBackend = Vulkan' /storage/.config/dolphin-emu/Dolphin.ini
+ # Use wayland when QT and vulkan is selected
+ if [ ${DOLPHIN_CORE} = "dolphin-emu" ]; then
+ export QT_QPA_PLATFORM=wayland
+ fi
else
- sed -i '/GFXBackend/c\GFXBackend = OGL' /storage/.config/dolphin-emu/Dolphin.ini
+ sed -i '/GFXBackend/c\GFXBackend = OGL' /storage/.config/dolphin-emu/Dolphin.ini
fi
@@ -291,15 +298,25 @@ fi
sed -i '/VSync =/c\VSync = True' /storage/.config/dolphin-emu/GFX.ini
fi
+# Skip bios always, it's untested for Wii
+sed -i '/SkipIPL/c\SkipIPL = True' /storage/.config/dolphin-emu/Dolphin.ini
+
#Link .config/dolphin-emu to .local
rm -rf /storage/.local/share/dolphin-emu
ln -sf /storage/.config/dolphin-emu /storage/.local/share/dolphin-emu
-@EXPORTS@
#Retroachievements
/usr/bin/cheevos_dolphin.sh
+# Libmali exception
+if [ "$(/usr/bin/gpudriver)" = "libmali" ] && [ "${HW_DEVICE}" != "RK3566" ]; then
+ export QT_QPA_PLATFORM=wayland
+ # Force only working combo for libmali: QT + Vulkan
+ DOLPHIN_CORE=dolphin-emu
+ sed -i '/GFXBackend/c\GFXBackend = Vulkan' /storage/.config/dolphin-emu/Dolphin.ini
+fi
+
#Run commands
if [ ${DOLPHIN_CORE} = "dolphin-emu" ]; then
CMD="-b -a ${AUDIO_BACKEND}"
diff --git a/packages/emulators/standalone/drastic-sa/package.mk b/packages/emulators/standalone/drastic-sa/package.mk
index 147be2537f..b57bcfd08e 100644
--- a/packages/emulators/standalone/drastic-sa/package.mk
+++ b/packages/emulators/standalone/drastic-sa/package.mk
@@ -5,7 +5,7 @@ PKG_NAME="drastic-sa"
PKG_VERSION="1.0"
PKG_LICENSE="Proprietary:DRASTIC.pdf"
PKG_ARCH="aarch64"
-PKG_URL="https://github.com/r3claimer/JelosAddOns/raw/main/drastic.tar.gz"
+PKG_URL="https://github.com/ROCKNIX/packages/raw/main/drastic.tar.gz"
PKG_DEPENDS_TARGET="toolchain rocknix-hotkey"
PKG_LONGDESC="Install Drastic Launcher script, will dowload bin on first run"
PKG_TOOLCHAIN="make"
diff --git a/packages/graphics/vulkan/vulkan-wsi-layer/package.mk b/packages/graphics/vulkan/vulkan-wsi-layer/package.mk
index d7b341cde1..632c37d21d 100644
--- a/packages/graphics/vulkan/vulkan-wsi-layer/package.mk
+++ b/packages/graphics/vulkan/vulkan-wsi-layer/package.mk
@@ -2,29 +2,34 @@
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="vulkan-wsi-layer"
-#PKG_VERSION="r51p0-00eac0"
-PKG_VERSION="7e27d1d7"
+PKG_VERSION="cb1a50cf7e640ad7306e673131ded98c0f133628"
PKG_LICENSE="MIT"
PKG_SITE="https://gitlab.freedesktop.org/mesa/vulkan-wsi-layer"
-PKG_URL="${PKG_SITE}.git"
-#PKG_URL="https://developer.arm.com/-/media/Files/downloads/mali-drivers/WSI-Layer/VX501X08X-SW-99009-${PKG_VERSION}.tar.gz"
-PKG_DEPENDS_TARGET="toolchain"
+PKG_URL="${PKG_SITE}/-/archive/${PKG_VERSION}.tar.gz"
+PKG_DEPENDS_TARGET="toolchain vulkan-loader vulkan-headers"
PKG_LONGDESC="Implements Vulkan extensions for Window System Integration inside a Vulkan layer."
PKG_TOOLCHAIN="cmake"
pre_configure_target() {
-#PKG_CMAKE_SCRIPT=${PKG_BUILD}/product/vulkan_wsi/tools/wsi_layer/CMakeLists.txt
+if [ "${DEVICE}" = "RK3588" ]; then
+ #BSP name?, probably can be removed when moving to mainline
+ HEAP_NAME=cma
+else
+ HEAP_NAME=linux,cma
+fi
-if [ "${VULKAN_SUPPORT}" = "yes" ]
-then
- PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
+if [ "${ARCH}" = "aarch64" ]; then
+ INCLUDE_ARCH=arm64
+else
+ INCLUDE_ARCH=${ARCH}
fi
PKG_CMAKE_OPTS_TARGET+=" -DVULKAN_CXX_INCLUDE=${SYSROOT_PREFIX}/usr \
-DBUILD_WSI_HEADLESS=0 \
-DBUILD_WSI_WAYLAND=1 \
- -DSELECT_EXTERNAL_ALLOCATOR=ion
- -DKERNEL_DIR=$(get_build_dir linux)"
+ -DSELECT_EXTERNAL_ALLOCATOR=dma_buf_heaps \
+ -DWSIALLOC_MEMORY_HEAP_NAME=${HEAP_NAME} \
+ -DKERNEL_HEADER_DIR=$(get_build_dir linux)/arch/${INCLUDE_ARCH}/include"
}
makeinstall_target() {
diff --git a/packages/graphics/vulkan/vulkan-wsi-layer/patches/sync.patch b/packages/graphics/vulkan/vulkan-wsi-layer/patches/sync.patch
new file mode 100644
index 0000000000..1e5637ba22
--- /dev/null
+++ b/packages/graphics/vulkan/vulkan-wsi-layer/patches/sync.patch
@@ -0,0 +1,102 @@
+From 797ef4d2ba9bd592868da2d23f9fc05c0ec235a8 Mon Sep 17 00:00:00 2001
+From: Ivan Podogov
+Date: Mon, 11 Nov 2024 09:44:12 +0000
+Subject: [PATCH] Fall back to implicit sync if necessary
+
+---
+ wsi/wayland/surface.cpp | 23 ++++++++++-------------
+ wsi/wayland/swapchain.cpp | 29 +++++++++++++++++++----------
+ 2 files changed, 29 insertions(+), 23 deletions(-)
+
+diff --git a/wsi/wayland/surface.cpp b/wsi/wayland/surface.cpp
+index 61ed4b5..0a686e7 100644
+--- a/wsi/wayland/surface.cpp
++++ b/wsi/wayland/surface.cpp
+@@ -229,27 +229,24 @@ bool surface::init()
+ return false;
+ }
+
+- if (explicit_sync_interface.get() == nullptr)
+- {
+- WSI_LOG_ERROR("Failed to obtain zwp_linux_explicit_synchronization_v1 interface.");
+- return false;
+- }
+-
+ if (presentation_time_interface.get() == nullptr)
+ {
+ WSI_LOG_ERROR("Failed to obtain wp_presentation interface.");
+ return false;
+ }
+
+- auto surface_sync_obj =
+- zwp_linux_explicit_synchronization_v1_get_synchronization(explicit_sync_interface.get(), wayland_surface);
+- if (surface_sync_obj == nullptr)
++ if (explicit_sync_interface.get() != nullptr)
+ {
+- WSI_LOG_ERROR("Failed to retrieve surface synchronization interface");
+- return false;
+- }
++ auto surface_sync_obj =
++ zwp_linux_explicit_synchronization_v1_get_synchronization(explicit_sync_interface.get(), wayland_surface);
++ if (surface_sync_obj == nullptr)
++ {
++ WSI_LOG_ERROR("Failed to retrieve surface synchronization interface");
++ return false;
++ }
+
+- surface_sync_interface.reset(surface_sync_obj);
++ surface_sync_interface.reset(surface_sync_obj);
++ }
+
+ VkResult vk_res = get_supported_formats_and_modifiers(wayland_display, surface_queue.get(), dmabuf_interface.get(),
+ supported_formats);
+diff --git a/wsi/wayland/swapchain.cpp b/wsi/wayland/swapchain.cpp
+index b83ace2..c5ac247 100644
+--- a/wsi/wayland/swapchain.cpp
++++ b/wsi/wayland/swapchain.cpp
+@@ -496,16 +496,19 @@ void swapchain::present_image(const pending_present_request &pending_present)
+
+ wl_surface_attach(m_surface, image_data->buffer, 0, 0);
+
+- auto present_sync_fd = image_data->present_fence.export_sync_fd();
+- if (!present_sync_fd.has_value())
++ if (m_wsi_surface->get_surface_sync_interface() != nullptr)
+ {
+- WSI_LOG_ERROR("Failed to export present fence.");
+- set_error_state(VK_ERROR_SURFACE_LOST_KHR);
+- }
+- else if (present_sync_fd->is_valid())
+- {
+- zwp_linux_surface_synchronization_v1_set_acquire_fence(m_wsi_surface->get_surface_sync_interface(),
+- present_sync_fd->get());
++ auto present_sync_fd = image_data->present_fence.export_sync_fd();
++ if (!present_sync_fd.has_value())
++ {
++ WSI_LOG_ERROR("Failed to export present fence.");
++ set_error_state(VK_ERROR_SURFACE_LOST_KHR);
++ }
++ else if (present_sync_fd->is_valid())
++ {
++ zwp_linux_surface_synchronization_v1_set_acquire_fence(m_wsi_surface->get_surface_sync_interface(),
++ present_sync_fd->get());
++ }
+ }
+
+ /* TODO: work out damage */
+@@ -623,8 +626,14 @@ VkResult swapchain::image_set_present_payload(swapchain_image &image, VkQueue qu
+ return image_data->present_fence.set_payload(queue, semaphores, submission_pnext);
+ }
+
+-VkResult swapchain::image_wait_present(swapchain_image &, uint64_t)
++VkResult swapchain::image_wait_present(swapchain_image &image, uint64_t timeout)
+ {
++ if (m_wsi_surface->get_surface_sync_interface() == nullptr)
++ {
++ auto data = reinterpret_cast(image.data);
++ return data->present_fence.wait_payload(timeout);
++ }
++
+ /* With explicit sync in use there is no need to wait for the present sync before submiting the image to the
+ * compositor. */
+ return VK_SUCCESS;
+
diff --git a/packages/graphics/vulkan/vulkan-wsi-layer/patches/sync.patch.disabled b/packages/graphics/vulkan/vulkan-wsi-layer/patches/sync.patch.disabled
deleted file mode 100644
index 21e0617624..0000000000
--- a/packages/graphics/vulkan/vulkan-wsi-layer/patches/sync.patch.disabled
+++ /dev/null
@@ -1,151 +0,0 @@
-diff --git a/wsi/swapchain_base.cpp b/wsi/swapchain_base.cpp
-index af87d9f..0f2872b 100644
---- a/wsi/swapchain_base.cpp
-+++ b/wsi/swapchain_base.cpp
-@@ -102,8 +102,9 @@ void swapchain_base::page_flip_thread()
- image_index = *pending_index;
- }
-
-- /* We may need to wait for the payload of the present sync of the oldest pending image to be finished. */
-- while ((vk_res = image_wait_present(sc_images[image_index], timeout)) == VK_TIMEOUT)
-+ /* We wait for the fence of the oldest pending image to be signalled. */
-+ while ((vk_res = m_device_data.disp.WaitForFences(m_device, 1,
-+ &sc_images[image_index].present_fence, VK_TRUE, timeout)) == VK_TIMEOUT)
- {
- WSI_LOG_WARNING("Timeout waiting for image's present fences, retrying..");
- }
-@@ -690,14 +691,33 @@ VkResult swapchain_base::queue_present(VkQueue queue, const VkPresentInfoKHR *pr
- TRY_LOG_CALL(image_wait_present(m_swapchain_images[image_index], WAIT_PRESENT_TIMEOUT));
- }
-
-- queue_submit_semaphores semaphores = {
-- wait_semaphores,
-- sem_count,
-- (presentation_parameters.present_fence != VK_NULL_HANDLE) ? &m_swapchain_images[image_index].present_fence_wait :
-- nullptr,
-- (presentation_parameters.present_fence != VK_NULL_HANDLE) ? 1u : 0,
-- };
-- TRY_LOG_CALL(image_set_present_payload(m_swapchain_images[image_index], queue, semaphores));
-+ /* When the semaphore that comes in is signalled, we know that all work is done. So, we do not
-+ * want to block any future Vulkan queue work on it. So, we pass in BOTTOM_OF_PIPE bit as the
-+ * wait flag.
-+ */
-+ VkPipelineStageFlags pipeline_stage_flags = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
-+
-+ VkSubmitInfo submit_info = { VK_STRUCTURE_TYPE_SUBMIT_INFO,
-+ NULL,
-+ sem_count,
-+ wait_semaphores,
-+ &pipeline_stage_flags,
-+ 0,
-+ NULL,
-+ 0,
-+ NULL };
-+
-+ assert(m_swapchain_images[image_index].status == swapchain_image::ACQUIRED);
-+ auto result = m_device_data.disp.ResetFences(m_device,
-+ (presentation_parameters.present_fence != VK_NULL_HANDLE) ? 1u : 0,
-+ (presentation_parameters.present_fence != VK_NULL_HANDLE) ?
-+ &m_swapchain_images[image_index].present_fence : nullptr);
-+ if (result != VK_SUCCESS)
-+ {
-+ return result;
-+ }
-+
-+ result = m_device_data.disp.QueueSubmit(queue, 1, &submit_info, m_swapchain_images[image_index].present_fence);
-
- if (presentation_parameters.present_fence != VK_NULL_HANDLE)
- {
-diff --git a/wsi/swapchain_base.hpp b/wsi/swapchain_base.hpp
-index ec56053..394d2ff 100644
---- a/wsi/swapchain_base.hpp
-+++ b/wsi/swapchain_base.hpp
-@@ -66,6 +66,7 @@ struct swapchain_image
-
- VkImage image{ VK_NULL_HANDLE };
- status status{ swapchain_image::INVALID };
-+ VkFence present_fence{VK_NULL_HANDLE};
- VkSemaphore present_semaphore{ VK_NULL_HANDLE };
- VkSemaphore present_fence_wait{ VK_NULL_HANDLE };
- };
-diff --git a/wsi/wayland/surface.cpp b/wsi/wayland/surface.cpp
-index 923b67e..106a2dd 100644
---- a/wsi/wayland/surface.cpp
-+++ b/wsi/wayland/surface.cpp
-@@ -216,22 +216,6 @@ bool surface::init()
- return false;
- }
-
-- if (explicit_sync_interface.get() == nullptr)
-- {
-- WSI_LOG_ERROR("Failed to obtain zwp_linux_explicit_synchronization_v1 interface.");
-- return false;
-- }
--
-- auto surface_sync_obj =
-- zwp_linux_explicit_synchronization_v1_get_synchronization(explicit_sync_interface.get(), wayland_surface);
-- if (surface_sync_obj == nullptr)
-- {
-- WSI_LOG_ERROR("Failed to retrieve surface synchronization interface");
-- return false;
-- }
--
-- surface_sync_interface.reset(surface_sync_obj);
--
- VkResult vk_res = get_supported_formats_and_modifiers(wayland_display, surface_queue.get(), dmabuf_interface.get(),
- supported_formats);
- if (vk_res != VK_SUCCESS)
-diff --git a/wsi/wayland/swapchain.cpp b/wsi/wayland/swapchain.cpp
-index e044f11..e43e6fe 100644
---- a/wsi/wayland/swapchain.cpp
-+++ b/wsi/wayland/swapchain.cpp
-@@ -402,12 +402,13 @@ VkResult swapchain::allocate_and_bind_swapchain_image(VkImageCreateInfo image_cr
- "Failed to import memory and bind swapchain image");
-
- /* Initialize presentation fence. */
-- auto present_fence = sync_fd_fence_sync::create(m_device_data);
-- if (!present_fence.has_value())
-+ VkFenceCreateInfo fenceInfo = { VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, nullptr, 0 };
-+ auto result = m_device_data.disp.CreateFence(m_device, &fenceInfo, get_allocation_callbacks(), &image.present_fence);
-+ if (result != VK_SUCCESS)
- {
-- return VK_ERROR_OUT_OF_HOST_MEMORY;
-+ destroy_image(image);
-+ return result;
- }
-- image_data->present_fence = std::move(present_fence.value());
-
- return VK_SUCCESS;
- }
-@@ -477,18 +478,6 @@ void swapchain::present_image(uint32_t pendingIndex)
-
- wl_surface_attach(m_surface, image_data->buffer, 0, 0);
-
-- auto present_sync_fd = image_data->present_fence.export_sync_fd();
-- if (!present_sync_fd.has_value())
-- {
-- WSI_LOG_ERROR("Failed to export present fence.");
-- set_error_state(VK_ERROR_SURFACE_LOST_KHR);
-- }
-- else if (present_sync_fd->is_valid())
-- {
-- zwp_linux_surface_synchronization_v1_set_acquire_fence(m_wsi_surface->get_surface_sync_interface(),
-- present_sync_fd->get());
-- }
--
- /* TODO: work out damage */
- wl_surface_damage(m_surface, 0, 0, INT32_MAX, INT32_MAX);
-
-@@ -516,6 +505,12 @@ void swapchain::destroy_image(swapchain_image &image)
-
- if (image.status != swapchain_image::INVALID)
- {
-+ if (image.present_fence != VK_NULL_HANDLE)
-+ {
-+ m_device_data.disp.DestroyFence(m_device, image.present_fence, get_allocation_callbacks());
-+ image.present_fence = VK_NULL_HANDLE;
-+ }
-+
- if (image.image != VK_NULL_HANDLE)
- {
- m_device_data.disp.DestroyImage(m_device, image.image, get_allocation_callbacks());
diff --git a/packages/hardware/quirks/platforms/RK3588/090-ui_service b/packages/hardware/quirks/platforms/RK3588/090-ui_service
index ca14b6a938..5da8b376c7 100755
--- a/packages/hardware/quirks/platforms/RK3588/090-ui_service
+++ b/packages/hardware/quirks/platforms/RK3588/090-ui_service
@@ -4,14 +4,5 @@
### Set the default device configuration
cat </storage/.config/profile.d/090-ui_service
-GPUDRIVER=$(/usr/bin/gpudriver)
-
-case \${GPUDRIVER} in
- "libmali")
- UI_SERVICE="weston.service"
- ;;
- "panfrost")
- UI_SERVICE="sway.service essway.service"
- ;;
-esac
+UI_SERVICE="sway.service essway.service"
EOF
diff --git a/packages/hardware/quirks/platforms/S922X/090-ui_service b/packages/hardware/quirks/platforms/S922X/090-ui_service
index bc7013fc95..5da8b376c7 100755
--- a/packages/hardware/quirks/platforms/S922X/090-ui_service
+++ b/packages/hardware/quirks/platforms/S922X/090-ui_service
@@ -4,5 +4,5 @@
### Set the default device configuration
cat </storage/.config/profile.d/090-ui_service
-UI_SERVICE="weston.service"
+UI_SERVICE="sway.service essway.service"
EOF
diff --git a/packages/rocknix/sources/post-update b/packages/rocknix/sources/post-update
index 9101a48e5f..2b054c820c 100644
--- a/packages/rocknix/sources/post-update
+++ b/packages/rocknix/sources/post-update
@@ -127,3 +127,10 @@ fi
# Rename network.enabled to wifi.enabled
sed -i 's/network.enabled/wifi.enabled/g' /storage/.config/system/configs/system.cfg
+
+# Add skip IPL/bios option tol dolphin config
+DINI=/storage/.config/dolphin-emu/Dolphin.ini
+grep -q "SkipIPL" "$DINI"
+if [ $? -ne 0 ]; then
+ sed -i "/\[Core\]/a SkipIPL = True" $DINI
+fi
diff --git a/packages/ui/emulationstation/config/common/es_features.cfg b/packages/ui/emulationstation/config/common/es_features.cfg
index 48f334cfda..9dd3c8b94b 100644
--- a/packages/ui/emulationstation/config/common/es_features.cfg
+++ b/packages/ui/emulationstation/config/common/es_features.cfg
@@ -475,9 +475,10 @@
-
-
-
+
+
+
+
@@ -497,6 +498,10 @@
+
+
+
+
@@ -567,6 +572,10 @@
+
+
+
+
diff --git a/packages/virtual/emulators/package.mk b/packages/virtual/emulators/package.mk
index b70bd6e00a..1d2456f73e 100644
--- a/packages/virtual/emulators/package.mk
+++ b/packages/virtual/emulators/package.mk
@@ -502,14 +502,14 @@ makeinstall_target() {
### Nintendo GameCube
case ${DEVICE} in
- AMD64|SD865|RK3399)
- add_emu_core gamecube dolphin dolphin-sa-gc true
- add_emu_core gamecube dolphin dolphin-qt-gc false
+ AMD64|SD865|RK3399|S922X|RK3588)
+ add_emu_core gamecube dolphin dolphin-sa-gc false
+ add_emu_core gamecube dolphin dolphin-qt-gc true
add_emu_core gamecube retroarch dolphin false
install_script "Start Dolphin.sh"
add_es_system gamecube
;;
- S922X|RK35*)
+ RK3566)
add_emu_core gamecube dolphin dolphin-sa-gc true
add_emu_core gamecube retroarch dolphin false
add_es_system gamecube
@@ -518,13 +518,13 @@ makeinstall_target() {
### Nintendo Wii
case ${DEVICE} in
- AMD64|SD865|RK3399)
- add_emu_core wii dolphin dolphin-sa-wii true
- add_emu_core wii dolphin dolphin-qt-gc false
+ AMD64|SD865|RK3399|S922X|RK3588)
+ add_emu_core wii dolphin dolphin-sa-wii false
+ add_emu_core wii dolphin dolphin-qt-wii true
add_emu_core wii retroarch dolphin false
add_es_system wii
;;
- S922X|RK35*)
+ RK3566)
add_emu_core wii dolphin dolphin-sa-wii true
add_emu_core wii retroarch dolphin false
add_es_system wii
diff --git a/packages/wayland/lib/wlroots/package.mk b/packages/wayland/lib/wlroots/package.mk
index 676ebfc34a..a1d226e466 100644
--- a/packages/wayland/lib/wlroots/package.mk
+++ b/packages/wayland/lib/wlroots/package.mk
@@ -7,6 +7,7 @@ PKG_SITE="https://gitlab.freedesktop.org/wlroots/wlroots/"
PKG_DEPENDS_TARGET="toolchain libinput libxkbcommon pixman libdrm wayland wayland-protocols seatd xwayland hwdata libxcb xcb-util-wm"
PKG_LONGDESC="A modular Wayland compositor library"
PKG_TOOLCHAIN="meson"
+PKG_PATCH_DIRS+="${DEVICE}"
case ${DEVICE} in
SD865|AMD64|RK3399|H700)
diff --git a/packages/wayland/lib/wlroots/patches/S922X/001-libmali-workaround-allow-zero-stride.patch b/packages/wayland/lib/wlroots/patches/S922X/001-libmali-workaround-allow-zero-stride.patch
new file mode 100644
index 0000000000..fa9502c227
--- /dev/null
+++ b/packages/wayland/lib/wlroots/patches/S922X/001-libmali-workaround-allow-zero-stride.patch
@@ -0,0 +1,12 @@
+--- wlroots-0.18.0-rk/types/wlr_linux_dmabuf_v1.c.orig 2024-07-20 23:02:01.157348294 +0000
++++ wlroots-0.18.0-rk/types/wlr_linux_dmabuf_v1.c 2024-07-20 23:03:40.695105841 +0000
+@@ -324,8 +324,7 @@
+ goto err_out;
+ }
+
+- if (attribs.offset[i] + attribs.stride[i] > size ||
+- attribs.stride[i] == 0) {
++ if (attribs.offset[i] + attribs.stride[i] > size) {
+ wl_resource_post_error(params_resource,
+ ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_OUT_OF_BOUNDS,
+ "invalid stride %" PRIu32 " for plane %d",
diff --git a/projects/Amlogic/devices/S922X/options b/projects/Amlogic/devices/S922X/options
index 78e1f28530..f26863448f 100644
--- a/projects/Amlogic/devices/S922X/options
+++ b/projects/Amlogic/devices/S922X/options
@@ -57,7 +57,7 @@
DISPLAYSERVER="wl"
# Windowmanager to use (weston / swaywm-env / no)
- WINDOWMANAGER="weston11"
+ WINDOWMANAGER="swaywm-env"
# build and install rocknix joypad driver (yes / no)
ROCKNIX_JOYPAD="yes"
diff --git a/projects/Amlogic/packages/libmali/package.mk b/projects/Amlogic/packages/libmali/package.mk
index 3aa371bc99..829017c4f6 100644
--- a/projects/Amlogic/packages/libmali/package.mk
+++ b/projects/Amlogic/packages/libmali/package.mk
@@ -7,7 +7,7 @@ PKG_LICENSE="mali_driver"
PKG_ARCH="aarch64"
PKG_SITE="https://developer.arm.com/downloads/-/mali-drivers/user-space"
PKG_URL="https://developer.arm.com/-/media/Files/downloads/mali-drivers/user-space/odroid-n2plus/BXODROIDN2PL-${PKG_VERSION}.tar"
-PKG_DEPENDS_TARGET="toolchain mesa vulkan-tools gpudriver"
+PKG_DEPENDS_TARGET="toolchain mesa vulkan-tools gpudriver vulkan-wsi-layer"
PKG_TOOLCHAIN="manual"
PKG_LONGDESC="OpenGL ES and Vulkan Mali drivers for s922x soc"
@@ -26,4 +26,6 @@ makeinstall_target() {
tar -xvJf ${PKG_BUILD}/rootfs_additions.tar.xz -C ${INSTALL}/usr/share
mv ${INSTALL}/usr/share/etc/vulkan/* ${INSTALL}/usr/share/vulkan/
rm -r ${INSTALL}/usr/share/etc
+ # Remove packages WSI layer, we build our own
+ rm -r ${INSTALL}/usr/share/vulkan/implicit_layer.d
}
diff --git a/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf b/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf
index 7aaf0bb517..8bf54457d2 100644
--- a/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf
+++ b/projects/Rockchip/devices/RK3588/linux/linux.aarch64.conf
@@ -6728,17 +6728,6 @@ CONFIG_STAGING=y
# CONFIG_FB_SM750 is not set
# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-CONFIG_ANDROID=y
-# CONFIG_ASHMEM is not set
-CONFIG_ION=y
-# CONFIG_ION_SYSTEM_HEAP is not set
-CONFIG_ION_CMA_HEAP=y
-# end of Android
-
# CONFIG_STAGING_BOARD is not set
# CONFIG_LTE_GDM724X is not set
CONFIG_FB_TFT=y
@@ -7687,9 +7676,7 @@ CONFIG_ARM_PMU=y
#
# Android
#
-CONFIG_ANDROID_BINDER_IPC=y
-CONFIG_ANDROID_BINDERFS=y
-CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder,anbox-binder,anbox-hwbinder,anbox-vndbinder"
+# CONFIG_ANDROID_BINDER_IPC is not set
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
# end of Android
diff --git a/projects/Rockchip/devices/RK3588/options b/projects/Rockchip/devices/RK3588/options
index f154c0bed9..b0cbb0e655 100644
--- a/projects/Rockchip/devices/RK3588/options
+++ b/projects/Rockchip/devices/RK3588/options
@@ -57,7 +57,7 @@
DISPLAYSERVER="wl"
# Windowmanager to use (weston / swaywm-env / no)
- WINDOWMANAGER="weston swaywm-env"
+ WINDOWMANAGER="swaywm-env"
# kernel serial console
EXTRA_CMDLINE="quiet console=ttyFIQ0 console=tty0 systemd.debug_shell=ttyFIQ0 coherent_pool=2M fbcon=rotate:1"
@@ -69,7 +69,7 @@
ROCKNIX_DEVICE_TREE_OVERLAYS="yes"
# additional packages to install
- ADDITIONAL_PACKAGES="libmali weston-kiosk-shell-dpms libmali-vulkan"
+ ADDITIONAL_PACKAGES="libmali libmali-vulkan"
# additional Firmware to use ( )
# Space separated list is supported,