diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 99af60a814..c03cc13112 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -24,7 +24,7 @@ namespace GLGSRender::GLGSRender() : GSRender() { - m_shaders_cache.reset(new gl::shader_cache(m_prog_buffer, "opengl", "v1")); + m_shaders_cache.reset(new gl::shader_cache(m_prog_buffer, "opengl", "v1.1")); if (g_cfg.video.disable_vertex_cache) m_vertex_cache.reset(new gl::null_vertex_cache()); diff --git a/rpcs3/Emu/RSX/VK/VKGSRender.cpp b/rpcs3/Emu/RSX/VK/VKGSRender.cpp index 66e8dc6efc..726577084b 100644 --- a/rpcs3/Emu/RSX/VK/VKGSRender.cpp +++ b/rpcs3/Emu/RSX/VK/VKGSRender.cpp @@ -623,7 +623,7 @@ VKGSRender::VKGSRender() : GSRender() else m_vertex_cache.reset(new vk::weak_vertex_cache()); - m_shaders_cache.reset(new vk::shader_cache(*m_prog_buffer.get(), "vulkan", "v1")); + m_shaders_cache.reset(new vk::shader_cache(*m_prog_buffer.get(), "vulkan", "v1.1")); open_command_buffer(); diff --git a/rpcs3/Emu/RSX/rsx_methods.cpp b/rpcs3/Emu/RSX/rsx_methods.cpp index 8b3d270d87..aaf93b3af3 100644 --- a/rpcs3/Emu/RSX/rsx_methods.cpp +++ b/rpcs3/Emu/RSX/rsx_methods.cpp @@ -636,6 +636,12 @@ namespace rsx u32 convert_w = (u32)(scale_x * in_w); u32 convert_h = (u32)(scale_y * in_h); + if (convert_w == 0 || convert_h == 0) + { + LOG_ERROR(RSX, "NV3089_IMAGE_IN: Invalid dimensions or scaling factor. Request ignored"); + return; + } + u32 slice_h = clip_h; blit_src_info src_info = {}; blit_dst_info dst_info = {};