early-access version 2602
This commit is contained in:
parent
73b4c61bdd
commit
4bfdd55fd3
@ -1,7 +1,7 @@
|
|||||||
yuzu emulator early access
|
yuzu emulator early access
|
||||||
=============
|
=============
|
||||||
|
|
||||||
This is the source code for early-access 2596.
|
This is the source code for early-access 2602.
|
||||||
|
|
||||||
## Legal Notice
|
## Legal Notice
|
||||||
|
|
||||||
|
@ -367,17 +367,14 @@ BlitImageHelper::BlitImageHelper(const Device& device_, VKScheduler& scheduler_,
|
|||||||
PipelineLayoutCreateInfo(two_textures_set_layout.address()))),
|
PipelineLayoutCreateInfo(two_textures_set_layout.address()))),
|
||||||
full_screen_vert(BuildShader(device, FULL_SCREEN_TRIANGLE_VERT_SPV)),
|
full_screen_vert(BuildShader(device, FULL_SCREEN_TRIANGLE_VERT_SPV)),
|
||||||
blit_color_to_color_frag(BuildShader(device, VULKAN_BLIT_COLOR_FLOAT_FRAG_SPV)),
|
blit_color_to_color_frag(BuildShader(device, VULKAN_BLIT_COLOR_FLOAT_FRAG_SPV)),
|
||||||
|
blit_depth_stencil_frag(BuildShader(device, VULKAN_BLIT_DEPTH_STENCIL_FRAG_SPV)),
|
||||||
convert_depth_to_float_frag(BuildShader(device, CONVERT_DEPTH_TO_FLOAT_FRAG_SPV)),
|
convert_depth_to_float_frag(BuildShader(device, CONVERT_DEPTH_TO_FLOAT_FRAG_SPV)),
|
||||||
convert_float_to_depth_frag(BuildShader(device, CONVERT_FLOAT_TO_DEPTH_FRAG_SPV)),
|
convert_float_to_depth_frag(BuildShader(device, CONVERT_FLOAT_TO_DEPTH_FRAG_SPV)),
|
||||||
convert_abgr8_to_d24s8_frag(BuildShader(device, CONVERT_ABGR8_TO_D24S8_FRAG_SPV)),
|
convert_abgr8_to_d24s8_frag(BuildShader(device, CONVERT_ABGR8_TO_D24S8_FRAG_SPV)),
|
||||||
convert_d24s8_to_abgr8_frag(BuildShader(device, CONVERT_D24S8_TO_ABGR8_FRAG_SPV)),
|
convert_d24s8_to_abgr8_frag(BuildShader(device, CONVERT_D24S8_TO_ABGR8_FRAG_SPV)),
|
||||||
convert_s8d24_to_abgr8_frag(BuildShader(device, CONVERT_S8D24_TO_ABGR8_FRAG_SPV)),
|
convert_s8d24_to_abgr8_frag(BuildShader(device, CONVERT_S8D24_TO_ABGR8_FRAG_SPV)),
|
||||||
linear_sampler(device.GetLogical().CreateSampler(SAMPLER_CREATE_INFO<VK_FILTER_LINEAR>)),
|
linear_sampler(device.GetLogical().CreateSampler(SAMPLER_CREATE_INFO<VK_FILTER_LINEAR>)),
|
||||||
nearest_sampler(device.GetLogical().CreateSampler(SAMPLER_CREATE_INFO<VK_FILTER_NEAREST>)) {
|
nearest_sampler(device.GetLogical().CreateSampler(SAMPLER_CREATE_INFO<VK_FILTER_NEAREST>)) {}
|
||||||
if (device.IsExtShaderStencilExportSupported()) {
|
|
||||||
blit_depth_stencil_frag = BuildShader(device, VULKAN_BLIT_DEPTH_STENCIL_FRAG_SPV);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BlitImageHelper::~BlitImageHelper() = default;
|
BlitImageHelper::~BlitImageHelper() = default;
|
||||||
|
|
||||||
|
@ -1451,8 +1451,7 @@ bool Image::BlitScaleHelper(bool scale_up) {
|
|||||||
|
|
||||||
runtime->blit_image_helper.BlitColor(blit_framebuffer.get(), color_view, dst_region,
|
runtime->blit_image_helper.BlitColor(blit_framebuffer.get(), color_view, dst_region,
|
||||||
src_region, operation, BLIT_OPERATION);
|
src_region, operation, BLIT_OPERATION);
|
||||||
} else if (!runtime->device.IsBlitDepthStencilSupported() &&
|
} else if (aspect_mask == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) {
|
||||||
aspect_mask == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) {
|
|
||||||
if (!blit_framebuffer) {
|
if (!blit_framebuffer) {
|
||||||
blit_framebuffer = std::make_unique<Framebuffer>(*runtime, nullptr, view_ptr, extent);
|
blit_framebuffer = std::make_unique<Framebuffer>(*runtime, nullptr, view_ptr, extent);
|
||||||
}
|
}
|
||||||
|
@ -621,6 +621,11 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
|
|||||||
khr_push_descriptor = false;
|
khr_push_descriptor = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
const u32 nv_major_version = (properties.driverVersion >> 22) & 0x3ff;
|
||||||
|
if (nv_major_version >= 510) {
|
||||||
|
LOG_WARNING(Render_Vulkan, "NVIDIA Drivers >= 510 do not support MSAA image blits");
|
||||||
|
cant_blit_msaa = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const bool is_radv = driver_id == VK_DRIVER_ID_MESA_RADV;
|
const bool is_radv = driver_id == VK_DRIVER_ID_MESA_RADV;
|
||||||
if (ext_extended_dynamic_state && is_radv) {
|
if (ext_extended_dynamic_state && is_radv) {
|
||||||
|
@ -798,6 +798,7 @@ void Config::ReadUIValues() {
|
|||||||
ReadBasicSetting(UISettings::values.pause_when_in_background);
|
ReadBasicSetting(UISettings::values.pause_when_in_background);
|
||||||
ReadBasicSetting(UISettings::values.mute_when_in_background);
|
ReadBasicSetting(UISettings::values.mute_when_in_background);
|
||||||
ReadBasicSetting(UISettings::values.hide_mouse);
|
ReadBasicSetting(UISettings::values.hide_mouse);
|
||||||
|
ReadBasicSetting(UISettings::values.disable_web_applet);
|
||||||
|
|
||||||
qt_config->endGroup();
|
qt_config->endGroup();
|
||||||
}
|
}
|
||||||
@ -1342,6 +1343,7 @@ void Config::SaveUIValues() {
|
|||||||
WriteBasicSetting(UISettings::values.pause_when_in_background);
|
WriteBasicSetting(UISettings::values.pause_when_in_background);
|
||||||
WriteBasicSetting(UISettings::values.mute_when_in_background);
|
WriteBasicSetting(UISettings::values.mute_when_in_background);
|
||||||
WriteBasicSetting(UISettings::values.hide_mouse);
|
WriteBasicSetting(UISettings::values.hide_mouse);
|
||||||
|
WriteBasicSetting(UISettings::values.disable_web_applet);
|
||||||
|
|
||||||
qt_config->endGroup();
|
qt_config->endGroup();
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,13 @@ void ConfigureDebug::SetConfiguration() {
|
|||||||
ui->disable_loop_safety_checks->setChecked(
|
ui->disable_loop_safety_checks->setChecked(
|
||||||
Settings::values.disable_shader_loop_safety_checks.GetValue());
|
Settings::values.disable_shader_loop_safety_checks.GetValue());
|
||||||
ui->extended_logging->setChecked(Settings::values.extended_logging.GetValue());
|
ui->extended_logging->setChecked(Settings::values.extended_logging.GetValue());
|
||||||
|
|
||||||
|
#ifdef YUZU_USE_QT_WEB_ENGINE
|
||||||
|
ui->disable_web_applet->setChecked(UISettings::values.disable_web_applet.GetValue());
|
||||||
|
#else
|
||||||
|
ui->disable_web_applet->setEnabled(false);
|
||||||
|
ui->disable_web_applet->setText(QString::fromUtf8("Web applet not compiled"));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigureDebug::ApplyConfiguration() {
|
void ConfigureDebug::ApplyConfiguration() {
|
||||||
@ -80,6 +87,7 @@ void ConfigureDebug::ApplyConfiguration() {
|
|||||||
ui->disable_loop_safety_checks->isChecked();
|
ui->disable_loop_safety_checks->isChecked();
|
||||||
Settings::values.disable_macro_jit = ui->disable_macro_jit->isChecked();
|
Settings::values.disable_macro_jit = ui->disable_macro_jit->isChecked();
|
||||||
Settings::values.extended_logging = ui->extended_logging->isChecked();
|
Settings::values.extended_logging = ui->extended_logging->isChecked();
|
||||||
|
UISettings::values.disable_web_applet = ui->disable_web_applet->isChecked();
|
||||||
Debugger::ToggleConsole();
|
Debugger::ToggleConsole();
|
||||||
Common::Log::Filter filter;
|
Common::Log::Filter filter;
|
||||||
filter.ParseFilterString(Settings::values.log_filter.GetValue());
|
filter.ParseFilterString(Settings::values.log_filter.GetValue());
|
||||||
|
@ -8,49 +8,49 @@
|
|||||||
<property name="title">
|
<property name="title">
|
||||||
<string>Logging</string>
|
<string>Logging</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_1">
|
<layout class="QGridLayout" name="gridLayout_1">
|
||||||
<item row="0" column="0" colspan="2">
|
<item row="0" column="0" colspan="2">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_1">
|
<layout class="QHBoxLayout" name="horizontalLayout_1">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_1">
|
<widget class="QLabel" name="label_1">
|
||||||
<property name="text">
|
|
||||||
<string>Global Log Filter</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLineEdit" name="log_filter_edit"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QCheckBox" name="toggle_console">
|
|
||||||
<property name="text">
|
|
||||||
<string>Show Log in Console</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QPushButton" name="open_log_button">
|
|
||||||
<property name="text">
|
|
||||||
<string>Open Log Location</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QCheckBox" name="extended_logging">
|
|
||||||
<property name="enabled">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>When checked, the max size of the log increases from 100 MB to 1 GB</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Enable Extended Logging**</string>
|
<string>Global Log Filter</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
<item>
|
||||||
|
<widget class="QLineEdit" name="log_filter_edit"/>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QCheckBox" name="toggle_console">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show Log in Console</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QPushButton" name="open_log_button">
|
||||||
|
<property name="text">
|
||||||
|
<string>Open Log Location</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QCheckBox" name="extended_logging">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>When checked, the max size of the log increases from 100 MB to 1 GB</string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Enable Extended Logging**</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@ -183,7 +183,7 @@
|
|||||||
<string>Advanced</string>
|
<string>Advanced</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_4">
|
<layout class="QGridLayout" name="gridLayout_4">
|
||||||
<item> row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QCheckBox" name="quest_flag">
|
<widget class="QCheckBox" name="quest_flag">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Kiosk (Quest) Mode</string>
|
<string>Kiosk (Quest) Mode</string>
|
||||||
@ -218,6 +218,13 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QCheckBox" name="disable_web_applet">
|
||||||
|
<property name="text">
|
||||||
|
<string>Disable Web Applet**</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -582,7 +582,7 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,
|
|||||||
#ifdef YUZU_USE_QT_WEB_ENGINE
|
#ifdef YUZU_USE_QT_WEB_ENGINE
|
||||||
|
|
||||||
// Raw input breaks with the web applet, Disable web applets if enabled
|
// Raw input breaks with the web applet, Disable web applets if enabled
|
||||||
if (disable_web_applet || Settings::values.enable_raw_input) {
|
if (UISettings::values.disable_web_applet || Settings::values.enable_raw_input) {
|
||||||
emit WebBrowserClosed(Service::AM::Applets::WebExitReason::WindowClosed,
|
emit WebBrowserClosed(Service::AM::Applets::WebExitReason::WindowClosed,
|
||||||
"http://localhost/");
|
"http://localhost/");
|
||||||
return;
|
return;
|
||||||
@ -647,12 +647,12 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,
|
|||||||
connect(exit_action, &QAction::triggered, this, [this, &web_browser_view] {
|
connect(exit_action, &QAction::triggered, this, [this, &web_browser_view] {
|
||||||
const auto result = QMessageBox::warning(
|
const auto result = QMessageBox::warning(
|
||||||
this, tr("Disable Web Applet"),
|
this, tr("Disable Web Applet"),
|
||||||
tr("Disabling the web applet will cause it to not be shown again for the rest of the "
|
tr("Disabling the web applet can lead to undefined behavior and should only be used "
|
||||||
"emulated session. This can lead to undefined behavior and should only be used with "
|
"with Super Mario 3D All-Stars. Are you sure you want to disable the web "
|
||||||
"Super Mario 3D All-Stars. Are you sure you want to disable the web applet?"),
|
"applet?\n(This can be re-enabled in the Debug settings.)"),
|
||||||
QMessageBox::Yes | QMessageBox::No);
|
QMessageBox::Yes | QMessageBox::No);
|
||||||
if (result == QMessageBox::Yes) {
|
if (result == QMessageBox::Yes) {
|
||||||
disable_web_applet = true;
|
UISettings::values.disable_web_applet = true;
|
||||||
web_browser_view.SetFinished(true);
|
web_browser_view.SetFinished(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -398,9 +398,6 @@ private:
|
|||||||
// Last game booted, used for multi-process apps
|
// Last game booted, used for multi-process apps
|
||||||
QString last_filename_booted;
|
QString last_filename_booted;
|
||||||
|
|
||||||
// Disables the web applet for the rest of the emulated session
|
|
||||||
bool disable_web_applet{};
|
|
||||||
|
|
||||||
// Applets
|
// Applets
|
||||||
QtSoftwareKeyboardDialog* software_keyboard = nullptr;
|
QtSoftwareKeyboardDialog* software_keyboard = nullptr;
|
||||||
|
|
||||||
|
@ -114,6 +114,7 @@ struct Values {
|
|||||||
|
|
||||||
bool configuration_applied;
|
bool configuration_applied;
|
||||||
bool reset_to_defaults;
|
bool reset_to_defaults;
|
||||||
|
Settings::BasicSetting<bool> disable_web_applet{true, "disable_web_applet"};
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Values values;
|
extern Values values;
|
||||||
|
Loading…
Reference in New Issue
Block a user