mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-05-14 08:12:16 +00:00
vk_platform: Enable MoltenVK debug if crash diagnostics is enabled. (#1887)
* vk_platform: Enable MoltenVK debug if crash diagnostics is enabled. * build: Make sure MoltenVK gets re-bundled when changed.
This commit is contained in:
parent
b1f74660df
commit
a86ee7e7f5
2 changed files with 17 additions and 5 deletions
|
@ -901,11 +901,11 @@ endif()
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
if (ENABLE_QT_GUI)
|
if (ENABLE_QT_GUI)
|
||||||
# Include MoltenVK in the app bundle, along with an ICD file so it can be found by the system Vulkan loader if used for loading layers.
|
# Include MoltenVK in the app bundle, along with an ICD file so it can be found by the system Vulkan loader if used for loading layers.
|
||||||
target_sources(shadps4 PRIVATE externals/MoltenVK/MoltenVK_icd.json)
|
set(MVK_DYLIB ${CMAKE_CURRENT_BINARY_DIR}/externals/MoltenVK/libMoltenVK.dylib)
|
||||||
set_source_files_properties(externals/MoltenVK/MoltenVK_icd.json
|
set(MVK_ICD ${CMAKE_CURRENT_SOURCE_DIR}/externals/MoltenVK/MoltenVK_icd.json)
|
||||||
PROPERTIES MACOSX_PACKAGE_LOCATION Resources/vulkan/icd.d)
|
target_sources(shadps4 PRIVATE ${MVK_DYLIB} ${MVK_ICD})
|
||||||
add_custom_command(TARGET shadps4 POST_BUILD
|
set_source_files_properties(${MVK_DYLIB} PROPERTIES MACOSX_PACKAGE_LOCATION Frameworks)
|
||||||
COMMAND cmake -E copy $<TARGET_LINKER_FILE:MoltenVK> $<TARGET_BUNDLE_DIR:shadps4>/Contents/Frameworks/libMoltenVK.dylib)
|
set_source_files_properties(${MVK_ICD} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/vulkan/icd.d)
|
||||||
set_property(TARGET shadps4 APPEND PROPERTY BUILD_RPATH "@executable_path/../Frameworks")
|
set_property(TARGET shadps4 APPEND PROPERTY BUILD_RPATH "@executable_path/../Frameworks")
|
||||||
else()
|
else()
|
||||||
# For non-bundled SDL build, just do a normal library link.
|
# For non-bundled SDL build, just do a normal library link.
|
||||||
|
|
|
@ -137,6 +137,7 @@ std::vector<const char*> GetInstanceExtensions(Frontend::WindowSystemType window
|
||||||
// Add the windowing system specific extension
|
// Add the windowing system specific extension
|
||||||
std::vector<const char*> extensions;
|
std::vector<const char*> extensions;
|
||||||
extensions.reserve(7);
|
extensions.reserve(7);
|
||||||
|
extensions.push_back(VK_EXT_LAYER_SETTINGS_EXTENSION_NAME);
|
||||||
|
|
||||||
switch (window_type) {
|
switch (window_type) {
|
||||||
case Frontend::WindowSystemType::Headless:
|
case Frontend::WindowSystemType::Headless:
|
||||||
|
@ -347,6 +348,17 @@ vk::UniqueInstance CreateInstance(Frontend::WindowSystemType window_type, bool e
|
||||||
.valueCount = 1,
|
.valueCount = 1,
|
||||||
.pValues = &enable_force_barriers,
|
.pValues = &enable_force_barriers,
|
||||||
},
|
},
|
||||||
|
#ifdef __APPLE__
|
||||||
|
// MoltenVK debug mode turns on additional device loss error details, so
|
||||||
|
// use the crash diagnostic setting as an indicator of whether to turn it on.
|
||||||
|
vk::LayerSettingEXT{
|
||||||
|
.pLayerName = "MoltenVK",
|
||||||
|
.pSettingName = "MVK_CONFIG_DEBUG",
|
||||||
|
.type = vk::LayerSettingTypeEXT::eBool32,
|
||||||
|
.valueCount = 1,
|
||||||
|
.pValues = &enable_crash_diagnostic,
|
||||||
|
}
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
vk::StructureChain<vk::InstanceCreateInfo, vk::LayerSettingsCreateInfoEXT> instance_ci_chain = {
|
vk::StructureChain<vk::InstanceCreateInfo, vk::LayerSettingsCreateInfoEXT> instance_ci_chain = {
|
||||||
|
|
Loading…
Add table
Reference in a new issue