mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-12-06 07:12:28 +01:00
Compare commits
2 commits
53bcb0100d
...
500a5c0d15
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
500a5c0d15 | ||
|
|
67f7119717 |
|
|
@ -6,7 +6,7 @@ export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||||
export HOMEBREW_NO_ENV_HINTS=1
|
export HOMEBREW_NO_ENV_HINTS=1
|
||||||
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
||||||
|
|
||||||
brew install -f --overwrite --quiet pipenv googletest ffmpeg@5 "llvm@$LLVM_COMPILER_VER" glew sdl3 vulkan-headers
|
brew install -f --overwrite --quiet pipenv googletest ffmpeg@5 "llvm@$LLVM_COMPILER_VER" glew sdl3 vulkan-headers vulkan-loader
|
||||||
brew link -f --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
brew link -f --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
||||||
|
|
||||||
# moltenvk based on commit for 1.4.0 release
|
# moltenvk based on commit for 1.4.0 release
|
||||||
|
|
@ -56,15 +56,14 @@ export SDL3_DIR="$BREW_PATH/opt/sdl3/lib/cmake/SDL3"
|
||||||
|
|
||||||
export PATH="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/bin:$WORKDIR/qt-downloader/$QT_VER/clang_64/bin:$BREW_BIN:$BREW_SBIN:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:$PATH"
|
export PATH="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/bin:$WORKDIR/qt-downloader/$QT_VER/clang_64/bin:$BREW_BIN:$BREW_SBIN:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Apple/usr/bin:$PATH"
|
||||||
export LDFLAGS="-L$BREW_PATH/lib $BREW_PATH/opt/ffmpeg@5/lib/libavcodec.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavformat.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavutil.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswscale.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswresample.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++.1.dylib $BREW_PATH/lib/libSDL3.dylib $BREW_PATH/lib/libGLEW.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib -Wl,-rpath,$BREW_PATH/lib"
|
export LDFLAGS="-L$BREW_PATH/lib $BREW_PATH/opt/ffmpeg@5/lib/libavcodec.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavformat.dylib $BREW_PATH/opt/ffmpeg@5/lib/libavutil.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswscale.dylib $BREW_PATH/opt/ffmpeg@5/lib/libswresample.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++.1.dylib $BREW_PATH/lib/libSDL3.dylib $BREW_PATH/lib/libGLEW.dylib $BREW_PATH/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib -Wl,-rpath,$BREW_PATH/lib"
|
||||||
export CPPFLAGS="-I$BREW_PATH/include -I$BREW_PATH/include -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
export CPPFLAGS="-I$BREW_PATH/include -no-pie -D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
||||||
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
export CFLAGS="-D__MAC_OS_X_VERSION_MIN_REQUIRED=140000"
|
||||||
export LIBRARY_PATH="$BREW_PATH/lib"
|
export LIBRARY_PATH="$BREW_PATH/lib"
|
||||||
export LD_LIBRARY_PATH="$BREW_PATH/lib"
|
export LD_LIBRARY_PATH="$BREW_PATH/lib"
|
||||||
|
|
||||||
export VULKAN_SDK
|
export VULKAN_SDK
|
||||||
VULKAN_SDK="$BREW_PATH/opt/molten-vk"
|
VULKAN_SDK="$BREW_PATH/opt/molten-vk"
|
||||||
ln -s "$VULKAN_SDK/lib/libMoltenVK.dylib" "$VULKAN_SDK/lib/libvulkan.dylib" || true
|
ln -s "$BREW_PATH/opt/vulkan-loader/lib/libvulkan.dylib" "$VULKAN_SDK/lib/libvulkan.dylib" || true
|
||||||
export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json"
|
|
||||||
|
|
||||||
export LLVM_DIR
|
export LLVM_DIR
|
||||||
LLVM_DIR="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
LLVM_DIR="$BREW_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER"
|
||||||
rm /usr/local/bin/{idle3.14,pip3.14,pydoc3.14,python3.14,python3.14-config} && \
|
rm /usr/local/bin/{idle3.14,pip3.14,pydoc3.14,python3.14,python3.14-config} && \
|
||||||
rm /usr/local/bin/{idle3,pip3,pydoc3,python3,python3-config}
|
rm /usr/local/bin/{idle3,pip3,pydoc3,python3,python3-config}
|
||||||
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||||
arch -x86_64 /usr/local/bin/brew install -f --overwrite --quiet ffmpeg@5 "llvm@$LLVM_COMPILER_VER" glew sdl3 vulkan-headers
|
arch -x86_64 /usr/local/bin/brew install -f --overwrite --quiet ffmpeg@5 "llvm@$LLVM_COMPILER_VER" glew sdl3 vulkan-headers vulkan-loader
|
||||||
arch -x86_64 /usr/local/bin/brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
arch -x86_64 /usr/local/bin/brew link -f --overwrite --quiet "llvm@$LLVM_COMPILER_VER" ffmpeg@5
|
||||||
|
|
||||||
# moltenvk based on commit for 1.4.0 release
|
# moltenvk based on commit for 1.4.0 release
|
||||||
|
|
@ -63,8 +63,7 @@ export LD_LIBRARY_PATH="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER/lib:$BREW_X64
|
||||||
|
|
||||||
export VULKAN_SDK
|
export VULKAN_SDK
|
||||||
VULKAN_SDK="$BREW_X64_PATH/opt/molten-vk"
|
VULKAN_SDK="$BREW_X64_PATH/opt/molten-vk"
|
||||||
ln -s "$VULKAN_SDK/lib/libMoltenVK.dylib" "$VULKAN_SDK/lib/libvulkan.dylib"
|
ln -s "$BREW_X64_PATH/opt/vulkan-loader/lib/libvulkan.dylib" "$VULKAN_SDK/lib/libvulkan.dylib"
|
||||||
export VK_ICD_FILENAMES="$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json"
|
|
||||||
|
|
||||||
export LLVM_DIR
|
export LLVM_DIR
|
||||||
LLVM_DIR="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
LLVM_DIR="$BREW_X64_PATH/opt/llvm@$LLVM_COMPILER_VER"
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,10 @@ echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
|
||||||
|
|
||||||
cd bin
|
cd bin
|
||||||
mkdir "rpcs3.app/Contents/lib/" || true
|
mkdir "rpcs3.app/Contents/lib/" || true
|
||||||
|
mkdir -p "rpcs3.app/Contents/Resources/vulkan/icd.d" || true
|
||||||
|
cp "$(realpath /opt/homebrew/lib/libMoltenVK.dylib)" "rpcs3.app/Contents/Frameworks/libMoltenVK.dylib"
|
||||||
|
cp "$(realpath /opt/homebrew/etc/vulkan/icd.d/MoltenVK_icd.json)" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
|
||||||
|
sed -i '' "s/lib\//Frameworks\//g" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
|
||||||
|
|
||||||
cp "$(realpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
|
cp "$(realpath /opt/homebrew/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib)" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
|
||||||
cp "$(realpath /opt/homebrew/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
|
cp "$(realpath /opt/homebrew/lib/libsharpyuv.0.dylib)" "rpcs3.app/Contents/lib/libsharpyuv.0.dylib"
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,11 @@ AVVER="${COMM_TAG}-${COMM_COUNT}"
|
||||||
echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
|
echo "AVVER=$AVVER" >> ../.ci/ci-vars.env
|
||||||
|
|
||||||
cd bin
|
cd bin
|
||||||
mkdir "rpcs3.app/Contents/lib/"
|
mkdir "rpcs3.app/Contents/lib/" || true
|
||||||
|
mkdir -p "rpcs3.app/Contents/Resources/vulkan/icd.d" || true
|
||||||
|
cp "$(realpath /usr/local/lib/libMoltenVK.dylib)" "rpcs3.app/Contents/Frameworks/libMoltenVK.dylib"
|
||||||
|
cp "$(realpath /usr/local/etc/vulkan/icd.d/MoltenVK_icd.json)" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
|
||||||
|
sed -i '' "s/lib\//Frameworks\//g" "rpcs3.app/Contents/Resources/vulkan/icd.d/MoltenVK_icd.json"
|
||||||
|
|
||||||
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
|
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/c++/libc++abi.1.0.dylib" "rpcs3.app/Contents/Frameworks/libc++abi.1.dylib"
|
||||||
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib" "rpcs3.app/Contents/Frameworks/libunwind.1.dylib"
|
cp "/usr/local/opt/llvm@$LLVM_COMPILER_VER/lib/unwind/libunwind.1.dylib" "rpcs3.app/Contents/Frameworks/libunwind.1.dylib"
|
||||||
|
|
|
||||||
|
|
@ -623,6 +623,11 @@ if(TARGET 3rdparty_vulkan)
|
||||||
RSX/VK/VKTextureCache.cpp
|
RSX/VK/VKTextureCache.cpp
|
||||||
RSX/VK/VulkanAPI.cpp
|
RSX/VK/VulkanAPI.cpp
|
||||||
)
|
)
|
||||||
|
if(APPLE)
|
||||||
|
target_sources(rpcs3_emu PRIVATE
|
||||||
|
RSX/VK/vkutils/metal_layer.mm
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#define VK_USE_PLATFORM_WIN32_KHR
|
#define VK_USE_PLATFORM_WIN32_KHR
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
#define VK_USE_PLATFORM_MACOS_MVK
|
#define VK_USE_PLATFORM_METAL_EXT
|
||||||
#elif defined(ANDROID)
|
#elif defined(ANDROID)
|
||||||
#define VK_USE_PLATFORM_ANDROID_KHR
|
#define VK_USE_PLATFORM_ANDROID_KHR
|
||||||
#else
|
#else
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
// Undefine header configuration variables
|
// Undefine header configuration variables
|
||||||
#undef VK_USE_PLATFORM_WIN32_KHR
|
#undef VK_USE_PLATFORM_WIN32_KHR
|
||||||
#undef VK_USE_PLATFORM_MACOS_MVK
|
#undef VK_USE_PLATFORM_METAL_EXT
|
||||||
#undef VK_USE_PLATFORM_ANDROID_KHR
|
#undef VK_USE_PLATFORM_ANDROID_KHR
|
||||||
#undef VK_USE_PLATFORM_XLIB_KHR
|
#undef VK_USE_PLATFORM_XLIB_KHR
|
||||||
#undef VK_USE_PLATFORM_WAYLAND_KHR
|
#undef VK_USE_PLATFORM_WAYLAND_KHR
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@
|
||||||
#include "util/logs.hpp"
|
#include "util/logs.hpp"
|
||||||
#include "Emu/system_config.h"
|
#include "Emu/system_config.h"
|
||||||
#include <vulkan/vulkan_core.h>
|
#include <vulkan/vulkan_core.h>
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#include <vulkan/vulkan_beta.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace vk
|
namespace vk
|
||||||
{
|
{
|
||||||
|
|
@ -555,6 +558,10 @@ namespace vk
|
||||||
{
|
{
|
||||||
requested_extensions.push_back(VK_EXT_DEVICE_FAULT_EXTENSION_NAME);
|
requested_extensions.push_back(VK_EXT_DEVICE_FAULT_EXTENSION_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
requested_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
|
||||||
|
#endif
|
||||||
|
|
||||||
enabled_features.robustBufferAccess = VK_TRUE;
|
enabled_features.robustBufferAccess = VK_TRUE;
|
||||||
enabled_features.fullDrawIndexUint32 = VK_TRUE;
|
enabled_features.fullDrawIndexUint32 = VK_TRUE;
|
||||||
|
|
|
||||||
|
|
@ -124,10 +124,11 @@ namespace vk
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
|
||||||
|
extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
|
||||||
if (support.is_supported(VK_EXT_LAYER_SETTINGS_EXTENSION_NAME))
|
if (support.is_supported(VK_EXT_LAYER_SETTINGS_EXTENSION_NAME))
|
||||||
{
|
{
|
||||||
extensions.push_back(VK_EXT_LAYER_SETTINGS_EXTENSION_NAME);
|
extensions.push_back(VK_EXT_LAYER_SETTINGS_EXTENSION_NAME);
|
||||||
layers.push_back(kMVKMoltenVKDriverLayerName);
|
|
||||||
|
|
||||||
mvk_settings.push_back(VkLayerSettingEXT{ kMVKMoltenVKDriverLayerName, "MVK_CONFIG_RESUME_LOST_DEVICE", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true });
|
mvk_settings.push_back(VkLayerSettingEXT{ kMVKMoltenVKDriverLayerName, "MVK_CONFIG_RESUME_LOST_DEVICE", VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &setting_true });
|
||||||
mvk_settings.push_back(VkLayerSettingEXT{ kMVKMoltenVKDriverLayerName, "MVK_CONFIG_FAST_MATH_ENABLED", VK_LAYER_SETTING_TYPE_INT32_EXT, 1, &setting_fast_math });
|
mvk_settings.push_back(VkLayerSettingEXT{ kMVKMoltenVKDriverLayerName, "MVK_CONFIG_FAST_MATH_ENABLED", VK_LAYER_SETTING_TYPE_INT32_EXT, 1, &setting_fast_math });
|
||||||
|
|
@ -154,7 +155,7 @@ namespace vk
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
extensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
|
extensions.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
extensions.push_back(VK_MVK_MACOS_SURFACE_EXTENSION_NAME);
|
extensions.push_back(VK_EXT_METAL_SURFACE_EXTENSION_NAME);
|
||||||
#else
|
#else
|
||||||
bool found_surface_ext = false;
|
bool found_surface_ext = false;
|
||||||
#ifdef HAVE_X11
|
#ifdef HAVE_X11
|
||||||
|
|
@ -187,15 +188,32 @@ namespace vk
|
||||||
if (g_cfg.video.debug_output)
|
if (g_cfg.video.debug_output)
|
||||||
layers.push_back("VK_LAYER_KHRONOS_validation");
|
layers.push_back("VK_LAYER_KHRONOS_validation");
|
||||||
}
|
}
|
||||||
|
#ifdef __APPLE__
|
||||||
|
// MoltenVK's ICD will not be detected without these extensions enabled.
|
||||||
|
else
|
||||||
|
{
|
||||||
|
extensions_loaded = true;
|
||||||
|
extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
|
||||||
|
extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
VkInstanceCreateInfo instance_info = {};
|
VkInstanceCreateInfo instance_info = {};
|
||||||
instance_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
instance_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
|
||||||
instance_info.pApplicationInfo = &app;
|
instance_info.pApplicationInfo = &app;
|
||||||
instance_info.enabledLayerCount = static_cast<u32>(layers.size());
|
instance_info.enabledLayerCount = static_cast<u32>(layers.size());
|
||||||
instance_info.ppEnabledLayerNames = layers.data();
|
instance_info.ppEnabledLayerNames = layers.data();
|
||||||
|
#ifdef __APPLE__
|
||||||
|
instance_info.enabledExtensionCount = static_cast<u32>(extensions.size());
|
||||||
|
instance_info.ppEnabledExtensionNames = extensions.data();
|
||||||
|
#else
|
||||||
instance_info.enabledExtensionCount = fast ? 0 : static_cast<u32>(extensions.size());
|
instance_info.enabledExtensionCount = fast ? 0 : static_cast<u32>(extensions.size());
|
||||||
instance_info.ppEnabledExtensionNames = fast ? nullptr : extensions.data();
|
instance_info.ppEnabledExtensionNames = fast ? nullptr : extensions.data();
|
||||||
|
#endif
|
||||||
instance_info.pNext = next_info;
|
instance_info.pNext = next_info;
|
||||||
|
#ifdef __APPLE__
|
||||||
|
instance_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (VkResult result = vkCreateInstance(&instance_info, nullptr, &m_instance); result != VK_SUCCESS)
|
if (VkResult result = vkCreateInstance(&instance_info, nullptr, &m_instance); result != VK_SUCCESS)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
2
rpcs3/Emu/RSX/VK/vkutils/metal_layer.h
Normal file
2
rpcs3/Emu/RSX/VK/vkutils/metal_layer.h
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#pragma once
|
||||||
|
void* GetCAMetalLayerFromMetalView(void* view);
|
||||||
10
rpcs3/Emu/RSX/VK/vkutils/metal_layer.mm
Normal file
10
rpcs3/Emu/RSX/VK/vkutils/metal_layer.mm
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#pragma GCC diagnostic push
|
||||||
|
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
||||||
|
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
#pragma GCC diagnostic ignored "-Wmissing-declarations"
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <AppKit/AppKit.h>
|
||||||
|
#import <QuartzCore/QuartzCore.h>
|
||||||
|
|
||||||
|
void* GetCAMetalLayerFromMetalView(void* view) { return ((NSView*)view).layer; }
|
||||||
|
#pragma GCC diagnostic pop
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "swapchain_core.h"
|
#include "swapchain_core.h"
|
||||||
|
#include "metal_layer.h"
|
||||||
|
|
||||||
namespace vk
|
namespace vk
|
||||||
{
|
{
|
||||||
|
|
@ -12,11 +13,11 @@ namespace vk
|
||||||
VkSurfaceKHR make_WSI_surface(VkInstance vk_instance, display_handle_t window_handle, WSI_config* /*config*/)
|
VkSurfaceKHR make_WSI_surface(VkInstance vk_instance, display_handle_t window_handle, WSI_config* /*config*/)
|
||||||
{
|
{
|
||||||
VkSurfaceKHR result = VK_NULL_HANDLE;
|
VkSurfaceKHR result = VK_NULL_HANDLE;
|
||||||
VkMacOSSurfaceCreateInfoMVK createInfo = {};
|
VkMetalSurfaceCreateInfoEXT createInfo = {};
|
||||||
createInfo.sType = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK;
|
createInfo.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
|
||||||
createInfo.pView = window_handle;
|
createInfo.pLayer = GetCAMetalLayerFromMetalView(window_handle);
|
||||||
|
|
||||||
CHECK_RESULT(vkCreateMacOSSurfaceMVK(vk_instance, &createInfo, NULL, &result));
|
CHECK_RESULT(vkCreateMetalSurfaceEXT(vk_instance, &createInfo, NULL, &result));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ struct cfg_root : cfg::node
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
fifo_setting rsx_fifo_accuracy{this, "RSX FIFO Accuracy", rsx_fifo_mode::fast };
|
fifo_setting rsx_fifo_accuracy{this, "RSX FIFO Fetch Accuracy", rsx_fifo_mode::atomic };
|
||||||
cfg::_bool spu_verification{ this, "SPU Verification", true }; // Should be enabled
|
cfg::_bool spu_verification{ this, "SPU Verification", true }; // Should be enabled
|
||||||
cfg::_bool spu_cache{ this, "SPU Cache", true };
|
cfg::_bool spu_cache{ this, "SPU Cache", true };
|
||||||
cfg::_bool spu_prof{ this, "SPU Profiler", false };
|
cfg::_bool spu_prof{ this, "SPU Profiler", false };
|
||||||
|
|
|
||||||
|
|
@ -1198,10 +1198,10 @@ QString emu_settings::GetLocalizedSetting(const QString& original, emu_settings_
|
||||||
case emu_settings_type::FIFOAccuracy:
|
case emu_settings_type::FIFOAccuracy:
|
||||||
switch (static_cast<rsx_fifo_mode>(index))
|
switch (static_cast<rsx_fifo_mode>(index))
|
||||||
{
|
{
|
||||||
case rsx_fifo_mode::fast: return tr("Fast", "RSX FIFO Accuracy");
|
case rsx_fifo_mode::fast: return tr("Fast", "RSX FIFO Fetch Accuracy");
|
||||||
case rsx_fifo_mode::atomic: return tr("Atomic", "RSX FIFO Accuracy");
|
case rsx_fifo_mode::atomic: return tr("Atomic", "RSX FIFO Fetch Accuracy");
|
||||||
case rsx_fifo_mode::atomic_ordered: return tr("Ordered & Atomic", "RSX FIFO Accuracy");
|
case rsx_fifo_mode::atomic_ordered: return tr("Ordered & Atomic", "RSX FIFO Fetch Accuracy");
|
||||||
case rsx_fifo_mode::as_ps3: return tr("PS3", "RSX FIFO Accuracy");
|
case rsx_fifo_mode::as_ps3: return tr("PS3", "RSX FIFO Fetch Accuracy");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case emu_settings_type::PerfOverlayDetailLevel:
|
case emu_settings_type::PerfOverlayDetailLevel:
|
||||||
|
|
|
||||||
|
|
@ -235,7 +235,7 @@ inline static const std::map<emu_settings_type, cfg_location> settings_location
|
||||||
{ emu_settings_type::AccurateSpuDMA, { "Core", "Accurate SPU DMA"}},
|
{ emu_settings_type::AccurateSpuDMA, { "Core", "Accurate SPU DMA"}},
|
||||||
{ emu_settings_type::AccurateClineStores, { "Core", "Accurate Cache Line Stores"}},
|
{ emu_settings_type::AccurateClineStores, { "Core", "Accurate Cache Line Stores"}},
|
||||||
{ emu_settings_type::AccurateRSXAccess, { "Core", "Accurate RSX reservation access"}},
|
{ emu_settings_type::AccurateRSXAccess, { "Core", "Accurate RSX reservation access"}},
|
||||||
{ emu_settings_type::FIFOAccuracy, { "Core", "RSX FIFO Accuracy"}},
|
{ emu_settings_type::FIFOAccuracy, { "Core", "RSX FIFO Fetch Accuracy"}},
|
||||||
{ emu_settings_type::XFloatAccuracy, { "Core", "XFloat Accuracy"}},
|
{ emu_settings_type::XFloatAccuracy, { "Core", "XFloat Accuracy"}},
|
||||||
{ emu_settings_type::MFCCommandsShuffling, { "Core", "MFC Commands Shuffling Limit"}},
|
{ emu_settings_type::MFCCommandsShuffling, { "Core", "MFC Commands Shuffling Limit"}},
|
||||||
{ emu_settings_type::SetDAZandFTZ, { "Core", "Set DAZ and FTZ"}},
|
{ emu_settings_type::SetDAZandFTZ, { "Core", "Set DAZ and FTZ"}},
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue