Henrik Rydgård and Claude Opus 5.5
1d7487e5a7
GPU: Add a null GPU, and headless --graphics=null to use it
...
GPU_Null derives straight from GPUCommon and has no thin3d context, framebuffer
manager, texture cache or shaders. It runs display lists with the flow control,
bounding boxes, matrix loads (the hardware backends'), immediate vertices and
block transfers of the others, moves the vertex and index pointers past each
draw and curve, and charges the per-vertex and fill cost the software renderer
does. A DrawEngineCommon that queues nothing provides the vertex decoders.
It's for measuring the CPU emulation. From savestates, God of War, Tekken 6,
Wipeout Pure and LocoRoco flip the same frames in 10 emulated seconds as with
Vulkan and software, in 44-77% fewer instructions than Vulkan.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-16 01:12:38 +02:00
Henrik Rydgård and Claude Opus 5.5
24017a1ba4
GE debugger: Fix the stepping request handshake
...
- Wait on actionComplete instead of a bare condition variable wait, which
could miss the wakeup and hang until resume.
- Serialize requesters, so two debuggers can't overwrite each other's
action, and make SetCmdValue/FlushDrawing wait too.
- Give up and withdraw the request when stepping ends, instead of waiting
forever (this deadlocked game shutdown against the Win32 GE debugger).
- Run requests during CPU stepping, which already accepted them.
- Clear the stepping state on Core_Resume from GE stepping and on
GPU_Shutdown.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-29 09:49:10 -06:00
Henrik Rydgård
3eb056ad86
Move Common/GraphicsContext.h to Common/GPU/GraphicsContext.h
2026-07-26 13:58:17 +02:00
Henrik Rydgård
a317890c08
Remove the GPUDebugInterface class
...
Just a pointless extra layer in the class hiearchy, making it
unnecessarily hard to modify the interface.
Might as well hit GPUCommon directly.
2026-06-02 11:15:08 +02:00
Henrik Rydgård
0c70c4f9b4
Simplify
2026-02-17 10:18:08 +01:00
Henrik Rydgård
e71ffc59a6
Remove unnecessary IsStarted method
2026-02-17 10:18:08 +01:00
Henrik Rydgård
6cfea96e58
Remove D3D9 support, to make future changes easier
2025-06-10 15:07:16 +02:00
Henrik Rydgård
207830ce00
Minor assert change
2025-05-19 10:34:22 +02:00
Henrik Rydgård
8f3045cf9e
Cleanup
2025-05-15 18:20:47 +02:00
Henrik Rydgård
4fcf5a4fab
Start reordering things in the GPU init, with the goal of doing most of it on the loader thread.
2025-05-15 10:24:30 +02:00
Henrik Rydgård
088a02bfdb
Cleanup a lot of the bootup state management.
2025-03-30 14:02:29 +02:00
Henrik Rydgård
45cf6d423e
Buildfixes
2024-12-18 13:57:29 +01:00
Henrik Rydgård
0df2a40487
Remove the "GPUInterface" base class. Not really useful, GPUCommon is pretty much the same thing.
2024-12-02 11:12:14 +01:00
Henrik Rydgård
14bb7a6062
Reduce Windows debugger crashes on shutdown
2024-10-29 11:20:03 +01:00
Henrik Rydgård
e01ca5b057
Logging API change (refactor) ( #19324 )
...
* Rename LogType to Log
* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.
* Mac/ARM64 buildfix
* Do the same with the hle result log macros
* Rename the log names to mixed case while at it.
* iOS buildfix
* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Henrik Rydgård
fb4a1fb7dd
Simplify disk-cache-load on GLES as well, for the same reasons as #18216
2023-09-30 13:45:13 +02:00
Henrik Rydgård
62484f01ed
Make ReadbackFramebufferSync able to use the stretch ability of ReadbackDepthbufferSync
2023-02-04 12:05:50 +01:00
Unknown W. Brackets
be84bc9934
softgpu: Detect binner alloc fail and bail.
2023-01-01 06:59:14 -08:00
Henrik Rydgård
4ec1e2a175
Some minor initialization fixes, and one potential crash found by static analysis
2022-12-10 11:28:19 +01:00
Henrik Rydgård
d0cdb360fd
Remove the DX9 namespace, for consistency with the other backends
2022-08-16 21:49:16 +02:00
Unknown W. Brackets
b71f17586e
Switch: Avoid loading Vulkan.
2022-04-02 16:34:13 -07:00
Unknown W. Brackets
3c9ab13672
GPU: Remove NULL GPU.
...
We can use the software GPU without a backend now, and this is in every
way superior and will result in better tests/headless behavior.
2021-01-02 09:36:13 -08:00
Unknown W. Brackets
ed65bc2327
SoftGPU: Allow rendering with no backend at all.
2021-01-02 09:25:41 -08:00
Unknown W. Brackets
66a6b27d78
UWP: Allow software renderer.
...
It can use the Direct3D 11 backend now for a while, so it should work on
UWP just fine.
2021-01-02 09:24:43 -08:00
Henrik Rydgård
ccc0331279
Move timeutil to Common. (Experiment to see how much work it is to move these).
2020-08-15 20:53:08 +02:00
Henrik Rydgård
268439dd4b
Fix issue with D3D9 vs UWP
2019-05-11 08:37:42 +02:00
Henrik Rydgård
2f26297062
Clean up some more ifdefs
2019-05-10 23:25:57 +02:00
Henrik Rydgård
22d9ab4dbe
Fix #12023 , accidental disabling of the GL backend on non-Windows ARM platform caused by #12013 .
2019-05-09 23:59:29 +02:00
driver1998
0aa33d53c0
Disable features not available on Windows ARM32/ARM64
...
ARM32: OpenGL & DirectInput
ARM64: OpenGL
2019-05-04 22:45:16 +08:00
Unknown W. Brackets
6d8b78f523
Headless: Allow startup using NULL core.
...
Or maybe we should have a dummy Draw context...
2018-11-30 17:45:54 -08:00
Henrik Rydgård
442b57033f
Attempt to fix the last very common issue of #11493 by being paranoid
2018-11-21 22:40:54 +01:00
Unknown W. Brackets
40ca49d0e3
GPU: Cancel shader preload on shutdown/lost.
...
Otherwise, we could've ended up with shaders loading after or during the
lost event, and dense hash map corruption.
2018-10-30 20:32:12 -07:00
Unknown W. Brackets
6130eb34be
Vulkan: Wait for GPU ready on shutdown.
...
In case it's still busy preloading shaders.
2018-10-30 19:13:22 -07:00
AreaScout
95556e8d03
Add: some helpers to compile on ODROID-XU4/XU3
2018-09-17 20:01:12 +00:00
aliaspider
0af6d573bb
remove all usage of __LIBRETRO__
2018-03-24 12:45:20 +01:00
Henrik Rydgård
a78365e73d
Remove duplicate declaration of GPUCommon::CmdFunc
2018-02-26 15:19:11 +01:00
Unknown W. Brackets
60c4ac58f0
System: Allow GPU to have delayed loading.
2017-12-03 11:29:07 -08:00
twinaphex
4855b2d6f1
mingw patches
2017-08-31 22:15:05 +02:00
Henrik Rydgard
03dab0fdbd
More UWP prep
2017-02-25 09:57:22 +01:00
Henrik Rydgard
fcbc20f240
Small changes to make Common and Core build under my preliminary UWP setup.
2017-02-24 18:59:41 +01:00
Henrik Rydgard
ba95e0f4d9
Initial stab at porting the DX9 backend to D3D11. Not working yet.
2017-02-09 13:28:40 +01:00
Henrik Rydgard
01e11c6437
Some mostly empty files for D3D11
2017-02-08 17:47:07 +01:00
Henrik Rydgard
ba52ba8714
Move global.cpp to native/gfx/d3d9_shader.cpp
2017-02-05 20:50:17 +01:00
Henrik Rydgard
0d1d6f98e4
Pass in the DrawContext to all backends
2017-01-30 20:26:47 +01:00
Henrik Rydgård
f86b9f7900
Guess what? More renaming
2016-12-27 11:59:06 +01:00
Henrik Rydgård
10393f5d4e
Move Thin3D into the Draw namespace.
2016-12-27 11:58:03 +01:00
Unknown W. Brackets
1c3e048070
Vulkan: Consistently init the graphicsContext.
...
This was only happening properly on Windows before.
2016-10-01 11:22:53 -07:00
Unknown W. Brackets
360be4073d
Fix a switch missing value warning.
2016-08-05 10:48:04 -07:00
Henrik Rydgard
7cb6192005
Rename the TransformPipeline files to DrawEngine, and GLES_GPU to GPU_GLES
2016-04-10 10:31:42 +02:00
Henrik Rydgard
e611915a52
Rename some GPU classes and enums to fix some consistency issues between the backends.
2016-04-10 10:21:48 +02:00