Rework the present mode settings, refactor.

This commit is contained in:
Henrik Rydgård
2025-10-20 15:10:31 +02:00
parent 4c0b011b0e
commit 042cf87248
65 changed files with 284 additions and 175 deletions
+10
View File
@@ -161,6 +161,13 @@ public:
void BeginFrame(DebugFlags debugFlags) override;
void EndFrame() override;
void Present(PresentMode presentMode) override;
PresentMode GetCurrentPresentMode() const override {
if (currentInterval_ == 1) {
return PresentMode::FIFO;
} else {
return PresentMode::IMMEDIATE;
}
}
int GetFrameCount() override { return frameCount_; }
@@ -272,6 +279,8 @@ private:
D3D_FEATURE_LEVEL featureLevel_;
std::string adapterDesc_;
std::vector<std::string> deviceList_;
int currentInterval_ = -1;
};
D3D11DrawContext::D3D11DrawContext(ComPtr<ID3D11Device> device, ComPtr<ID3D11DeviceContext> deviceContext, ComPtr<ID3D11Device1> device1, ComPtr<ID3D11DeviceContext1> deviceContext1, ComPtr<IDXGISwapChain> swapChain, D3D_FEATURE_LEVEL featureLevel, HWND hWnd, std::vector<std::string> deviceList, int maxInflightFrames)
@@ -492,6 +501,7 @@ void D3D11DrawContext::Present(PresentMode presentMode) {
#endif
}
swapChain_->Present(interval, flags);
currentInterval_ = interval;
}
curRenderTargetView_.Reset();
+11
View File
@@ -368,6 +368,9 @@ public:
void BeginFrame(DebugFlags debugFlags) override;
void EndFrame() override;
void Present(PresentMode mode) override;
PresentMode GetCurrentPresentMode() const override {
return requestedPresentMode_;
}
int GetFrameCount() override {
return frameCount_;
@@ -527,6 +530,8 @@ private:
GLPushBuffer *push;
};
FrameData frameData_[GLRenderManager::MAX_INFLIGHT_FRAMES]{};
PresentMode requestedPresentMode_{};
};
static constexpr int MakeIntelSimpleVer(int v1, int v2, int v3) {
@@ -812,8 +817,14 @@ void OpenGLContext::EndFrame() {
}
void OpenGLContext::Present(PresentMode presentMode) {
if ((caps_.presentModesSupported & presentMode) == 0) {
ERROR_LOG(Log::G3D, "Present mode %d not supported", (int)presentMode);
_dbg_assert_(false);
}
renderManager_.Present();
frameCount_++;
requestedPresentMode_ = presentMode;
}
void OpenGLContext::Invalidate(InvalidationFlags flags) {
+2 -2
View File
@@ -946,10 +946,10 @@ void VulkanContext::SetDebugNameImpl(uint64_t handle, VkObjectType type, const c
VkResult VulkanContext::InitSurface(WindowSystem winsys, void *data1, void *data2) {
winsys_ = winsys;
if (winsysData1_ != data1) {
if (winsysData1_ != data1 && winsysData1_ != 0) {
WARN_LOG(Log::G3D, "winsysData1 changed from %p to %p", winsysData1_, data1);
}
if (winsysData2_ != data2) {
if (winsysData2_ != data2 && winsysData2_ != 0) {
WARN_LOG(Log::G3D, "winsysData2 changed from %p to %p", winsysData2_, data2);
}
winsysData1_ = data1;
+14
View File
@@ -501,7 +501,21 @@ public:
void BeginFrame(DebugFlags debugFlags) override;
void EndFrame() override;
void Present(PresentMode presentMode) override;
PresentMode GetCurrentPresentMode() const override {
switch (vulkan_->GetPresentMode()) {
case VK_PRESENT_MODE_IMMEDIATE_KHR:
return PresentMode::IMMEDIATE;
case VK_PRESENT_MODE_MAILBOX_KHR:
return PresentMode::MAILBOX;
case VK_PRESENT_MODE_FIFO_KHR:
case VK_PRESENT_MODE_FIFO_RELAXED_KHR:
case VK_PRESENT_MODE_FIFO_LATEST_READY_KHR:
default:
return PresentMode::FIFO;
}
}
int GetFrameCount() override {
return frameCount_;
+1
View File
@@ -860,6 +860,7 @@ public:
// Some backends also can't change presentation mode immediately.
virtual void Present(PresentMode presentMode) = 0;
virtual PresentMode GetCurrentPresentMode() const = 0;
// This should be avoided as much as possible, in favor of clearing when binding a render target, which is native
// on Vulkan.
+1 -19
View File
@@ -605,24 +605,6 @@ struct ConfigTranslator {
typedef ConfigTranslator<GPUBackend, GPUBackendToString, GPUBackendFromString> GPUBackendTranslator;
static int FastForwardModeFromString(const std::string &s) {
if (!strcasecmp(s.c_str(), "CONTINUOUS"))
return (int)FastForwardMode::CONTINUOUS;
if (!strcasecmp(s.c_str(), "SKIP_FLIP"))
return (int)FastForwardMode::SKIP_FLIP;
return DefaultFastForwardMode();
}
static std::string FastForwardModeToString(int v) {
switch (FastForwardMode(v)) {
case FastForwardMode::CONTINUOUS:
return "CONTINUOUS";
case FastForwardMode::SKIP_FLIP:
return "SKIP_FLIP";
}
return "CONTINUOUS";
}
static std::string DefaultInfrastructureUsername() {
// If the user has already picked a Nickname that satisfies the rules and is not "PPSSPP",
// let's use that.
@@ -718,7 +700,7 @@ static const ConfigSetting graphicsSettings[] = {
ConfigSetting("TexScalingType", &g_Config.iTexScalingType, 0, CfgFlag::PER_GAME | CfgFlag::REPORT),
ConfigSetting("TexDeposterize", &g_Config.bTexDeposterize, false, CfgFlag::PER_GAME | CfgFlag::REPORT),
ConfigSetting("TexHardwareScaling", &g_Config.bTexHardwareScaling, false, CfgFlag::PER_GAME | CfgFlag::REPORT),
ConfigSetting("VSync", &g_Config.bVSync, true, CfgFlag::PER_GAME),
ConfigSetting("VerticalSync", &g_Config.bVSync, true, CfgFlag::PER_GAME),
ConfigSetting("LowLatencyPresent", &g_Config.bLowLatencyPresent, true, CfgFlag::PER_GAME),
ConfigSetting("BloomHack", &g_Config.iBloomHack, 0, CfgFlag::PER_GAME | CfgFlag::REPORT),
-8
View File
@@ -147,14 +147,6 @@ ENUM_CLASS_BITOPS(DisableHLEFlags);
std::string GPUBackendToString(GPUBackend backend);
GPUBackend GPUBackendFromString(std::string_view backend);
// Vulkan present modes, linearized. Currently in order of lowest to highest latency, hopefully won't change in the future.
// NOTE: These values DO NOT match the flags in DrawContext caps - these are not used as a bitfield.
enum class PresentMode {
Immediate = 0, // VK_PRESENT_MODE_IMMEDIATE_KHR
Mailbox = 1, // VK_PRESENT_MODE_MAILBOX_KHR
Fifo = 2, // VK_PRESENT_MODE_FIFO_KHR
};
// For iIOTimingMethod.
enum IOTimingMethods {
IOTIMING_FAST = 0,
+53 -57
View File
@@ -22,6 +22,7 @@
#include "ppsspp_config.h"
#include "Common/Profiler/Profiler.h"
#include "Common/Log.h"
#include "Common/System/Display.h"
#include "Common/TimeUtil.h"
#include "Core/RetroAchievements.h"
@@ -56,22 +57,6 @@ void WaitUntil(double now, double timestamp, const char *reason) {
#endif
}
inline Draw::PresentMode GetBestImmediateMode(Draw::PresentMode supportedModes) {
if (supportedModes & Draw::PresentMode::MAILBOX) {
return Draw::PresentMode::MAILBOX;
} else {
return Draw::PresentMode::IMMEDIATE;
}
}
void FrameTiming::Reset(Draw::DrawContext *draw) {
if (g_Config.bVSync || !(draw->GetDeviceCaps().presentModesSupported & (Draw::PresentMode::MAILBOX | Draw::PresentMode::IMMEDIATE))) {
presentMode = Draw::PresentMode::FIFO;
} else {
presentMode = GetBestImmediateMode(draw->GetDeviceCaps().presentModesSupported);
}
}
void FrameTiming::DeferWaitUntil(double until, double *curTimePtr) {
_dbg_assert_(until > 0.0);
waitUntil_ = until;
@@ -89,54 +74,65 @@ void FrameTiming::PostSubmit() {
}
}
Draw::PresentMode ComputePresentMode(Draw::DrawContext *draw) {
_assert_(draw);
void FrameTiming::ComputePresentMode(Draw::DrawContext *draw, bool fastForward) {
_dbg_assert_(draw);
if (!draw) {
fastForwardSkipFlip_ = true;
presentMode_ = Draw::PresentMode::FIFO;
return;
}
Draw::PresentMode mode = Draw::PresentMode::FIFO;
_dbg_assert_(draw->GetDeviceCaps().presentModesSupported != (Draw::PresentMode)0);
if (draw->GetDeviceCaps().presentModesSupported & (Draw::PresentMode::IMMEDIATE | Draw::PresentMode::MAILBOX)) {
// Switch to immediate if desired and possible.
bool wantInstant = false;
if (!g_Config.bVSync) {
wantInstant = true;
if (draw->GetDeviceCaps().presentModesSupported == Draw::PresentMode::FIFO) {
// Only FIFO mode is supported (like on iOS and some GLES backends).
fastForwardSkipFlip_ = true;
presentMode_ = Draw::PresentMode::FIFO;
return;
}
// More than one present mode is supported. Use careful logic.
// The user has requested vsync off.
if (!g_Config.bVSync) {
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::IMMEDIATE) {
// Use immediate mode, whether fast-forwarding or not.
presentMode_ = Draw::PresentMode::IMMEDIATE;
fastForwardSkipFlip_ = false;
return;
}
// Inconsistent state - vsync is off but immediate mode is not supported.
// We will simply force on VSync.
g_Config.bVSync = true;
}
if (PSP_CoreParameter().fastForward && NetworkAllowSpeedControl()) {
wantInstant = true;
// At this point, vsync is always on. What decides now is whether MAILBOX or IMMEDIATE is available,
// and also if we need an unsynced mode.
// OK, vsync is requested (or immediate is not available). If mailbox is supported, it works the same as IMMEDIATE above.
if (g_Config.bLowLatencyPresent) {
// Use mailbox if available. It works fine for both fast-forward and normal.
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::MAILBOX) {
presentMode_ = Draw::PresentMode::MAILBOX;
fastForwardSkipFlip_ = false;
return;
}
// We could force off lowLatencyPresent here, but it's no good when changing between backends.
// So let's leave it on in the background, maybe the user just went from Vulkan to OpenGL.
}
FPSLimit limit = PSP_CoreParameter().fpsLimit;
if (!NetworkAllowSpeedControl()) {
limit = FPSLimit::NORMAL;
}
if (limit != FPSLimit::NORMAL) {
int limit;
if (PSP_CoreParameter().fpsLimit == FPSLimit::CUSTOM1)
limit = g_Config.iFpsLimit1;
else if (PSP_CoreParameter().fpsLimit == FPSLimit::CUSTOM2)
limit = g_Config.iFpsLimit2;
else
limit = PSP_CoreParameter().analogFpsLimit;
// For an alternative speed that is a clean factor of 60, the user probably still wants vsync.
// TODO: Should take the user's display refresh rate into account...
if (limit == 0 || (limit >= 0 && limit != 15 && limit != 30 && limit != 60)) {
wantInstant = true;
}
}
if (wantInstant && g_Config.bVSync && !draw->GetDeviceCaps().presentInstantModeChange) {
// If in vsync mode (which will be FIFO), and the backend can't switch immediately,
// stick to FIFO.
wantInstant = false;
}
// The outer if checks that instant modes are available.
if (wantInstant) {
mode = GetBestImmediateMode(draw->GetDeviceCaps().presentModesSupported);
// At this point, low-latency mode is not available, and vsync is on. We see if we can use INSTANT
// mode for fast-forwarding, or if we need to resort to frameskipping.
if (draw->GetDeviceCaps().presentInstantModeChange) {
if (fastForward) {
presentMode_ = Draw::PresentMode::IMMEDIATE;
fastForwardSkipFlip_ = false;
return;
}
}
return mode;
// Finally, fallback to FIFO mode, with skip-flip in fast-forward.
presentMode_ = Draw::PresentMode::FIFO;
fastForwardSkipFlip_ = true;
}
+11 -4
View File
@@ -12,18 +12,25 @@ class FrameTiming {
public:
void DeferWaitUntil(double until, double *curTimePtr);
void PostSubmit();
void Reset(Draw::DrawContext *draw);
void ComputePresentMode(Draw::DrawContext *draw, bool fastForward);
// Some backends won't allow changing this willy nilly.
Draw::PresentMode presentMode;
bool FastForwardNeedsSkipFlip() const {
return fastForwardSkipFlip_;
}
Draw::PresentMode PresentMode() const {
return presentMode_;
}
private:
// For use on the next Present. These two are set by ComputePresentMode.
Draw::PresentMode presentMode_;
bool fastForwardSkipFlip_;
double waitUntil_;
double *curTimePtr_;
};
extern FrameTiming g_frameTiming;
Draw::PresentMode ComputePresentMode(Draw::DrawContext *draw);
void WaitUntil(double now, double timestamp, const char *reason);
+11 -21
View File
@@ -580,22 +580,6 @@ void __DisplayFlip(int cyclesLate) {
bool duplicateFrames = g_Config.bRenderDuplicateFrames && g_Config.iFrameSkip == 0;
bool fastForwardSkipFlip = false;
Draw::DrawContext *draw = gpu->GetDrawContext();
if (draw) {
g_frameTiming.presentMode = ComputePresentMode(draw);
if (!draw->GetDeviceCaps().presentInstantModeChange && g_frameTiming.presentMode == Draw::PresentMode::FIFO) {
// Some backends can't just flip into MAILBOX/IMMEDIATE mode instantly.
// Vulkan doesn't support the interval setting, so we force skipping the flip.
// TODO: We'll clean this up in a more backend-independent way later.
fastForwardSkipFlip = true;
}
} else {
// Surely can never get here?
g_frameTiming.presentMode = Draw::PresentMode::FIFO;
}
if (!g_Config.bSkipBufferEffects) {
postEffectRequiresFlip = duplicateFrames || g_Config.bShaderChainRequires60FPS;
}
@@ -606,11 +590,14 @@ void __DisplayFlip(int cyclesLate) {
const bool fbDirty = gpu->FramebufferDirty();
Draw::DrawContext *draw = gpu->GetDrawContext();
bool needFlip = fbDirty || noRecentFlip || postEffectRequiresFlip;
if (!needFlip) {
// Okay, there's no new frame to draw, game might be sitting in a static loading screen
// or similar, and not long enough to trigger noRecentFlip. But audio may be playing, so we need to time still.
DoFrameIdleTiming();
g_frameTiming.ComputePresentMode(draw, false);
return;
}
@@ -624,10 +611,16 @@ void __DisplayFlip(int cyclesLate) {
bool forceNoFlip = false;
float refreshRate = System_GetPropertyFloat(SYSPROP_DISPLAY_REFRESH_RATE);
// Avoid skipping on devices that have 58 or 59 FPS, except when alternate speed is set.
bool refreshRateNeedsSkip = FrameTimingLimit() != framerate && FrameTimingLimit() > refreshRate;
const double fpsLimit = FrameTimingLimit();
bool throttle = fpsLimit != 0.0;
bool refreshRateNeedsSkip = fpsLimit != framerate && fpsLimit > refreshRate || !throttle;
g_frameTiming.ComputePresentMode(draw, refreshRateNeedsSkip);
// Alternative to frameskip fast-forward, where we draw everything.
// Useful if skipping a frame breaks graphics or for checking drawing speed.
if (fastForwardSkipFlip && (!FrameTimingThrottled() || refreshRateNeedsSkip)) {
if (g_frameTiming.FastForwardNeedsSkipFlip() && (!FrameTimingThrottled() || refreshRateNeedsSkip)) {
static double lastFlip = 0;
double now = time_now_d();
if ((now - lastFlip) < 1.0f / refreshRate) {
@@ -662,9 +655,6 @@ void __DisplayFlip(int cyclesLate) {
gpuStats.numFlips++;
}
bool throttle = FrameTimingThrottled();
int fpsLimit = FrameTimingLimit();
float scaledTimestep = (float)numVBlanksSinceFlip * timePerVblank;
if (fpsLimit > 0 && fpsLimit != framerate) {
scaledTimestep *= (float)framerate / fpsLimit;
+7 -5
View File
@@ -21,6 +21,7 @@
#include "Common/GPU/Vulkan/VulkanContext.h"
#include "Common/Data/Text/Parsers.h"
#include "Core/Config.h"
#include "Core/FrameTiming.h"
#include "GPU/Vulkan/VulkanUtil.h"
#ifdef _DEBUG
@@ -36,14 +37,15 @@ const VkComponentMapping VULKAN_1555_SWIZZLE = { VK_COMPONENT_SWIZZLE_B, VK_COMP
const VkComponentMapping VULKAN_565_SWIZZLE = { VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_IDENTITY };
const VkComponentMapping VULKAN_8888_SWIZZLE = { VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY };
VkPresentModeKHR ConfigPresentModeToVulkan() {
PresentMode presentMode = (PresentMode)g_Config.iVulkanPresentationMode;
VkPresentModeKHR ConfigPresentModeToVulkan(Draw::DrawContext *draw) {
g_frameTiming.ComputePresentMode(draw, false);
Draw::PresentMode presentMode = g_frameTiming.PresentMode();
switch (presentMode) {
case PresentMode::Immediate:
case Draw::PresentMode::IMMEDIATE:
return VK_PRESENT_MODE_IMMEDIATE_KHR;
case PresentMode::Mailbox:
case Draw::PresentMode::MAILBOX:
return VK_PRESENT_MODE_MAILBOX_KHR;
case PresentMode::Fifo:
case Draw::PresentMode::FIFO:
default:
return VK_PRESENT_MODE_FIFO_KHR;
}
+1 -1
View File
@@ -89,5 +89,5 @@ private:
VkShaderModule CompileShaderModule(VulkanContext *vulkan, VkShaderStageFlagBits stage, const char *code, std::string *error);
VkPresentModeKHR ConfigPresentModeToVulkan();
VkPresentModeKHR ConfigPresentModeToVulkan(Draw::DrawContext *draw);
void InitVulkanCreateInfoFromConfig(VulkanContext::CreateInfo *info);
+8 -7
View File
@@ -128,18 +128,19 @@ bool SDLVulkanGraphicsContext::Init(SDL_Window *&window, int x, int y, int w, in
break;
}
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
bool useMultiThreading = g_Config.bRenderMultiThreading;
if (g_Config.iInflightFrames == 1) {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(vulkan_, useMultiThreading);
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
if (!vulkan_->InitSwapchain(presentMode)) {
*error_message = vulkan_->InitError();
Shutdown();
return false;
}
bool useMultiThreading = g_Config.bRenderMultiThreading;
if (g_Config.iInflightFrames == 1) {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(vulkan_, useMultiThreading);
SetGPUBackend(GPUBackend::VULKAN);
bool success = draw_->CreatePresets();
_assert_(success);
@@ -170,7 +171,7 @@ void SDLVulkanGraphicsContext::Resize() {
// NOTE: Removing DestroySwapchain here causes a double re-create on MacOS with MoltenVK, for some reason.
// It's like passing on oldSwapchain doesn't really work as expected.
vulkan_->DestroySwapchain();
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
vulkan_->InitSwapchain(presentMode);
draw_->HandleEvent(Draw::Event::GOT_BACKBUFFER, vulkan_->GetBackbufferWidth(), vulkan_->GetBackbufferHeight());
}
+7 -2
View File
@@ -132,14 +132,19 @@ static void DrawFrameTiming(UIContext *ctx, const Bounds &bounds) {
char statBuf[1024]{};
Draw::DrawContext *draw = ctx->GetDrawContext();
ctx->Flush();
ctx->BindFontTexture();
ctx->Draw()->SetFontScale(0.5f, 0.5f);
// NOTE: This is not necessarily the same as the actual present mode.
snprintf(statBuf, sizeof(statBuf),
"Timing mode (interval): %s",
Draw::PresentModeToString(g_frameTiming.presentMode));
"Presentation mode: %s Needs skip: %s\n"
"Actual presentation mode: %s",
Draw::PresentModeToString(g_frameTiming.PresentMode()),
g_frameTiming.FastForwardNeedsSkipFlip() ? "true" : "false"),
Draw::PresentModeToString(draw->GetCurrentPresentMode());
ctx->Draw()->DrawTextRect(ubuntu24, statBuf, bounds.x + 10, bounds.y + 50, bounds.w - 20, bounds.h - 30, 0xFFFFFFFF, FLAG_DYNAMIC_ASCII);
+25 -23
View File
@@ -355,6 +355,10 @@ void GameSettingsScreen::CreateGraphicsSettings(UI::ViewGroup *graphicsSettings)
}
#endif
graphicsSettings->Add(new CheckBox(&g_Config.bReplaceTextures, dev->T("Replace textures")));
graphicsSettings->Add(new ItemHeader(gr->T("Display")));
if (deviceType != DEVICE_TYPE_VR) {
#if !defined(MOBILE_DEVICE)
graphicsSettings->Add(new CheckBox(&g_Config.bFullScreen, gr->T("FullScreen", "Full Screen")))->OnClick.Handle(this, &GameSettingsScreen::OnFullscreenChange);
@@ -367,28 +371,6 @@ void GameSettingsScreen::CreateGraphicsSettings(UI::ViewGroup *graphicsSettings)
}
#endif
// If only one mode is supported (like FIFO on iOS), no need to show the options.
if (CountSetBits((u32)draw->GetDeviceCaps().presentModesSupported) > 1) {
// Immediate means non-synchronized, tearing.
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::IMMEDIATE) {
CheckBox *vSync = graphicsSettings->Add(new CheckBox(&g_Config.bVSync, gr->T("VSync")));
vSync->OnClick.Add([=](EventParams &e) {
NativeResized(); // TODO: Remove
});
}
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::MAILBOX) {
CheckBox *lowLatency = graphicsSettings->Add(new CheckBox(&g_Config.bLowLatencyPresent, gr->T("Low latency presentation")));
lowLatency->OnClick.Add([=](EventParams &e) {
NativeResized(); // TODO: Remove
});
// If the immediate mode is supported, we can tie low latency present to VSync.
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::IMMEDIATE) {
lowLatency->SetEnabledPtr(&g_Config.bVSync);
}
}
}
#if PPSSPP_PLATFORM(ANDROID)
// Hide Immersive Mode on pre-kitkat Android
if (System_GetPropertyInt(SYSPROP_SYSTEMVERSION) >= 19) {
@@ -403,7 +385,27 @@ void GameSettingsScreen::CreateGraphicsSettings(UI::ViewGroup *graphicsSettings)
});
}
graphicsSettings->Add(new CheckBox(&g_Config.bReplaceTextures, dev->T("Replace textures")));
// If only one mode is supported (like FIFO on iOS), no need to show the options.
if (CountSetBits((u32)draw->GetDeviceCaps().presentModesSupported) > 1) {
// Immediate means non-synchronized, tearing.
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::IMMEDIATE) {
CheckBox *vSync = graphicsSettings->Add(new CheckBox(&g_Config.bVSync, gr->T("VSync")));
vSync->OnClick.Add([=](EventParams &e) {
NativeResized(); // TODO: Remove
});
}
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::MAILBOX) {
CheckBox *lowLatency = graphicsSettings->Add(new CheckBox(&g_Config.bLowLatencyPresent, gr->T("Low latency display")));
lowLatency->OnClick.Add([=](EventParams &e) {
NativeResized(); // TODO: Remove
});
// If the immediate mode is supported, we can tie low latency present to VSync.
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::IMMEDIATE) {
lowLatency->SetEnabledPtr(&g_Config.bVSync);
}
}
}
graphicsSettings->Add(new ItemHeader(gr->T("Frame Rate Control")));
static const char *frameSkip[] = {"Off", "1", "2", "3", "4", "5", "6", "7", "8"};
+3 -3
View File
@@ -1179,7 +1179,8 @@ void NativeFrame(GraphicsContext *graphicsContext) {
if (g_Config.bGpuLogProfiler)
debugFlags |= Draw::DebugFlags::PROFILE_SCOPES;
g_frameTiming.Reset(g_draw);
// Can be overridden by sceDisplay which may pass true for the second argument.
g_frameTiming.ComputePresentMode(g_draw, false);
g_draw->BeginFrame(debugFlags);
@@ -1206,8 +1207,7 @@ void NativeFrame(GraphicsContext *graphicsContext) {
ClearFailedGPUBackends();
}
Draw::PresentMode presentMode = ComputePresentMode(g_draw);
g_draw->Present(presentMode);
g_draw->Present(g_frameTiming.PresentMode());
if (resized) {
INFO_LOG(Log::G3D, "Resized flag set - recalculating bounds");
+10 -8
View File
@@ -52,6 +52,7 @@
#include "Core/Config.h"
#include "Core/ConfigValues.h"
#include "Core/System.h"
#include "Core/FrameTiming.h"
#include "Common/GPU/Vulkan/VulkanLoader.h"
#include "Common/GPU/Vulkan/VulkanContext.h"
@@ -117,19 +118,20 @@ bool WindowsVulkanContext::Init(HINSTANCE hInst, HWND hWnd, std::string *error_m
vulkan_->InitSurface(WINDOWSYSTEM_WIN32, (void *)hInst, (void *)hWnd);
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
if (!vulkan_->InitSwapchain(presentMode)) {
*error_message = vulkan_->InitError();
Shutdown();
return false;
}
bool useMultiThreading = g_Config.bRenderMultiThreading;
if (g_Config.iInflightFrames == 1) {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(vulkan_, useMultiThreading);
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
if (!vulkan_->InitSwapchain(presentMode)) {
*error_message = vulkan_->InitError();
Shutdown();
return false;
}
SetGPUBackend(GPUBackend::VULKAN, vulkan_->GetPhysicalDeviceProperties(deviceNum).properties.deviceName);
bool success = draw_->CreatePresets();
_assert_msg_(success, "Failed to compile preset shaders");
@@ -166,7 +168,7 @@ void WindowsVulkanContext::Shutdown() {
void WindowsVulkanContext::Resize() {
draw_->HandleEvent(Draw::Event::LOST_BACKBUFFER, vulkan_->GetBackbufferWidth(), vulkan_->GetBackbufferHeight());
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
vulkan_->InitSwapchain(presentMode);
draw_->HandleEvent(Draw::Event::GOT_BACKBUFFER, vulkan_->GetBackbufferWidth(), vulkan_->GetBackbufferHeight());
}
+8 -7
View File
@@ -70,14 +70,15 @@ bool AndroidVulkanContext::InitFromRenderThread(ANativeWindow *wnd, int desiredB
return false;
}
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
bool useMultiThreading = g_Config.bRenderMultiThreading;
if (g_Config.iInflightFrames == 1) {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(g_Vulkan, useMultiThreading);
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
bool success = false;
if (g_Vulkan->InitSwapchain(presentMode)) {
bool useMultiThreading = g_Config.bRenderMultiThreading;
if (g_Config.iInflightFrames == 1) {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(g_Vulkan, useMultiThreading);
SetGPUBackend(GPUBackend::VULKAN);
success = draw_->CreatePresets(); // Doesn't fail, we ship the compiler.
_assert_msg_(success, "Failed to compile preset shaders");
@@ -128,7 +129,7 @@ void AndroidVulkanContext::Resize() {
g_Vulkan->DestroySurface();
g_Vulkan->ReinitSurface();
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
g_Vulkan->InitSwapchain(presentMode);
draw_->HandleEvent(Draw::Event::GOT_BACKBUFFER, g_Vulkan->GetBackbufferWidth(), g_Vulkan->GetBackbufferHeight());
INFO_LOG(Log::G3D, "AndroidVulkanContext::Resize end (final size: %dx%d)", g_Vulkan->GetBackbufferWidth(), g_Vulkan->GetBackbufferHeight());
+2
View File
@@ -651,6 +651,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = عرض
Display layout & effects = ‎أظهر مُعدل النسق
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -686,6 +687,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = ‎خطي
Low = ‎منخفض
Low latency display = عرض تأخير منخفض
LowCurves = Spline/Bezier curves quality
LowCurves Tip = ‎فقط يستخدم من بعض الألعاب, يتحكم بنعومة المنحنيات
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Ekran
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linear
Low = Low
Low latency display = Aşağı gecikmə ekranı
LowCurves = Spline/Bezier curves quality
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -626,6 +626,7 @@ CPU texture upscaler (slow) = Тып маштабавання
Current GPU driver = Бягучы драйвер ГП
Default GPU driver = Стандартны драйвер ГП
Disable culling = Disable culling
Display = Дисплей
Display layout & effects = Размяшчэнне экрана і эфекты
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
Drivers = Драйверы
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Аклюзія блікаў аб'ектыва
Linear = Лінейны
Low = Нізкая
Low latency display = Дыск з нізкай затрымкай
LowCurves = Якасць сплайнаў і крывых Безье
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Меншае разрозненне для эфектаў (памяншае артэфакты)
+2
View File
@@ -643,6 +643,7 @@ Device = Устройство
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Дисплей
Display layout & effects = Оформление и ефекти на дисплея
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = По-бързо, но може да причини п
Lens flare occlusion = Запушване на отблясъка на обектива
Linear = Линеарно
Low = Ниско
Low latency display = Дисплей с ниска латентност
LowCurves = Качество на сплайните и кривите на Безие
LowCurves Tip = Използва се само от някои игри, контролира плавността на кривите
Lower resolution for effects (reduces artifacts) = По-ниска резолюция за ефекти (намалява артефактите)
+2
View File
@@ -643,6 +643,7 @@ Device = Dispositiu
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Desactivat
Display = Pantalla
Display layout & effects = Editor de l'àrea de pantalla
Display Resolution (HW scaler) = Resolució de pantalla (escalat per maquinari)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Ràpid, però puc provocar problemes als textos d'alg
Lens flare occlusion = Lens flare occlusion
Linear = Lineal
Low = Baixa
Low latency display = Pantalla de baixa latència
LowCurves = Qualitat de corbes Bézier
LowCurves Tip = Augmenta/redueix significativament el renderitzat de corbes Bézier
Lower resolution for effects (reduces artifacts) = Efectes en baixa resolució\n(redueix errors gràfics per escalat)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Displej
Display layout & effects = Zobrazit editor rozvržení
Display Resolution (HW scaler) = Rozlišení obrazovky (Hardwarové zvětšení)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Lineární
Low = Nízké
Low latency display = Displej s nízkou latencí
LowCurves = Kvalita křivek/Beziérových křivek
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Nižší rozlišení efektů (snižuje artefakty)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Skærm
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Skærmopløsning (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Lineær
Low = Lav
Low latency display = Lav latens display
LowCurves = Simple spline og bezier-kurver (hurtigere)
LowCurves Tip = Bruges kun af nogle spil, kontrollerer glathed af kurver
Lower resolution for effects (reduces artifacts) = Lavere opløsning for effekter (reducerer artefakter)
+2
View File
@@ -634,6 +634,7 @@ Device = Gerät
Direct3D 11 = Direct3D 11
Disable culling = Culling deaktivieren
Disabled = Deaktiviert
Display = Anzeige
Display layout & effects = Bildschirm-Layout & Effekte
Display Resolution (HW scaler) = Bildschirmauflösung (HW-Skalierer)
Driver requires Android API version %1, current is %2 = Treiber erfordert Android-API-Version %1, aktuell ist %2
@@ -669,6 +670,7 @@ Lazy texture caching Tip = Schneller, kann aber in einigen Spielen Textprobleme
Lens flare occlusion = Verdeckung von Linsenreflexionen
Linear = Linear
Low = Niedrig
Low latency display = Niedriglatenzdisplay
LowCurves = Spline-/Bezierkurven-Qualität
LowCurves Tip = Wird nur von einigen Spielen verwendet, es steuert die Glätte von Kurven
Lower resolution for effects (reduces artifacts) = Niedrigere Auflösung für Effekte (Reduziert Artifakte)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Tampilan
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Maruruh
Low = Low
Low latency display = Tampilan latensi rendah
LowCurves = Spline/Bezier curves quality
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -650,6 +650,7 @@ CPU texture upscaler (slow) = Upscale type
Current GPU driver = Current GPU driver
Default GPU driver = Default GPU driver
Disable culling = Disable culling
Display = Display
Display layout & effects = Display layout & effects
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
Drivers = Drivers
@@ -702,6 +703,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linear
Low = Low
Low latency display = Low latency display
LowCurves = Spline/Bezier curves quality
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -644,6 +644,7 @@ Device = Dispositivo
Direct3D 11 = Direct3D 11
Disable culling = Desactivar selección
Disabled = Desactivado
Display = Pantalla
Display layout & effects = Distribución de pantalla y efectos
Display Resolution (HW scaler) = Resolución de pantalla (escalado por hardware)
Driver requires Android API version %1, current is %2 = El controlador requiere la versión API de Android %1, la versión actual es %2
@@ -679,6 +680,7 @@ Lazy texture caching Tip = Más rápido, pero puede causar problemas de texto en
Lens flare occlusion = Oclusión por destello de lente
Linear = Lineal
Low = Baja
Low latency display = Pantalla de baja latencia
LowCurves = Calidad de curvas Spline/Bezier
LowCurves Tip = Solo lo utilizan algunos juegos, controla la suavidad de las curvas.
Lower resolution for effects (reduces artifacts) = Resolución más baja para efectos (reduce artefactos)
+2
View File
@@ -643,6 +643,7 @@ Device = Dispositivo
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Apagado
Display = Pantalla
Display layout & effects = Editar pantalla y Shaders
Display Resolution (HW scaler) = Resolución de pantalla (escalado por HW)
Driver requires Android API version %1, current is %2 = El controlador requiere la versión de API de Android %1, la actual es %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Más rápido, pero puede causar problemas de texto en
Lens flare occlusion = Lens flare occlusion
Linear = Lineal
Low = Baja
Low latency display = Pantalla de baja latencia
LowCurves = Calidad de curvas bézier/Spline
LowCurves Tip = Controla la calidad de las curvas renderizadas, pero solo se utiliza en ciertos juegos.
Lower resolution for effects (reduces artifacts) = Efectos en baja resolución\n(reduce errores gráficos por escalado)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = نمایش
Display layout & effects = چیدمان صفحه
Display Resolution (HW scaler) = رزولوشن صفحه
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = ‎خطی
Low = ‎کم
Low latency display = نمایش با تأخیر کم
LowCurves = Spline/Bezier کیفیت منحنی‌های
LowCurves Tip = ‎فقط در تعدادی بازی استفاده میشود، کیفیت منحنی‌ها را کنترل میکند
Lower resolution for effects (reduces artifacts) = ‎کاهش رزولوشن افکت‌ها (کاهش باگ گرافیکی)
+2
View File
@@ -643,6 +643,7 @@ Device = Laite
Direct3D 11 = Direct3D 11
Disable culling = Poista taustapintojen hylkääminen
Disabled = Poistettu käytöstä
Display = Näyttö
Display layout & effects = Näyttöasettelu ja -efektit
Display Resolution (HW scaler) = Näyttöresoluutio (Laitteiston skaalaaja)
Driver requires Android API version %1, current is %2 = Ajurin vaatima Android API -versio on %1, nykyinen versio on %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Nopeampi, mutta voi aiheuttaa tekstiongelmia joissaki
Lens flare occlusion = Lens flare occlusion
Linear = Lineaarinen
Low = Matala
Low latency display = Alhaisen viiveen näyttö
LowCurves = Spline/Bezier-käyrien laatu
LowCurves Tip = Käytetään vain joissakin peleissä, ohjaa käyrien sileyttä
Lower resolution for effects (reduces artifacts) = Alempi resoluutio efekteille (vähentää häiriöitä)
+2
View File
@@ -643,6 +643,7 @@ Device = Appareil
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Désactivé
Display = Affichage
Display layout & effects = Éditeur d'affichage
Display Resolution (HW scaler) = Définition d'affichage (mise à l'échelle matérielle)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linéaire
Low = Basse
Low latency display = Écran à faible latence
LowCurves = Qualité des courbes de Bézier et splines
LowCurves Tip = Seulement utilisé par certains jeux, contrôle le lissage des courbes
Lower resolution for effects (reduces artifacts) = Réduire définition des effets (réduit artéfacts)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Pantalla
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Resolución de pantalla (escalado por hardware)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Lineal
Low = Baixa
Low latency display = Pantalla de baixa latencia
LowCurves = Calidade de curvas bézier
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Απενεργοποιημένο
Display = Οθόνη
Display layout & effects = Επεξεργασία διάταξης οθόνης
Display Resolution (HW scaler) = Ανάλυση οθόνης (Κλιμακοτής hardware)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Γραμμικό
Low = Χαμηλή
Low latency display = Οθόνη χαμηλής καθυστέρησης
LowCurves = Ποιότητα καμπυλών spline/bezier
LowCurves Tip = Αυτή η επιλογή θα βελτιώσει/μειώσει σημαντικά την ποιότητα των παρεχόμενων καμπυλών
Lower resolution for effects (reduces artifacts) = Χαμηλότερη ανάλυση για εφέ (λιγότερα προβλήματα)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = תצוגה
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = קווי
Low = Low
Low latency display = תצוגה עם השהיה נמוכה
LowCurves = Spline/Bezier curves quality
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -640,6 +640,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = תצוגה
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -675,6 +676,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = יווק
Low = Low
Low latency display = תצוגה עם השהיה נמוכה
LowCurves = Spline/Bezier curves quality
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -643,6 +643,7 @@ Device = Uređaj
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Isključeno
Display = Prikaz
Display layout & effects = Prikaz layout uređivača
Display Resolution (HW scaler) = Prikaz rezolucije (HW mjeritelj)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linearno
Low = Nisko
Low latency display = Prikaz s niskom kašnjenjem
LowCurves = Dugačke/Bezijerove kvalitete zavoja
LowCurves Tip = Jedino korišteno od strane nekoliko igara, kontrolira uglađenost grafike
Lower resolution for effects (reduces artifacts) = Snizi rezoluciju za efekte (smanjuje artefakte)
+2
View File
@@ -643,6 +643,7 @@ Device = Eszköz
Direct3D 11 = Direct3D 11
Disable culling = Culling kikapcsolása
Disabled = Letiltva
Display = Kijelző
Display layout & effects = Nézet szerkesztő
Display Resolution (HW scaler) = Megjelenítési felbontás (HW skálázó)
Driver requires Android API version %1, current is %2 = A driverhez Android API %1 verzió szükséges, a jelenlegi %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Lineáris
Low = Alacsony
Low latency display = Alacsony késleltetésű kijelző
LowCurves = Spline/Bezier görbék minősége
LowCurves Tip = Csak néhány játék használja, a görbék simaságát szabályozza
Lower resolution for effects (reduces artifacts) = Alacsonyabb felbontású effektek (artifacteket csökkenti)
+2
View File
@@ -643,6 +643,7 @@ Device = Perangkat
Direct3D 11 = Direct3D 11
Disable culling = Nonaktifkan pemusnahan
Disabled = Nonaktif
Display = Tampilan
Display layout & effects = Penyesuaian tata letak tampilan
Display Resolution (HW scaler) = Resolusi tampilan (penskala HW)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Lebih cepat, tetapi dapat menyebabkan masalah teks di
Lens flare occlusion = Oklusi silau lensa
Linear = Linier
Low = Rendah
Low latency display = Tampilan latensi rendah
LowCurves = Kualitas kurva spline/bezier
LowCurves Tip = Hanya digunakan oleh beberapa permainan, mengontrol kualitas kurva bezier dan spline
Lower resolution for effects (reduces artifacts) = Resolusi efek lebih rendah (mengurangi artefak)
+2
View File
@@ -644,6 +644,7 @@ Direct3D 11 = Direct3D 11
#Disable slower effects (speedup) = Disattiva gli effetti più lenti (veloce)
Disable culling = Disabilita culling
Disabled = Disabilitato
Display = Display
Display layout & effects = Editor Display
Display Resolution (HW scaler) = Risoluzione Display (scaler HW)
Driver requires Android API version %1, current is %2 = Il driver richiede la versione API di Android %1, attualmente c'è la %2
@@ -679,6 +680,7 @@ Lazy texture caching Tip = Veloce, ma può causare problemi di testo in alcuni g
Lens flare occlusion = Occlusione lens flare
Linear = Lineare
Low = Bassa
Low latency display = Display a bassa latenza
LowCurves = Riduci qualità splines e curve di bezier (maggior velocità)
LowCurves Tip = Usato solo in alcuni giochi, controlla la fluidità delle curve
Lower resolution for effects (reduces artifacts) = Bassa risoluzione degli effetti (riduce gli artefatti)
+2
View File
@@ -643,6 +643,7 @@ Device = デバイス
Direct3D 11 = Direct3D 11
Disable culling = カリングを無効化
Disabled = 無効
Display = ディスプレイ
Display layout & effects = 画面のレイアウトを編集する
Display Resolution (HW scaler) = 画面解像度 (HWスケーラー)
Driver requires Android API version %1, current is %2 = ドライバーはAndroid API version %1を要求していますが, 現在 %2です
@@ -678,6 +679,7 @@ Lazy texture caching Tip = 高速化するがいくつかのゲームでテキ
Lens flare occlusion = レンズフレア表現への遮蔽処理
Linear = Linear
Low =
Low latency display = 低遅延ディスプレイ
LowCurves = スプライン/ベジェ曲線の品質
LowCurves Tip = いくつかのゲームでのみ用いられ、曲線の滑らかさをコントロールする
Lower resolution for effects (reduces artifacts) = エフェクトを低解像度にする (生成物を減らす)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Tampilan
Display layout & effects = Tata letak Tampilan editor
Display Resolution (HW scaler) = Resolusi tampilan (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linear
Low = Kurang
Low latency display = Layang latensi rendah
LowCurves = Kualitas kurva Spline/Bezier
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Resolusi ngisor kanggo efek (nyuda artefak)
+2
View File
@@ -626,6 +626,7 @@ CPU texture upscaler (slow) = 업스케일 유형
Current GPU driver = 현재 GPU 드라이버
Default GPU driver = 기본 GPU 드라이버
Disable culling = 컬링 비활성화
Display = 디스플레이
Display layout & effects = 화면 레이아웃 편집기
Driver requires Android API version %1, current is %2 = 드라이버에는 안드로이드 API 버전 %1이(가) 필요하며, 현재는 %2입니다.
Drivers = 드라이버
@@ -678,6 +679,7 @@ Lazy texture caching Tip = 더 빠르지만 몇몇 게임에서 텍스트 문제
Lens flare occlusion = 렌즈 플레어 차단
Linear = 선형 필터링
Low = 낮음
Low latency display = 낮은 지연 시간 디스플레이
LowCurves = 스플라인/베지어 곡선 품질
LowCurves Tip = 일부 게임에서만 사용되며, 곡선의 부드러움을 제어
Lower resolution for effects (reduces artifacts) = 효과에 대한 낮은 해상도 (인공물 감소)
+2
View File
@@ -640,6 +640,7 @@ CPU texture upscaler (slow) = Upscale type
Current GPU driver = Current GPU driver
Default GPU driver = Default GPU driver
Disable culling = Disable culling
Display = Nîşan
Display layout & effects = Display layout & effects
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
Drivers = Drivers
@@ -692,6 +693,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linear
Low = Low
Low latency display = Pêşangeha bi derfeta jê
LowCurves = Spline/Bezier curves quality
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = ສະແດງ
Display layout & effects = ແກ້ໄຂຮູບແບບໜ້າຈໍ
Display Resolution (HW scaler) = ຄວາມລະອຽດໜ້າຈໍ (ຕາມຮາດແວຣ໌)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linear
Low = ຕ່ຳ
Low latency display = ການສະແດງທີ່ມີລາຍການສະຫຼຸບແລະສົທານ
LowCurves = ລະດັບເສັ້ນສອງມິຕິ ຫຼື ເສັ້ນໂຄ້ງ
LowCurves Tip = ໃຊ້ສະເພາະບາງເກມ, ເພື່ອຄວບຄຸມຄວາມມື່ນໄຫຼຂອງເສັ້ນໂຄ້ງ
Lower resolution for effects (reduces artifacts) = ຫຼຸດຄວາມລະອຽດຂອງເອັບເຟກໃຫ້ຕ່ຳລົງ (ແກ້ພາບແຈ້ງ)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Ekranas
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Ekrano rezoliucija ("HW" ištiesinimas)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linijinis
Low = Žema
Low latency display = Žema uždelsimo ekranas
LowCurves = "Spline/Bezier" lankstumų kokybė
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Paparan
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Garis dekat
Low = Low
Low latency display = Paparan latensi rendah
LowCurves = Kualiti rendah splin dan keluk bezier (tingkatkan kelajuan)
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Display
Display layout & effects = Schermweergave bewerken
Display Resolution (HW scaler) = Schermresolutie (hardware)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Lineair
Low = Laag
Low latency display = Laag-latentie-display
LowCurves = Kwaliteit spline- en béziercurves
LowCurves Tip = Alleen gebruikt in sommige games, bestuurt de afronding van curves
Lower resolution for effects (reduces artifacts) = Effectresolutie verlagen (minder objecten)
+2
View File
@@ -643,6 +643,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Skjerm
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Lineær
Low = Low
Low latency display = Lav latens skjerm
LowCurves = Spline/Bezier curves quality
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -644,6 +644,7 @@ Device = Urządzenie
Direct3D 11 = Direct3D 11
Disable culling = Wyłącz przycinanie
Disabled = Wył.
Display = Wyświetlacz
Display layout & effects = Edytor położenia obrazu
Display Resolution (HW scaler) = Rozdzielczość ekranu (skaler sprz.)
Driver requires Android API version %1, current is %2 = Sterownik wymaga wersji %1 Android API, aktualna wersja to %2
@@ -674,6 +675,7 @@ Lazy texture caching Tip = Szybsze, ale może powodować problemy z tekstem/napi
Lens flare occlusion = Okluzja flary (halacji) obiektywu
Linear = Liniowe
Low = Niskie
Low latency display = Ekran o niskiej latencji
LowCurves = Detale krzywych sklejanych/Beziera (przyśpieszenie)
LowCurves Tip = Używane tylko przez niektóre gry, kontroluje gładkość krzywych
Lower resolution for effects (reduces artifacts) = Zmniejszenie rozdzielczość efektów (mniej błędów)
+2
View File
@@ -649,6 +649,7 @@ CPU texture upscaler (slow) = Tipo de ampliação
Current GPU driver = Driver da GPU Atual
Default GPU driver = Driver padrão da GPU
Disable culling = Desativar o culling
Display = Tela
Display layout & effects = Ajustar a tela & efeitos
Driver requires Android API version %1, current is %2 = O driver requer a versão %1 da API do Android, a atual é %2
Drivers = Drivers
@@ -701,6 +702,7 @@ Lazy texture caching Tip = Mais rápido mas pode causar problemas para carregar
Lens flare occlusion = Oclusão da luz da lente
Linear = Linear
Low = Baixa
Low latency display = Display de baixa latência
LowCurves = Qualidade das curvas spline/bezier
LowCurves Tip = Usado só por alguns jogos, controla a suavidade das curvas
Lower resolution for effects (reduces artifacts) = Resolução menor para efeitos (reduz artefatos)
+2
View File
@@ -667,6 +667,7 @@ Device = Dispositivo
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Desativado
Display = Ecrã
Display layout & effects = Mostrar o editor dos esquemas
Display Resolution (HW scaler) = Resolução da tela (Dimensionador do hardware)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -702,6 +703,7 @@ Lazy texture caching Tip = Mais rápido, mas pode causar problemas no texto em a
Lens flare occlusion = Lens flare occlusion
Linear = Linear
Low = Baixa
Low latency display = Ecrã de baixa latência
LowCurves = Qualidade das curvas spline/bezier
LowCurves Tip = Usado só em alguns jogos, controla a suavidade das curvas
Lower resolution for effects (reduces artifacts) = Menor Resolução dos efeitos (reduz artefatos)
+2
View File
@@ -644,6 +644,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Display
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Rezoluție ecran (scalare HW)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -679,6 +680,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linear
Low = Jos
Low latency display = Ecran cu latență scăzută
LowCurves = Calitate curbe Spline/Bezier
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Rezoluții mai mici pt. efecte (reduce artefacte)
+2
View File
@@ -643,6 +643,7 @@ Device = Устройство
Direct3D 11 = Direct3D 11
Disable culling = Отключить отбраковку
Disabled = Откл.
Display = Дисплей
Display layout & effects = Расположение экрана и эффектов
Display Resolution (HW scaler) = Разрешение экрана (аппаратное)
Driver requires Android API version %1, current is %2 = Для драйвера требуется Android API версии %1, текущая - %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Быстрее, но может вызвать про
Lens flare occlusion = Окклюзия бликов объектива
Linear = Линейный
Low = Низкое
Low latency display = Дисплей с низкой задержкой
LowCurves = Качество сплайнов и кривых Безье
LowCurves Tip = Используется в некоторых играх, влияет на плавность кривых
Lower resolution for effects (reduces artifacts) = Эффекты низкого качества (меньше артефактов)
+2
View File
@@ -644,6 +644,7 @@ Device = Enhet
Direct3D 11 = Direct3D 11
Disable culling = Inaktivera klippning
Disabled = Avstängd
Display = Skärm
Display layout & effects = Skärmlayout och effekter
Display Resolution (HW scaler) = Skärmupplösning (HW scaler)
Driver requires Android API version %1, current is %2 = Drivrutinen kräver Android-API-version %1, nuvarande är %2
@@ -679,6 +680,7 @@ Lazy texture caching Tip = Snabbare, men kan orsaka problem med text i vissa spe
Lens flare occlusion = Linsljus-blockering
Linear = Linjär
Low = Låg
Low latency display = Låg latens visning
LowCurves = Spline/Bezier-kvalitet
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lägre upplösning för effekter (bättre kvalitet)
+2
View File
@@ -644,6 +644,7 @@ Device = Device
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Disabled
Display = Намоиш
Display layout & effects = Display layout & effects
Display Resolution (HW scaler) = Display resolution (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -679,6 +680,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Linyar
Low = Low
Low latency display = Дисплей бо таъхир
LowCurves = Mababang kalidad ng splines at bezier curves (pampa-bilis)
LowCurves Tip = Only used by some games, controls smoothness of curves
Lower resolution for effects (reduces artifacts) = Lower resolution for effects (reduces artifacts)
+2
View File
@@ -660,6 +660,7 @@ Device = การ์ดจอ
Direct3D 11 = ไดเร็คท์ 3D 11
Disable culling = ปิดการใช้งาน culling
Disabled = ปิดการใช้งาน
Display = แสดงผล
Display layout & effects = รูปแบบหน้าจอ และเอฟเฟ็คท์
Display Resolution (HW scaler) = ความละเอียดหน้าจอ (ตามฮาร์ดแวร์)
Driver requires Android API version %1, current is %2 = ไดรเวอร์นี้ต้องการแอนดรอยด์ API ที่เวอร์ชั่น %1, แต่มือถือนี้ใช้เวอร์ชั่น %2
@@ -696,6 +697,7 @@ Lazy texture caching Tip = เร็วขึ้น แต่อาจจะท
Lens flare occlusion = การบดบังแสงเลนส์แฟลร์
Linear = แบบเชิงเส้น
Low = ต่ำ
Low latency display = จอแสดงผลการหน่วงเวลาต่ำ
LowCurves = ระดับของเส้นโค้ง Spline/Bezier
LowCurves Tip = ใช้แค่ในบางเกม ช่วยปรับคุณภาพของเส้นโค้งให้มีความเรียบเนียนขึ้น
Lower resolution for effects (reduces artifacts) = ลดความละเอียดของเอฟเฟ็คต์ให้ต่ำลง (ลดขอบภาพสว่าง)
+2
View File
@@ -645,6 +645,7 @@ Device = Cihaz
Direct3D 11 = Direct3D 11
Disable culling = Ayıklamayı Devre Dışı Bırak
Disabled = Devre Dışı
Display = Ekran
Display layout & effects = Ekran Düzeni ve Efektleri
Display Resolution (HW scaler) = Görüntü Çözünürlüğü (HW ölçek)
Driver requires Android API version %1, current is %2 = Sürücü, Android API'nin %1 sürümünü gerektiriyor, şu anki sürüm %2
@@ -680,6 +681,7 @@ Lazy texture caching Tip = Daha hızlıdır ancak bazı oyunlarda yazılarda sor
Lens flare occlusion = Lens parlaması tıkanıklığı
Linear = Doğrusal
Low = Düşük
Low latency display = Düşük gecikme ekranı
LowCurves = Düşük Eğriler
LowCurves Tip = Sadece bazı oyunlar tarafından kullanılır, eğrilerin pürüzsüzlüğünü kontrol eder
Lower resolution for effects (reduces artifacts) = Efektler İçin Düşük Çözünürlük (sorunları azaltır)
+2
View File
@@ -643,6 +643,7 @@ Device = Пристрій
Direct3D 11 = Direct3D 11
Disable culling = Вимкнути вибракування
Disabled = Вимкнено
Display = Відображення
Display layout & effects = Редактор розташування екрану
Display Resolution (HW scaler) = Розширення екрану (HW масштабування)
Driver requires Android API version %1, current is %2 = Драйвер вимагає Андроїд API версію %1, поточна %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Швидше, але може спричинити п
Lens flare occlusion = Оклюзія відблисків об'єктива
Linear = Лінійний
Low = Низька
Low latency display = Дисплей з низькою затримкою
LowCurves = Якість сплайну
LowCurves Tip = Використовується лише в деяких іграх, контролюючи плавність кривих
Lower resolution for effects (reduces artifacts) = Ефекти низької якості (зменшує артефакти)
+2
View File
@@ -643,6 +643,7 @@ Device = Thiết bị
Direct3D 11 = Direct3D 11
Disable culling = Disable culling
Disabled = Vô hiệu hóa
Display = Hiển thị
Display layout & effects = Chỉnh bố trí hiển thị
Display Resolution (HW scaler) = Độ phân giải màn hình (HW scaler)
Driver requires Android API version %1, current is %2 = Driver requires Android API version %1, current is %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = Faster, but can cause text problems in a few games
Lens flare occlusion = Lens flare occlusion
Linear = Tuyến tính
Low = Thấp
Low latency display = Màn hình độ trễ thấp
LowCurves = Đường cong Spline/bezier chất lượng thấp (tăng tốc)
LowCurves Tip = Chỉ được sử dụng bởi một số trò chơi, kiểm soát độ mượt của đường cong.
Lower resolution for effects (reduces artifacts) = Độ phân giải thấp cho các hiệu ứng (làm giảm vật thể)
+2
View File
@@ -643,6 +643,7 @@ Device = 设备
Direct3D 11 = Direct3D 11
Disable culling = 关闭遮挡剔除 (修复模型错误)
Disabled = 禁用
Display = 显示
Display layout & effects = 屏幕布局和滤镜
Display Resolution (HW scaler) = 屏幕分辨率
Driver requires Android API version %1, current is %2 = 驱动需要Android API版本 %1, 目前系统版本为%2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = 速度更快,并使部分游戏文字渲染出错
Lens flare occlusion = 镜头眩光遮挡
Linear = 线性过滤
Low = 低质量
Low latency display = 低延迟显示
LowCurves = 贝塞尔曲线质量 (提速)
LowCurves Tip = 调整曲线的绘制质量,只有少数游戏适用此设置
Lower resolution for effects (reduces artifacts) = 降低特效分辨率 (修复光晕效果)
+2
View File
@@ -643,6 +643,7 @@ Device = 裝置
Direct3D 11 = Direct3D 11
Disable culling = 停用揀選
Disabled = 已停用
Display = 顯示
Display layout & effects = 顯示版面配置與效果
Display Resolution (HW scaler) = 顯示解析度 (硬體縮放)
Driver requires Android API version %1, current is %2 = 驅動程式需要 Android API 版本為 %1,目前為 %2
@@ -678,6 +679,7 @@ Lazy texture caching Tip = 更快,但在某些遊戲中可能會造成文字
Lens flare occlusion = 鏡頭眩光遮蔽
Linear = 線性
Low =
Low latency display = 低延遲顯示
LowCurves = 曲線/貝茲曲線品質
LowCurves Tip = 僅供少數遊戲使用,控制曲線平滑度
Lower resolution for effects (reduces artifacts) = 降低效果解析度 (降低失真)
+10 -8
View File
@@ -77,8 +77,16 @@ bool IOSVulkanContext::InitFromRenderThread(CAMetalLayer *layer, int desiredBack
return false;
}
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
bool useMultiThreading = g_Config.bRenderMultiThreading;
if (g_Config.iInflightFrames == 1) {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(g_Vulkan, useMultiThreading);
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
if (!g_Vulkan->InitSwapchain(presentMode)) {
delete draw_;
ERROR_LOG(Log::G3D, "InitSwapchain failed");
g_Vulkan->DestroySwapchain();
g_Vulkan->DestroySurface();
@@ -87,12 +95,6 @@ bool IOSVulkanContext::InitFromRenderThread(CAMetalLayer *layer, int desiredBack
return false;
}
bool useMultiThreading = g_Config.bRenderMultiThreading;
if (g_Config.iInflightFrames == 1) {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(g_Vulkan, useMultiThreading);
SetGPUBackend(GPUBackend::VULKAN);
bool shaderSuccess = draw_->CreatePresets(); // Doesn't fail, we ship the compiler.
_assert_msg_(shaderSuccess, "Failed to compile preset shaders");
@@ -131,7 +133,7 @@ void IOSVulkanContext::Resize() {
g_Vulkan->DestroySwapchain();
g_Vulkan->DestroySurface();
g_Vulkan->ReinitSurface();
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan();
VkPresentModeKHR presentMode = ConfigPresentModeToVulkan(draw_);
g_Vulkan->InitSwapchain(presentMode);
draw_->HandleEvent(Draw::Event::GOT_BACKBUFFER, g_Vulkan->GetBackbufferWidth(), g_Vulkan->GetBackbufferHeight());
INFO_LOG(Log::G3D, "IOSVulkanContext::Resize end (final size: %dx%d)", g_Vulkan->GetBackbufferWidth(), g_Vulkan->GetBackbufferHeight());
+1
View File
@@ -139,6 +139,7 @@ void LibretroVulkanContext::CreateDrawContext() {
useMultiThreading = false;
}
draw_ = Draw::T3DCreateVulkanContext(vk, useMultiThreading);
((VulkanRenderManager*)draw_->GetNativeObject(Draw::NativeObject::RENDER_MANAGER))->SetInflightFrames(g_Config.iInflightFrames);
SetGPUBackend(GPUBackend::VULKAN);
}