Dolphin-sa upgrade

This commit is contained in:
mason 2023-06-06 22:34:15 +00:00
parent 8d6291bfbc
commit f612011ef9
No known key found for this signature in database
GPG key ID: 84D9278A11FA112B
16 changed files with 534 additions and 88 deletions

View file

@ -3,6 +3,7 @@ VSync = False
Adapter = 0
[Settings]
AspectRatio = 0
InternalResolution = 2
Crop = False
wideScreenHack = False
UseXFB = False
@ -37,10 +38,14 @@ SWDumpTevStages = False
SWDumpTevTexFetches = False
SWDrawStart = 0
SWDrawEnd = 100000
ShaderCompilationMode = 0
WaitForShadersBeforeStarting = True
BackendMultithreading = True
EnableGPUTextureDecoding = True
[Enhancements]
ForceFiltering = False
ForceTextureFiltering = False
MaxAnisotropy = 0
PostProcessingShader =
PostProcessingShader =
[Stereoscopy]
StereoMode = 0
StereoDepth = 20
@ -53,3 +58,4 @@ ForceProgressive = True
EFBToTextureEnable = True
EFBScaledCopy = False
EFBEmulateFormatChanges = False
SkipDuplicateXFBs = True

View file

@ -0,0 +1,20 @@
[Wiimote1]
Device = evdev/0/Microsoft X-Box 360 pad
Buttons/A = Button 0
Buttons/B = Button 1
Buttons/1 = Button 2
Buttons/2 = Button 3
Buttons/- = Button 6
Buttons/+ = Button 7
Buttons/Home = Button 8
Shake/X = Button 4
Shake/Y = Button 4
Shake/Z = Button 4
D-Pad/Up = Axis 6-
D-Pad/Down = Axis 6+
D-Pad/Left = Axis 7-
D-Pad/Right = Axis 7+
IR/Up = `Axis 4-`
IR/Down = `Axis 4+`
IR/Left = `Axis 3-`
IR/Right = `Axis 3+`

View file

@ -24,3 +24,7 @@ Nunchuk/Stick/Right = Axis 0+
Nunchuk/Shake/X = Axis 2+
Nunchuk/Shake/Y = Axis 2+
Nunchuk/Shake/Z = Axis 2+
IR/Up = `Axis 4-`
IR/Down = `Axis 4+`
IR/Left = `Axis 3-`
IR/Right = `Axis 3+`

View file

@ -14,3 +14,7 @@ D-Pad/Up = Axis 7-
D-Pad/Down = Axis 7+
D-Pad/Left = Axis 6-
D-Pad/Right = Axis 6+
IR/Up = `Axis 4-`
IR/Down = `Axis 4+`
IR/Left = `Axis 3-`
IR/Right = `Axis 3+`

View file

@ -3,6 +3,7 @@ VSync = False
Adapter = 0
[Settings]
AspectRatio = 2
InternalResolution = 1
Crop = False
wideScreenHack = False
UseXFB = False
@ -37,10 +38,14 @@ SWDumpTevStages = False
SWDumpTevTexFetches = False
SWDrawStart = 0
SWDrawEnd = 100000
ShaderCompilationMode = 0
WaitForShadersBeforeStarting = True
BackendMultithreading = True
EnableGPUTextureDecoding = True
[Enhancements]
ForceFiltering = False
MaxAnisotropy = 0
PostProcessingShader =
PostProcessingShader =
[Stereoscopy]
StereoMode = 0
StereoDepth = 20
@ -53,3 +58,4 @@ ForceProgressive = True
EFBToTextureEnable = True
EFBScaledCopy = False
EFBEmulateFormatChanges = False
SkipDuplicateXFBs = True

View file

@ -0,0 +1,19 @@
[Wiimote1]
Device = evdev/0/retrogame_joypad
Buttons/A = Button 0
Buttons/B = Button 1
Buttons/1 = Button 3
Buttons/2 = Button 2
Buttons/- = Button 8
Buttons/+ = Button 9
D-Pad/Up = Button 15
D-Pad/Down = Button 16
D-Pad/Left = Button 13
D-Pad/Right = Button 14
Shake/X = Button 4
Shake/Y = Button 4
Shake/Z = Button 4
IR/Up = `Axis 3-`
IR/Down = `Axis 3+`
IR/Left = `Axis 2-`
IR/Right = `Axis 2+`

View file

@ -13,3 +13,7 @@ D-Pad/Right = Button 16
Shake/X = Button 4
Shake/Y = Button 4
Shake/Z = Button 4
IR/Up = `Axis 3-`
IR/Down = `Axis 3+`
IR/Left = `Axis 2-`
IR/Right = `Axis 2+`

View file

@ -3,6 +3,7 @@ VSync = False
Adapter = 0
[Settings]
AspectRatio = 0
InternalResolution = 2
Crop = False
wideScreenHack = False
UseXFB = False
@ -37,8 +38,12 @@ SWDumpTevStages = False
SWDumpTevTexFetches = False
SWDrawStart = 0
SWDrawEnd = 100000
ShaderCompilationMode = 0
WaitForShadersBeforeStarting = True
BackendMultithreading = True
EnableGPUTextureDecoding = True
[Enhancements]
ForceFiltering = False
ForceTextureFiltering = False
MaxAnisotropy = 0
PostProcessingShader =
[Stereoscopy]
@ -53,3 +58,4 @@ ForceProgressive = True
EFBToTextureEnable = True
EFBScaledCopy = False
EFBEmulateFormatChanges = False
SkipDuplicateXFBs = True

View file

@ -0,0 +1,20 @@
[Wiimote1]
Device = evdev/0/GO-Ultra Gamepad
Buttons/A = Button 0
Buttons/B = Button 1
Buttons/1 = Button 3
Buttons/2 = Button 2
Buttons/- = Button 12
Buttons/+ = Button 17
Buttons/Home = Button 13
Shake/X = Button 4
Shake/Y = Button 4
Shake/Z = Button 4
D-Pad/Up = Button 10
D-Pad/Down = Button 11
D-Pad/Left = Button 9
D-Pad/Right = Button 8
IR/Up = `Axis 3-`
IR/Down = `Axis 3+`
IR/Left = `Axis 2-`
IR/Right = `Axis 2+`

View file

@ -24,3 +24,7 @@ Nunchuk/Stick/Right = Axis 0+
Nunchuk/Shake/X = Button 6
Nunchuk/Shake/Y = Button 6
Nunchuk/Shake/Z = Button 6
IR/Up = `Axis 3-`
IR/Down = `Axis 3+`
IR/Left = `Axis 2-`
IR/Right = `Axis 2+`

View file

@ -14,3 +14,7 @@ D-Pad/Up = Button 8
D-Pad/Down = Button 9
D-Pad/Left = Button 10
D-Pad/Right = Button 11
IR/Up = `Axis 3-`
IR/Down = `Axis 3+`
IR/Left = `Axis 2-`
IR/Right = `Axis 2+`

View file

@ -0,0 +1,128 @@
diff --git a/Source/Core/VideoCommon/FramebufferManager.cpp b/Source/Core/VideoCommon/FramebufferManager.cpp
index c989f9d5c8..6953582ed6 100644
--- a/Source/Core/VideoCommon/FramebufferManager.cpp
+++ b/Source/Core/VideoCommon/FramebufferManager.cpp
@@ -509,7 +509,7 @@ void FramebufferManager::DestroyReadbackPipelines()
bool FramebufferManager::CreateReadbackFramebuffer()
{
- if (g_renderer->GetEFBScale() != 1)
+ if (g_renderer->IsUnscaled())
{
const TextureConfig color_config(IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_WIDTH,
IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_HEIGHT, 1,
@@ -530,7 +530,7 @@ bool FramebufferManager::CreateReadbackFramebuffer()
(IsUsingTiledEFBCache() && !g_ActiveConfig.backend_info.bSupportsPartialDepthCopies) ||
!AbstractTexture::IsCompatibleDepthAndColorFormats(m_efb_depth_texture->GetFormat(),
GetEFBDepthCopyFormat()) ||
- g_renderer->GetEFBScale() != 1)
+ g_renderer->IsUnscaled())
{
const TextureConfig depth_config(IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_WIDTH,
IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_HEIGHT, 1,
@@ -602,7 +602,7 @@ void FramebufferManager::PopulateEFBCache(bool depth, u32 tile_index)
const MathUtil::Rectangle<int> native_rect = g_renderer->ConvertEFBRectangle(rect);
AbstractTexture* src_texture =
depth ? ResolveEFBDepthTexture(native_rect) : ResolveEFBColorTexture(native_rect);
- if (g_renderer->GetEFBScale() != 1 || force_intermediate_copy)
+ if (g_renderer->IsUnscaled() || force_intermediate_copy)
{
// Downsample from internal resolution to 1x.
// TODO: This won't produce correct results at IRs above 2x. More samples are required.
@@ -781,7 +781,7 @@ void FramebufferManager::CreatePokeVertices(std::vector<EFBPokeVertex>* destinat
// GPU will expand the point to a quad.
const float cs_x = (static_cast<float>(x) + 0.5f) * cs_pixel_width - 1.0f;
const float cs_y = 1.0f - (static_cast<float>(y) + 0.5f) * cs_pixel_height;
- const float point_size = static_cast<float>(g_renderer->GetEFBScale());
+ const float point_size = g_renderer->GetEFBScalef();
destination_list->push_back({{cs_x, cs_y, z, point_size}, color});
return;
}
diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp
index 2e5709f86c..5623d4f480 100644
--- a/Source/Core/VideoCommon/RenderBase.cpp
+++ b/Source/Core/VideoCommon/RenderBase.cpp
@@ -275,19 +275,24 @@ void Renderer::RenderToXFB(u32 xfbAddr, const MathUtil::Rectangle<int>& sourceRc
return;
}
-unsigned int Renderer::GetEFBScale() const
+bool Renderer::IsUnscaled() const
{
- return m_efb_scale;
+ return m_efb_scale == 2;
+}
+
+float Renderer::GetEFBScalef() const
+{
+ return m_efb_scale / 2.0f;
}
int Renderer::EFBToScaledX(int x) const
{
- return x * static_cast<int>(m_efb_scale);
+ return x * static_cast<int>(m_efb_scale) / 2;
}
int Renderer::EFBToScaledY(int y) const
{
- return y * static_cast<int>(m_efb_scale);
+ return y * static_cast<int>(m_efb_scale) / 2;
}
float Renderer::EFBToScaledXf(float x) const
@@ -302,7 +307,7 @@ float Renderer::EFBToScaledYf(float y) const
std::tuple<int, int> Renderer::CalculateTargetScale(int x, int y) const
{
- return std::make_tuple(x * static_cast<int>(m_efb_scale), y * static_cast<int>(m_efb_scale));
+ return std::make_tuple(x * static_cast<int>(m_efb_scale) / 2, y * static_cast<int>(m_efb_scale) / 2);
}
// return true if target size changed
diff --git a/Source/Core/VideoCommon/RenderBase.h b/Source/Core/VideoCommon/RenderBase.h
index 03f756d55a..d0064fe3c3 100644
--- a/Source/Core/VideoCommon/RenderBase.h
+++ b/Source/Core/VideoCommon/RenderBase.h
@@ -188,7 +188,8 @@ public:
std::tuple<MathUtil::Rectangle<int>, MathUtil::Rectangle<int>>
ConvertStereoRectangle(const MathUtil::Rectangle<int>& rc) const;
- unsigned int GetEFBScale() const;
+ bool IsUnscaled() const;
+ float GetEFBScalef() const;
// Use this to upscale native EFB coordinates to IDEAL internal resolution
int EFBToScaledX(int x) const;
@@ -342,7 +343,7 @@ private:
std::tuple<int, int> CalculateOutputDimensions(int width, int height) const;
PEControl::PixelFormat m_prev_efb_format = PEControl::INVALID_FMT;
- unsigned int m_efb_scale = 1;
+ unsigned int m_efb_scale = 2;
// These will be set on the first call to SetWindowSize.
int m_last_window_request_width = 0;
diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp
index fdf3c0e6b3..d8c552adb4 100644
--- a/Source/Core/VideoCommon/TextureCacheBase.cpp
+++ b/Source/Core/VideoCommon/TextureCacheBase.cpp
@@ -992,7 +992,7 @@ static void SetSamplerState(u32 index, float custom_tex_scale, bool custom_tex,
// that have arbitrary contents, eg. are used for fog effects where the
// distance they kick in at is important to preserve at any resolution.
// Correct this with the upscaling factor of custom textures.
- s64 lod_offset = std::log2(g_renderer->GetEFBScale() / custom_tex_scale) * 256.f;
+ s64 lod_offset = std::log2(g_renderer->GetEFBScalef() / custom_tex_scale) * (s64) 256.f;
state.lod_bias = std::clamp<s64>(state.lod_bias + lod_offset, -32768, 32767);
// Anisotropic also pushes mips farther away so it cannot be used either
@@ -2142,8 +2142,7 @@ void TextureCacheBase::CopyRenderTargetToTexture(
// TODO: This only produces perfect downsampling for 2x IR, other resolutions will need more
// complex down filtering to average all pixels and produce the correct result.
const bool linear_filter =
- !is_depth_copy && (scaleByHalf || g_renderer->GetEFBScale() != 1 || y_scale > 1.0f);
-
+ !is_depth_copy && (scaleByHalf || g_renderer->IsUnscaled() || y_scale > 1.0f);
TCacheEntry* entry = nullptr;
if (copy_to_vram)
{

View file

@ -1,6 +1,6 @@
diff -rupN dolphin.orig/CMake/FindWaylandProtocols.cmake dolphin/CMake/FindWaylandProtocols.cmake
--- dolphin.orig/CMake/FindWaylandProtocols.cmake 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/CMake/FindWaylandProtocols.cmake 2023-06-02 18:37:56.021855425 +0000
+++ dolphin/CMake/FindWaylandProtocols.cmake 2023-06-05 18:48:45.007819529 +0000
@@ -0,0 +1,28 @@
+# from https://github.com/glfw/glfw/blob/master/CMake/modules/FindWaylandProtocols.cmake
+
@ -32,7 +32,7 @@ diff -rupN dolphin.orig/CMake/FindWaylandProtocols.cmake dolphin/CMake/FindWayla
+set(WAYLAND_PROTOCOLS_VERSION ${WaylandProtocols_VERSION})
diff -rupN dolphin.orig/CMake/FindXKBCommon.cmake dolphin/CMake/FindXKBCommon.cmake
--- dolphin.orig/CMake/FindXKBCommon.cmake 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/CMake/FindXKBCommon.cmake 2023-06-02 18:37:56.021855425 +0000
+++ dolphin/CMake/FindXKBCommon.cmake 2023-06-05 18:48:45.007819529 +0000
@@ -0,0 +1,33 @@
+# - Try to find XKBCommon
+# Once done, this will define
@ -69,7 +69,7 @@ diff -rupN dolphin.orig/CMake/FindXKBCommon.cmake dolphin/CMake/FindXKBCommon.cm
+mark_as_advanced(XKBCOMMON_LIBRARY XKBCOMMON_INCLUDE_DIR)
diff -rupN dolphin.orig/CMakeLists.txt dolphin/CMakeLists.txt
--- dolphin.orig/CMakeLists.txt 2023-06-01 19:24:09.874000574 +0000
+++ dolphin/CMakeLists.txt 2023-06-02 18:37:56.021855425 +0000
+++ dolphin/CMakeLists.txt 2023-06-05 18:48:45.007819529 +0000
@@ -43,6 +43,7 @@ set(DOLPHIN_DEFAULT_UPDATE_TRACK "" CACH
if(UNIX AND NOT APPLE AND NOT ANDROID)
@ -98,7 +98,7 @@ diff -rupN dolphin.orig/CMakeLists.txt dolphin/CMakeLists.txt
if(EGL_FOUND)
diff -rupN dolphin.orig/Source/Core/Common/CMakeLists.txt dolphin/Source/Core/Common/CMakeLists.txt
--- dolphin.orig/Source/Core/Common/CMakeLists.txt 2023-06-01 19:24:09.918002004 +0000
+++ dolphin/Source/Core/Common/CMakeLists.txt 2023-06-02 18:37:56.537871495 +0000
+++ dolphin/Source/Core/Common/CMakeLists.txt 2023-06-05 18:48:45.487834884 +0000
@@ -255,11 +255,20 @@ if(ENABLE_EGL AND EGL_FOUND)
GL/GLInterface/EGLAndroid.cpp
GL/GLInterface/EGLAndroid.h
@ -127,7 +127,7 @@ diff -rupN dolphin.orig/Source/Core/Common/CMakeLists.txt dolphin/Source/Core/Co
target_link_libraries(common PUBLIC ${EGL_LIBRARIES})
diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.cpp dolphin/Source/Core/Common/GL/GLContext.cpp
--- dolphin.orig/Source/Core/Common/GL/GLContext.cpp 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.cpp 2023-06-02 18:37:56.553871993 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.cpp 2023-06-05 18:48:45.499835268 +0000
@@ -25,6 +25,9 @@
#if defined(ANDROID)
#include "Common/GL/GLInterface/EGLAndroid.h"
@ -165,7 +165,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.cpp dolphin/Source/Core/
context = std::make_unique<GLContextEGL>();
diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.h dolphin/Source/Core/Common/GL/GLContext.h
--- dolphin.orig/Source/Core/Common/GL/GLContext.h 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.h 2023-06-02 18:37:56.553871993 +0000
+++ dolphin/Source/Core/Common/GL/GLContext.h 2023-06-05 18:48:45.503835396 +0000
@@ -36,8 +36,8 @@ public:
virtual bool MakeCurrent();
virtual bool ClearCurrent();
@ -179,7 +179,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLContext.h dolphin/Source/Core/Co
virtual void SwapInterval(int interval);
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.h dolphin/Source/Core/Common/GL/GLInterface/AGL.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.h 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.h 2023-06-02 18:37:56.557872118 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.h 2023-06-05 18:48:45.507835524 +0000
@@ -27,6 +27,8 @@ public:
bool MakeCurrent() override;
@ -191,7 +191,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.h dolphin/Source/C
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.mm dolphin/Source/Core/Common/GL/GLInterface/AGL.mm
--- dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.mm 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.mm 2023-06-02 18:37:56.557872118 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/AGL.mm 2023-06-05 18:48:45.507835524 +0000
@@ -144,7 +144,7 @@ bool GLContextAGL::ClearCurrent()
return true;
}
@ -203,7 +203,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/AGL.mm dolphin/Source/
return;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.cpp dolphin/Source/Core/Common/GL/GLInterface/EGL.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.cpp 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.cpp 2023-06-02 18:37:56.557872118 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.cpp 2023-06-05 18:48:45.507835524 +0000
@@ -292,8 +292,8 @@ bool GLContextEGL::CreateWindowSurface()
{
if (!IsHeadless())
@ -268,7 +268,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.cpp dolphin/Source
+}
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.h dolphin/Source/Core/Common/GL/GLInterface/EGL.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.h 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.h 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGL.h 2023-06-05 18:48:45.507835524 +0000
@@ -22,7 +22,8 @@ public:
bool MakeCurrent() override;
bool ClearCurrent() override;
@ -294,7 +294,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGL.h dolphin/Source/C
std::vector<int> m_attribs;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.cpp dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.cpp 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.cpp 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.cpp 2023-06-05 18:48:45.507835524 +0000
@@ -0,0 +1,36 @@
+// Copyright 2019 Dolphin Emulator Project
+// Licensed under GPLv2+
@ -334,7 +334,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.cpp dolphin
+}
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.h dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.h 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.h 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLWayland.h 2023-06-05 18:48:45.507835524 +0000
@@ -0,0 +1,19 @@
+// Copyright 2019 Dolphin Emulator Project
+// Licensed under GPLv2+
@ -357,7 +357,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLWayland.h dolphin/S
+};
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.cpp dolphin/Source/Core/Common/GL/GLInterface/EGLX11.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.cpp 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.cpp 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.cpp 2023-06-05 18:48:45.507835524 +0000
@@ -11,7 +11,7 @@ GLContextEGLX11::~GLContextEGLX11()
m_render_window.reset();
}
@ -369,7 +369,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.cpp dolphin/Sou
m_backbuffer_width = m_render_window->GetWidth();
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.h dolphin/Source/Core/Common/GL/GLInterface/EGLX11.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.h 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.h 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/EGLX11.h 2023-06-05 18:48:45.507835524 +0000
@@ -13,7 +13,7 @@ class GLContextEGLX11 final : public GLC
public:
~GLContextEGLX11() override;
@ -381,7 +381,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/EGLX11.h dolphin/Sourc
EGLDisplay OpenEGLDisplay() override;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.cpp dolphin/Source/Core/Common/GL/GLInterface/GLX.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.cpp 2023-06-01 19:24:09.918002004 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.cpp 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.cpp 2023-06-05 18:48:45.507835524 +0000
@@ -310,7 +310,7 @@ bool GLContextGLX::ClearCurrent()
return glXMakeCurrent(m_display, None, nullptr);
}
@ -393,7 +393,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.cpp dolphin/Source
m_backbuffer_width = m_render_window->GetWidth();
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.h dolphin/Source/Core/Common/GL/GLInterface/GLX.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.h 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.h 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/GLX.h 2023-06-05 18:48:45.507835524 +0000
@@ -24,7 +24,7 @@ public:
bool MakeCurrent() override;
bool ClearCurrent() override;
@ -405,7 +405,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/GLX.h dolphin/Source/C
void Swap() override;
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.cpp dolphin/Source/Core/Common/GL/GLInterface/WGL.cpp
--- dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.cpp 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.cpp 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.cpp 2023-06-05 18:48:45.507835524 +0000
@@ -480,7 +480,7 @@ bool GLContextWGL::ClearCurrent()
}
@ -417,7 +417,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.cpp dolphin/Source
GetClientRect(m_window_handle, &rcWindow);
diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.h dolphin/Source/Core/Common/GL/GLInterface/WGL.h
--- dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.h 2023-06-01 19:23:58.513631223 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.h 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Common/GL/GLInterface/WGL.h 2023-06-05 18:48:45.507835524 +0000
@@ -19,7 +19,7 @@ public:
bool MakeCurrent() override;
bool ClearCurrent() override;
@ -429,7 +429,7 @@ diff -rupN dolphin.orig/Source/Core/Common/GL/GLInterface/WGL.h dolphin/Source/C
void SwapInterval(int interval) override;
diff -rupN dolphin.orig/Source/Core/Common/WindowSystemInfo.h dolphin/Source/Core/Common/WindowSystemInfo.h
--- dolphin.orig/Source/Core/Common/WindowSystemInfo.h 2023-06-01 19:23:58.517631353 +0000
+++ dolphin/Source/Core/Common/WindowSystemInfo.h 2023-06-02 18:37:56.549871869 +0000
+++ dolphin/Source/Core/Common/WindowSystemInfo.h 2023-06-05 18:48:45.499835268 +0000
@@ -40,7 +40,11 @@ struct WindowSystemInfo
// This is kept seperate as input may require a different handle to rendering, and
// during video backend startup the surface pointer may change (MoltenVK).
@ -445,7 +445,7 @@ diff -rupN dolphin.orig/Source/Core/Common/WindowSystemInfo.h dolphin/Source/Cor
};
diff -rupN dolphin.orig/Source/Core/Core/Core.cpp dolphin/Source/Core/Core/Core.cpp
--- dolphin.orig/Source/Core/Core/Core.cpp 2023-06-01 19:24:09.922002134 +0000
+++ dolphin/Source/Core/Core/Core.cpp 2023-06-02 18:37:56.561872243 +0000
+++ dolphin/Source/Core/Core/Core.cpp 2023-06-05 18:48:45.511835652 +0000
@@ -478,6 +478,8 @@ static void EmuThread(std::unique_ptr<Bo
// is relative to the render window, instead of the main window.
ASSERT(g_controller_interface.IsInit());
@ -457,7 +457,7 @@ diff -rupN dolphin.orig/Source/Core/Core/Core.cpp dolphin/Source/Core/Core/Core.
Pad::LoadGBAConfig();
diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.cpp dolphin/Source/Core/Core/HW/GCPadEmu.cpp
--- dolphin.orig/Source/Core/Core/HW/GCPadEmu.cpp 2023-06-01 19:24:09.926002264 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.cpp 2023-06-02 18:37:56.585872990 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.cpp 2023-06-05 18:48:45.531836292 +0000
@@ -24,6 +24,7 @@ static const u16 button_bitmasks[] = {
PAD_BUTTON_X,
PAD_BUTTON_Y,
@ -478,7 +478,7 @@ diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.cpp dolphin/Source/Core/Cor
MAIN_STICK_GROUP, _trans("Control Stick"), MAIN_STICK_GATE_RADIUS));
diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.h dolphin/Source/Core/Core/HW/GCPadEmu.h
--- dolphin.orig/Source/Core/Core/HW/GCPadEmu.h 2023-06-01 19:23:58.529631743 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.h 2023-06-02 18:37:56.585872990 +0000
+++ dolphin/Source/Core/Core/HW/GCPadEmu.h 2023-06-05 18:48:45.531836292 +0000
@@ -65,6 +65,7 @@ public:
static constexpr const char* X_BUTTON = "X";
static constexpr const char* Y_BUTTON = "Y";
@ -489,7 +489,7 @@ diff -rupN dolphin.orig/Source/Core/Core/HW/GCPadEmu.h dolphin/Source/Core/Core/
// i18n: The left trigger button (labeled L on real controllers)
diff -rupN dolphin.orig/Source/Core/DolphinLib.props dolphin/Source/Core/DolphinLib.props
--- dolphin.orig/Source/Core/DolphinLib.props 2023-06-01 19:24:09.942002785 +0000
+++ dolphin/Source/Core/DolphinLib.props 2023-06-02 18:37:56.533871371 +0000
+++ dolphin/Source/Core/DolphinLib.props 2023-06-05 18:48:45.483834756 +0000
@@ -1219,6 +1219,7 @@
<ClCompile Include="VideoBackends\Vulkan\VKPerfQuery.cpp" />
<ClCompile Include="VideoBackends\Vulkan\VKPipeline.cpp" />
@ -500,7 +500,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinLib.props dolphin/Source/Core/Dolphin
<ClCompile Include="VideoBackends\Vulkan\VKSwapChain.cpp" />
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/CMakeLists.txt dolphin/Source/Core/DolphinNoGUI/CMakeLists.txt
--- dolphin.orig/Source/Core/DolphinNoGUI/CMakeLists.txt 2023-06-01 19:24:09.942002785 +0000
+++ dolphin/Source/Core/DolphinNoGUI/CMakeLists.txt 2023-06-02 18:37:56.625874236 +0000
+++ dolphin/Source/Core/DolphinNoGUI/CMakeLists.txt 2023-06-05 18:48:45.571837571 +0000
@@ -17,6 +17,22 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux"
target_sources(dolphin-nogui PRIVATE PlatformFBDev.cpp)
endif()
@ -526,7 +526,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/CMakeLists.txt dolphin/Source/C
target_link_libraries(dolphin-nogui
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/MainNoGUI.cpp dolphin/Source/Core/DolphinNoGUI/MainNoGUI.cpp
--- dolphin.orig/Source/Core/DolphinNoGUI/MainNoGUI.cpp 2023-06-01 19:24:09.942002785 +0000
+++ dolphin/Source/Core/DolphinNoGUI/MainNoGUI.cpp 2023-06-02 18:37:56.625874236 +0000
+++ dolphin/Source/Core/DolphinNoGUI/MainNoGUI.cpp 2023-06-05 18:48:45.571837571 +0000
@@ -155,6 +155,11 @@ static std::unique_ptr<Platform> GetPlat
{
std::string platform_name = static_cast<const char*>(options.get("platform"));
@ -552,7 +552,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/MainNoGUI.cpp dolphin/Source/Co
optparse::Values& options = CommandLineParse::ParseArguments(parser.get(), argc, argv);
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/Platform.h dolphin/Source/Core/DolphinNoGUI/Platform.h
--- dolphin.orig/Source/Core/DolphinNoGUI/Platform.h 2023-06-01 19:23:58.553632524 +0000
+++ dolphin/Source/Core/DolphinNoGUI/Platform.h 2023-06-02 18:37:56.625874236 +0000
+++ dolphin/Source/Core/DolphinNoGUI/Platform.h 2023-06-05 18:48:45.571837571 +0000
@@ -35,6 +35,10 @@ public:
static std::unique_ptr<Platform> CreateX11Platform();
#endif
@ -566,7 +566,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/Platform.h dolphin/Source/Core/
#endif
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformWayland.cpp dolphin/Source/Core/DolphinNoGUI/PlatformWayland.cpp
--- dolphin.orig/Source/Core/DolphinNoGUI/PlatformWayland.cpp 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformWayland.cpp 2023-06-04 13:26:47.829615568 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformWayland.cpp 2023-06-05 18:48:45.571837571 +0000
@@ -0,0 +1,348 @@
+// Copyright 2018 Dolphin Emulator Project
+// Licensed under GPLv2+
@ -918,7 +918,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformWayland.cpp dolphin/Sou
+}
diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformX11.cpp dolphin/Source/Core/DolphinNoGUI/PlatformX11.cpp
--- dolphin.orig/Source/Core/DolphinNoGUI/PlatformX11.cpp 2023-06-01 19:24:09.942002785 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformX11.cpp 2023-06-02 18:37:56.625874236 +0000
+++ dolphin/Source/Core/DolphinNoGUI/PlatformX11.cpp 2023-06-05 18:48:45.571837571 +0000
@@ -57,8 +57,8 @@ private:
#endif
int m_window_x = Config::Get(Config::MAIN_RENDER_WINDOW_XPOS);
@ -965,7 +965,7 @@ diff -rupN dolphin.orig/Source/Core/DolphinNoGUI/PlatformX11.cpp dolphin/Source/
}
diff -rupN dolphin.orig/Source/Core/InputCommon/GCPadStatus.h dolphin/Source/Core/InputCommon/GCPadStatus.h
--- dolphin.orig/Source/Core/InputCommon/GCPadStatus.h 2023-06-01 19:23:58.569633044 +0000
+++ dolphin/Source/Core/InputCommon/GCPadStatus.h 2023-06-02 18:37:56.653875108 +0000
+++ dolphin/Source/Core/InputCommon/GCPadStatus.h 2023-06-05 18:48:45.595838339 +0000
@@ -26,6 +26,7 @@ enum PadButton
PAD_BUTTON_X = 0x0400,
PAD_BUTTON_Y = 0x0800,
@ -976,7 +976,7 @@ diff -rupN dolphin.orig/Source/Core/InputCommon/GCPadStatus.h dolphin/Source/Cor
struct GCPadStatus
diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.cpp dolphin/Source/Core/VideoBackends/OGL/OGLRender.cpp
--- dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.cpp 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLRender.cpp 2023-06-02 18:37:56.665875481 +0000
+++ dolphin/Source/Core/VideoBackends/OGL/OGLRender.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -1079,7 +1079,7 @@ void Renderer::CheckForSurfaceChange()
if (!m_surface_changed.TestAndClear())
return;
@ -997,7 +997,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/OGL/OGLRender.cpp dolphin/Sour
m_system_framebuffer->UpdateDimensions(m_backbuffer_width, m_backbuffer_height);
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.cpp dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.cpp
--- dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.cpp 2023-06-01 19:23:58.577633304 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.cpp 2023-06-02 18:37:56.665875481 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -32,6 +32,16 @@ bool SWOGLWindow::IsHeadless() const
return m_gl_context->IsHeadless();
}
@ -1036,7 +1036,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.cpp dolph
GLsizei glHeight = (GLsizei)m_gl_context->GetBackBufferHeight();
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.h dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.h
--- dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.h 2023-06-01 19:23:58.577633304 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.h 2023-06-02 18:37:56.665875481 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWOGLWindow.h 2023-06-05 18:48:45.615838979 +0000
@@ -20,6 +20,10 @@ public:
GLContext* GetContext() const { return m_gl_context.get(); }
bool IsHeadless() const;
@ -1050,7 +1050,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWOGLWindow.h dolphin
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.cpp dolphin/Source/Core/VideoBackends/Software/SWRenderer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.cpp 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.cpp 2023-06-02 18:37:56.665875481 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -60,17 +60,17 @@ SWRenderer::CreateFramebuffer(AbstractTe
static_cast<SWTexture*>(depth_attachment));
}
@ -1106,7 +1106,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.cpp dolphi
u32 value = 0;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.h dolphin/Source/Core/VideoBackends/Software/SWRenderer.h
--- dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.h 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.h 2023-06-02 18:37:56.665875481 +0000
+++ dolphin/Source/Core/VideoBackends/Software/SWRenderer.h 2023-06-05 18:48:45.615838979 +0000
@@ -29,7 +29,7 @@ public:
std::unique_ptr<AbstractFramebuffer>
CreateFramebuffer(AbstractTexture* color_attachment, AbstractTexture* depth_attachment) override;
@ -1127,7 +1127,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Software/SWRenderer.h dolphin/
} // namespace SW
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CMakeLists.txt dolphin/Source/Core/VideoBackends/Vulkan/CMakeLists.txt
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/CMakeLists.txt 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CMakeLists.txt 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CMakeLists.txt 2023-06-05 18:48:45.615838979 +0000
@@ -35,6 +35,8 @@ add_library(videovulkan
VulkanContext.h
VulkanLoader.cpp
@ -1139,7 +1139,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CMakeLists.txt dolphin/
target_link_libraries(videovulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -10,24 +10,24 @@
#include "Common/MsgHandler.h"
#include "Common/Thread.h"
@ -1540,7 +1540,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.cp
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h 2023-06-05 18:48:45.615838979 +0000
@@ -22,10 +22,12 @@
namespace Vulkan
@ -1681,7 +1681,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/CommandBufferManager.h
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/Constants.h dolphin/Source/Core/VideoBackends/Vulkan/Constants.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/Constants.h 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/Constants.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/Constants.h 2023-06-05 18:48:45.615838979 +0000
@@ -12,7 +12,7 @@
namespace Vulkan
{
@ -1693,7 +1693,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/Constants.h dolphin/Sou
constexpr size_t NUM_FRAMES_IN_FLIGHT = 2;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp 2023-06-01 19:24:09.954003175 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -389,6 +389,8 @@ VkSampler ObjectCache::GetSampler(const
VkRenderPass ObjectCache::GetRenderPass(VkFormat color_format, VkFormat depth_format,
u32 multisamples, VkAttachmentLoadOp load_op)
@ -1714,7 +1714,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.cpp dolphin
m_render_pass_cache.clear();
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.h dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.h 2023-06-01 19:23:58.577633304 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/ObjectCache.h 2023-06-05 18:48:45.615838979 +0000
@@ -7,6 +7,7 @@
#include <cstddef>
#include <map>
@ -1733,7 +1733,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/ObjectCache.h dolphin/S
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp dolphin/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp 2023-06-01 19:23:58.577633304 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -8,6 +8,7 @@
#include "Common/Assert.h"
@ -1756,7 +1756,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StagingBuffer.cpp dolph
void StagingBuffer::BufferMemoryBarrier(VkCommandBuffer command_buffer, VkBuffer buffer,
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.cpp dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -16,59 +16,93 @@
namespace Vulkan
@ -2157,7 +2157,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.cpp dolphi
&m_compute_descriptor_set, 1, &m_bindings.utility_ubo_offset);
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.h dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.h 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/StateTracker.h 2023-06-05 18:48:45.615838979 +0000
@@ -13,28 +13,24 @@
namespace Vulkan
@ -2234,7 +2234,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/StateTracker.h dolphin/
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -12,6 +12,7 @@
#include "VideoBackends/Vulkan/StagingBuffer.h"
#include "VideoBackends/Vulkan/StateTracker.h"
@ -2373,7 +2373,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKBoundingBox.cpp dolph
bool VKBoundingBox::CreateGPUBuffer()
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKMain.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKMain.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKMain.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKMain.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKMain.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -18,6 +18,7 @@
#include "VideoBackends/Vulkan/VKVertexManager.h"
#include "VideoBackends/Vulkan/VulkanContext.h"
@ -2459,7 +2459,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKMain.cpp dolphin/Sour
UnloadVulkanLibrary();
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -11,6 +11,7 @@
#include "Common/Logging/Log.h"
#include "Common/MsgHandler.h"
@ -2580,7 +2580,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKPerfQuery.cpp dolphin
}
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -31,6 +31,7 @@
#include "VideoBackends/Vulkan/VKVertexFormat.h"
#include "VideoBackends/Vulkan/VulkanContext.h"
@ -3302,7 +3302,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp dolphin/
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -0,0 +1,155 @@
+// Copyright 2022 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
@ -3461,7 +3461,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.cpp dolphin
+} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.h dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.h 1970-01-01 00:00:00.000000000 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKScheduler.h 2023-06-05 18:48:45.615838979 +0000
@@ -0,0 +1,160 @@
+// Copyright 2022 Dolphin Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
@ -3625,7 +3625,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKScheduler.h dolphin/S
+} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp 2023-06-01 19:23:58.577633304 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -12,6 +12,7 @@
#include "Common/MsgHandler.h"
@ -3700,7 +3700,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKStreamBuffer.cpp dolp
m_current_offset = new_offset;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -13,9 +13,9 @@
#include "VideoBackends/Vulkan/CommandBufferManager.h"
@ -3866,7 +3866,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.cpp dolphin
return false;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.h dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.h 2023-06-01 19:23:58.577633304 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKSwapChain.h 2023-06-05 18:48:45.615838979 +0000
@@ -3,6 +3,7 @@
#pragma once
@ -3921,7 +3921,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKSwapChain.h dolphin/S
u32 m_layers = 0;
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.cpp 2023-06-01 19:44:08.124503603 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -21,6 +21,7 @@
#include "VideoBackends/Vulkan/VKStreamBuffer.h"
#include "VideoBackends/Vulkan/VulkanContext.h"
@ -4430,7 +4430,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.cpp dolphin/S
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.h dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.h 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKTexture.h 2023-06-05 18:48:45.615838979 +0000
@@ -67,8 +67,8 @@ public:
// irrelevant and will not be loaded.
void OverrideImageLayout(VkImageLayout new_layout);
@ -4444,7 +4444,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKTexture.h dolphin/Sou
bool CreateView(VkImageViewType type);
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp dolphin/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -15,6 +15,7 @@
#include "VideoBackends/Vulkan/CommandBufferManager.h"
#include "VideoBackends/Vulkan/StateTracker.h"
@ -4640,7 +4640,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp dol
} // namespace Vulkan
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp dolphin/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp 2023-06-05 18:48:45.615838979 +0000
@@ -274,6 +274,13 @@ bool VulkanContext::SelectInstanceExtens
return false;
}
@ -4657,7 +4657,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanContext.cpp dolph
!AddExtension(VK_KHR_ANDROID_SURFACE_EXTENSION_NAME, true))
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl dolphin/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl 2023-06-01 19:23:58.577633304 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl 2023-06-05 18:48:45.615838979 +0000
@@ -49,6 +49,11 @@ VULKAN_INSTANCE_ENTRY_POINT(vkCreateXlib
VULKAN_INSTANCE_ENTRY_POINT(vkGetPhysicalDeviceXlibPresentationSupportKHR, false)
#endif
@ -4672,7 +4672,7 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanEntryPoints.inl d
#endif
diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanLoader.h dolphin/Source/Core/VideoBackends/Vulkan/VulkanLoader.h
--- dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanLoader.h 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanLoader.h 2023-06-02 18:37:56.669875606 +0000
+++ dolphin/Source/Core/VideoBackends/Vulkan/VulkanLoader.h 2023-06-05 18:48:45.615838979 +0000
@@ -13,6 +13,10 @@
#define VK_USE_PLATFORM_XLIB_KHR
#endif
@ -4684,10 +4684,87 @@ diff -rupN dolphin.orig/Source/Core/VideoBackends/Vulkan/VulkanLoader.h dolphin/
#if defined(ANDROID)
#define VK_USE_PLATFORM_ANDROID_KHR
#endif
diff -rupN dolphin.orig/Source/Core/VideoCommon/FramebufferManager.cpp dolphin/Source/Core/VideoCommon/FramebufferManager.cpp
--- dolphin.orig/Source/Core/VideoCommon/FramebufferManager.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoCommon/FramebufferManager.cpp 2023-06-05 19:16:23.547426723 +0000
@@ -630,7 +630,7 @@ void FramebufferManager::DestroyReadback
bool FramebufferManager::CreateReadbackFramebuffer()
{
- if (g_renderer->GetEFBScale() != 1)
+ if (g_renderer->IsUnscaled())
{
const TextureConfig color_config(IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_WIDTH,
IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_HEIGHT, 1,
@@ -651,7 +651,7 @@ bool FramebufferManager::CreateReadbackF
(IsUsingTiledEFBCache() && !g_ActiveConfig.backend_info.bSupportsPartialDepthCopies) ||
!AbstractTexture::IsCompatibleDepthAndColorFormats(m_efb_depth_texture->GetFormat(),
GetEFBDepthCopyFormat()) ||
- g_renderer->GetEFBScale() != 1)
+ g_renderer->IsUnscaled())
{
const TextureConfig depth_config(IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_WIDTH,
IsUsingTiledEFBCache() ? m_efb_cache_tile_size : EFB_HEIGHT, 1,
@@ -731,7 +731,7 @@ void FramebufferManager::PopulateEFBCach
const MathUtil::Rectangle<int> native_rect = g_renderer->ConvertEFBRectangle(rect);
AbstractTexture* src_texture =
depth ? ResolveEFBDepthTexture(native_rect) : ResolveEFBColorTexture(native_rect);
- if (g_renderer->GetEFBScale() != 1 || force_intermediate_copy)
+ if (g_renderer->IsUnscaled() || force_intermediate_copy)
{
// Downsample from internal resolution to 1x.
// TODO: This won't produce correct results at IRs above 2x. More samples are required.
@@ -918,7 +918,7 @@ void FramebufferManager::CreatePokeVerti
// GPU will expand the point to a quad.
const float cs_x = (static_cast<float>(x) + 0.5f) * cs_pixel_width - 1.0f;
const float cs_y = 1.0f - (static_cast<float>(y) + 0.5f) * cs_pixel_height;
- const float point_size = static_cast<float>(g_renderer->GetEFBScale());
+ const float point_size = g_renderer->GetEFBScalef();
destination_list->push_back({{cs_x, cs_y, z, point_size}, color});
return;
}
diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.cpp dolphin/Source/Core/VideoCommon/RenderBase.cpp
--- dolphin.orig/Source/Core/VideoCommon/RenderBase.cpp 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoCommon/RenderBase.cpp 2023-06-02 18:37:56.677875855 +0000
@@ -711,16 +711,20 @@ bool Renderer::IsHeadless() const
+++ dolphin/Source/Core/VideoCommon/RenderBase.cpp 2023-06-05 20:18:15.508539814 +0000
@@ -364,19 +364,24 @@ void Renderer::RenderToXFB(u32 xfbAddr,
return;
}
-unsigned int Renderer::GetEFBScale() const
+bool Renderer::IsUnscaled() const
{
- return m_efb_scale;
+ return m_efb_scale == 2;
+}
+
+float Renderer::GetEFBScalef() const
+{
+ return m_efb_scale / 2.0f;
}
int Renderer::EFBToScaledX(int x) const
{
- return x * static_cast<int>(m_efb_scale);
+ return x * static_cast<int>(m_efb_scale) / 2;
}
int Renderer::EFBToScaledY(int y) const
{
- return y * static_cast<int>(m_efb_scale);
+ return y * static_cast<int>(m_efb_scale) / 2;
}
float Renderer::EFBToScaledXf(float x) const
@@ -391,7 +396,7 @@ float Renderer::EFBToScaledYf(float y) c
std::tuple<int, int> Renderer::CalculateTargetScale(int x, int y) const
{
- return std::make_tuple(x * static_cast<int>(m_efb_scale), y * static_cast<int>(m_efb_scale));
+ return std::make_tuple(x * static_cast<int>(m_efb_scale) / 2, y * static_cast<int>(m_efb_scale) / 2);
}
// return true if target size changed
@@ -711,16 +716,20 @@ bool Renderer::IsHeadless() const
return true;
}
@ -4712,8 +4789,18 @@ diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.cpp dolphin/Source/Co
diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.h dolphin/Source/Core/VideoCommon/RenderBase.h
--- dolphin.orig/Source/Core/VideoCommon/RenderBase.h 2023-06-01 19:24:09.958003305 +0000
+++ dolphin/Source/Core/VideoCommon/RenderBase.h 2023-06-02 18:37:56.677875855 +0000
@@ -246,8 +246,8 @@ public:
+++ dolphin/Source/Core/VideoCommon/RenderBase.h 2023-06-05 19:00:51.760701274 +0000
@@ -193,7 +193,8 @@ public:
std::tuple<MathUtil::Rectangle<int>, MathUtil::Rectangle<int>>
ConvertStereoRectangle(const MathUtil::Rectangle<int>& rc) const;
- unsigned int GetEFBScale() const;
+ bool IsUnscaled() const;
+ float GetEFBScalef() const;
// Use this to upscale native EFB coordinates to IDEAL internal resolution
int EFBToScaledX(int x) const;
@@ -246,8 +247,8 @@ public:
VideoCommon::PostProcessing* GetPostProcessor() const { return m_post_processor.get(); }
// Final surface changing
// This is called when the surface is resized (WX) or the window changes (Android).
@ -4724,7 +4811,7 @@ diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.h dolphin/Source/Core
bool UseVertexDepthRange() const;
void DoState(PointerWrap& p);
@@ -342,6 +342,8 @@ protected:
@@ -342,6 +343,8 @@ protected:
std::unique_ptr<VideoCommon::PostProcessing> m_post_processor;
void* m_new_surface_handle = nullptr;
@ -4733,3 +4820,34 @@ diff -rupN dolphin.orig/Source/Core/VideoCommon/RenderBase.h dolphin/Source/Core
Common::Flag m_surface_changed;
Common::Flag m_surface_resized;
std::mutex m_swap_mutex;
@@ -357,7 +360,8 @@ private:
std::tuple<int, int> CalculateOutputDimensions(int width, int height) const;
PixelFormat m_prev_efb_format = PixelFormat::INVALID_FMT;
- unsigned int m_efb_scale = 1;
+ // Scale in steps of 0.5x. Value of 2 is scale of 1 (unscaled).
+ unsigned int m_efb_scale = 2;
// These will be set on the first call to SetWindowSize.
int m_last_window_request_width = 0;
diff -rupN dolphin.orig/Source/Core/VideoCommon/TextureCacheBase.cpp dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp
--- dolphin.orig/Source/Core/VideoCommon/TextureCacheBase.cpp 2023-06-01 19:24:09.962003435 +0000
+++ dolphin/Source/Core/VideoCommon/TextureCacheBase.cpp 2023-06-05 19:37:47.708471335 +0000
@@ -1046,7 +1046,7 @@ static void SetSamplerState(u32 index, f
// that have arbitrary contents, eg. are used for fog effects where the
// distance they kick in at is important to preserve at any resolution.
// Correct this with the upscaling factor of custom textures.
- s32 lod_offset = std::log2(g_renderer->GetEFBScale() / custom_tex_scale) * 256.f;
+ s64 lod_offset = std::log2(g_renderer->GetEFBScalef() / custom_tex_scale) * (s64) 256.f;
state.tm0.lod_bias = std::clamp<s32>(state.tm0.lod_bias + lod_offset, -32768, 32767);
// Anisotropic also pushes mips farther away so it cannot be used either
@@ -2221,7 +2221,7 @@ void TextureCacheBase::CopyRenderTargetT
// TODO: This only produces perfect downsampling for 2x IR, other resolutions will need more
// complex down filtering to average all pixels and produce the correct result.
const bool linear_filter =
- !is_depth_copy && (scaleByHalf || g_renderer->GetEFBScale() != 1 || y_scale > 1.0f);
+ !is_depth_copy && (scaleByHalf || g_renderer->IsUnscaled() || y_scale > 1.0f);
TCacheEntry* entry = nullptr;
if (copy_to_vram)

View file

@ -13,7 +13,7 @@ fi
#Check if GC custom controller profile exists in .config/dolphin-emu
if [ ! -f "/storage/.config/dolphin-emu/Custom_GCPadNew.ini" ]; then
cp -r "/usr/config/dolphin-emu/GCPadNew.ini" "/storage/.config/dolphin-emu/Custom_GCPadNew.ini"
cp -r "/usr/config/dolphin-emu/GCPadNew.ini.south" "/storage/.config/dolphin-emu/Custom_GCPadNew.ini"
fi
#Link Save States to /roms/savestates
@ -24,6 +24,10 @@ fi
rm -rf /storage/.config/dolphin-emu/StateSaves
ln -sf /storage/roms/savestates/gamecube /storage/.config/dolphin-emu/StateSaves
#Grab a clean settings file during boot
cp -r /usr/config/dolphin-emu/GFX.ini /storage/.config/dolphin-emu.GFX.ini
cp -r /usr/config/dolphin-emu/Dolphin.ini /storage/.config/dolphin-emu.Dolphin.ini
#Set the cores to use
CORES=$(get_setting "cores" "${PLATFORM}" "${ROMNAME##*/}")
if [ "${CORES}" = "little" ]
@ -46,6 +50,8 @@ fi
IRES=$(get_setting internal_resolution gamecube "${GAME}")
FPS=$(get_setting show_fps gamecube "${GAME}")
CON=$(get_setting gamecube_controller_profile gamecube "${GAME}")
SHADERM=$(get_setting shader_mode gamecube "${GAME}")
SHADERP=$(get_setting shader_precompile gamecube "${GAME}")
VSYNC=$(get_setting vsync gamecube "${GAME}")
#Anti-Aliasing
@ -136,7 +142,6 @@ fi
then
sed -i '/GFXBackend/c\GFXBackend = OGL' /storage/.config/dolphin-emu/Dolphin.ini
fi
if [ "$RENDERER" = "vulkan" ]
then
sed -i '/GFXBackend/c\GFXBackend = Vulkan' /storage/.config/dolphin-emu/Dolphin.ini
@ -147,19 +152,52 @@ fi
fi
#Internal Resolution
if [ "$IRES" = "1" ]
if [ "$IRES" = "0" ]
then
sed -i '/InternalResolution/c\InternalResolution = 1' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$IRES" = "2" ]
if [ "$IRES" = "1" ]
then
sed -i '/InternalResolution/c\InternalResolution = 2' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$IRES" = "2" ]
then
sed -i '/InternalResolution/c\InternalResolution = 4' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$IRES" = "3" ]
then
sed -i '/InternalResolution/c\InternalResolution = 3' /storage/.config/dolphin-emu/GFX.ini
sed -i '/InternalResolution/c\InternalResolution = 6' /storage/.config/dolphin-emu/GFX.ini
fi
#Shader Mode
if [ "$SHADERM" = "0" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 0' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERM" = "1" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 1' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERM" = "2" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 2' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERM" = "3" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 3' /storage/.config/dolphin-emu/GFX.ini
fi
#Shader Precompile
if [ "$SHADERP" = "false" ]
then
sed -i '/WaitForShadersBeforeStarting =/c\WaitForShadersBeforeStarting = False' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERP" = "true" ]
then
sed -i '/WaitForShadersBeforeStarting =/c\WaitForShadersBeforeStarting = True' /storage/.config/dolphin-emu/GFX.ini
fi
#Show FPS
if [ "$FPS" = "false" ]
then

View file

@ -24,6 +24,13 @@ if [ ! -d "/storage/roms/savestates/wii/" ]; then
mkdir -p "/storage/roms/savestates/wii/"
fi
rm -rf /storage/.config/dolphin-emu/StateSaves
ln -sf /storage/roms/savestates/wii /storage/.config/dolphin-emu/StateSaves
#Grab a clean settings file during boot
cp -r /usr/config/dolphin-emu/GFX.ini /storage/.config/dolphin-emu.GFX.ini
cp -r /usr/config/dolphin-emu/Dolphin.ini /storage/.config/dolphin-emu.Dolphin.ini
#Set the cores to use
CORES=$(get_setting "cores" "${PLATFORM}" "${ROMNAME##*/}")
if [ "${CORES}" = "little" ]
@ -37,9 +44,6 @@ else
unset EMUPERF
fi
rm -rf /storage/.config/dolphin-emu/StateSaves
ln -sf /storage/roms/savestates/wii /storage/.config/dolphin-emu/StateSaves
#Emulation Station options
GAME=$(echo "${1}"| sed "s#^/.*/##")
AA=$(get_setting anti_aliasing wii "${GAME}")
@ -49,6 +53,8 @@ ln -sf /storage/roms/savestates/wii /storage/.config/dolphin-emu/StateSaves
IRES=$(get_setting internal_resolution wii "${GAME}")
FPS=$(get_setting show_fps wii "${GAME}")
CON=$(get_setting wii_controller_profile wii "${GAME}")
SHADERM=$(get_setting shader_mode wii "${GAME}")
SHADERP=$(get_setting shader_precompile wii "${GAME}")
VSYNC=$(get_setting vsync wii "${GAME}")
#Anti-Aliasing
@ -150,17 +156,49 @@ ln -sf /storage/roms/savestates/wii /storage/.config/dolphin-emu/StateSaves
fi
#Internal Resolution
if [ "$IRES" = "1" ]
if [ "$IRES" = "0" ]
then
sed -i '/InternalResolution/c\InternalResolution = 1' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$IRES" = "2" ]
if [ "$IRES" = "1" ]
then
sed -i '/InternalResolution/c\InternalResolution = 2' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$IRES" = "2" ]
then
sed -i '/InternalResolution/c\InternalResolution = 4' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$IRES" = "3" ]
then
sed -i '/InternalResolution/c\InternalResolution = 3' /storage/.config/dolphin-emu/GFX.ini
sed -i '/InternalResolution/c\InternalResolution = 6' /storage/.config/dolphin-emu/GFX.ini
fi
#Shader Mode
if [ "$SHADERM" = "0" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 0' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERM" = "1" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 1' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERM" = "2" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 2' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERM" = "3" ]
then
sed -i '/ShaderCompilationMode =/c\ShaderCompilationMode = 3' /storage/.config/dolphin-emu/GFX.ini
fi
#Shader Precompile
if [ "$SHADERP" = "false" ]
then
sed -i '/WaitForShadersBeforeStarting =/c\WaitForShadersBeforeStarting = False' /storage/.config/dolphin-emu/GFX.ini
fi
if [ "$SHADERP" = "true" ]
then
sed -i '/WaitForShadersBeforeStarting =/c\WaitForShadersBeforeStarting = True' /storage/.config/dolphin-emu/GFX.ini
fi
#Show FPS
@ -174,9 +212,13 @@ ln -sf /storage/roms/savestates/wii /storage/.config/dolphin-emu/StateSaves
fi
#Wii Controller Profile
if [ "$CON" = "remote" ]
if [ "$CON" = "vremote" ]
then
cp -r /usr/config/dolphin-emu/WiiControllerProfiles/remote.ini /storage/.config/dolphin-emu/WiimoteNew.ini
cp -r /usr/config/dolphin-emu/WiiControllerProfiles/vremote.ini /storage/.config/dolphin-emu/WiimoteNew.ini
fi
if [ "$CON" = "hremote" ]
then
cp -r /usr/config/dolphin-emu/WiiControllerProfiles/hremote.ini /storage/.config/dolphin-emu/WiimoteNew.ini
fi
if [ "$CON" = "nunchuck" ]
then

View file

@ -69,25 +69,36 @@
<choice name="125%" value="3"/>
<choice name="150%" value="4"/>
</feature>
<feature name="gamecube controller profile">
<choice name="gcpad - a south" value="south"/>
<choice name="gcpad - a west" value="west"/>
<choice name="custom" value="custom"/>
</feature>
<feature name="graphics backend">
<choice name="opengl" value="opengl"/>
<choice name="vulkan" value="vulkan"/>
<choice name="software" value="software"/>
</feature>
<feature name="internal resolution">
<choice name="native (480p)" value="1"/>
<choice name=".5x (240p)" value="0"/>
<choice name="1x (480p)" value="1"/>
<choice name="2x (720P)" value="2"/>
<choice name="3x (1080P)" value="3"/>
</feature>
<feature name="shader mode">
<choice name="specialized (fast)" value="0"/>
<choice name="hybrid (slow)" value="1"/>
<choice name="uber (slowest)" value="2"/>
<choice name="skip (fastest" value="3"/>
</feature>
<feature name="shader precompile">
<choice name="yes" value="true"/>
<choice name="no" value="false"/>
</feature>
<feature name="show fps">
<choice name="yes" value="true"/>
<choice name="no" value="false"/>
</feature>
<feature name="gamecube controller profile">
<choice name="gcpad - a south" value="south"/>
<choice name="gcpad - a west" value="west"/>
<choice name="custom" value="custom"/>
</feature>
<feature name="vsync">
<choice name="off" value="0"/>
<choice name="on" value="1"/>
@ -124,17 +135,29 @@
<choice name="software" value="software"/>
</feature>
<feature name="internal resolution">
<choice name=".5x (240p)" value="0"/>
<choice name="native (480p)" value="1"/>
<choice name="2x (720P)" value="2"/>
<choice name="3x (1080P)" value="3"/>
</feature>
<feature name="shader mode">
<choice name="specialized (fast)" value="0"/>
<choice name="hybrid (slow)" value="1"/>
<choice name="uber (slowest)" value="2"/>
<choice name="skip (fastest" value="3"/>
</feature>
<feature name="shader precompile">
<choice name="yes" value="true"/>
<choice name="no" value="false"/>
</feature>
<feature name="show fps">
<choice name="yes" value="true"/>
<choice name="no" value="false"/>
</feature>
<feature name="wii controller profile">
<choice name="Wiimote" value="remote"/>
<choice name="Wiimote w/ Nunchuck" value="nunchuck"/>
<choice name="wiimote - vertical" value="vremote"/>
<choice name="wiimote - horizontal" value="hremote"/>
<choice name="wiimote w/ Nunchuck" value="nunchuck"/>
<choice name="Classic Controller" value="classic"/>
<choice name="custom" value="custom"/>
</feature>