Commit graph

10061 commits

Author SHA1 Message Date
Wunkolo b1f92f926a vk_blit_helper: Fix d24s8_to_rgba8_ms_comp SPV reference 2024-02-26 09:27:14 -08:00
Wunkolo ad61d72f2c vk_texture_runtime: Use highest priority image for image-views by default
Never write the MSAA image to descriptor sets or for sampling though, default to a starting index of 1 in those cases. This should probably be an enum.
2024-02-26 09:27:14 -08:00
Wunkolo 4de9d81b50 vk_texture_runtime: Resolve MSAA source image before blit
Resolves the MSAA image to the upscale-image before blitting to ensure it is getting the freshest MSAA resolve. Todo: use a dirty flag.
2024-02-26 09:27:14 -08:00
Wunkolo a2aee70b86 vk_texture_runtime: Use the highest-priority representation of a surface
Starting from the provided index, search for the first non-null handle.
2024-02-26 09:27:14 -08:00
Wunkolo 8f791c0863 rasterizer_cache: Add sample_count criteria in FindMatch 2024-02-26 09:27:14 -08:00
Wunkolo 44cb5a4ad2 rasterizer_cache: Create Surface MSAA handles upon ScaleUp 2024-02-26 09:27:14 -08:00
Wunkolo aebd108328 Formatting fixes 2024-02-26 09:27:14 -08:00
Wunkolo cc7d2f6576 rasterizer_cache: Remove MSAA from fill-surfaces and display-transfers 2024-02-26 09:27:14 -08:00
Wunkolo 2653528d28 vk_texture_runtime: Use renderpass-clears for MSAA surfaces
Fixes lots of bugs where we're looking at "stale data" because the MSAA
and non-MSAA texture were not updated at the same time
2024-02-26 09:27:14 -08:00
Wunkolo 64a116b254 vk_texture_runtime: Add explicit "sub-image" index to View accessors
This needs a new pattern, the current one introduces lots of bugs
when we're trying to access the MSAA image.
2024-02-26 09:27:14 -08:00
Wunkolo 8356700ef7 surface_params: Add sample count to surface debug name 2024-02-26 09:27:14 -08:00
Wunkolo ee7588230b vk_renderpass_cache: Implement depth+stencil render pass resolve 2024-02-26 09:27:14 -08:00
Wunkolo c4fcd93ff9 vk_instance: Detect MSAA features
The MSAA _requires_ `sampleRateShading`, and also requires
`VK_KHR_create_renderpass2` and `VK_KHR_depth_stencil_resolve` for the
depth-stencil MSAA resolves.
2024-02-26 09:27:14 -08:00
Wunkolo 55c74f54d5 rasterizer_cache: Propagate sample_count to SurfaceParams 2024-02-26 09:27:14 -08:00
Wunkolo 149ef4d900 vk_texture_runtime: Fix CopyTextures MSAA support 2024-02-26 09:27:14 -08:00
Wunkolo 7388e4e32d vk_texture_runtime: Add MSAA support to ClearTextureWithRenderpass 2024-02-26 09:27:14 -08:00
Wunkolo 4e8db844f2 vk_blit_helper: Add d24s8->rgba8 multi-sample blit 2024-02-26 09:27:14 -08:00
Wunkolo 37c739603d config: Use u16 for sample_count
`u8` causes configs to emit strange variants like `@Variant(\0\0\0\x86\x3)`
2024-02-26 09:27:13 -08:00
Wunkolo dba83f4898 rasterizer_cache: Unregister all surfaces when sample_count changes
Allows the run-time changing of sample-count.
2024-02-26 09:27:13 -08:00
Wunkolo 1a9ae7ca18 citra_qt: Add sample-count to enhancement settings 2024-02-26 09:27:13 -08:00
Wunkolo 3c2f825c84 config: Make sample_count a pow/log-2 index
Sample counts increment in powers of two(1,2,4,8). Rather than storing a direct integer of the number of samples, just store the pow2 index.
2024-02-26 09:27:13 -08:00
Wunkolo 90ad4e1a19 renderer_vk: Fix sample-shading enablement 2024-02-26 09:27:13 -08:00
Wunkolo 369a2314c2 renderer_vk: Create MSAA graphics pipelines
Forced on for now, needs some additional detection and masking for when this feature should be used.
2024-02-26 09:27:13 -08:00
Wunkolo c091457984 rasterizer: Add multi-sampled surfaces
Vulkan implementation only
2024-02-26 09:27:10 -08:00
Wunkolo 82e9f4ca03 rasterizer: Add multi-sampled framebuffers
Vulkan implementation only
2024-02-26 09:26:10 -08:00
Wunkolo 89ffff3426 vk_renderpass_cache: Add support for multi-sample renderpasses
A multi-sample render-pass will simply append additional attachments to
the end of the attachment list to use as primary color+depth attachments
and will resolve back into the original non-msaa attachments.
Framebuffers must be sure to structure their attachments the same way.
2024-02-26 09:25:20 -08:00
Wunkolo 85a2304b42 vk_graphics_pipeline: Add sample_count to AttachmentInfo
Controls the actual Multisample pipeline-state
2024-02-26 09:25:20 -08:00
Wunkolo 0f1e969211 telemetry: Add Renderer_SampleCount field 2024-02-26 09:25:20 -08:00
Wunkolo a85dbaded9 rasterizer_cache: Add sample_count 2024-02-26 09:25:20 -08:00
Wunkolo 42b04b048c renderer_base: Add GetSampleCount
Only enables sample counts higher than 1 on vulkan
2024-02-26 09:25:20 -08:00
Wunkolo 23d2e532fc config: Add sample_count configuration option 2024-02-26 09:25:20 -08:00
Théo B e0d2c1308e
log: fix SOC_U::Accept LOG_DEBUG call, and ensure such mistakes get picked up at compile time (#7463)
* fix SOC_U::Accept invalid log function

* make logging get checked at compile time
- ensures log strings match the amount and type (if the format specifies an integer, for example) of the arguments
- if at any later point a runtime-generated string is used as the log format, FmtLogMessage might require an overload taking a fmt::runtime_format_string<> as the format argument type, everything else being equal. wrap the generated string with fmt::runtime() before passing to the LOG_X function

* formatting fix: aligning the arguments
2024-02-25 21:43:29 -08:00
Steveice10 4f9fc88bb3
apt: Improve accuracy of applet slot states on system applet launch. (#7456) 2024-02-23 16:18:16 -08:00
GPUCode d857743075
Downgrade blend factor crash to warning (#7459)
* pica_to_vk: Downgrade assert to warning

* pica_to_gl: Downgrade unreachable to warning
2024-02-22 15:43:44 -08:00
kylon b5042a5257
Core: update kernel config memory to latest 11.17 (#7460) 2024-02-22 15:43:33 -08:00
Wunk e524542a40
vk_texture_runtime: Use boost-static_vector (#7455)
* vk_texture_runtime: Use boost-`static_vector` for image init-barriers

Uses `static_vector` rather than `std::array`+`u32` when passing input
parameters into the initialization barriers.

* vk_texture_runtime: Use boost-`static_vector` for framebuffer attachments

* vk_texture_runtime: Use boost-`static_vector` for surface uploads
2024-02-22 02:35:57 +02:00
Steveice10 3a4ebb1413
file_util: Make sure portable user path is absolute. (#7448) 2024-02-18 15:21:53 -08:00
Steveice10 cbe8987036
ci: Update action versions. (#7449) 2024-02-18 08:23:15 -08:00
Charles Lombardo da5aa70fc9
android: Port yuzu system info logging (#7431) 2024-02-17 20:10:10 -08:00
Castor215 749a721aa2
externals: disable system cpp-httplib if it is a shared object (#7446)
Co-authored-by: Castor216 <davidjamescastor215@proton.me>
2024-02-17 06:39:38 -08:00
SachinVin bb003c2bd4
audio_core\hle\source.cpp: Improve accuracy of SourceStatus (#7432) 2024-02-17 02:12:54 +01:00
Tobias 7638f87f74
Port several small multiplayer PRs from yuzu (#7419)
* yuzu: Use displayed port on direct connect

* Color player counts in the multiplayer public lobby list

- Full lobbies have their player count displayed in red.
- Lobbies with one slot left have their player count displayed in orange.
- Empty lobbies have their player count grayed out.

* Add hotkeys for multiplayer actions

Default shortcuts were chosen as to be intuitive (use the first letter
of the action, or the second word's first letter) and work on all
types of keyboards. The hotkeys can be used while playing a game too,
as they are application-wide.

* Persist filters in multiplayer public lobby list

After connecting to a room, the chosen filter text, "Games I Own",
"Hide Empty Rooms" and "Hide Full Rooms" values are persisted
to configuration so they are preserved across restarts.

This makes it easier to rejoin a room if you regularly play the same
game, or after a crash.

* citra_qt/lobby: Fix multiplayer player count color in dark theme

Co-Authored-By: Kevnkkm <56404895+kevnkkm@users.noreply.github.com>

* Address review comments

---------

Co-authored-by: Narr the Reg <juangerman-13@hotmail.com>
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: Kevnkkm <56404895+kevnkkm@users.noreply.github.com>
2024-02-16 04:34:10 -08:00
Steveice10 aa6809e2a8
renderer_vulkan: Use no more than target supported version. (#7439) 2024-02-15 19:38:32 -08:00
Steveice10 5e02be75a3
renderer_vulkan: Use getToolPropertiesEXT instead of getToolProperties (#7434)
getToolProperties is not available until Vulkan 1.3; we need to use the EXT version.
2024-02-13 21:43:09 -08:00
Tobias b9c9beeee5
android: add basic support for google game dashboard (#7430)
This adds support for the Performance and Battery Saver modes in the Game Dashboard mostly found on Google Pixel devices.
This does not yet define the specifics for the performance modes but does provide the initial basic support.

Co-authored-by: Emma <153868115+gaypotatoemma@users.noreply.github.com>
2024-02-10 17:24:10 -08:00
GPUCode de993dcfbd
service: Stub mcu::HWC (#7428) 2024-02-09 14:09:05 -08:00
oltolm 3c9157b1ec
fix ASAN error in sdl_impl.cpp (#7427) 2024-02-09 14:08:15 -08:00
Ishan09811 0c40c10022
Update Android Deps (#7383) 2024-02-09 07:24:55 -05:00
Daniel López Guimaraes 2766118e33
http: Implement various missing commands (#7415) 2024-02-08 11:01:46 -08:00
Steveice10 06b26691ba
soc: Pass accurate sockaddr length to socket functions. (#7426) 2024-02-08 11:01:38 -08:00