36 Commits

Author SHA1 Message Date
Stenzek
bee2dabc77
Misc: Replace stringstream str() with C++20 move str()
No extra heap allocation/copy.
2025-02-05 22:38:48 +10:00
Stenzek
9743ce01a0
OpenGLDevice: Support GLES 3.0
Android emulator still doesn't have GLES 3.1...
2024-12-11 22:04:21 +10:00
Stenzek
0bb83f6fd7
OpenGLDevice: Fix inverted cache file lock 2024-12-10 13:17:06 +10:00
Stenzek
2e6deca76f
FileSystem: Don't use POSIX locks on Android
Requires SDK 24, and it's pointless anyway.
2024-12-10 02:26:54 +10:00
Stenzek
84a1e209ea
OpenGLDevice: Lock pipeline cache on Linux
Prevents multiple processes from trampling on one another.
2024-12-03 17:35:07 +10:00
Stenzek
9df59713da
GPUDevice: Put debug messages/scopes behind conditions
And completely compile them out in Release builds.

Gets Devel close to Release in terms of performance.
2024-12-01 23:21:33 +10:00
Stenzek
0faa9cf650
Build: Add Devel configuration
Gets you debug assertions and logging, while still producing an
optimized executable.
2024-12-01 23:21:33 +10:00
Stenzek
eb46142ee7
GPUDevice: Extract swap chain to separate class 2024-10-18 20:48:29 +10:00
Stenzek
c6055affbf
OpenGLDevice: Fix invalidating pipeline cache on Windows 2024-10-18 20:48:29 +10:00
Stenzek
3dca598063
Log: Switch to enum class
Need to change the channel to a bitset too.. the string lookups are
horribly slow, and conflict when one is a prefix of another.
2024-09-21 22:26:06 +10:00
Stenzek
d981dc7471
MetalDevice: Implement pipeline cache 2024-09-13 19:26:44 +10:00
Stenzek
7f4e5d55db
Misc: Update copyright headers 2024-09-01 22:08:31 +10:00
Stenzek
667d1bf7c8
GPUDevice: Use CompressHelpers
And compress the pipeline cache. Saves a fair bit of disk space.
2024-08-26 21:33:28 +10:00
Stenzek
ba6b65401d
GPUDevice: Improve pipeline error reporting 2024-07-22 15:43:06 +10:00
Stenzek
ef69c31e9f
GPUDevice: Support transpiling shaders at compile time
And use it for GLSL postprocessing shaders.
2024-06-14 21:21:34 +10:00
Stenzek
4e922a34a7
Log: Simplify macros 2024-05-24 02:08:14 +10:00
Stenzek
b6d019db66
Misc: Replace log printf calls with fmt 2024-05-24 00:29:49 +10:00
Stenzek
ca3cfbaa99
Misc: Pass string_view by value 2024-05-05 22:28:29 +10:00
Stenzek
98241cb6ba
GPUDevice: Swap out glslang for shaderc 2024-04-05 17:53:24 +10:00
Stenzek
f66866ed73
GPUDevice: Use Error class for initialization errors 2024-01-21 00:18:33 +10:00
Stenzek
344d2ccd5d
OpenGLDevice: Work around lack of base_vertex in GLES3.1 2023-12-28 18:57:45 +10:00
Stenzek
79c226efff
SmallString: fmt -> format, format -> sprintf 2023-12-13 21:06:15 +10:00
Stenzek
333c9fdf6f
Misc: Fix a couple of fmt errors 2023-11-28 14:38:38 +10:00
Stenzek
ce7f6128e9
OpenGLDevice: Cache intermediate state 2023-10-08 01:47:29 +10:00
Stenzek
4ad777f54f Qt: Add log window 2023-09-30 15:09:07 +10:00
Stenzek
2a5b3aa695 OpenGLDevice: Fix reused pipeline creation failing without cache 2023-09-23 14:14:52 +10:00
Stenzek
c986d0ea78 OpenGLDevice: Persist GL_SCISSOR_TEST enabled 2023-09-23 14:14:52 +10:00
Stenzek
8dc9c225d7 OpenGLDevice: Keep scissor active on present clear
And disable depth test if set to always (match DX11).
2023-09-23 14:14:52 +10:00
Stenzek
ac0601f408 Common: Drop String, add SmallString 2023-09-23 14:14:52 +10:00
Stenzek
5bbb7cf906 OpenGLDevice: Fix crash when driver doesn't support binaries 2023-09-21 01:04:26 +10:00
Stenzek
605aa3c53a Misc: Swap gsl::span for std::span 2023-09-05 22:10:50 +10:00
Stenzek
80e3d29ab8 Misc: clang-cl warning clean-up 2023-09-03 14:30:26 +10:00
Stenzek
e804b5e701 GPUDevice: Support geometry shaders 2023-09-02 22:09:22 +10:00
Stenzek
a11c9faba9 OpenGLDevice: Lazily compile shaders 2023-08-30 22:20:39 +10:00
Stenzek
df4d441b4b OpenGLDevice: Fix pipeline cache leaving fields uninitialized 2023-08-30 02:02:09 +10:00
Stenzek
e3d9ba4c99 Rewrite host GPU abstraction
- Don't have to repeat the same thing for 4 renderers.
 - Add native Metal renderer.
2023-08-20 21:55:38 +10:00