rogerman
a779eb7a59
gfx3d.h: Fix some comments. It's "byte", not "bit"!
2025-08-18 22:04:39 -07:00
rogerman
107e15d20b
Linux Ports (All): Make EGL initialization more robust.
2025-08-17 21:21:13 -07:00
linkmauve
df06de4cca
Remove OSMesa support ( #905 )
...
Mesa has now removed OSMesa from its codebase, see
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33836
There is no reason to keep this any longer, especially since EGL can do
the same and more.
2025-08-17 20:46:34 -07:00
rogerman
b568e4359c
Render3D: Huge refactor that adds the new Render3DColorOut class, which now handles the framebuffers that integrate the 3D layer and the BG0 layer.
...
- Framebuffers are now double-buffered, which may help improve performance on games running at less than 60 FPS on host systems with weak GPUs.
- For OpenGL, slightly improve framebuffer download performance on macOS.
2025-08-13 23:58:21 -07:00
rogerman
8238c353fc
Render3D: Do some last minor refactoring tweaks. (Related to commit 2a52196.)
2025-08-09 22:16:46 -07:00
rogerman
2a5219649a
Render3D: Do a bunch of refactor in preparation of a more substantial refactor that will follow.
2025-08-09 19:21:55 -07:00
rogerman
82761798cc
Fix compiling on newer GCCs that are averse to referencing variables on an unexpected memory alignment.
2025-08-09 17:51:53 -07:00
rogerman
81683cb097
Fix memory alignment issues with bitfield structs when compiled on MSVC.
2025-08-09 16:00:34 -07:00
En-En
75958772ef
posix: in __glx_initOpenGL, add null check after XOpenDisplay ( #920 )
...
* posix: in `__glx_initOpenGL`, add null check after `XOpenDisplay`
Would segfault when built with GLX enabled and ran in Wayland. Now the same scenario instead falls back to the SoftRasterizer. Still not ideal, but using SDL as a fallback requires considerably more code redesign.
* posix: refine GLX with no X server error message
2025-08-08 13:54:19 -07:00
rogerman
a7812dcea5
Cocoa Port: Don't set thread priorities on single-core systems, hopefully preventing thread starvation and helping single-core systems run more stable.
2025-08-07 21:20:17 -07:00
rogerman
4ca5101f52
Cocoa Port: Fix a performance bug where OpenGL display views weren't fully DMA'ing the video frames directly from app to GPU as intended.
...
- This bug fix may improve video performance with certain configurations by up to 10%. (OpenGL display views only.)
2025-08-04 09:57:49 -07:00
rogerman
6715015cb6
Cocoa Port: Try to fix some potential issues with UI updates happening off the main thread.
2025-07-31 21:12:50 -07:00
rogerman
5cc55d60bd
Cocoa Port: Correct the usage of the GL_UNPACK_CLIENT_STORAGE_APPLE switch in OpenGL display views.
2025-07-31 21:09:42 -07:00
rogerman
cf5153d02d
Cocoa Port: Fix building with "DeSmuME (Latest).xcodeproj" on older Xcode. (Regression from commit 445060a.)
2025-07-27 15:45:04 -07:00
rogerman
e52e3963d0
GPU: Add AltiVec-accelerated functions for 2D layer compositing. (For PowerPC CPUs only.)
...
- This improves GPU performance by up to 25% on a PowerPC 970MP.
2025-07-25 17:37:55 -07:00
rogerman
2c4ff5fea6
GPU: CopyLineExpand() and CopyLineReduce() now respect the NEEDENDIANSWAP flag for 32-bit elements.
2025-07-25 13:24:45 -07:00
rogerman
ff7ad435d6
Texture Handler: Fix incorrect alpha masking on 16-bit direct textures for AltiVec.
2025-07-24 17:41:21 -07:00
rogerman
40c035f986
GPU: Fix remaining issues with display capture giving incorrect colors on big-endian systems.
...
- This commit effectively reverts commit 6bcf70d
, since this commit fixes the problem in the correct location this time.
2025-07-22 17:59:49 -07:00
rogerman
f28dbbb5b3
GPU: Fix building for ARM NEON. (Regression from commit b6467fb.)
2025-07-22 15:44:28 -07:00
rogerman
b6467fbd13
GPU: Begin transitioning 16-bit colors from the plain old u16 data type to the new Color5551 data type.
2025-07-22 15:00:20 -07:00
rogerman
12b4802a03
Refactor the union "COLOR" from GPU.h into types.h and rename it to "Color5551". This allows the union to be used in more places where appropriate.
2025-07-22 09:53:47 -07:00
rogerman
08394d33f9
GPU: Fix various graphical glitches on big-endian systems.
...
- Fix a bug where max bright down would display a red screen instead of a black screen when running in 18-bit or 24-bit color mode.
- Fix incorrect colors for various display capture scenarios.
- 15-bit to 18-bit and 15-bit to 24-bit color conversions now assume byte swapping. This improves 2D graphics performance by up to 5%.
2025-07-19 22:29:29 -07:00
rogerman
6bcf70dc6d
Colorspace Handler: Fix RGBA8888 to RGBA5551 color conversions in AltiVec.
2025-07-19 18:53:07 -07:00
rogerman
f03f8943a0
Cocoa Port: Fix HUD input coordinate colors on big-endian systems. (Regression from commit deef974.)
2025-07-19 18:28:30 -07:00
rogerman
39973c52bc
matrix.h: AltiVec accelerated functions buffer_copy_or_constant_*() and buffer_copy_or_constant_*_fast() now respect the NEEDENDIANSWAP switch.
...
- Also do some code cleanup where appropriate.
2025-07-19 11:38:06 -07:00
rogerman
e75b67043b
Partially revert commit 0367d14
. Looks like the algorithm for converting RGBA6665 to RGBA5551 colors in AltiVec doesn't need to be THAT accurate, so resimplify the algorithm again to pick up the speed.
2025-07-18 16:21:29 -07:00
rogerman
0367d1469d
Colorspace Handler: Improve the accuracy of RGBA6665 to RGBA5551 color conversions in AltiVec.
...
- Also do some code cleanup where appropriate.
2025-07-15 16:40:27 -07:00
rogerman
66b525b8dc
Video Filters: Separate all xBRZ custom texture upscaling code from the standard xBRZ code.
2025-07-15 14:06:00 -07:00
rogerman
deef974c85
Cocoa Port: Fix a bug where HUD colors would fail to work when running on macOS Leopard or Snow Leopard.
...
- Also fix a bug on big-endian systems where HUD colors were being stored in the user defaults file in big-endian byte order instead of little-endian byte order.
2025-07-14 14:47:12 -07:00
rogerman
63114d0aa2
Fix texture upscaling on big-endian systems.
2025-07-12 20:25:09 -07:00
rogerman
b962b925f5
Cocoa Port: Update CheatDatabaseViewer.xib to a file format that is compatible with Xcode 16.
2025-07-11 02:01:49 -07:00
rogerman
445060a0cc
Cocoa Port: Update Xcode project files to reflect better build procedures.
...
- The main Xcode project disables Metal API Validation for Debug builds, since this seems to cause runtime issues on Xcode 16.
- The Xcode 3 project removes the git lookup build script for the PowerPC LLVM-Clang build, since the typical use case for this particular build won't have git commands available.
2025-07-11 01:43:54 -07:00
rogerman
557176faa3
Cocoa Port: Silence a compiler warning when building on older Xcode.
2025-07-11 00:45:08 -07:00
rogerman
266301a13a
GPU: Vectorized mosaic rendering now uses an aligned working buffer, improving performance for SSE2 and AVX2.
2025-07-04 15:15:32 -07:00
rogerman
e6500f2010
Silence even more compiler warnings. (Related to commits 2b40a2f
and 22a833b.)
2025-07-04 15:00:20 -07:00
rogerman
b23b8e7e6c
Cocoa Port: Fix a bug where running OpenGL display views on modern macOS would fail. (Regression from commit a98c319.)
2025-07-04 14:46:30 -07:00
rogerman
22a833b52e
Silence some more compiler warnings. (Related to commit 2b40a2f.)
2025-06-27 11:20:32 -07:00
rogerman
d3ee4eaabb
OpenGL Renderer: Fix rendering when a non-standard viewport is used. (Regression from commit 3db6d56
. Fixes #902.)
2025-06-25 16:03:43 -07:00
rogerman
2b40a2f12c
Take another pass at silencing a bunch of compiler warnings where appropriate.
...
Most warnings are related to the following:
- Integer precision loss from implicit conversion
- Non-virtual destructors for classes with virtual methods
- Replace the unsafe sprintf() function with the safer snprintf()
- Local variables shadowing
- Extraneous commas and semicolons
Not all of these warnings have been fixed yet,, since fixing the remaining warnings requires a deeper review of the code for a proper fix.
2025-06-24 19:33:17 -07:00
rogerman
a98c319cdf
Cocoa Port: Give OpenGL display windows more chances to acquire a hardware-accelerated context before falling back to Apple Software Renderer.
2025-06-24 17:23:30 -07:00
rogerman
81afd288cc
Cocoa Port: Silence a whole bunch of compiler warnings.
2025-06-24 17:18:53 -07:00
rofl0r
bd6a421c0c
agg: don't leak non-const reference to const private member.
...
patch taken from NetBSD.
2025-06-24 12:23:15 +00:00
rofl0r
4ba1d73e22
CI: add mingw action
2025-06-24 12:23:15 +00:00
rofl0r
c02fbdfd00
mingw Makefile: explicitly add C++ std
...
latest ubuntu's mingw defaults to C++17 which breaks things.
2025-06-24 12:23:15 +00:00
rofl0r
b63741f24f
fix crash in CommandLine constructor
2025-06-24 11:25:38 +00:00
rogerman
3a3531acd9
Oops! Forgot to commit a couple files for commit fe84b11
. (Also related to commit 1754ab9.)
2025-06-24 04:13:51 -07:00
rofl0r
1754ab9181
fix build of mingw port (MicMode enum)
2025-06-24 11:07:59 +00:00
rofl0r
e589cfef5c
types.h: let mingw use regparm(3) calling convention for jit
...
this, together with the renaming done in the previous commit, fixes
the jit from crashing when compiled with mingw for x86.
2025-06-24 12:41:15 +02:00
rofl0r
6f5b0596c1
rename FASTCALL to DESMUME_FASTCALL
...
mingw's winnt.h uses FASTCALL for its own purposes, so depending on
the include order the code uses either mingw's definition, or the
one from types.h. that makes it almost impossible to reason which
definition ends up being used, even though it's of utmost importance
to have the jit perform correctly.
2025-06-24 12:41:15 +02:00
rofl0r
493c655478
asmjit: remove unused calling convention defines
2025-06-24 12:41:15 +02:00