Commit Graph

13661 Commits

Author SHA1 Message Date
lightningterror 6085c5bf01 GS-hw: Enable Ad to As blend swap when it detects barrier(fbmask) on d3d11..
Allow to run it on basic level, fb is already read so there is no extra cost and is more accurate.
2022-02-03 10:16:16 +01:00
lightningterror 550f0d9936 GS-hw: Cleanup some stuff from clr3 blend. 2022-02-03 01:11:08 +01:00
lightningterror 9c00554118 GS-hw: Allow to run clr_blend1 and clr_blend2 over sw blending.
As or F case only, no Ad.

Allow condition to run when there are no texture barriers (gl/vk),
or copying the fb (d3d11).
Run when colclamp is 1 as hw blend will clamp value to 0-1.
Check for texture barriers, don't run if any is enabled.
2022-02-03 01:11:08 +01:00
lightningterror ec7e8989a6 GS-hw: Move the sw blend for BLEND_C_CLR3 to High level and upper.
Reading the frame buffer is slow, let's allow hw blend to run, can partially handle it.
2022-02-03 01:11:08 +01:00
lightningterror 3ca4272230 GS-hw: Implement hw, hw/sw, sw blending on Ad when alpha write is masked.
Idea is to replace Ad with As when alpha write is masked,
then expand/let blend mix, accumulation blend non recursive blend or hw clr blend to
do the blending with Ad swapped as As.

We are doing this to try to bring some originally higher blending modes to lower levels
where we can do the draws with less texture barriers instead (gl/vk),
as for d3d11 this allows to run blending on the draws since previously the cases weren't handled properly,
it will be slower on d3d11 since we will be reading the frame buffer but it's better than nothing.

D3D11: It is enabled on Medium blending or higher, if draw is fbmask then it will enable
it on basic blending too.

OpenGL/Vulkan:
It is enabled based on the previous blending modes:
accumulation blend -> either minimum or basic level, depending on colclamp.
non recursive blend -> either minimum or basic level, depending on colclamp.
blend mix -> basic and higher level.
hw clr blend -> minimum and higher level.

All:
Prefer full sw blend when primitives don't overlap, sw fbmask or full barrier is used, it is more accurate.
2022-02-03 01:11:08 +01:00
lightningterror ae14afd5f7 GS-hw: Combine BLEND_C_CLR2_AF and BLEND_C_CLR3_AS in one shader bit.
Free a shader bit.
2022-02-03 01:11:08 +01:00
RedDevilus 3d40b23496 GameDB: Beatmania entries
Adding missing entries so that Ziemas can be happy.
2022-02-02 23:52:59 +00:00
TellowKrinkle 88c0c41a70 CMake: Use relative paths for package mode
Allows relocating install prefix without recompiling
2022-02-02 17:09:48 -06:00
TellowKrinkle 176917caf4 CMake: Require gettext for translations on macOS
MacOS uses modified po files, which means it can't use the precompiled mos
2022-02-02 17:09:48 -06:00
TellowKrinkle e2e8fdafb1 CMake: Make translation macro a function
Macros can set variables in the parent scope but we don't need that here
2022-02-02 17:09:48 -06:00
TellowKrinkle aad8b09d81 CMake: Remove all argument option from translations macro
There's no reason you wouldn't want it
2022-02-02 17:09:48 -06:00
TellowKrinkle 90e3d9e460 CMake: Move translation file processing to main pcsx2 directory
Reduces workarounds for cmake dumbness
2022-02-02 17:09:48 -06:00
TellowKrinkle baf9e4a9af CMake: Properly use MACOSX_PACKAGE_LOCATION for translations on macOS
Translations are now properly tracked by CMake and will be regenerated if you delete them
2022-02-02 17:09:48 -06:00
TellowKrinkle 1b453d0436 GUI: Move translations to resources directory
Also fixes finding translations in package mode builds
2022-02-02 17:09:48 -06:00
TellowKrinkle 49b1a496b1 GS: Fix OSD scaling on hidpi displays 2022-02-02 16:29:19 -06:00
TellowKrinkle 50afd83bc6 GUI: Fix scale factor on macOS 2022-02-02 16:29:19 -06:00
TellowKrinkle 85934dcbe2 GS: Track DPI change events 2022-02-02 16:29:19 -06:00
Connor McLaughlin 095ff20e2b GS/DX11: Fix binding depth as tex + fbmask 2022-02-02 20:05:54 +01:00
Connor McLaughlin 3a91ed2571 Vulkan/Context: Remove unused memory type functions
VulkanMemoryAllocator takes care of this.
2022-02-02 17:39:53 +00:00
Connor McLaughlin 20c534fc46 Vulkan/Context: Fix incorrect app name/version 2022-02-02 17:39:53 +00:00
Connor McLaughlin 0c0bd8be98 GS/Vulkan: Use fence counter for upload cmdbuffer selection
Readbacks don't increment the frame number, but submit the cmdbuffer.

Fixes incorrectly rendered status bar in Devil May Cry.
2022-02-02 17:39:53 +00:00
RedDevilus ead6f9f4cd CI: Automatically label Qt
This will label PRs that touches on Qt-related files.
2022-02-02 17:33:41 +00:00
Connor McLaughlin 2328d9e107 ImGui/Vulkan: Don't leak font image/memory on reupload 2022-02-02 11:50:34 +00:00
Connor McLaughlin 87aa8333a8 ImGuiManager: Fix double init of font texture 2022-02-02 11:50:34 +00:00
Connor McLaughlin f1de985304 GS: Reset/restore API state when changing OSD scale
Closes https://github.com/PCSX2/pcsx2/issues/5451
2022-02-02 11:50:34 +00:00
TellowKrinkle 5d3cbf8d1a GS: ReadAndExpandBlock4H_32 improvements 2022-02-02 09:34:30 +00:00
TellowKrinkle c24ed8d47b GS: Use smartblend on WriteColumn32 2022-02-02 09:34:30 +00:00
TellowKrinkle cbf4a83b3f GS: Minor Zen optimizations 2022-02-02 09:34:30 +00:00
TellowKrinkle a6887715c7 GS: Faster palette lookup for AVX2 platforms with slow VPGATHERDD 2022-02-02 09:34:30 +00:00
TellowKrinkle e2169bc1da GS: Consolidate repeated BlockH code 2022-02-02 09:34:30 +00:00
TellowKrinkle 89f3b46a9e GS: AVX2 ReadBlock4P 2022-02-02 09:34:30 +00:00
TellowKrinkle d64e838b6d GS: AVX2 WriteBlock functions 2022-02-02 09:34:30 +00:00
TellowKrinkle 263e495561 GS: Make xmm → ymm zext/sext functions take GSVector4i
Removes the need for casts everywhere
Also renames them to remove the `c`, the fact that they take a GSVector4i should make it clear
2022-02-02 09:34:30 +00:00
TellowKrinkle 127433628d GS: AVX2 ReadAndExpandBlock4(HH|HL)_32 2022-02-02 09:34:30 +00:00
TellowKrinkle 29e8da0944 GS: pshufb-based ReadAndExpandBlock4(HH|HL)_32 2022-02-02 09:34:30 +00:00
TellowKrinkle a2992c86e6 GS: AVX2 ReadAndExpandBlock8[H]_32 2022-02-02 09:34:30 +00:00
TellowKrinkle 1cc796b1a7 GS: AVX2 ReadAndExpandBlock4_32 2022-02-02 09:34:30 +00:00
TellowKrinkle 679cc7af38 GS: pshufb-based ReadAndExpandBlock4_32 2022-02-02 09:34:30 +00:00
TellowKrinkle c4b3239e33 GS: Improved ReadColumn4 2022-02-02 09:34:30 +00:00
TellowKrinkle 4139da82b9 GS: Remove special casing alignment on AVX+
Extra code, unneeded as AVX+ has fast unaligned loads
2022-02-02 09:34:30 +00:00
TellowKrinkle bdc7dc2cd8 GS: ReadColumn8 AVX2 path 2022-02-02 09:34:30 +00:00
TellowKrinkle 244a4da28a GS: ReadBlock16 performance improvements 2022-02-02 09:34:30 +00:00
TellowKrinkle e7e0dbd29a GS: Drop SSE3 ReadColumn16
It was no faster than the SSE2 one and requires loading an extra shuffle vector
2022-02-02 09:34:30 +00:00
TellowKrinkle 1f6b2e629b GS: Use broadcast loads on AVX2
Broadcast loads are free on AVX2 processors, might as well use them
2022-02-02 09:34:30 +00:00
Connor McLaughlin 793ba944d6 GS/Vulkan: Prefer coherent for upload and cached for download buffers 2022-02-02 00:30:56 +00:00
Connor McLaughlin 438480517b GS/Vulkan: Prevent GS state overriding present viewport/scissor 2022-02-02 00:30:56 +00:00
Connor McLaughlin e3b4d13c47 HostDisplay: Remove levels/layers from HostDisplayTexture
Wasn't implemented for updates, and we're not going to use it any time
soon.
2022-02-02 00:30:56 +00:00
Connor McLaughlin 3caebb31ae Qt: Add save state loading/loaded/saved events 2022-02-02 00:23:49 +00:00
Connor McLaughlin 8b9eee4961 Qt: Add QtUtils::StringViewToQString() 2022-02-02 00:23:49 +00:00
Mrlinkwii 280f5adb22 Readme: add note about Vulkan drivers 2022-02-02 00:22:06 +00:00