Pokechu22
93eea7cb13
VideoCommon: Add option to use old behavior (Fast Texture Sampling)
...
Co-authored-by: JosJuice <josjuice@gmail.com>
2021-11-17 21:27:32 -08:00
Pokechu22
ee80298ca4
VideoCommon: Implement diagonal LOD
...
Note that both GLSL and HLSL provide a fwidth (fragment width) function defined as `fwidth(p) = abs(dFdx(p)) + abs(dFdy(p))`. However, it's easy enough to implement this ourselves (and it makes the code a bit more obvious).
2021-11-17 20:04:34 -08:00
Pokechu22
b9288212a0
Software: Adjust diagonal LOD implementation
...
This produces behavior matching the behavior on hardware (see Wario's Gold Mine in Mario Kart Wii).
2021-11-17 20:04:34 -08:00
Pokechu22
51e3334526
VideoCommon: Use coarse derivatives for Manual Texture Sampling if possible
2021-11-17 20:04:34 -08:00
Pokechu22
ddf2691395
VideoCommon: Manually handle texture wrapping and sampling
2021-11-17 20:04:34 -08:00
Pokechu22
4a9b26de86
VideoCommon: Expose SamplerState to shaders
...
The benefit to exposing this over the raw BP state is that adjustments Dolphin makes, such as LOD biases from arbitrary mipmap detection, will work properly.
2021-11-17 20:04:34 -08:00
Pokechu22
9ef228503a
VideoCommon: Provide raw texdims to shaders
2021-11-17 20:04:34 -08:00
Pokechu22
a273b65566
RenderState: Use operator== for operator!= and adjust constructors
2021-11-17 20:04:34 -08:00
Pokechu22
6236a0d494
Eliminate SamplerCommon
2021-11-17 20:04:34 -08:00
Pokechu22
3096f77ba0
Eliminate SamplerCommon::AreBpTexMode0MipmapsEnabled
...
This was added in 0b9a72a62d
but became irrelevant in 70f9fc4e75
as the check is now self-explanatory due to a rejiggering of the bitfields.
2021-11-17 20:04:34 -08:00
Pokechu22
d2041b4c2a
VideoCommon: Add signed version of BitfieldExtract
2021-11-17 20:04:33 -08:00
Pokechu22
555a93057c
VideoCommon: Allow BitfieldExtract in specialized shaders
2021-11-17 20:04:33 -08:00
Mai M
8b57aad8ed
Merge pull request #10229 from JosJuice/android-game-list-livedata
...
Android: Make GameFileCacheManager use LiveData
2021-11-17 17:21:39 -05:00
JosJuice
2941cf8d94
Android: Make GameFileCacheManager use LiveData, part 2
...
Gets rid some uses of the deprecated LocalBroadcastManager.
One note about the changes in GameFileCacheManager itself:
The change from compareAndSet to getValue followed by
setValue is actually safe, because startLoad and startRescan
only run from the main thread, and only the main thread ever
sets the flags to true. So it's impossible for any other thread
to change the flag in between the getValue and the setValue.
2021-11-17 21:49:51 +01:00
JosJuice
857963b336
Android: Make GameFileCacheManager use LiveData, part 1
2021-11-17 21:29:11 +01:00
Mai M
735fd60e52
Merge pull request #10217 from JMC47/bombermanjetters
...
Force Dual Core on for Bomberman Jetters
2021-11-16 23:29:40 -05:00
Mai M
b14d982d36
Merge pull request #10225 from JosJuice/android-game-settings-title
...
Android: Properly set game settings title when navigating backwards
2021-11-16 23:26:38 -05:00
Mai M
f4a32834b9
Merge pull request #10223 from JosJuice/enforce-skirts
...
GameINI: Fix comments causing errors in GALE01r0.ini
2021-11-16 23:24:52 -05:00
Mai M
f10d95e2b2
Merge pull request #10224 from JosJuice/android-not-service
...
Android: Make GameFileCacheService not be a service
2021-11-16 23:22:22 -05:00
JosJuice
bb2ee279cd
Android: Properly set game settings title when navigating backwards
2021-11-16 22:09:40 +01:00
JosJuice
ffd8cd059c
Android: Make GameFileCacheService not be a service
...
The past few Android releases have been adding restrictions
to what services are allowed to do, for the sake of stopping
services from using up too much battery in the background.
The IntentService class, which GameFileCacheService uses,
was even deprecated in Android 11 in light of this.
Typically, the reason why you would want use a service instead of
using a simple thread or some other concurrency mechanism from the
Java standard library is if you want to be able to run code in the
background while the user isn't using your app. This isn't actually
something we care about for GameFileCacheService -- if Android wants
to kill Dolphin there's no reason to keep GameFileCacheService
running -- so let's make it not be a service.
I'm changing this mainly for the sake of future proofing, but there
is one immediate (minor) benefit: Previously, if you tried to launch
Dolphin from Android Studio while your phone was locked, the whole
app would fail to launch because launching GameFileCacheService
wasn't allowed because Dolphin wasn't considered a foreground app.
2021-11-16 21:45:06 +01:00
Scott Mansell
9bbc843542
VideoSoftware: Fix copy filter clamping
2021-11-17 09:29:16 +13:00
JosJuice
31bfbca923
Android: Split up GameFileCacheService.onHandleIntent
2021-11-16 21:15:49 +01:00
Scott Mansell
7128befb39
Fix copy filter clamping regression in Spyro
...
This fixes horizontal lines in the bloom effect of Spyro: A Hero's Tail,
which is a regression caused by PR #10204
Screenshot of regression:
https://user-images.githubusercontent.com/138484/142030503-90fcd8d5-63d3-4820-874a-72e9be0c4768.png
Fixed:
https://user-images.githubusercontent.com/138484/142031598-b85ff55c-1302-4e4d-bcb2-57848974056b.png
Spyro uses an 640x80 pixel sub-buffer within the EFB to calculate
it's bloom effects, which it places below the main 640x448 buffer.
EFB layout:
https://user-images.githubusercontent.com/138484/142030573-e933b6ae-c37e-4be6-86d4-0bc779b92535.png
Note: Colors are wrong because the main color buffer uses RGBA6,
while the bloom is calculated in RGB8
This allows it to do bloom without backing up part of the EFB to
main memory, as most games do.
But, since some of the sub-buffers used in the bloom effect are taller
than 80 pixels, they need to be sliced up into smaller sub, sub buffers
which get combined later when copied to main memory.
At one point, a 320x224 buffer is broken up into 320x80, 320x64 and
320x80 slices. These are copied out with the copy filter set to a
vertical blur.
Because there was an off-by-one errror in the clamping coordinates,
the bottom line of the color buffer would be blurred into
the top of each slice.
Final combined EFB copy:
https://user-images.githubusercontent.com/138484/142031360-2c076839-7c96-4b3b-a093-d899d0a2c7ae.png
Fixed version:
https://user-images.githubusercontent.com/138484/142031370-72e41a35-3b3e-4662-a483-79203e357ecc.png
Before #10204 the copy filter wasn't enabled for efb copies, and most
other games don't do this type of slicing.
FIFO CI shows that a few other games are effected, it's always just a minor difference to the top line where there was previously a slight hint of garbage.
2021-11-17 06:12:46 +13:00
JosJuice
89cb311c86
GameINI: Fix comments causing errors in GALE01r0.ini
...
Same problem as 658eed4... Except instead of just making the
comments use #, I'm actually removing some of the codes entirely
because they are of questionable value.
Should fix https://bugs.dolphin-emu.org/issues/12737 .
2021-11-16 17:58:16 +01:00
Mai M
0b81640dd1
Merge pull request #10221 from shuffle2/msbuild
...
msbuild: remove workaround for older winsdk
2021-11-15 19:53:35 -05:00
Shawn Hoffman
5e1fee7dbd
msbuild: remove workaround for older winsdk
2021-11-15 16:23:33 -08:00
JosJuice
7292ac0ce5
Android: Remove DirectoryInitialization from AndroidManifest.xml
...
It isn't a service, so it shouldn't be listed as one.
2021-11-15 23:23:17 +01:00
JMC47
26fdc19c8d
Merge pull request #10204 from Pokechu22/efb-copy-filter
...
VideoCommon: Use the copy filter for EFB copies as well as XFB copies
2021-11-15 17:04:27 -05:00
Mai M
b919557e25
Merge pull request #10219 from shuffle2/extern
...
msbuild: use /external:anglebrackets
2021-11-15 11:10:38 -05:00
Léo Lam
d17dcf72ff
Merge pull request #10201 from JMC47/mp6-codeadjust
...
GameINI: Fix Comment Causing Parsing Errors in Mario Party 6/7 INIs.
2021-11-15 14:59:31 +01:00
JMC47
658eed405a
GameINI: Fix Comments in Mario Party 6/7 AR Codes
...
Using the "*" symbol as a comment only works for Gecko Codes for some
reason. I changed it to "#".
2021-11-15 07:33:49 -05:00
Shawn Hoffman
a69adafdd8
msbuild: use /external:anglebrackets
...
Revert usage of ExternalIncludePath, as that var is specifically
for external includes which do not get scanned for changes.
2021-11-15 00:33:51 -08:00
Mai M
a58b1dc38b
Merge pull request #10216 from JosJuice/user-not-global
...
DSP: Reword inappropriate references to Global User Directory
2021-11-14 20:12:50 -05:00
JMC47
40acfb9067
Force Dual Core on for Bomberman Jetters
...
This game requires emulating the Fifo Pipeline or have Single Core be
able to read ahead in the Fifo. Because Single Core currently processes
things in a serialized manner, this game will not run regardless of
CPU/GPU timing hacks.
2021-11-14 18:44:43 -05:00
JosJuice
da0be24b2f
DSP: Reword inappropriate references to Global User Directory
...
These messages apply to the User directory regardless of
whether it's global or local, so we shouldn't specify "global".
Also changing "directory" to "folder", just for consistency
with "GC folder" in the same sentence.
2021-11-14 22:55:50 +01:00
Mai M
f19ed1be56
Merge pull request #10213 from JosJuice/android-ndk
...
Android: Bump NDK and CMake versions
2021-11-14 02:59:34 -05:00
OatmealDome
f1f0853659
MoltenVK: Move version into a variable
2021-11-13 15:56:12 -08:00
Léo Lam
0d4c8270d0
Merge pull request #9981 from OatmealDome/mvk-external-project
...
MoltenVK: Use an external project instead of a pre-compiled dylib
2021-11-13 23:26:55 +01:00
OatmealDome
2209dc0355
MoltenVK: Use an external project instead of a pre-compiled dylib
...
Also, update MoltenVK to match Vulkan SDK 1.2.189.
2021-11-13 11:43:23 -08:00
JosJuice
5a23d5cedf
Android: Bump NDK and CMake versions
...
This should make C++20 and std::filesystem work. (Not that
we really can use std::filesystem much on Android since
it doesn't work with scoped storage...)
2021-11-13 20:41:11 +01:00
JosJuice
3e84279919
Merge pull request #10208 from thatSteveFan/patch-1
...
Minor comment fix in Matrix.cpp
2021-11-13 15:09:28 +01:00
Pokechu22
868de78f16
VideoCommon: Use the copy filter for EFB copies as well as XFB copies
...
This fixes the pink screens in EA Sports Active. See https://gist.github.com/Pokechu22/49455f9094ed0ff017da64e3f7aa0404 for details.
2021-11-11 17:22:50 -08:00
Mai M
c55721c754
Merge pull request #10210 from shuffle2/vs2022
...
msvc: update to vs2022 and windows sdk 10.0.22000
2021-11-11 17:29:37 -05:00
Shawn Hoffman
58dc9e7049
msvc: fix compile warning on arm64
2021-11-11 08:01:39 -08:00
Shawn Hoffman
4008188654
msvc: update to vs2022 and windows sdk 10.0.22000
2021-11-11 08:01:26 -08:00
thatSteveFan
834a59d89b
Minor comment fix in Matrix.cpp
...
Fix comment to say (NxM times MxP).
2021-11-08 15:30:39 -08:00
JosJuice
aa6db1e029
Merge pull request #10205 from merryhime/pure-rot-rlwimix
...
Jit_Integer: Fix pure rotation rlwimix case
2021-11-07 20:58:42 +01:00
Merry
850d281cb8
Jit_Integer: Fix pure rotation rlwimix case
...
We are writing to a.
2021-11-07 14:10:19 +00:00
Mai M
be9035454a
Merge pull request #10197 from sepalani/mh-tex-corruption
...
GameINI: Change Texture Cache to Safe in RMHJ08.ini and ROM.ini
2021-11-07 00:09:15 -04:00