mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-02-06 00:40:11 +00:00
rsx: Make debug overlay dynamic
This commit is contained in:
parent
0ef5743261
commit
fb1c790350
@ -276,15 +276,6 @@ void GLGSRender::on_init_thread()
|
||||
|
||||
m_vao.element_array_buffer = *m_index_ring_buffer;
|
||||
|
||||
if (g_cfg.video.overlay)
|
||||
{
|
||||
if (gl_caps.ARB_shader_draw_parameters_supported)
|
||||
{
|
||||
m_text_printer.init();
|
||||
m_text_printer.set_enabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
int image_unit = 0;
|
||||
for (auto &sampler : m_fs_sampler_states)
|
||||
{
|
||||
|
@ -290,8 +290,14 @@ void GLGSRender::flip(const rsx::display_flip_info_t& info)
|
||||
}
|
||||
}
|
||||
|
||||
if (g_cfg.video.overlay)
|
||||
if (g_cfg.video.overlay && gl::get_driver_caps().ARB_shader_draw_parameters_supported)
|
||||
{
|
||||
if (!m_text_printer.is_enabled())
|
||||
{
|
||||
m_text_printer.init();
|
||||
m_text_printer.set_enabled(true);
|
||||
}
|
||||
|
||||
// Disable depth test
|
||||
gl_state.depth_func(GL_ALWAYS);
|
||||
|
||||
|
@ -118,6 +118,11 @@ namespace gl
|
||||
enabled = state;
|
||||
}
|
||||
|
||||
bool is_enabled()
|
||||
{
|
||||
return enabled;
|
||||
}
|
||||
|
||||
void print_text(int x, int y, int target_w, int target_h, const std::string &text, color4f color = { 0.3f, 1.f, 0.3f, 1.f })
|
||||
{
|
||||
if (!enabled) return;
|
||||
|
@ -478,7 +478,6 @@ namespace rsx
|
||||
on_init_thread();
|
||||
|
||||
method_registers.init();
|
||||
m_profiler.enabled = !!g_cfg.video.overlay;
|
||||
|
||||
if (!zcull_ctrl)
|
||||
{
|
||||
@ -2843,6 +2842,7 @@ namespace rsx
|
||||
|
||||
// Reset current stats
|
||||
m_frame_stats = {};
|
||||
m_profiler.enabled = !!g_cfg.video.overlay;
|
||||
}
|
||||
|
||||
void thread::request_emu_flip(u32 buffer)
|
||||
|
@ -477,13 +477,6 @@ VKGSRender::VKGSRender() : GSRender()
|
||||
vk::initialize_compiler_context();
|
||||
vk::initialize_pipe_compiler(g_cfg.video.shader_compiler_threads_count);
|
||||
|
||||
if (g_cfg.video.overlay)
|
||||
{
|
||||
auto key = vk::get_renderpass_key(m_swapchain->get_surface_format());
|
||||
m_text_writer = std::make_unique<vk::text_writer>();
|
||||
m_text_writer->init(*m_device, vk::get_renderpass(*m_device, key));
|
||||
}
|
||||
|
||||
m_prog_buffer = std::make_unique<vk::program_cache>
|
||||
(
|
||||
[this](const vk::pipeline_props& props, const RSXVertexProgram& vp, const RSXFragmentProgram& fp)
|
||||
|
@ -190,7 +190,7 @@ void VKGSRender::frame_context_cleanup(vk::frame_context_t *ctx, bool free_resou
|
||||
|
||||
if (free_resources)
|
||||
{
|
||||
if (g_cfg.video.overlay)
|
||||
if (m_text_writer)
|
||||
{
|
||||
m_text_writer->reset_descriptors();
|
||||
}
|
||||
@ -730,6 +730,13 @@ void VKGSRender::flip(const rsx::display_flip_info_t& info)
|
||||
|
||||
if (g_cfg.video.overlay)
|
||||
{
|
||||
if (!m_text_writer)
|
||||
{
|
||||
auto key = vk::get_renderpass_key(m_swapchain->get_surface_format());
|
||||
m_text_writer = std::make_unique<vk::text_writer>();
|
||||
m_text_writer->init(*m_device, vk::get_renderpass(*m_device, key));
|
||||
}
|
||||
|
||||
m_text_writer->print_text(*m_current_command_buffer, *direct_fbo, 0, 0, direct_fbo->width(), direct_fbo->height(), fmt::format("RSX Load: %3d%%", get_load()));
|
||||
m_text_writer->print_text(*m_current_command_buffer, *direct_fbo, 0, 18, direct_fbo->width(), direct_fbo->height(), fmt::format("draw calls: %17d", info.stats.draw_calls));
|
||||
m_text_writer->print_text(*m_current_command_buffer, *direct_fbo, 0, 36, direct_fbo->width(), direct_fbo->height(), fmt::format("draw call setup: %12dus", info.stats.setup_time));
|
||||
|
@ -126,7 +126,7 @@ struct cfg_root : cfg::node
|
||||
cfg::_bool log_programs{ this, "Log shader programs" };
|
||||
cfg::_bool vsync{ this, "VSync" };
|
||||
cfg::_bool debug_output{ this, "Debug output" };
|
||||
cfg::_bool overlay{ this, "Debug overlay" };
|
||||
cfg::_bool overlay{ this, "Debug overlay", false, true };
|
||||
cfg::_bool gl_legacy_buffers{ this, "Use Legacy OpenGL Buffers" };
|
||||
cfg::_bool use_gpu_texture_scaling{ this, "Use GPU texture scaling", false };
|
||||
cfg::_bool stretch_to_display_area{ this, "Stretch To Display Area", false, true };
|
||||
|
Loading…
x
Reference in New Issue
Block a user