From f50083e47ac3498e2d1434b81196f8a731707afd Mon Sep 17 00:00:00 2001 From: PCSX2 Bot Date: Sat, 14 Sep 2024 00:01:37 +0000 Subject: [PATCH 1/2] Qt: Update Base Translation --- pcsx2-qt/Translations/pcsx2-qt_en.ts | 276 ++++++++++++++------------- 1 file changed, 140 insertions(+), 136 deletions(-) diff --git a/pcsx2-qt/Translations/pcsx2-qt_en.ts b/pcsx2-qt/Translations/pcsx2-qt_en.ts index d4eb68cb9fe28..e9fe9482ec7aa 100644 --- a/pcsx2-qt/Translations/pcsx2-qt_en.ts +++ b/pcsx2-qt/Translations/pcsx2-qt_en.ts @@ -369,33 +369,33 @@ Login token generated on %2. Achievements - + Hardcore mode will be enabled on system reset. - - + + {0} cannot be performed while hardcore mode is active. Do you want to disable hardcore mode? {0} will be cancelled if you select No. - + Hardcore mode is now enabled. - + {} (Hardcore Mode) - + {0}, {1}. - + You have unlocked {} of %n achievements Achievement popup @@ -404,7 +404,7 @@ Login token generated on %2. - + and earned {} of %n points Achievement popup @@ -413,22 +413,22 @@ Login token generated on %2. - + {} (Unofficial) - + Mastered {} - + {0}, {1} - + %n achievements Mastery popup @@ -437,7 +437,7 @@ Login token generated on %2. - + %n points Mastery popup @@ -446,264 +446,264 @@ Login token generated on %2. - + Leaderboard attempt started. - + Leaderboard attempt failed. - + Your Time: {}{} - + Your Score: {}{} - + Your Value: {}{} - + (Submitting) - + Achievements Disconnected - + An unlock request could not be completed. We will keep retrying to submit this request. - + Achievements Reconnected - + All pending unlock requests have completed. - + Hardcore mode is now disabled. - + Score: {0} pts (softcore: {1} pts) Unread messages: {2} - - + + Confirm Hardcore Mode - + Active Challenge Achievements - + (Hardcore Mode) - + You have unlocked all achievements and earned {} points! - - + + Leaderboard Download Failed - + Your Time: {0} (Best: {1}) - + Your Score: {0} (Best: {1}) - + Your Value: {0} (Best: {1}) - + {0} Leaderboard Position: {1} of {2} - + Server error in {0}: {1} - + Yes - + No - + You have unlocked {0} of {1} achievements, earning {2} of {3} possible points. - + Unknown - + Locked - + Unlocked - + Unsupported - + Unofficial - + Recently Unlocked - + Active Challenges - + Almost There - + {} points - + {} point - + XXX points - + Unlocked: {} - + This game has {} leaderboards. - + Submitting scores is disabled because hardcore mode is off. Leaderboards are read-only. - + Show Best - + Show Nearby - + Rank - + Name - + Time - + Score - + Value - + Date Submitted - + Downloading leaderboard data, please wait... - - + + Loading... - - + + This game has no achievements. - + Failed to read executable from disc. Achievements disabled. @@ -1189,33 +1189,33 @@ Leaderboard Position: {1} of {2} - + hz hz=Hertz, as in the measuring unit. Shown after the corresponding number. Those languages who'd need to remove the space or do something in between should do so. - + PAL Frame Rate: - + NTSC Frame Rate: - + PINE Settings - + Slot: - + Enable @@ -12051,6 +12051,11 @@ Swap chain: see Microsoft's Terminology Portal. Overrides the full-motion video (FMV) aspect ratio. If disabled, the FMV Aspect Ratio will match the same value as the general Aspect Ratio setting. + + + Enables mipmapping, which some games require to render correctly. Mipmapping uses progressively lower resolution variants of textures at progressively further distances to reduce processing load and avoid visual artifacts. + + Changes what filtering algorithm is used to map textures to surfaces.<br> Nearest: Makes no attempt to blend colors.<br> Bilinear (Forced): Will blend colors together to remove harsh edges between different colored pixels even if the game told the PS2 not to.<br> Bilinear (PS2): Will apply filtering to all surfaces that a game instructs the PS2 to filter.<br> Bilinear (Forced Excluding Sprites): Will apply filtering to all surfaces, even if the game told the PS2 not to, except sprites. @@ -12694,7 +12699,6 @@ Swap chain: see Microsoft's Terminology Portal. - Enables mipmapping, which some games require to render correctly. @@ -14243,7 +14247,7 @@ Right click to clear binding - + System Language [Default] @@ -15409,17 +15413,17 @@ The saves will not be recoverable. - + Missing Font File - + The font file '%1' is required for the On-Screen Display and Big Picture Mode to show messages in your language.<br><br>Do you want to download this file now? These files are usually less than 10 megabytes in size.<br><br><strong>If you do not download this file, on-screen messages will not be readable.</strong> - + Downloading Files @@ -17503,22 +17507,22 @@ Do you want to create this directory? - + Restore Defaults - + Copy Global Settings - + Clear Settings - + Close @@ -20581,12 +20585,12 @@ Scanning recursively takes more time, but will identify files in subdirectories. VMManager - + Failed to back up old save state {}. - + Failed to save save state: {}. @@ -20637,255 +20641,255 @@ Please consult the FAQs and Guides for further instructions. - + Failed to load save state - + State saved to slot {}. - + Failed to save save state to slot {}. - - + + Loading state - + Failed to load state (Memory card is busy) - + There is no save state in slot {}. - + Failed to load state from slot {} (Memory card is busy) - + Loading state from slot {}... - + Failed to save state (Memory card is busy) - + Failed to save state to slot {} (Memory card is busy) - + Saving state to slot {}... - + Frame advancing - + Disc removed. - + Disc changed to '{}'. - + Failed to open new disc image '{}'. Reverting to old image. Error was: {} - + Failed to switch back to old disc image. Removing disc. Error was: {} - + Cheats have been disabled due to achievements hardcore mode. - + Fast CDVD is enabled, this may break games. - + Cycle rate/skip is not at default, this may crash or make games run too slow. - + Upscale multiplier is below native, this will break rendering. - + Mipmapping is disabled. This may break rendering in some games. - + Texture filtering is not set to Bilinear (PS2). This will break rendering in some games. - + No Game Running - + Trilinear filtering is not set to automatic. This may break rendering in some games. - + Blending Accuracy is below Basic, this may break effects in some games. - + Hardware Download Mode is not set to Accurate, this may break rendering in some games. - + EE FPU Round Mode is not set to default, this may break some games. - + EE FPU Clamp Mode is not set to default, this may break some games. - + VU0 Round Mode is not set to default, this may break some games. - + VU1 Round Mode is not set to default, this may break some games. - + VU Clamp Mode is not set to default, this may break some games. - + 128MB RAM is enabled. Compatibility with some games may be affected. - + Game Fixes are not enabled. Compatibility with some games may be affected. - + Compatibility Patches are not enabled. Compatibility with some games may be affected. - + Frame rate for NTSC is not default. This may break some games. - + Frame rate for PAL is not default. This may break some games. - + EE Recompiler is not enabled, this will significantly reduce performance. - + VU0 Recompiler is not enabled, this will significantly reduce performance. - + VU1 Recompiler is not enabled, this will significantly reduce performance. - + IOP Recompiler is not enabled, this will significantly reduce performance. - + EE Cache is enabled, this will significantly reduce performance. - + EE Wait Loop Detection is not enabled, this may reduce performance. - + INTC Spin Detection is not enabled, this may reduce performance. - + Fastmem is not enabled, this will reduce performance. - + Instant VU1 is disabled, this may reduce performance. - + mVU Flag Hack is not enabled, this may reduce performance. - + GPU Palette Conversion is enabled, this may reduce performance. - + Texture Preloading is not Full, this may reduce performance. - + Estimate texture region is enabled, this may reduce performance. - + Texture dumping is enabled, this will continually dump textures to disk. From e8e0b97f6db56df34c895dd06e6f5a06d06111ca Mon Sep 17 00:00:00 2001 From: lightningterror <18107717+lightningterror@users.noreply.github.com> Date: Fri, 13 Sep 2024 06:46:21 +0200 Subject: [PATCH 2/2] GS/HW: Reduce sw/hdr colclip in more cases. When doing `Cs*Alpha + Cd*(1 - Alpha)` or `Cd*Alpha + Cs*(1 - Alpha)` with an alpha of 128 or lower we don't really need to hdr or sw colclip blend it because colour range of the result will be between 0-1 (0-255) without it overflowing. Also update previous optimizations to include Ad cases when RTA is already scaled. --- pcsx2/GS/Renderers/HW/GSRendererHW.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp index 2563f239a6dac..6344368782add 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp @@ -4149,6 +4149,7 @@ void GSRendererHW::EmulateBlending(int rt_alpha_min, int rt_alpha_max, const boo const bool alpha_c0_eq_less_max_one = (m_conf.ps.blend_c == 0 && GetAlphaMinMax().max <= 128); const bool alpha_c1_high_min_one = (m_conf.ps.blend_c == 1 && rt_alpha_min > 128); const bool alpha_c1_high_max_one = (m_conf.ps.blend_c == 1 && rt_alpha_max > 128); + const bool alpha_c1_eq_less_max_one = (m_conf.ps.blend_c == 1 && rt_alpha_max <= 128); bool alpha_c1_high_no_rta_correct = m_conf.ps.blend_c == 1 && !(new_rt_alpha_scale || can_scale_rt_alpha); const bool alpha_c2_eq_zero = (m_conf.ps.blend_c == 2 && AFIX == 0u); const bool alpha_c2_eq_one = (m_conf.ps.blend_c == 2 && AFIX == 128u); @@ -4233,8 +4234,12 @@ void GSRendererHW::EmulateBlending(int rt_alpha_min, int rt_alpha_max, const boo // HW blend can handle Cd output. bool color_dest_blend = !!(blend_flag & BLEND_CD); - // HW blend can handle it, no need for sw blend or hdr, Cd*Alpha or Cd*(1 - Alpha) where Alpha <= 128, Alpha is As or Af. - bool color_dest_blend2 = alpha_eq_less_one && ((blend_flag & BLEND_HW2) || (m_conf.ps.blend_b == m_conf.ps.blend_d == 1 && m_conf.ps.blend_a == 2)); + // HW blend can handle it, no need for sw or hdr colclip, Cd*Alpha or Cd*(1 - Alpha) where Alpha <= 128. + bool color_dest_blend2 = !m_draw_env->PABE.PABE && ((m_conf.ps.blend_a == 1 && m_conf.ps.blend_b == 2 && m_conf.ps.blend_d == 2) || ((m_conf.ps.blend_b == m_conf.ps.blend_d == 1) && m_conf.ps.blend_a == 2)) && + (alpha_eq_less_one || (alpha_c1_eq_less_max_one && new_rt_alpha_scale)); + // HW blend can handle it, no need for sw or hdr colclip, Cs*Alpha + Cd*(1 - Alpha) or Cd*Alpha + Cs*(1 - Alpha) where Alpha <= 128. + bool blend_zero_to_one_range = !m_draw_env->PABE.PABE && (((m_conf.ps.blend_b == m_conf.ps.blend_d == 1) && m_conf.ps.blend_a == 0) || (blend_flag & BLEND_MIX3)) && + (alpha_eq_less_one || (alpha_c1_eq_less_max_one && new_rt_alpha_scale)); // Do the multiplication in shader for blending accumulation: Cs*As + Cd or Cs*Af + Cd bool accumulation_blend = !!(blend_flag & BLEND_ACCU); @@ -4311,6 +4316,7 @@ void GSRendererHW::EmulateBlending(int rt_alpha_min, int rt_alpha_max, const boo // Prefer sw blend if possible. color_dest_blend &= !prefer_sw_blend; color_dest_blend2 &= !prefer_sw_blend; + blend_zero_to_one_range &= !prefer_sw_blend; accumulation_blend &= !prefer_sw_blend; // Enable sw blending for barriers. sw_blending |= blend_requires_barrier; @@ -4351,6 +4357,7 @@ void GSRendererHW::EmulateBlending(int rt_alpha_min, int rt_alpha_max, const boo // Prefer sw blend if possible. color_dest_blend &= !prefer_sw_blend; color_dest_blend2 &= !prefer_sw_blend; + blend_zero_to_one_range &= !prefer_sw_blend; accumulation_blend &= !prefer_sw_blend; // Enable sw blending for reading fb. sw_blending |= prefer_sw_blend; @@ -4384,7 +4391,7 @@ void GSRendererHW::EmulateBlending(int rt_alpha_min, int rt_alpha_max, const boo const bool free_colclip = features.framebuffer_fetch || no_prim_overlap || blend_non_recursive; GL_DBG("COLCLIP Info (Blending: %u/%u/%u/%u, OVERLAP: %d)", m_conf.ps.blend_a, m_conf.ps.blend_b, m_conf.ps.blend_c, m_conf.ps.blend_d, m_prim_overlap); - if (color_dest_blend || color_dest_blend2) + if (color_dest_blend || color_dest_blend2 || blend_zero_to_one_range) { // No overflow, disable colclip. GL_INS("COLCLIP mode DISABLED");