rsx: Improve Null Renderer

This commit is contained in:
Eladash 2022-06-12 14:43:16 +03:00 committed by Ivan
parent 2512e958fa
commit 264253757c
7 changed files with 23 additions and 0 deletions

View File

@ -3270,6 +3270,7 @@ namespace rsx
current_display_buffer = buffer;
m_queued_flip.emu_flip = true;
m_queued_flip.in_progress = true;
m_queued_flip.skip_frame |= g_cfg.video.disable_video_output && !g_cfg.video.perf_overlay.perf_overlay_enabled;
flip(m_queued_flip);

View File

@ -640,6 +640,14 @@ namespace rsx
}
rsx::method_registers.current_draw_clause.compile();
if (g_cfg.video.disable_video_output)
{
rsxthr->execute_nop_draw();
rsxthr->rsx::thread::end();
return;
}
rsxthr->end();
}
else

View File

@ -141,6 +141,7 @@ struct cfg_root : cfg::node
cfg::_bool force_high_precision_z_buffer{ this, "Force High Precision Z buffer" };
cfg::_bool strict_rendering_mode{ this, "Strict Rendering Mode" };
cfg::_bool disable_zcull_queries{ this, "Disable ZCull Occlusion Queries", false, true };
cfg::_bool disable_video_output{ this, "Disable Video Output", false, true };
cfg::_bool disable_vertex_cache{ this, "Disable Vertex Cache", false };
cfg::_bool disable_FIFO_reordering{ this, "Disable FIFO Reordering", false };
cfg::_bool frame_skip_enabled{ this, "Enable Frame Skip", false, true };

View File

@ -70,6 +70,7 @@ enum class emu_settings_type
StrictRenderingMode,
DisableVertexCache,
DisableOcclusionQueries,
DisableVideoOutput,
DisableFIFOReordering,
StrictTextureFlushing,
DisableNativefloat16,
@ -239,6 +240,7 @@ inline static const QMap<emu_settings_type, cfg_location> settings_location =
{ emu_settings_type::StrictRenderingMode, { "Video", "Strict Rendering Mode"}},
{ emu_settings_type::DisableVertexCache, { "Video", "Disable Vertex Cache"}},
{ emu_settings_type::DisableOcclusionQueries, { "Video", "Disable ZCull Occlusion Queries"}},
{ emu_settings_type::DisableVideoOutput, { "Video", "Disable Video Output"}},
{ emu_settings_type::DisableFIFOReordering, { "Video", "Disable FIFO Reordering"}},
{ emu_settings_type::DisableNativefloat16, { "Video", "Disable native float16 support"}},
{ emu_settings_type::Enable3D, { "Video", "Enable 3D"}},

View File

@ -2049,6 +2049,9 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
m_emu_settings->EnhanceCheckBox(ui->disableHwOcclusionQueries, emu_settings_type::DisableOcclusionQueries);
SubscribeTooltip(ui->disableHwOcclusionQueries, tooltips.settings.disable_occlusion_queries);
m_emu_settings->EnhanceCheckBox(ui->disableVideoOutput, emu_settings_type::DisableVideoOutput);
SubscribeTooltip(ui->disableVideoOutput, tooltips.settings.disable_video_output);
m_emu_settings->EnhanceCheckBox(ui->forceCpuBlitEmulation, emu_settings_type::ForceCPUBlitEmulation);
SubscribeTooltip(ui->forceCpuBlitEmulation, tooltips.settings.force_cpu_blit_emulation);

View File

@ -3855,6 +3855,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="disableVideoOutput">
<property name="text">
<string>Disable Video Output</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="forceCpuBlitEmulation">
<property name="text">

View File

@ -103,6 +103,7 @@ public:
const QString debug_overlay = tr("Provides a graphical overlay of various debugging information.\nIf unsure, don't use this option.");
const QString log_shader_programs = tr("Dump game shaders to file. Only useful to developers.\nIf unsure, don't use this option.");
const QString disable_occlusion_queries = tr("Disables running occlusion queries. Minor to moderate performance boost.\nMight introduce issues with broken occlusion e.g missing geometry and extreme pop-in.");
const QString disable_video_output = tr("Disables all video output and PS3 graphical rendering.\nIts only use case is to evaluate performance on CELL for development.");
const QString force_cpu_blit_emulation = tr("Forces emulation of all blit and image manipulation operations on the CPU.\nRequires 'Write Color Buffers' option to also be enabled in most cases to avoid missing graphics.\nSignificantly degrades performance but is more accurate in some cases.\nThis setting overrides the 'GPU texture scaling' option.");
const QString disable_vulkan_mem_allocator = tr("Disables the custom Vulkan memory allocator and reverts to direct calls to VkAllocateMemory/VkFreeMemory.");
const QString disable_fifo_reordering = tr("Disables RSX FIFO optimizations completely. Draws are processed as they are received by the DMA puller.");