wheremyfoodat
c87501f86f
Merge pull request #125 from Wunkolo/vulkan-init
...
Initialize Vulkan Context
2023-07-24 21:05:26 +03:00
wheremyfoodat
71bcfbab69
[Vulkan] Respect GPU_DEBUG_INFO
2023-07-24 19:23:47 +03:00
Wunkolo
e2e49b7291
Add in-place swapchain recreation
...
Lots of todos, this should probably just be its own self-contained
object to allow the emulator to render "headlessly" regardless of a
swapchain existing or not.
2023-07-23 21:44:39 -07:00
wheremyfoodat
4a24a331da
Merge pull request #113 from wheremyfoodat/ir
...
Merging despite it still being partially broken because I don't want this to be isolated in a random branch
2023-07-24 01:11:46 +03:00
Wunkolo
c49fd71722
Use numeric_limits
rather than ~0ULL
2023-07-22 19:44:09 -07:00
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
da6f880128
Disable timeline semaphore features
...
This is an optional feature that can be supported conditionally later
2023-07-22 13:34:10 -07:00
Wunkolo
8ace959d72
Fix RendererSW initGraphicsContext
prototype
2023-07-22 13:20:57 -07:00
Wunkolo
165134ca40
Consider surface-support in device partitions
...
Use a stable_partitioning of the list of devices the driver gave us with
the addition of checking of the physical device supports the
display-surface that SDL gave us as well.
2023-07-22 13:16:23 -07:00
Wunkolo
0ada1f4e38
Include additional vulkan-extensions that SDL requests
...
Required for proper surface creation. This gets the surface-creation
call to pass now.
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
444d50eaf5
Fix instance extensions on MacOS
...
These preprocessors were combining into a singular string rather than
the name of two individual extensions. Whoops.
2023-07-22 13:16:23 -07:00
Wunkolo
d9afb12daf
Fix MacOS build
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
wheremyfoodat
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
5d8f75a385
Format
2023-07-21 15:12:40 +03:00
wheremyfoodat
0588b99674
[ActionReplay] More conditional ops
2023-07-21 14:49:04 +03:00
wheremyfoodat
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
wheremyfoodat
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
wheremyfoodat
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
8e45b8c324
[ActionReplay] Add 16-bit writes
2023-07-20 14:01:47 +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
wheremyfoodat
5b4f6ef46c
Merge pull request #120 from Wunkolo/renderer-null
...
Add a `null` rendering backend
2023-07-18 23:26:52 +03:00
wheremyfoodat
31d1c6ff3f
Bonk people who select Vulkan as the renderer
2023-07-18 22:33:59 +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
wheremyfoodat
ed1b0704d6
Merge pull request #111 from wheremyfoodat/dynapand
...
Filesystem bonking
2023-07-18 01:26:17 +03: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
wheremyfoodat
cdf01aaf43
[FS::Directory] Better attribute handling
2023-07-17 03:22:13 +03:00
wheremyfoodat
22bfb092b8
Fix 8.3 conversion derp
2023-07-17 03:11:21 +03:00
wheremyfoodat
f08fe10862
[FS::Dir] Fix command response headers
2023-07-17 02:58:55 +03:00
wheremyfoodat
50742f7bb1
[FS] Proper 8.3 filename conversion hopefully
2023-07-17 02:54:05 +03:00