Commit Graph
1199 Commits
Author SHA1 Message Date
Wunkolo af4163de19 Implement simple swapchain image clearing
Creates a swapchain, and per-swapchain image data for safe parallelism and synchronization.
2023-07-22 19:41:41 -07:00
Wunkolo 90a4c9cf8d Initialize command buffer allocationFix SDL_Vulkan_GetDrawableSize call 2023-07-22 17:13:13 -07:00
Wunkolo fa804ae4c7 Implement swapchain draw loop
Verified on Windows and MacOS(M2)
2023-07-22 16:44:54 -07:00
Wunkolo 26c97eb716 Implement initial swapchain creation 2023-07-22 15:24:41 -07:00
Wunkolo 197e2a4bbd Allocate present/graphics/compute/transfer queue families 2023-07-22 14:23:37 -07:00
Wunkolo 8ace959d72 Fix RendererSW initGraphicsContext prototype 2023-07-22 13:20:57 -07:00
Wunkolo 428a9d1f1a Fix SDL_Window forward declaration
Should be struct, not class.
2023-07-22 13:16:23 -07:00
Wunkolo c7a93c4f52 Warn on failed surface creation for vulkan
Vulkan can technically work just fine without presenting to the user, so
consider these failed window procedures as "warnings" during iteration.
2023-07-22 13:16:23 -07:00
Wunkolo eff62d3de7 Disable asserts on Vulkan result codes 2023-07-22 13:16:23 -07:00
Wunkolo b048d4dd6e Add SDL_Window to initGraphicsContext prototype
This value is needed for vulkan to properly allocate a surface, and would benefit OpenGL to move more of its initialization code into here rather than in `emulator.cpp`.
2023-07-22 13:16:23 -07:00
Wunkolo 870b6a21bf Add initial vulkan instance creation
Headlessly creates a new vulkan instance, with conditional MacOS
support, and enables the `VK_EXT_debug_utils` instance-extension with a
debug-messenger to hook onto validation layer messages.
2023-07-22 13:16:23 -07:00
Wunkolo d2241a25bc Stub Vulkan backend support
A lot of the architecture of the emulator here does not allow for vulkan
to initialize easily since it involves a bit of data to be exchanged
between SDL and Vulkan. This commit just adds the foundational linkage
and library code for vulkan support.
2023-07-22 13:16:23 -07:00
wheremyfoodat ae4a4dfc29 Hook up sw rendering backend 2023-07-22 20:47:19 +03:00
wheremyfoodat f328200c65 Add empty sw renderer class 2023-07-22 20:24:49 +03:00
wheremyfoodat 3b067a0eed Merge branch 'master' into ir 2023-07-21 15:45:04 +03:00
wheremyfoodatandGitHub 5dfc17ed18 Merge pull request #131 from wheremyfoodat/cheats
More AR stuff
2023-07-21 15:39:57 +03:00
wheremyfoodat d470a8c8d3 Merge branch 'master' into ir 2023-07-21 15:19:57 +03:00
wheremyfoodat 0588b99674 [ActionReplay] More conditional ops 2023-07-21 14:49:04 +03:00
wheremyfoodatandGitHub 52314c188c Merge pull request #130 from wheremyfoodat/cheats
More cheating
2023-07-21 03:56:30 +03:00
wheremyfoodat 4a45599303 [ActionReplay] Add HID stuff 2023-07-21 03:35:22 +03:00
wheremyfoodat d007b2d780 Emulator cleanup, add AR conditionals 2023-07-21 00:55:08 +03:00
wheremyfoodatandGitHub 6dad0f05d1 Merge pull request #129 from wheremyfoodat/cheats
Add preliminary cheat support
2023-07-20 16:28:22 +03:00
wheremyfoodat 08596c1a24 [AR] More opcodes 2023-07-20 16:10:32 +03:00
wheremyfoodatandGitHub fbcb7cee42 Merge pull request #128 from GPUCode/span-across
texture: Use spans
2023-07-20 16:10:00 +03:00
GPUCode a019d98af9 texture: Use spans 2023-07-20 15:43:24 +03:00
wheremyfoodat 97f8ea6cfd Get our first AR code running 2023-07-20 13:50:32 +03:00
wheremyfoodat ae69c8f8c4 [Cheats] Split gateway and AR 2023-07-19 21:09:44 +03:00
wheremyfoodat 0904638df0 [Cheats] Add boilerplate 2023-07-19 20:51:45 +03:00
wheremyfoodatandGitHub 5b4f6ef46c Merge pull request #120 from Wunkolo/renderer-null
Add a `null` rendering backend
2023-07-18 23:26:52 +03:00
wheremyfoodat c339c7d1c5 Bonk 2023-07-18 23:11:20 +03:00
wheremyfoodat 77b0382d0c Cleanup, C string -> std::string 2023-07-18 22:23:28 +03:00
Wunkolo 0b60cf6901 Migrate RenderType string functions to static Renderer functions
Also fix some IWYU build errors
2023-07-18 10:02:07 -07:00
Wunkolo 528ed510c2 Add string-based renderer backend configuration
Rather than using integer-indices, just use plaintext case-insensitive
names and leave the actual enum indexes as an implementation detail.
2023-07-17 18:02:01 -07:00
wheremyfoodatandGitHub ed1b0704d6 Merge pull request #111 from wheremyfoodat/dynapand
Filesystem bonking
2023-07-18 01:26:17 +03:00
Wunkolo 2c57936c50 Fix EmulatorConfig initialization order
`config` was being consumed much too early before it has a chance to
call `load`. This caused GPU to read weird uninitialized data, and then
`load` called, and then further initialization to occur based on default
data and the data inside of `config.toml`. `EmulatorConfig` needs to be
loaded in first before any sort of initialization happens, by adding a
new constructor so that it can be initialized sooner.
2023-07-17 10:23:19 -07:00
Wunkolo ceff20f57f Add configurable Renderer backend
There are still some initialization errors to work through, such as
config not being initialized properly by the time GPU tries to utilize
it too. Also some life-time issues. But manually forcing it to use the
Null backnd successfully works and allows games to be "played"
headlessly.
2023-07-17 10:13:34 -07:00
Wunkolo 1becbef811 Add Null rendering backend
Doesn't implement any functions, currently not selectable or
configurable
2023-07-17 09:34:10 -07:00
Wunkolo b10e69de0e Add virtual deconstructor override
Virtual classes need to override the base-type deconstructor so that they are proper called when referred to by their base-type.
2023-07-17 09:30:12 -07:00
wheremyfoodatandGitHub 786c3e8a5c Merge pull request #98 from Wunkolo/modular-gl
Allow conditional OpenGL rendering backend
2023-07-16 03:48:07 +03:00
f43c252e55 Switch LOG2/EX2 from x87 to SSE (adjusted from Citra)
Co-Authored-By: merry <8682882+merryhime@users.noreply.github.com>
Co-Authored-By: Wunk <wunkolo@gmail.com>
2023-07-16 01:34:59 +03:00
wheremyfoodat 7b6cd90d36 Cleanup for #98 2023-07-15 04:56:43 +03:00
wheremyfoodat 3ad0fc6a56 IR please stop 2023-07-13 20:28:32 +03:00
wheremyfoodat 03ae0d02d8 [IR] Implement shmem header 2023-07-13 14:24:37 +03:00
wheremyfoodat f64c662ab9 Stop lying to people 2023-07-13 00:25:47 +03:00
wheremyfoodat 3a1a612e8b Merge branch 'master' into dynapand 2023-07-12 21:34:29 +03:00
wheremyfoodat 42c86ac541 Better FS::ReadDirectory 2023-07-12 21:33:13 +03:00
wheremyfoodatandGitHub e00f5d21df Merge pull request #107 from caldog20/wifimac-configmem
Stub reads for WIFI MAC address in ConfigMem
2023-07-11 23:56:31 +03:00
Caleb Yates 7f4746139d Add WIFI MAC to ConfigMem and stub reads 2023-07-11 15:28:16 -05:00
Wunkolo 2f45714240 Add override-specifier to renderer implementation 2023-07-11 11:28:06 -07:00
Wunkolo 666fd96e7f Move color/depth format and size to Renderer interface
The state of these values are not specific to any rendering backend and
can be moved to be part of the interface itself
2023-07-11 11:28:06 -07:00