mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-09 15:49:25 +01:00
Merge pull request #11205 from TellowKrinkle/AutoPresent
VideoBackends:Metal: Default to presentDrawable when vsync is on
This commit is contained in:
commit
a2f4606d33
@ -97,8 +97,8 @@ const Info<bool> GFX_CPU_CULL{{System::GFX, "Settings", "CPUCull"}, false};
|
|||||||
|
|
||||||
const Info<TriState> GFX_MTL_MANUALLY_UPLOAD_BUFFERS{
|
const Info<TriState> GFX_MTL_MANUALLY_UPLOAD_BUFFERS{
|
||||||
{System::GFX, "Settings", "ManuallyUploadBuffers"}, TriState::Auto};
|
{System::GFX, "Settings", "ManuallyUploadBuffers"}, TriState::Auto};
|
||||||
const Info<bool> GFX_MTL_USE_PRESENT_DRAWABLE{{System::GFX, "Settings", "MTLUsePresentDrawable"},
|
const Info<TriState> GFX_MTL_USE_PRESENT_DRAWABLE{
|
||||||
false};
|
{System::GFX, "Settings", "MTLUsePresentDrawable"}, TriState::Auto};
|
||||||
|
|
||||||
const Info<bool> GFX_SW_DUMP_OBJECTS{{System::GFX, "Settings", "SWDumpObjects"}, false};
|
const Info<bool> GFX_SW_DUMP_OBJECTS{{System::GFX, "Settings", "SWDumpObjects"}, false};
|
||||||
const Info<bool> GFX_SW_DUMP_TEV_STAGES{{System::GFX, "Settings", "SWDumpTevStages"}, false};
|
const Info<bool> GFX_SW_DUMP_TEV_STAGES{{System::GFX, "Settings", "SWDumpTevStages"}, false};
|
||||||
|
@ -85,7 +85,7 @@ extern const Info<bool> GFX_PREFER_VS_FOR_LINE_POINT_EXPANSION;
|
|||||||
extern const Info<bool> GFX_CPU_CULL;
|
extern const Info<bool> GFX_CPU_CULL;
|
||||||
|
|
||||||
extern const Info<TriState> GFX_MTL_MANUALLY_UPLOAD_BUFFERS;
|
extern const Info<TriState> GFX_MTL_MANUALLY_UPLOAD_BUFFERS;
|
||||||
extern const Info<bool> GFX_MTL_USE_PRESENT_DRAWABLE;
|
extern const Info<TriState> GFX_MTL_USE_PRESENT_DRAWABLE;
|
||||||
|
|
||||||
extern const Info<bool> GFX_SW_DUMP_OBJECTS;
|
extern const Info<bool> GFX_SW_DUMP_OBJECTS;
|
||||||
extern const Info<bool> GFX_SW_DUMP_TEV_STAGES;
|
extern const Info<bool> GFX_SW_DUMP_TEV_STAGES;
|
||||||
|
@ -459,7 +459,9 @@ void Metal::Renderer::PresentBackbuffer()
|
|||||||
// when windowed (or fullscreen with vsync enabled, but that's more understandable).
|
// when windowed (or fullscreen with vsync enabled, but that's more understandable).
|
||||||
// On the other hand, it helps Xcode's GPU captures start and stop on frame boundaries
|
// On the other hand, it helps Xcode's GPU captures start and stop on frame boundaries
|
||||||
// which is convenient. Put it here as a default-off config, which we can override in Xcode.
|
// which is convenient. Put it here as a default-off config, which we can override in Xcode.
|
||||||
if (g_ActiveConfig.bUsePresentDrawable)
|
// It also seems to improve frame pacing, so enable it by default with vsync
|
||||||
|
if (g_ActiveConfig.iUsePresentDrawable == TriState::On ||
|
||||||
|
(g_ActiveConfig.iUsePresentDrawable == TriState::Auto && g_ActiveConfig.bVSyncActive))
|
||||||
[g_state_tracker->GetRenderCmdBuf() presentDrawable:m_drawable];
|
[g_state_tracker->GetRenderCmdBuf() presentDrawable:m_drawable];
|
||||||
else
|
else
|
||||||
[g_state_tracker->GetRenderCmdBuf()
|
[g_state_tracker->GetRenderCmdBuf()
|
||||||
|
@ -56,7 +56,7 @@ void VideoConfig::Refresh()
|
|||||||
bVSync = Config::Get(Config::GFX_VSYNC);
|
bVSync = Config::Get(Config::GFX_VSYNC);
|
||||||
iAdapter = Config::Get(Config::GFX_ADAPTER);
|
iAdapter = Config::Get(Config::GFX_ADAPTER);
|
||||||
iManuallyUploadBuffers = Config::Get(Config::GFX_MTL_MANUALLY_UPLOAD_BUFFERS);
|
iManuallyUploadBuffers = Config::Get(Config::GFX_MTL_MANUALLY_UPLOAD_BUFFERS);
|
||||||
bUsePresentDrawable = Config::Get(Config::GFX_MTL_USE_PRESENT_DRAWABLE);
|
iUsePresentDrawable = Config::Get(Config::GFX_MTL_USE_PRESENT_DRAWABLE);
|
||||||
|
|
||||||
bWidescreenHack = Config::Get(Config::GFX_WIDESCREEN_HACK);
|
bWidescreenHack = Config::Get(Config::GFX_WIDESCREEN_HACK);
|
||||||
aspect_mode = Config::Get(Config::GFX_ASPECT_RATIO);
|
aspect_mode = Config::Get(Config::GFX_ASPECT_RATIO);
|
||||||
|
@ -177,7 +177,7 @@ struct VideoConfig final
|
|||||||
|
|
||||||
// Metal only config
|
// Metal only config
|
||||||
TriState iManuallyUploadBuffers = TriState::Auto;
|
TriState iManuallyUploadBuffers = TriState::Auto;
|
||||||
bool bUsePresentDrawable = false;
|
TriState iUsePresentDrawable = TriState::Auto;
|
||||||
|
|
||||||
// Enable API validation layers, currently only supported with Vulkan.
|
// Enable API validation layers, currently only supported with Vulkan.
|
||||||
bool bEnableValidationLayer = false;
|
bool bEnableValidationLayer = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user