Commit Graph
851 Commits
Author SHA1 Message Date
Wunkolo 0258640da9 Add cached sampler creation
Using the sampler cache we can maintain a pool of reusable samplers. The
`sampler2D` utility function can help make some trivial samplers.
2023-08-20 23:40:51 -07:00
Wunkolo 7a86595a1b Add vulkan sampler cache 2023-08-20 23:35:52 -07:00
Wunkolo 14b1d7d8a8 Add display-shader presentation
Uses the graphics pipeline to both blit and transpose the 3ds-formatted
textures. Does not read from the actual texture just yet since we dont
write to the descriptor just yet. Some other patterns need to line up
before then.
2023-08-20 23:01:43 -07:00
Wunkolo 4b7bd9df3d Add Vulkan Descriptor-Update batching
Allows multiple descriptor operations to be batched up and dispatched in
one API call rather than scattered through out the code base.
2023-08-20 23:01:43 -07:00
Wunkolo 72c77e41b4 Draft Vulkan DescriptorHeap
A utility class from a personal project for managing a heap of
descriptors of a particular layout.

Allows the display graphics pipeline to be successfully created,
satisfying its descriptor layout issues.
2023-08-20 23:01:43 -07:00
Wunkolo 6ebbd80286 Add Display-pipeline as member variables 2023-08-20 23:01:43 -07:00
Wunkolo 4b193c8d6b Add general purpose vulkan render cache
Takes in a general `vk::Format` rather than PICA-types
2023-08-20 23:01:43 -07:00
Wunkolo d4b75deaf8 Remove separate presentation/graphics command buffers
Now there is just one primary command buffer where all work is enqueued
into. At the end of the frame, the next frame's CPU-side fence is waited
on before resetting and beginning its command buffer again for
recording. This command buffer must always be in the RECORDING state.
2023-08-20 23:01:43 -07:00
Wunkolo 52ddaae221 Add getCurrentCommandBuffer for all frame workloads
Rather than allocating new command buffers for each small task, schedule
all work onto the frame's main command buffer to be dispatched at
display-time. Fixes all layout transition and synchronization issues.
2023-08-20 23:01:43 -07:00
Wunkolo 9e2781e874 Refactor render-texture cache
Implement `displayTransfer` in parity with the OpenGL renderer. Allow
arguments to `get{Color,Depth}RenderTexture`.
2023-08-20 23:01:43 -07:00
Wunkolo c778c34433 Separate present/graphics workloads
Separate the "Display" texture from the cache of framebuffer textures,
move present/graphics into separate command buffers.
2023-08-20 23:01:43 -07:00
Wunkolo 6dcd09af3e Implement basic color/depth render-texture cache 2023-08-20 23:01:43 -07:00
Wunkolo 37902cd9d6 Implement a renderpass cache.
Technically we can generate every possible render-pass up-front based on
the possible combinations of ColorFmt and DepthFmt, but we should only
allocate what the game asks for. Save that pattern for pipelines.
2023-08-20 23:01:43 -07:00
Wunkolo bf8bb5d459 Add vk_pica translation unit
Intended for conversions and utils between PICA definitions and Vulkan.
2023-08-20 23:01:43 -07:00
Wunkolo d19b8cf364 Separate frame-work from presentation 2023-08-20 23:01:43 -07:00
Wunkolo 4976671ef0 Rename vulkan_api.hpp to vk_api.hpp
Consistant with other vulkan header patterns.
This header in particular is to configure our Vulkan API usage.
2023-08-20 23:01:43 -07:00
Wunkolo e87db99a97 Remove ownership of SDL's vulkan-surface
This surface is managed by SDL itself, so there is no need to keep it in
a Unique handle for us to delete.  Fixes the bug where vulkan crashes
during shutdown.
2023-08-20 23:01:43 -07:00
Wunkolo e3699fe8f8 Allocate and present separate top/bottom screen framebuffer images
Instead of operating directly on the swapchain images, we have our own
top/bottom framebuffer images that will be rendered to independent of
having an available swapchain. The images are blitted into the swapchain
images, allowing for resizing too!
2023-08-20 23:01:43 -07:00
Wunkolo d0832ca558 Fix support for headless vulkan context 2023-08-20 23:01:43 -07:00
wheremyfoodat 706503974c [Touchscreen] Properly handle "dragging" stylus across screen 2023-08-20 23:42:55 +03:00
wheremyfoodat 41ef4ad540 [HTTP] Stub some certificate stuff 2023-08-20 17:50:53 +03:00
wheremyfoodat 82ded962d0 Add PTM::GetBatteryChargeState 2023-08-20 17:06:32 +03:00
wheremyfoodat 8e00da1d0b Merge branch 'master' into sd-card 2023-08-20 15:55:20 +03:00
wheremyfoodat 197bc93eec Add BOSS:GetErrorCode 2023-08-20 15:07:19 +03:00
wheremyfoodat eaccc627b9 Merge branch 'master' into sd-card 2023-08-20 14:42:01 +03:00
wheremyfoodat 8aa35d2099 Implement HID::GetSoundVolume 2023-08-20 14:18:30 +03:00
wheremyfoodat 9ee7543f9a Moar SDMC 2023-08-20 13:55:38 +03:00
wheremyfoodat 7ada8da8a8 Start adding SD card support 2023-08-20 13:22:48 +03:00
wheremyfoodat 434827e11e Add svcGetThreadIdealProcessor 2023-08-20 03:43:26 +03:00
wheremyfoodat 415a5bb8de Add AM::RegisterDisconnectEvent 2023-08-20 03:27:10 +03:00
wheremyfoodat 977cb0403c Stub DLC::GetPatchTitleInfo to fail 2023-08-20 03:08:34 +03:00
wheremyfoodat 6895a1d9d6 Implement svcGetCurrentProcessorNumber 2023-08-20 01:51:24 +03:00
wheremyfoodat fc2747a3d3 Stub NDM::ClearHalfAwakeMacFilter 2023-08-20 00:48:07 +03:00
wheremyfoodat 48b19b2588 Add SD card configs 2023-08-19 19:31:40 +03:00
wheremyfoodat 6d7ab14480 Add MCU::HWC::GetBatteryLevel 2023-08-19 17:50:55 +03:00
wheremyfoodat c544dd1567 Add MCU::HWC 2023-08-19 17:44:28 +03:00
wheremyfoodat 3f61283251 Implement FRD::Logout and FRD::HasLoggedIn 2023-08-19 17:12:58 +03:00
wheremyfoodat bd750f010d AC::CloseAsync 2023-08-19 16:35:37 +03:00
wheremyfoodat 6e4b2b672e AC stubs (CancelConnectAsync, CreateDefaultConfig) 2023-08-19 03:24:44 +03:00
wheremyfoodat 05f535be7c More BOSS suffering 2023-08-19 02:31:20 +03:00
wheremyfoodat 02632afb75 [BOSS] Stub SendProperty 2023-08-19 02:02:11 +03:00
wheremyfoodat 5b24006046 Fix discrepancy between ConfigMem::BatteryLevel and PTM 2023-08-18 22:30:50 +03:00
wheremyfoodat 51b2b8eee5 Make battery stuff configurable 2023-08-18 22:17:33 +03:00
wheremyfoodat 80f1de728c Implement NFC::GetTagState 2023-08-18 17:42:05 +03:00
wheremyfoodat ceb3f05c7e NFC::StopCommunication 2023-08-18 17:21:01 +03:00
wheremyfoodat 59649b27a0 Implement NFC::CommunicationGetStatus 2023-08-18 17:13:15 +03:00
wheremyfoodat 7bbf37bb63 Implement reading texture from NULL 2023-08-18 16:19:54 +03:00
wheremyfoodat 7a6572716f Add FRD::UpdateGameModeDescription 2023-08-18 00:28:28 +03:00
wheremyfoodat 9bf7a9f486 Stub CECD::OpenAndRead 2023-08-17 23:57:18 +03:00
wheremyfoodat c721fa0482 BOSS: GetTaskStatus 2023-08-17 23:41:09 +03:00