diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index ed4a150c00..d72fb963cf 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -222,7 +222,7 @@ void GLGSRender::on_init_thread() m_texture_parameters_buffer->create(gl::buffer::target::uniform, 16 * 0x100000); m_vertex_layout_buffer->create(gl::buffer::target::uniform, 16 * 0x100000); - if (g_cfg.video.shader_interpreter_mode != shader_interpreter_mode::disabled) + if (g_cfg.video.interpreter_mode != shader_interpreter_mode::disabled) { m_vertex_instructions_buffer->create(gl::buffer::target::ssbo, 16 * 0x100000); m_fragment_instructions_buffer->create(gl::buffer::target::ssbo, 16 * 0x100000); @@ -610,7 +610,7 @@ void GLGSRender::clear_surface(u32 arg) bool GLGSRender::load_program() { - const auto interpreter_mode = g_cfg.video.shader_interpreter_mode.get(); + const auto interpreter_mode = g_cfg.video.interpreter_mode.get(); if (m_interpreter_state = (m_graphics_state & rsx::pipeline_state::invalidate_pipeline_bits)) { get_current_fragment_program(fs_sampler_state); diff --git a/rpcs3/Emu/RSX/GL/GLShaderInterpreter.h b/rpcs3/Emu/RSX/GL/GLShaderInterpreter.h index efea49f531..93b8175ab7 100644 --- a/rpcs3/Emu/RSX/GL/GLShaderInterpreter.h +++ b/rpcs3/Emu/RSX/GL/GLShaderInterpreter.h @@ -27,7 +27,7 @@ namespace gl return false; } - if (allocated.size() == num_used) + if (allocated.size() == unsigned(num_used)) { allocated.push_back(value); } diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 9ced4524dc..0f2a3f0427 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -465,7 +465,7 @@ VKGSRender::VKGSRender() : GSRender() m_index_buffer_ring_info.create(VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_INDEX_RING_BUFFER_SIZE_M * 0x100000, "index buffer"); m_texture_upload_buffer_ring_info.create(VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_TEXTURE_UPLOAD_RING_BUFFER_SIZE_M * 0x100000, "texture upload buffer", 32 * 0x100000); - if (g_cfg.video.shader_interpreter_mode != shader_interpreter_mode::disabled) + if (g_cfg.video.interpreter_mode != shader_interpreter_mode::disabled) { m_vertex_instructions_buffer.create(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, 64 * 0x100000, "vertex instructions buffer", 512 * 16); m_fragment_instructions_buffer.create(VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, 64 * 0x100000, "fragment instructions buffer", 2048); @@ -550,7 +550,7 @@ VKGSRender::VKGSRender() : GSRender() m_occlusion_query_pool.initialize(*m_current_command_buffer); - if (g_cfg.video.shader_interpreter_mode != shader_interpreter_mode::disabled) + if (g_cfg.video.interpreter_mode != shader_interpreter_mode::disabled) { m_shader_interpreter.init(*m_device); } @@ -1583,7 +1583,7 @@ bool VKGSRender::load_program() } } - if (g_cfg.video.shader_interpreter_mode != shader_interpreter_mode::forced) [[likely]] + if (g_cfg.video.interpreter_mode != shader_interpreter_mode::forced) [[likely]] { vk::enter_uninterruptible(); @@ -1621,7 +1621,7 @@ bool VKGSRender::load_program() m_program = nullptr; } - if (!m_program && g_cfg.video.shader_interpreter_mode != shader_interpreter_mode::disabled) + if (!m_program && g_cfg.video.interpreter_mode != shader_interpreter_mode::disabled) { if (!m_shader_interpreter.is_interpreter(old_program)) { diff --git a/rpcs3/Emu/RSX/VK/VKPresent.cpp b/rpcs3/Emu/RSX/VK/VKPresent.cpp index 5c56870751..8ccb152f23 100644 --- a/rpcs3/Emu/RSX/VK/VKPresent.cpp +++ b/rpcs3/Emu/RSX/VK/VKPresent.cpp @@ -217,7 +217,7 @@ void VKGSRender::frame_context_cleanup(vk::frame_context_t *ctx, bool free_resou ctx->buffer_views_to_clean.clear(); - if (g_cfg.video.shader_interpreter_mode != shader_interpreter_mode::disabled) + if (g_cfg.video.interpreter_mode != shader_interpreter_mode::disabled) { // TODO: This is jank AF m_vertex_instructions_buffer.reset_allocation_stats(); diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index 30d8799b53..fd29d70c28 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -101,7 +101,7 @@ struct cfg_root : cfg::node cfg::_enum aspect_ratio{ this, "Aspect ratio", video_aspect::_16_9 }; cfg::_enum frame_limit{ this, "Frame limit", frame_limit_type::none, true }; cfg::_enum antialiasing_level{ this, "MSAA", msaa_level::_auto }; - cfg::_enum shader_interpreter_mode{ this, "Enable shader interpreter", shader_interpreter_mode::disabled }; + cfg::_enum interpreter_mode{ this, "Shader interpreter mode", shader_interpreter_mode::disabled }; cfg::_bool write_color_buffers{ this, "Write Color Buffers" }; cfg::_bool write_depth_buffer{ this, "Write Depth Buffer" }; @@ -132,7 +132,6 @@ struct cfg_root : cfg::node cfg::_bool enable_3d{ this, "Enable 3D", false }; cfg::_int<1, 8> consecutive_frames_to_draw{ this, "Consecutive Frames To Draw", 1, true}; cfg::_int<1, 8> consecutive_frames_to_skip{ this, "Consecutive Frames To Skip", 1, true}; - cfg::_bool enable_shader_interpreter{ this, "Enable Shader Interpreter", true }; cfg::_int<50, 800> resolution_scale_percent{ this, "Resolution Scale", 100 }; cfg::_int<0, 16> anisotropic_level_override{ this, "Anisotropic Filter Override", 0, true }; cfg::_int<1, 1024> min_scalable_dimension{ this, "Minimum Scalable Dimension", 16 }; diff --git a/rpcs3/Emu/system_config_types.cpp b/rpcs3/Emu/system_config_types.cpp index bb9a7387ee..e5a4c787eb 100644 --- a/rpcs3/Emu/system_config_types.cpp +++ b/rpcs3/Emu/system_config_types.cpp @@ -388,6 +388,7 @@ void fmt_class_string::format(std::string& out, u64 arg) }); } +template <> void fmt_class_string::format(std::string& out, u64 arg) { format_enum(out, arg, [](shader_interpreter_mode value)