mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Merge pull request #20900 from hrydgard/restore-vsync
Rework the VSync setting and related code to make more sense
This commit is contained in:
71 files changed
+369
-351
No files matched your search
@@ -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();
|
||||
|
||||
@@ -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,22 @@ void OpenGLContext::EndFrame() {
|
||||
}
|
||||
|
||||
void OpenGLContext::Present(PresentMode presentMode) {
|
||||
_dbg_assert_msg_((caps_.presentModesSupported & presentMode) != 0, "Present mode %d not supported", (int)presentMode);
|
||||
|
||||
// NOTE: renderManager_.SwapInterval has repeat protection: won't call glSwapInterval if the value is the same as current.
|
||||
switch (presentMode) {
|
||||
case PresentMode::IMMEDIATE:
|
||||
renderManager_.SwapInterval(0);
|
||||
break;
|
||||
case PresentMode::FIFO:
|
||||
default:
|
||||
renderManager_.SwapInterval(1);
|
||||
break;
|
||||
}
|
||||
|
||||
renderManager_.Present();
|
||||
frameCount_++;
|
||||
requestedPresentMode_ = presentMode;
|
||||
}
|
||||
|
||||
void OpenGLContext::Invalidate(InvalidationFlags flags) {
|
||||
|
||||
@@ -722,6 +722,7 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
|
||||
VkPhysicalDevicePresentWaitFeaturesKHR presentWaitFeatures{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR };
|
||||
VkPhysicalDevicePresentIdFeaturesKHR presentIdFeatures{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR };
|
||||
VkPhysicalDeviceProvokingVertexFeaturesEXT provokingVertexFeatures{ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT };
|
||||
VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR presentModeFifoProps{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR};
|
||||
|
||||
ChainStruct(features2, &multiViewFeatures);
|
||||
if (extensionsLookup_.KHR_present_wait) {
|
||||
@@ -733,6 +734,9 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
|
||||
if (extensionsLookup_.EXT_provoking_vertex) {
|
||||
ChainStruct(features2, &provokingVertexFeatures);
|
||||
}
|
||||
if (extensionsLookup_.KHR_present_mode_fifo_latest_ready) {
|
||||
ChainStruct(features2, &presentModeFifoProps);
|
||||
}
|
||||
vkGetPhysicalDeviceFeatures2(physical_devices_[physical_device_], &features2);
|
||||
deviceFeatures_.available.standard = features2.features;
|
||||
deviceFeatures_.available.multiview = multiViewFeatures;
|
||||
@@ -745,6 +749,9 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
|
||||
if (extensionsLookup_.EXT_provoking_vertex) {
|
||||
deviceFeatures_.available.provokingVertex = provokingVertexFeatures;
|
||||
}
|
||||
if (extensionsLookup_.KHR_present_mode_fifo_latest_ready) {
|
||||
deviceFeatures_.available.presentModeFifoProps = presentModeFifoProps;
|
||||
}
|
||||
} else {
|
||||
vkGetPhysicalDeviceFeatures(physical_devices_[physical_device_], &deviceFeatures_.available.standard);
|
||||
deviceFeatures_.available.multiview = {};
|
||||
@@ -784,6 +791,10 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
|
||||
if (extensionsLookup_.EXT_provoking_vertex) {
|
||||
deviceFeatures_.enabled.provokingVertex.provokingVertexLast = true;
|
||||
}
|
||||
deviceFeatures_.enabled.presentModeFifoProps = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR};
|
||||
if (extensionsLookup_.KHR_present_mode_fifo_latest_ready) {
|
||||
deviceFeatures_.enabled.presentModeFifoProps.presentModeFifoLatestReady = deviceFeatures_.available.presentModeFifoProps.presentModeFifoLatestReady;
|
||||
}
|
||||
|
||||
// deviceFeatures_.enabled.multiview.multiviewGeometryShader = deviceFeatures_.available.multiview.multiviewGeometryShader;
|
||||
|
||||
@@ -810,6 +821,9 @@ VkResult VulkanContext::CreateDevice(int physical_device) {
|
||||
if (extensionsLookup_.EXT_provoking_vertex) {
|
||||
ChainStruct(features2, &deviceFeatures_.enabled.provokingVertex);
|
||||
}
|
||||
if (extensionsLookup_.KHR_present_mode_fifo_latest_ready) {
|
||||
ChainStruct(features2, &deviceFeatures_.enabled.presentModeFifoProps);
|
||||
}
|
||||
} else {
|
||||
device_info.pEnabledFeatures = &deviceFeatures_.enabled.standard;
|
||||
}
|
||||
@@ -932,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;
|
||||
@@ -1229,6 +1243,15 @@ VkResult VulkanContext::ReinitSurface() {
|
||||
frame_[i].profiler.Init(this);
|
||||
}
|
||||
|
||||
// Query presentation modes. We need to know which ones are available for InitSwapchain().
|
||||
availablePresentModes_.clear();
|
||||
uint32_t presentModeCount;
|
||||
VkResult res = vkGetPhysicalDeviceSurfacePresentModesKHR(physical_devices_[physical_device_], surface_, &presentModeCount, nullptr);
|
||||
availablePresentModes_.resize(presentModeCount);
|
||||
_dbg_assert_(res == VK_SUCCESS);
|
||||
res = vkGetPhysicalDeviceSurfacePresentModesKHR(physical_devices_[physical_device_], surface_, &presentModeCount, availablePresentModes_.data());
|
||||
_dbg_assert_(res == VK_SUCCESS);
|
||||
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1366,15 +1389,6 @@ bool VulkanContext::InitSwapchain(VkPresentModeKHR desiredPresentMode) {
|
||||
return true;
|
||||
}
|
||||
|
||||
_dbg_assert_(res == VK_SUCCESS);
|
||||
uint32_t presentModeCount;
|
||||
res = vkGetPhysicalDeviceSurfacePresentModesKHR(physical_devices_[physical_device_], surface_, &presentModeCount, nullptr);
|
||||
_dbg_assert_(res == VK_SUCCESS);
|
||||
VkPresentModeKHR *presentModes = new VkPresentModeKHR[presentModeCount];
|
||||
_dbg_assert_(presentModes);
|
||||
res = vkGetPhysicalDeviceSurfacePresentModesKHR(physical_devices_[physical_device_], surface_, &presentModeCount, presentModes);
|
||||
_dbg_assert_(res == VK_SUCCESS);
|
||||
|
||||
VkExtent2D currentExtent{ surfCapabilities_.currentExtent };
|
||||
// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSurfaceCapabilitiesKHR.html
|
||||
// currentExtent is the current width and height of the surface, or the special value (0xFFFFFFFF, 0xFFFFFFFF) indicating that the surface size will be determined by the extent of a swapchain targeting the surface.
|
||||
@@ -1398,31 +1412,20 @@ bool VulkanContext::InitSwapchain(VkPresentModeKHR desiredPresentMode) {
|
||||
surfCapabilities_.maxImageExtent.width, surfCapabilities_.maxImageExtent.height,
|
||||
swapChainExtent_.width, swapChainExtent_.height);
|
||||
|
||||
availablePresentModes_.clear();
|
||||
// TODO: Find a better way to specify the prioritized present mode while being able
|
||||
// to fall back in a sensible way.
|
||||
VkPresentModeKHR swapchainPresentMode = VK_PRESENT_MODE_MAX_ENUM_KHR;
|
||||
std::string modes = "";
|
||||
for (size_t i = 0; i < presentModeCount; i++) {
|
||||
modes += VulkanPresentModeToString(presentModes[i]);
|
||||
if (i != presentModeCount - 1) {
|
||||
modes += ", ";
|
||||
}
|
||||
availablePresentModes_.push_back(presentModes[i]);
|
||||
}
|
||||
|
||||
// Kind of silly logic now, but at least it performs a final sanity check of the chosen value.
|
||||
for (size_t i = 0; i < presentModeCount; i++) {
|
||||
bool match = presentModes[i] == desiredPresentMode;
|
||||
for (size_t i = 0; i < availablePresentModes_.size(); i++) {
|
||||
bool match = availablePresentModes_[i] == desiredPresentMode;
|
||||
// Default to the first present mode from the list.
|
||||
if (match || swapchainPresentMode == VK_PRESENT_MODE_MAX_ENUM_KHR) {
|
||||
swapchainPresentMode = presentModes[i];
|
||||
swapchainPresentMode = availablePresentModes_[i];
|
||||
}
|
||||
if (match) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
delete[] presentModes;
|
||||
// Determine the number of VkImage's to use in the swap chain (we desire to
|
||||
// own only 1 image at a time, besides the images being displayed and
|
||||
// queued for display):
|
||||
@@ -1433,6 +1436,14 @@ bool VulkanContext::InitSwapchain(VkPresentModeKHR desiredPresentMode) {
|
||||
desiredNumberOfSwapChainImages = surfCapabilities_.maxImageCount;
|
||||
}
|
||||
|
||||
std::string modes = "";
|
||||
for (size_t i = 0; i < availablePresentModes_.size(); i++) {
|
||||
modes += VulkanPresentModeToString(availablePresentModes_[i]);
|
||||
if (i != availablePresentModes_.size() - 1) {
|
||||
modes += ", ";
|
||||
}
|
||||
}
|
||||
|
||||
INFO_LOG(Log::G3D, "Supported present modes: %s. Chosen present mode: %d (%s). numSwapChainImages: %d (max: %d)",
|
||||
modes.c_str(), swapchainPresentMode, VulkanPresentModeToString(swapchainPresentMode),
|
||||
desiredNumberOfSwapChainImages, surfCapabilities_.maxImageCount);
|
||||
|
||||
@@ -288,6 +288,7 @@ public:
|
||||
VkPhysicalDevicePresentWaitFeaturesKHR presentWait;
|
||||
VkPhysicalDevicePresentIdFeaturesKHR presentId;
|
||||
VkPhysicalDeviceProvokingVertexFeaturesEXT provokingVertex;
|
||||
VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR presentModeFifoProps;
|
||||
};
|
||||
|
||||
const PhysicalDeviceProps &GetPhysicalDeviceProperties(int i = -1) const {
|
||||
|
||||
@@ -430,10 +430,8 @@ public:
|
||||
PresentMode GetPresentMode() const {
|
||||
switch (vulkan_->GetPresentMode()) {
|
||||
case VK_PRESENT_MODE_FIFO_KHR: return PresentMode::FIFO;
|
||||
case VK_PRESENT_MODE_FIFO_RELAXED_KHR: return PresentMode::FIFO_RELAXED; // We treat is as FIFO for now (and won't ever enable it anyway...)
|
||||
case VK_PRESENT_MODE_IMMEDIATE_KHR: return PresentMode::IMMEDIATE;
|
||||
case VK_PRESENT_MODE_MAILBOX_KHR: return PresentMode::MAILBOX;
|
||||
case VK_PRESENT_MODE_FIFO_LATEST_READY_KHR: return PresentMode::FIFO_LATEST_READY;
|
||||
default: return PresentMode::FIFO;
|
||||
}
|
||||
}
|
||||
@@ -503,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_;
|
||||
@@ -896,6 +908,9 @@ VKContext::VKContext(VulkanContext *vulkan, bool useRenderThread)
|
||||
: vulkan_(vulkan), renderManager_(vulkan, useRenderThread, frameTimeHistory_) {
|
||||
shaderLanguageDesc_.Init(GLSL_VULKAN);
|
||||
|
||||
// Make sure that the surface has been initialized.
|
||||
_dbg_assert_(vulkan->GetAvailablePresentModes().size() > 0);
|
||||
|
||||
caps_.coordConvention = CoordConvention::Vulkan;
|
||||
caps_.setMaxFrameLatencySupported = true;
|
||||
caps_.anisoSupported = vulkan->GetDeviceFeatures().enabled.standard.samplerAnisotropy != 0;
|
||||
@@ -935,13 +950,12 @@ VKContext::VKContext(VulkanContext *vulkan, bool useRenderThread)
|
||||
caps_.presentMaxInterval = 1;
|
||||
caps_.presentInstantModeChange = false; // TODO: Fix this with some work in VulkanContext
|
||||
caps_.presentModesSupported = (PresentMode)0;
|
||||
|
||||
for (auto mode : vulkan->GetAvailablePresentModes()) {
|
||||
switch (mode) {
|
||||
case VK_PRESENT_MODE_FIFO_KHR: caps_.presentModesSupported |= PresentMode::FIFO; break;
|
||||
case VK_PRESENT_MODE_IMMEDIATE_KHR: caps_.presentModesSupported |= PresentMode::IMMEDIATE; break;
|
||||
case VK_PRESENT_MODE_MAILBOX_KHR: caps_.presentModesSupported |= PresentMode::MAILBOX; break;
|
||||
case VK_PRESENT_MODE_FIFO_LATEST_READY_KHR: caps_.presentModesSupported |= PresentMode::FIFO_LATEST_READY; break;
|
||||
case VK_PRESENT_MODE_FIFO_RELAXED_KHR: caps_.presentModesSupported |= PresentMode::FIFO_RELAXED; break;
|
||||
default: break; // Ignore any other modes.
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -582,13 +582,11 @@ enum class PresentMode {
|
||||
FIFO = 1,
|
||||
IMMEDIATE = 2,
|
||||
MAILBOX = 4,
|
||||
FIFO_RELAXED = 8, // Vulkan only
|
||||
FIFO_LATEST_READY = 16, // Vulkan only
|
||||
};
|
||||
ENUM_CLASS_BITOPS(PresentMode);
|
||||
|
||||
inline bool PresentationModeBlocks(PresentMode mode) {
|
||||
return mode & (PresentMode::FIFO | PresentMode::FIFO_RELAXED | PresentMode::FIFO_LATEST_READY);
|
||||
return mode & PresentMode::FIFO;
|
||||
}
|
||||
|
||||
struct DeviceCaps {
|
||||
@@ -862,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.
|
||||
|
||||
@@ -262,6 +262,9 @@ void Add1PxTransparentBorder(Image &img) {
|
||||
newData[(y + 1) * (img.w + 2) + (x + 1)] = c;
|
||||
}
|
||||
}
|
||||
img.dat = std::move(newData);
|
||||
img.w += 2;
|
||||
img.h += 2;
|
||||
}
|
||||
|
||||
void AddDropShadow(Image &img, int shadowSize, float intensity) {
|
||||
|
||||
+2
-39
@@ -193,24 +193,6 @@ static bool DefaultCodeGen() {
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool DefaultVSync() {
|
||||
#if PPSSPP_PLATFORM(ANDROID) || PPSSPP_PLATFORM(UWP)
|
||||
// Previously we didn't allow turning off vsync/FIFO on Android. Let's set the default accordingly.
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
static int DefaultVulkanPresentMode() {
|
||||
#if PPSSPP_PLATFORM(IOS)
|
||||
// iOS only supports FIFO.
|
||||
return (int)PresentMode::Fifo;
|
||||
#else
|
||||
return (int)PresentMode::Mailbox;
|
||||
#endif
|
||||
}
|
||||
|
||||
static bool DefaultEnableStateUndo() {
|
||||
#if PPSSPP_PLATFORM(ANDROID) || PPSSPP_PLATFORM(IOS)
|
||||
// Off on mobile to save disk space.
|
||||
@@ -623,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.
|
||||
@@ -694,7 +658,6 @@ static const ConfigSetting graphicsSettings[] = {
|
||||
ConfigSetting("FrameRate", &g_Config.iFpsLimit1, 0, CfgFlag::PER_GAME),
|
||||
ConfigSetting("FrameRate2", &g_Config.iFpsLimit2, -1, CfgFlag::PER_GAME),
|
||||
ConfigSetting("AnalogFrameRate", &g_Config.iAnalogFpsLimit, 240, CfgFlag::PER_GAME),
|
||||
ConfigSetting("UnthrottlingMode", &g_Config.iFastForwardMode, &DefaultFastForwardMode, &FastForwardModeToString, &FastForwardModeFromString, CfgFlag::PER_GAME),
|
||||
#if defined(USING_WIN_UI)
|
||||
ConfigSetting("RestartRequired", &g_Config.bRestartRequired, false, CfgFlag::DONT_SAVE),
|
||||
#endif
|
||||
@@ -737,8 +700,8 @@ 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, &DefaultVSync, CfgFlag::PER_GAME),
|
||||
ConfigSetting("VulkanPresentMode", &g_Config.iVulkanPresentationMode, &DefaultVulkanPresentMode, 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),
|
||||
|
||||
// Not really a graphics setting...
|
||||
|
||||
+6
-2
@@ -169,8 +169,13 @@ public:
|
||||
bool bCameraMirrorHorizontal;
|
||||
int iDisplayFramerateMode; // enum DisplayFramerateMode. Android-only.
|
||||
int iDisplayRefreshRate = 60;
|
||||
int iVulkanPresentationMode;
|
||||
|
||||
// These two combined choose the presentation mode.
|
||||
// vsync = false: Immediate
|
||||
// vsync = true, low latency present = true: Mailbox
|
||||
// vsync = true, low latency present = false: FIFO
|
||||
bool bVSync;
|
||||
bool bLowLatencyPresent;
|
||||
|
||||
bool bSoftwareRendering;
|
||||
bool bSoftwareRenderingJit;
|
||||
@@ -203,7 +208,6 @@ public:
|
||||
bool bShowImDebugger;
|
||||
|
||||
int iFrameSkip;
|
||||
int iFastForwardMode; // See FastForwardMode in ConfigValues.h.
|
||||
bool bAutoFrameSkip;
|
||||
|
||||
bool bEnableCardboardVR; // Cardboard Master Switch
|
||||
|
||||
@@ -147,16 +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
|
||||
FifoLatestReady = 2, // VK_PRESENT_MODE_FIFO_LATEST_READY_KHR
|
||||
FifoRelaxed = 3, // VK_PRESENT_MODE_FIFO_RELAXED_KHR
|
||||
Fifo = 4, // VK_PRESENT_MODE_FIFO_KHR
|
||||
};
|
||||
|
||||
// For iIOTimingMethod.
|
||||
enum IOTimingMethods {
|
||||
IOTIMING_FAST = 0,
|
||||
|
||||
+53
-57
@@ -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
@@ -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
@@ -580,22 +580,6 @@ void __DisplayFlip(int cyclesLate) {
|
||||
|
||||
bool duplicateFrames = g_Config.bRenderDuplicateFrames && g_Config.iFrameSkip == 0;
|
||||
|
||||
bool fastForwardSkipFlip = g_Config.iFastForwardMode != (int)FastForwardMode::CONTINUOUS;
|
||||
|
||||
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;
|
||||
|
||||
@@ -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,18 +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::FifoLatestReady:
|
||||
return VK_PRESENT_MODE_FIFO_LATEST_READY_KHR;
|
||||
case PresentMode::FifoRelaxed:
|
||||
return VK_PRESENT_MODE_FIFO_RELAXED_KHR;
|
||||
case PresentMode::Fifo:
|
||||
case Draw::PresentMode::FIFO:
|
||||
default:
|
||||
return VK_PRESENT_MODE_FIFO_KHR;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Generated
+27
-36
@@ -84,9 +84,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "2.9.4"
|
||||
version = "2.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
|
||||
checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
|
||||
|
||||
[[package]]
|
||||
name = "block"
|
||||
@@ -153,7 +153,7 @@ dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -228,7 +228,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -663,9 +663,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "indexmap"
|
||||
version = "2.11.4"
|
||||
version = "2.12.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5"
|
||||
checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f"
|
||||
dependencies = [
|
||||
"equivalent",
|
||||
"hashbrown",
|
||||
@@ -783,13 +783,13 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
||||
|
||||
[[package]]
|
||||
name = "mio"
|
||||
version = "1.0.4"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
|
||||
checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873"
|
||||
dependencies = [
|
||||
"libc",
|
||||
"wasi",
|
||||
"windows-sys 0.59.0",
|
||||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -878,7 +878,7 @@ version = "0.10.74"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"cfg-if",
|
||||
"foreign-types",
|
||||
"libc",
|
||||
@@ -895,7 +895,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1055,7 +1055,7 @@ version = "1.1.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys",
|
||||
@@ -1064,9 +1064,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rustls"
|
||||
version = "0.23.32"
|
||||
version = "0.23.33"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40"
|
||||
checksum = "751e04a496ca00bb97a5e043158d23d66b5aabf2e1d5aa2a0aaebb1aafe6f82c"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"rustls-pki-types",
|
||||
@@ -1122,7 +1122,7 @@ version = "2.11.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"core-foundation",
|
||||
"core-foundation-sys",
|
||||
"libc",
|
||||
@@ -1166,7 +1166,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1259,9 +1259,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "syn"
|
||||
version = "2.0.106"
|
||||
version = "2.0.107"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
|
||||
checksum = "2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@@ -1285,7 +1285,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1294,7 +1294,7 @@ version = "0.6.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"core-foundation",
|
||||
"system-configuration-sys",
|
||||
]
|
||||
@@ -1339,7 +1339,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1420,7 +1420,7 @@ version = "0.6.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
|
||||
dependencies = [
|
||||
"bitflags 2.9.4",
|
||||
"bitflags 2.10.0",
|
||||
"bytes",
|
||||
"futures-util",
|
||||
"http",
|
||||
@@ -1570,7 +1570,7 @@ dependencies = [
|
||||
"log",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
|
||||
@@ -1605,7 +1605,7 @@ checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
"wasm-bindgen-backend",
|
||||
"wasm-bindgen-shared",
|
||||
]
|
||||
@@ -1769,15 +1769,6 @@ dependencies = [
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.59.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
|
||||
dependencies = [
|
||||
"windows-targets 0.52.6",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "windows-sys"
|
||||
version = "0.60.2"
|
||||
@@ -2012,7 +2003,7 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
"synstructure",
|
||||
]
|
||||
|
||||
@@ -2033,7 +2024,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
"synstructure",
|
||||
]
|
||||
|
||||
@@ -2073,5 +2064,5 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.106",
|
||||
"syn 2.0.107",
|
||||
]
|
||||
+7
-2
@@ -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);
|
||||
|
||||
|
||||
@@ -468,11 +468,6 @@ void DeveloperToolsScreen::CreateGraphicsTab(UI::LinearLayout *list) {
|
||||
list->Add(new CheckBox(&g_Config.bVendorBugChecksEnabled, dev->T("Enable driver bug workarounds")));
|
||||
list->Add(new CheckBox(&g_Config.bShaderCache, dev->T("Enable shader cache")));
|
||||
|
||||
static const char *ffModes[] = { "Render all frames", "", "Frame Skipping" };
|
||||
PopupMultiChoice *ffMode = list->Add(new PopupMultiChoice(&g_Config.iFastForwardMode, dev->T("Fast-forward mode"), ffModes, 0, ARRAY_SIZE(ffModes), I18NCat::GRAPHICS, screenManager()));
|
||||
ffMode->SetEnabledFunc([]() { return !g_Config.bVSync; });
|
||||
ffMode->HideChoice(1); // not used
|
||||
|
||||
auto displayRefreshRate = list->Add(new PopupSliderChoice(&g_Config.iDisplayRefreshRate, 60, 1000, 60, dev->T("Display refresh rate"), 1, screenManager()));
|
||||
displayRefreshRate->SetFormat(si->T("%d Hz"));
|
||||
|
||||
|
||||
+25
-54
@@ -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,59 +371,6 @@ void GameSettingsScreen::CreateGraphicsSettings(UI::ViewGroup *graphicsSettings)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (GetGPUBackend() == GPUBackend::VULKAN) {
|
||||
// In Vulkan, we can now explicitly let the user choose the presentation mode.
|
||||
static const char *presentationModes[] = {
|
||||
"Immediate (lower latency, tearing)",
|
||||
"Mailbox (lower latency, recommended)",
|
||||
"FIFO: latest ready",
|
||||
"FIFO: relaxed",
|
||||
"FIFO (higher latency, framerate stability)",
|
||||
};
|
||||
|
||||
// If only one mode is supported (like FIFO on iOS), no need to show the option.
|
||||
if (CountSetBits((u32)draw->GetDeviceCaps().presentModesSupported) > 1) {
|
||||
UI::PopupMultiChoice *presentationMode = graphicsSettings->Add(new PopupMultiChoice(&g_Config.iVulkanPresentationMode, gr->T("Frame presentation mode"), presentationModes, 0, ARRAY_SIZE(presentationModes), I18NCat::GRAPHICS, screenManager()));
|
||||
presentationMode->SetChoiceIcon(0, ImageID("I_WARNING"));
|
||||
if (!(draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::IMMEDIATE)) {
|
||||
presentationMode->HideChoice(0);
|
||||
}
|
||||
if (!(draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::MAILBOX)) {
|
||||
presentationMode->HideChoice(1);
|
||||
}
|
||||
if (!(draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::FIFO_LATEST_READY)) {
|
||||
presentationMode->HideChoice(2);
|
||||
}
|
||||
if (!(draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::FIFO_RELAXED)) {
|
||||
presentationMode->HideChoice(3);
|
||||
}
|
||||
if (!(draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::FIFO)) {
|
||||
presentationMode->HideChoice(4);
|
||||
}
|
||||
|
||||
// Force the setting to a good supported mode if the current one is not supported, otherwise this will look weird.
|
||||
if (presentationMode->IsChoiceHidden(g_Config.iVulkanPresentationMode)) {
|
||||
if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::MAILBOX) {
|
||||
g_Config.iVulkanPresentationMode = (int)Draw::PresentMode::MAILBOX;
|
||||
} else if (draw->GetDeviceCaps().presentModesSupported & Draw::PresentMode::FIFO) {
|
||||
g_Config.iVulkanPresentationMode = (int)Draw::PresentMode::FIFO;
|
||||
}
|
||||
}
|
||||
|
||||
presentationMode->OnChoice.Add([=](EventParams &e) {
|
||||
NativeResized();
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// All backends support FIFO. Check if any immediate modes are supported, if so we can allow the user to choose.
|
||||
if (draw->GetDeviceCaps().presentModesSupported & (Draw::PresentMode::IMMEDIATE | Draw::PresentMode::MAILBOX)) {
|
||||
CheckBox *vSync = graphicsSettings->Add(new CheckBox(&g_Config.bVSync, gr->T("VSync")));
|
||||
vSync->OnClick.Add([=](EventParams &e) {
|
||||
NativeResized();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
#if PPSSPP_PLATFORM(ANDROID)
|
||||
// Hide Immersive Mode on pre-kitkat Android
|
||||
if (System_GetPropertyInt(SYSPROP_SYSTEMVERSION) >= 19) {
|
||||
@@ -434,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
@@ -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");
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -320,7 +320,6 @@ Enable Logging = تفعيل سجل التصحيح
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = أدخل العنوان
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -652,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
|
||||
@@ -687,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Enable debug logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -314,7 +314,6 @@ Enable Logging = Уключыць журнал адладкі
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Увядзіце адрас
|
||||
Fast = Fast
|
||||
Fast-forward mode = Рэжым хуткай перамоткі наперад
|
||||
Fragment = Фрагмент
|
||||
FPU = FPU
|
||||
Framedump tests = Тэсты дампаў кадраў
|
||||
@@ -627,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 = Драйверы
|
||||
@@ -679,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) = Меншае разрозненне для эфектаў (памяншае артэфакты)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Enable debug logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,6 +679,7 @@ Lazy texture caching Tip = По-бързо, но може да причини п
|
||||
Lens flare occlusion = Запушване на отблясъка на обектива
|
||||
Linear = Линеарно
|
||||
Low = Ниско
|
||||
Low latency display = Дисплей с ниска латентност
|
||||
LowCurves = Качество на сплайните и кривите на Безие
|
||||
LowCurves Tip = Използва се само от някои игри, контролира плавността на кривите
|
||||
Lower resolution for effects (reduces artifacts) = По-ниска резолюция за ефекти (намалява артефактите)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Activa el registre
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Inseriu adreça
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Povolit záznam při ladění
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Zadejte adresu
|
||||
Fast = Fast
|
||||
Fast-forward mode = Rychle vpřed
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Aktiver fejlfindingslogning
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Indtast adresse
|
||||
Fast = Fast
|
||||
Fast-forward mode = Turbo
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -309,7 +309,6 @@ Enable driver bug workarounds = Treiberfehler-Umgehungen aktivieren
|
||||
Enable Logging = Fehlerbehebungs-Protokollierung aktivieren
|
||||
Enable shader cache = Schattierer-Cache aktivieren
|
||||
Enter address = Adresse eingeben
|
||||
Fast-forward mode = Schnellvorlauf-Modus
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Einzelbild-Timing
|
||||
@@ -635,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
|
||||
@@ -670,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Padenni Log
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -338,7 +338,6 @@ Enable Logging = Enable debug logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
Fragment = Fragment
|
||||
FPU = FPU
|
||||
Framedump tests = Framedump tests
|
||||
@@ -651,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
|
||||
@@ -703,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)
|
||||
|
||||
@@ -315,7 +315,6 @@ Enable Logging = Activar registro
|
||||
Enable shader cache = Habilitar caché de shaders
|
||||
Enter address = Introducir dirección
|
||||
Fast = Rápido
|
||||
Fast-forward mode = Modo de avance rápido
|
||||
FPU = FPU
|
||||
Fragment = Fragmentos
|
||||
Frame Profiler = Analizador de fotogramas
|
||||
@@ -645,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
|
||||
@@ -680,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Activar registro
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Insertar dirección
|
||||
Fast = Fast
|
||||
Fast-forward mode = Modo turbo
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = روشن کردن لاگ باگها
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = وارد کردن ادرس
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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) = کاهش رزولوشن افکتها (کاهش باگ گرافیکی)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Ota virheenkorjauksen kirjaaminen käyttöön
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Pikakelaus
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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ä)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Activer le journal de débogage
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Entrer une adresse
|
||||
Fast = Fast
|
||||
Fast-forward mode = Vitesse max
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Activar rexistro
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Insertar dirección
|
||||
Fast = Fast
|
||||
Fast-forward mode = Modo turbo
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Ενεργοποίηση καταγραφής αποσφαλμ
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Διεύθυνση Enter
|
||||
Fast = Fast
|
||||
Fast-forward mode = Γρήγορη προώθηση
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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) = Χαμηλότερη ανάλυση για εφέ (λιγότερα προβλήματα)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = אפשר דיווח באגים
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = םיגאב חוויד רשפא
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -641,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
|
||||
@@ -676,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Uključi debug logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Upiši adresu
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable driver bug workarounds = Enable driver bug workarounds
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Cím megadása
|
||||
Fast = Fast
|
||||
Fast-forward mode = Gyorsítás módja
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Képkocka időzítés
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Hidupkan pencatat awakutu
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Masukkan alamat
|
||||
Fast = Fast
|
||||
Fast-forward mode = Pemajuan cepat
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Waktu bingkai
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Attiva Log del Debug
|
||||
Enable shader cache = Abilita cache dello shader
|
||||
Enter address = Inserire indirizzo
|
||||
Fast = Fast
|
||||
Fast-forward mode = Avanti veloce
|
||||
FPU = FPU
|
||||
Fragment = Frammento
|
||||
Frame timing = Temporizzazione frame
|
||||
@@ -645,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
|
||||
@@ -680,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = デバッグログを有効にする
|
||||
Enable shader cache = シェーダーキャッシュを有効にする
|
||||
Enter address = アドレスを入力する
|
||||
Fast = 速い
|
||||
Fast-forward mode = 速度制限を解除
|
||||
FPU = FPU
|
||||
Fragment = フラグメント
|
||||
Frame timing = フレームタイミング
|
||||
@@ -644,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です
|
||||
@@ -679,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) = エフェクトを低解像度にする (生成物を減らす)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Ngatifke ngangkut barang
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Ketik alamat
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -314,7 +314,6 @@ Enable Logging = 디버그 로깅 활성화
|
||||
Enable shader cache = 셰이더 캐시 활성화
|
||||
Enter address = 주소 입력
|
||||
Fast = 빠름
|
||||
Fast-forward mode = 빨리 감기
|
||||
Fragment = 단편
|
||||
FPU = FPU
|
||||
Framedump tests = 프레임 덤프 테스트
|
||||
@@ -627,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 = 드라이버
|
||||
@@ -679,6 +679,7 @@ Lazy texture caching Tip = 더 빠르지만 몇몇 게임에서 텍스트 문제
|
||||
Lens flare occlusion = 렌즈 플레어 차단
|
||||
Linear = 선형 필터링
|
||||
Low = 낮음
|
||||
Low latency display = 낮은 지연 시간 디스플레이
|
||||
LowCurves = 스플라인/베지어 곡선 품질
|
||||
LowCurves Tip = 일부 게임에서만 사용되며, 곡선의 부드러움을 제어
|
||||
Lower resolution for effects (reduces artifacts) = 효과에 대한 낮은 해상도 (인공물 감소)
|
||||
|
||||
@@ -328,7 +328,6 @@ Enable Logging = Enable debug logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
Fragment = Fragment
|
||||
FPU = FPU
|
||||
Framedump tests = Framedump tests
|
||||
@@ -641,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
|
||||
@@ -693,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = ເປີດໃຊ້ງານ logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = ໃສ່ຄ່າທີ່ຢູ່
|
||||
Fast = Fast
|
||||
Fast-forward mode = ເລັ່ງເທີໂບ
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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) = ຫຼຸດຄວາມລະອຽດຂອງເອັບເຟກໃຫ້ຕ່ຳລົງ (ແກ້ພາບແຈ້ງ)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Įjungti testinio režimo statuso rašymą į failus
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Upayakan log pepijat
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Foutlogboek inschakelen
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Adres invoeren
|
||||
Fast = Fast
|
||||
Fast-forward mode = Versnellen
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Debugloggning
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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)
|
||||
|
||||
@@ -311,7 +311,6 @@ Enable Logging = Włącz dziennik zdarzeń debugera
|
||||
Enable shader cache = Włącz pamięć podręczną shaderów
|
||||
Enter address = Wprowadź adres
|
||||
Fast = Szybka
|
||||
Fast-forward mode = Pełna prędkość
|
||||
FPU = FPU
|
||||
Fragment = Fragmentu
|
||||
Frame timing = Czasy klatek
|
||||
@@ -645,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
|
||||
@@ -675,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)
|
||||
|
||||
@@ -338,7 +338,6 @@ Enable Logging = Ativar o registro do debug
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Inserir endereço
|
||||
Fast = Rápido
|
||||
Fast-forward mode = Modo de avanço rápido
|
||||
Fragment = Fragmento
|
||||
FPU = FPU
|
||||
Framedump tests = Testes dos dumps dos frames
|
||||
@@ -650,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
|
||||
@@ -702,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)
|
||||
|
||||
@@ -336,7 +336,6 @@ Enable Logging = Ativar Log do Debug
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Inserir endereço
|
||||
Fast = Fast
|
||||
Fast-forward mode = Avanço rápido
|
||||
FPU = FPU
|
||||
Fragment = Fragmento
|
||||
Frame timing = Tempo do frame
|
||||
@@ -668,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
|
||||
@@ -703,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)
|
||||
|
||||
@@ -313,7 +313,6 @@ Enable Logging = Enable debug logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Enter address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Repede inainte
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -645,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
|
||||
@@ -680,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Включить отладочное логирование
|
||||
Enable shader cache = Включить кэш шейдеров
|
||||
Enter address = Ввести адрес
|
||||
Fast = Быстро
|
||||
Fast-forward mode = Перемотка вперёд
|
||||
FPU = FPU
|
||||
Fragment = Фрагмент
|
||||
Frame timing = Время кадра
|
||||
@@ -644,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
|
||||
@@ -679,6 +679,7 @@ Lazy texture caching Tip = Быстрее, но может вызвать про
|
||||
Lens flare occlusion = Окклюзия бликов объектива
|
||||
Linear = Линейный
|
||||
Low = Низкое
|
||||
Low latency display = Дисплей с низкой задержкой
|
||||
LowCurves = Качество сплайнов и кривых Безье
|
||||
LowCurves Tip = Используется в некоторых играх, влияет на плавность кривых
|
||||
Lower resolution for effects (reduces artifacts) = Эффекты низкого качества (меньше артефактов)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Felsökningsloggning
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Adress
|
||||
Fast = Snabb
|
||||
Fast-forward mode = Snabbspola
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -645,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
|
||||
@@ -680,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)
|
||||
|
||||
@@ -313,7 +313,6 @@ Enable Logging = Paganahin ang Debug Logging
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Ilagay ang address
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Timing ng frame
|
||||
@@ -645,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
|
||||
@@ -680,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)
|
||||
|
||||
@@ -317,7 +317,6 @@ Enable driver bug workarounds = เปิดใช้งานการแก้
|
||||
Enable shader cache = เปิดการใช้งานเฉดเดอร์แคช
|
||||
Enter address = ใส่ค่าที่อยู่
|
||||
Fast = เร็ว
|
||||
Fast-forward mode = โหมดการเร่งความเร็ว
|
||||
Flush the trace = ล้างการติดตาม
|
||||
Force-enable HLE = บังคับเปิดใช้งานโมดูล HLE
|
||||
FPU = FPU
|
||||
@@ -661,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
|
||||
@@ -697,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) = ลดความละเอียดของเอฟเฟ็คต์ให้ต่ำลง (ลดขอบภาพสว่าง)
|
||||
|
||||
@@ -314,7 +314,6 @@ Enable Logging = Hata Ayıklama Günlüğünü Etkinleştir
|
||||
Enable shader cache = Gölgelendirici önbelleğini etkinleştir
|
||||
Enter address = Adres Gir
|
||||
Fast = Hızlı
|
||||
Fast-forward mode = Hızlı ileri Sarma Modu
|
||||
FPU = FPU
|
||||
Fragment = Parça
|
||||
Frame timing = Kare Zamanlaması
|
||||
@@ -646,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
|
||||
@@ -681,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)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Ввімкнути логування
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Введіть адресу
|
||||
Fast = Швидко
|
||||
Fast-forward mode = Швидко вперед
|
||||
FPU = FPU
|
||||
Fragment = Фрагмент
|
||||
Frame timing = Хронометраж кадру
|
||||
@@ -644,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
|
||||
@@ -679,6 +679,7 @@ Lazy texture caching Tip = Швидше, але може спричинити п
|
||||
Lens flare occlusion = Оклюзія відблисків об'єктива
|
||||
Linear = Лінійний
|
||||
Low = Низька
|
||||
Low latency display = Дисплей з низькою затримкою
|
||||
LowCurves = Якість сплайну
|
||||
LowCurves Tip = Використовується лише в деяких іграх, контролюючи плавність кривих
|
||||
Lower resolution for effects (reduces artifacts) = Ефекти низької якості (зменшує артефакти)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = Cho phép ghi nhật ký debug
|
||||
Enable shader cache = Enable shader cache
|
||||
Enter address = Nhập địa chỉ
|
||||
Fast = Fast
|
||||
Fast-forward mode = Fast-forward mode
|
||||
FPU = FPU
|
||||
Fragment = Fragment
|
||||
Frame timing = Frame timing
|
||||
@@ -644,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
|
||||
@@ -679,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ể)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = 启用调试日志
|
||||
Enable shader cache = 启用着色器缓存
|
||||
Enter address = 输入地址
|
||||
Fast = 快速
|
||||
Fast-forward mode = 加速键的工作模式
|
||||
FPU = FPU
|
||||
Fragment = 片段着色器
|
||||
Frame timing = 帧时间统计信息
|
||||
@@ -644,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
|
||||
@@ -679,6 +679,7 @@ Lazy texture caching Tip = 速度更快,并使部分游戏文字渲染出错
|
||||
Lens flare occlusion = 镜头眩光遮挡
|
||||
Linear = 线性过滤
|
||||
Low = 低质量
|
||||
Low latency display = 低延迟显示
|
||||
LowCurves = 贝塞尔曲线质量 (提速)
|
||||
LowCurves Tip = 调整曲线的绘制质量,只有少数游戏适用此设置
|
||||
Lower resolution for effects (reduces artifacts) = 降低特效分辨率 (修复光晕效果)
|
||||
|
||||
@@ -312,7 +312,6 @@ Enable Logging = 啟用偵錯記錄
|
||||
Enable shader cache = 啟用著色器快取
|
||||
Enter address = 輸入位址
|
||||
Fast = 快速
|
||||
Fast-forward mode = 快轉模式
|
||||
FPU = FPU
|
||||
Fragment = 片段
|
||||
Frame timing = 影格計時
|
||||
@@ -644,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
|
||||
@@ -679,6 +679,7 @@ Lazy texture caching Tip = 更快,但在某些遊戲中可能會造成文字
|
||||
Lens flare occlusion = 鏡頭眩光遮蔽
|
||||
Linear = 線性
|
||||
Low = 低
|
||||
Low latency display = 低延遲顯示
|
||||
LowCurves = 曲線/貝茲曲線品質
|
||||
LowCurves Tip = 僅供少數遊戲使用,控制曲線平滑度
|
||||
Lower resolution for effects (reduces artifacts) = 降低效果解析度 (降低失真)
|
||||
|
||||
@@ -536,7 +536,6 @@ int main(int argc, const char* argv[])
|
||||
g_Config.iButtonPreference = PSP_SYSTEMPARAM_BUTTON_CROSS;
|
||||
g_Config.iLockParentalLevel = 9;
|
||||
g_Config.iInternalResolution = 1;
|
||||
g_Config.iFastForwardMode = (int)FastForwardMode::CONTINUOUS;
|
||||
g_Config.bEnableLogging = (fullLog || outputDebugStringLog);
|
||||
g_Config.bSoftwareSkinning = true;
|
||||
g_Config.bVertexDecoderJit = true;
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user