9 Commits
Author SHA1 Message Date
LibretroAdmin a390228b51 GL: no contexts of the core's own, the frontend's libretro GL context alone
The OpenGL renderer draws on the context the frontend hands over
through libretro GL, and the core makes no context of its own: the
platform context code goes, EGL, EGLX11, EGL for Android, WGL, AGL,
BGL and the GLX window, with the shared contexts made for the shader
compiler's threads, and GLContext::Create makes the libretro context
alone. Programs are compiled on the frontend's context, so the OpenGL
backend reports no background compiling and its shader compiler runs
no threads; the shared-context compiler, its glFinish and VAO rebinds
and the driver bug that switched it off go with it. Android no longer
links libEGL.
2026-11-07 01:36:34 +01:00
LibretroAdmin f073fc9448 Remove glslang and SPIRV-Cross
Every backend compiles its shaders through rslc now: the two submodules,
VideoCommon/Spirv.cpp and their build go.
2026-11-06 14:12:01 +01:00
LibretroAdmin c327f0676d D3D: print shaders to HLSL with rslc instead of glslang and SPIRV-Cross
The vertex, pixel and compute stages go from the generators' GLSL to HLSL
through rslc; the geometry stage is HLSL already. A stage rslc refuses is
logged and written to the dump directory. Windows no longer builds
SPIRV-Cross; Metal still uses it.
2026-11-06 04:23:38 +01:00
libretroadmin 9bf2934a40 Change name to parallel_gx1 2026-11-05 20:13:01 +01:00
LibretroAdmin 1b8dfea3d0 Remove the audio backends and the SoundStream abstraction
The core only ever outputs through libretro, so drop the ALSA, cubeb,
null, OpenAL, OpenSL ES, PulseAudio and WASAPI streams, the backend
selection, and the vendored cubeb and OpenAL. SoundStream is now one
non-virtual class, implemented by the libretro output in
DolphinLibretro/Audio.cpp.

Also drop the settings only the backends read (backend, volume, mute,
mute on disabled speed limit, latency, WASAPI device) and the volume
and mute helpers. The mute-on-fast-forward toggle never had an effect,
as the libretro stream ignored volume changes.

The GameCube microphone, Wii Speak and Logitech mic keep their libretro
microphone path; the unbuilt cubeb capture path and its Windows COM
worker thread go.

Dolby Pro Logic II decoding (SurroundDecoder, FreeSurround) stays.
2026-11-05 05:38:09 +01:00
LibretroAdmin 057a10b834 Remove the CMake build
The static Makefile is the only build. GitLab CI and the GitHub workflows
build with it, with the same lanes and toolchains; the MSVC workflow and
the CMake-only macOS universal-binary script go, as nothing builds them.
The Readme describes the Makefile build.
2026-11-05 03:13:53 +01:00
LibretroAdmin deaaab1c9b Makefile: detect Windows without platform=win
A bare make picks the Windows build from OS=Windows_NT, which every MSYS2
environment sets whatever uname -s reports, or from a MinGW-w64 CC. The
Windows build defaults to gcc/g++ instead of make's built-in cc.
2026-11-05 01:50:03 +01:00
LibretroAdmin ceaabff5ed Makefile: link from a response file on Windows
The core's object list is longer than the 32 KiB Windows command line,
so the win platforms hand it to the linker as @file.
2026-11-05 00:45:31 +01:00
LibretroAdmin 6e35fc179b Add a static Makefile for the libretro core
Builds parallel_gamecubewii_libretro for every lane .gitlab-ci.yml covers:
unix (Linux x86_64/aarch64), webos, win64 (MinGW-w64), osx (x86_64/arm64,
CROSS_COMPILE), ios-arm64, tvos-arm64, android-arm64 and android-x86_64.
The source lists and per-library flags follow what the CMake LIBRETRO=ON
build links into the core, without the units only the standalone frontends
use. The per-platform configure results for curl, libusb, libiconv and mGBA
are checked in under Externals/<library>/makefile; the remaining generated
files are produced by the Makefile under obj/gen.

The Android input backend's JNI entry points belong to the Android app and
are left out of the core, which links with --no-undefined everywhere.

The Windows code builds against MinGW-w64 headers older than 12.0 as well:
D3D12 includes d3d12sdklayers.h explicitly, and the constants, declarations
and const-correct pointer types those headers lack for D3D12, device
notifications, the Wii Remote Bluetooth path, the IOS IP stack and thread
naming are provided locally.
2026-11-04 23:49:57 +01:00