diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_texture_cache.cpp | 25 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 19 |
2 files changed, 34 insertions, 10 deletions
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index bc2a53841..017348e05 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp | |||
| @@ -417,7 +417,7 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) { | |||
| 417 | }; | 417 | }; |
| 418 | } | 418 | } |
| 419 | 419 | ||
| 420 | [[nodiscard]] constexpr SwizzleSource ConvertGreenRed(SwizzleSource value) { | 420 | [[nodiscard]] SwizzleSource ConvertGreenRed(SwizzleSource value) { |
| 421 | switch (value) { | 421 | switch (value) { |
| 422 | case SwizzleSource::G: | 422 | case SwizzleSource::G: |
| 423 | return SwizzleSource::R; | 423 | return SwizzleSource::R; |
| @@ -426,6 +426,17 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) { | |||
| 426 | } | 426 | } |
| 427 | } | 427 | } |
| 428 | 428 | ||
| 429 | [[nodiscard]] SwizzleSource SwapBlueRed(SwizzleSource value) { | ||
| 430 | switch (value) { | ||
| 431 | case SwizzleSource::R: | ||
| 432 | return SwizzleSource::B; | ||
| 433 | case SwizzleSource::B: | ||
| 434 | return SwizzleSource::R; | ||
| 435 | default: | ||
| 436 | return value; | ||
| 437 | } | ||
| 438 | } | ||
| 439 | |||
| 429 | void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage image, | 440 | void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage image, |
| 430 | VkImageAspectFlags aspect_mask, bool is_initialized, | 441 | VkImageAspectFlags aspect_mask, bool is_initialized, |
| 431 | std::span<const VkBufferImageCopy> copies) { | 442 | std::span<const VkBufferImageCopy> copies) { |
| @@ -543,6 +554,15 @@ void CopyBufferToImage(vk::CommandBuffer cmdbuf, VkBuffer src_buffer, VkImage im | |||
| 543 | }; | 554 | }; |
| 544 | } | 555 | } |
| 545 | 556 | ||
| 557 | [[nodiscard]] bool IsFormatFlipped(PixelFormat format) { | ||
| 558 | switch (format) { | ||
| 559 | case PixelFormat::A1B5G5R5_UNORM: | ||
| 560 | return true; | ||
| 561 | default: | ||
| 562 | return false; | ||
| 563 | } | ||
| 564 | } | ||
| 565 | |||
| 546 | struct RangedBarrierRange { | 566 | struct RangedBarrierRange { |
| 547 | u32 min_mip = std::numeric_limits<u32>::max(); | 567 | u32 min_mip = std::numeric_limits<u32>::max(); |
| 548 | u32 max_mip = std::numeric_limits<u32>::min(); | 568 | u32 max_mip = std::numeric_limits<u32>::min(); |
| @@ -948,6 +968,9 @@ ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewI | |||
| 948 | }; | 968 | }; |
| 949 | if (!info.IsRenderTarget()) { | 969 | if (!info.IsRenderTarget()) { |
| 950 | swizzle = info.Swizzle(); | 970 | swizzle = info.Swizzle(); |
| 971 | if (IsFormatFlipped(format)) { | ||
| 972 | std::ranges::transform(swizzle, swizzle.begin(), SwapBlueRed); | ||
| 973 | } | ||
| 951 | if ((aspect_mask & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) != 0) { | 974 | if ((aspect_mask & (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) != 0) { |
| 952 | std::ranges::transform(swizzle, swizzle.begin(), ConvertGreenRed); | 975 | std::ranges::transform(swizzle, swizzle.begin(), ConvertGreenRed); |
| 953 | } | 976 | } |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 851246233..f4bd8069b 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -29,9 +29,10 @@ Config::~Config() { | |||
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { | 31 | const std::array<int, Settings::NativeButton::NumButtons> Config::default_buttons = { |
| 32 | Qt::Key_A, Qt::Key_S, Qt::Key_Z, Qt::Key_X, Qt::Key_3, Qt::Key_4, Qt::Key_Q, | 32 | Qt::Key_C, Qt::Key_X, Qt::Key_V, Qt::Key_Z, Qt::Key_F, |
| 33 | Qt::Key_W, Qt::Key_1, Qt::Key_2, Qt::Key_N, Qt::Key_M, Qt::Key_F, Qt::Key_T, | 33 | Qt::Key_G, Qt::Key_Q, Qt::Key_E, Qt::Key_R, Qt::Key_T, |
| 34 | Qt::Key_H, Qt::Key_G, Qt::Key_D, Qt::Key_C, Qt::Key_B, Qt::Key_V, | 34 | Qt::Key_M, Qt::Key_N, Qt::Key_Left, Qt::Key_Up, Qt::Key_Right, |
| 35 | Qt::Key_Down, Qt::Key_Q, Qt::Key_E, 0, 0, | ||
| 35 | }; | 36 | }; |
| 36 | 37 | ||
| 37 | const std::array<int, Settings::NativeMotion::NumMotions> Config::default_motions = { | 38 | const std::array<int, Settings::NativeMotion::NumMotions> Config::default_motions = { |
| @@ -41,10 +42,10 @@ const std::array<int, Settings::NativeMotion::NumMotions> Config::default_motion | |||
| 41 | 42 | ||
| 42 | const std::array<std::array<int, 4>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ | 43 | const std::array<std::array<int, 4>, Settings::NativeAnalog::NumAnalogs> Config::default_analogs{{ |
| 43 | { | 44 | { |
| 44 | Qt::Key_Up, | 45 | Qt::Key_W, |
| 45 | Qt::Key_Down, | 46 | Qt::Key_S, |
| 46 | Qt::Key_Left, | 47 | Qt::Key_A, |
| 47 | Qt::Key_Right, | 48 | Qt::Key_D, |
| 48 | }, | 49 | }, |
| 49 | { | 50 | { |
| 50 | Qt::Key_I, | 51 | Qt::Key_I, |
| @@ -55,8 +56,8 @@ const std::array<std::array<int, 4>, Settings::NativeAnalog::NumAnalogs> Config: | |||
| 55 | }}; | 56 | }}; |
| 56 | 57 | ||
| 57 | const std::array<int, 2> Config::default_stick_mod = { | 58 | const std::array<int, 2> Config::default_stick_mod = { |
| 58 | Qt::Key_E, | 59 | Qt::Key_Shift, |
| 59 | Qt::Key_R, | 60 | 0, |
| 60 | }; | 61 | }; |
| 61 | 62 | ||
| 62 | const std::array<int, Settings::NativeMouseButton::NumMouseButtons> Config::default_mouse_buttons = | 63 | const std::array<int, Settings::NativeMouseButton::NumMouseButtons> Config::default_mouse_buttons = |