Commit Graph

8667 Commits

Author SHA1 Message Date
Henrik Rydgård
285ffbaa52 Unify CopyDisplayToOutput 2023-02-25 14:42:15 +01:00
Henrik Rydgård
18999c3687 Create the GPUCommonHW class. 2023-02-25 14:42:10 +01:00
Henrik Rydgård
c4f4439b8c
Merge pull request #17000 from hrydgard/more-rendering-cleanup
More rendering cleanup
2023-02-25 13:11:05 +01:00
Henrik Rydgård
8b431b39ba
Wrap the display globals in a struct (#16998)
* Wrap the display globals in a struct

Makes it easier to search/replace these, for future refactorings.

* Some renaming

* Qt buildfix, also fix the Qt build on Mac (got broken with battery changes)

* Attempt at buildfixing ios

* UWP buildfix
2023-02-25 13:09:44 +01:00
Henrik Rydgård
0d57f3beee Unify GPUCommon::DoState. 2023-02-25 12:21:03 +01:00
Henrik Rydgård
609a8f6d36 Unify ExecuteOp between the accelerated backends 2023-02-25 12:21:03 +01:00
Henrik Rydgård
6b91647209 Remove unused ExeuteOp in GPUCommon.cpp 2023-02-25 12:21:03 +01:00
Henrik Rydgård
3823c08771 Remove PreExecuteOp from GPUInterface 2023-02-25 12:21:03 +01:00
Henrik Rydgård
ed03348c65 Unify PreExecuteOp, keep the soft GPU as a special case 2023-02-25 12:21:03 +01:00
Henrik Rydgård
da561aa9de Unify CheckFlushOp 2023-02-25 12:21:03 +01:00
Henrik Rydgård
16eded4e1c Comment on why FinishDeferred is not unified. 2023-02-25 12:21:03 +01:00
Henrik Rydgård
30120560ab Include file cleanup in framebuffer managers 2023-02-25 12:21:00 +01:00
Henrik Rydgård
49e5460c9c Remove count parameter from SetViewports. No use foreseen. 2023-02-25 07:12:53 +01:00
Henrik Rydgård
1b5148bb6c Remove kinda-duplicate function. 2023-02-24 23:54:04 +01:00
Henrik Rydgård
9d5b95616d
Merge pull request #16988 from unknownbrackets/debugger
Debugger: Lock memory during stack walk
2023-02-23 14:42:37 +01:00
Unknown W. Brackets
cd3fc26190 samplerjit: Prevent thread local stale cache read.
If the generation count happens to match, would still get a stale pointer
and crash.  Let's just make the generation count static so it always
increases.
2023-02-22 21:15:03 -08:00
Unknown W. Brackets
df1bd64662 riscv: Add morph+skin to vertexjit. 2023-02-16 18:45:10 -08:00
Unknown W. Brackets
71f4b116fe riscv: Implement skinning in vertexjit. 2023-02-16 18:32:58 -08:00
Unknown W. Brackets
27e60a9f2e riscv: Sum weighted matrices in vertexjit.
Not yet doing pos/norm, so not used yet.
2023-02-16 18:32:58 -08:00
Henrik Rydgård
adda49d05d Add a heuristic avoiding joining framebuffers horizontally
...when texturing from the other one.

Greatly improves GPU performance in Rainbow Six: Vegas.

Fixes #9324.
2023-02-15 15:35:28 +01:00
Henrik Rydgård
ae9291f3b5 More work on depth copies. Seems to be enough for Iron Man. 2023-02-15 07:35:07 +01:00
Henrik Rydgård
62a6f351d5 Initial work on depth copies 2023-02-15 07:35:07 +01:00
Henrik Rydgård
27a03de826 CreateRAMFramebuffer: Don't create a depth buffer by default 2023-02-15 07:35:07 +01:00
Henrik Rydgård
6b902a7d6b Minor code cleanup, one very minor stride bugfix 2023-02-15 07:35:07 +01:00
Henrik Rydgård
18b08637f6
Merge pull request #16968 from unknownbrackets/riscv-vertexjit
riscv: Include morph in vertexjit
2023-02-15 07:31:01 +01:00
Unknown W. Brackets
9f43010004 riscv: Reuse some color morphing code.
Small optimization loss in 5551, but fairly minimal and I think it's worth
it.
2023-02-14 20:46:05 -08:00
Unknown W. Brackets
684aa75388 riscv: Include morph in vertexjit. 2023-02-14 20:20:55 -08:00
Henrik Rydgård
3dc9fd86e1
Merge pull request #16962 from unknownbrackets/riscv-vertexjit
riscv: Correct offset prescale in vertexjit
2023-02-14 09:41:45 +01:00
Unknown W. Brackets
ada6aa77e0 riscv: Correct offset prescale in vertexjit.
Also implement doubling while here.
2023-02-13 17:16:48 -08:00
Unknown W. Brackets
e1c391b1c8 riscv: Use vertexjit for hardware skinned verts. 2023-02-13 17:15:49 -08:00
Unknown W. Brackets
991c596490 riscv: Set constants once in vertexjit. 2023-02-13 16:57:13 -08:00
Henrik Rydgård
86a19cebfd
Merge pull request #16957 from unknownbrackets/riscv-vertexjit
riscv: Initial vertexjit
2023-02-13 08:33:05 +01:00
Unknown W. Brackets
dc4136d547 riscv: Add prescale to vertexjit. 2023-02-12 23:05:35 -08:00
Unknown W. Brackets
77b2e63876 riscv: Add colors to vertexjit.
This don't feel very efficient, but they overall beat non-jit.
2023-02-12 23:05:35 -08:00
Unknown W. Brackets
ee10fae04e riscv: Add basic steps to vertex decode. 2023-02-12 23:05:34 -08:00
Unknown W. Brackets
219e0db4e5 riscv: Initial vertexjit. 2023-02-12 14:28:51 -08:00
Unknown W. Brackets
89c18d8077 riscv: Cleanup missing Poison, Crash. 2023-02-12 12:10:29 -08:00
Henrik Rydgård
1938fa44d4 Split the depth copy shader into depth copy and depth encode, dynamic depth scale in Draw2D 2023-02-11 18:24:07 +01:00
Henrik Rydgård
a083a65f77 Depal: Get depth scale factors dynamically 2023-02-11 16:12:58 +01:00
Henrik Rydgård
547ecec074 Replace the rest of the uses of DepthSliceFactor 2023-02-11 14:45:14 +01:00
Henrik Rydgård
99e6fd62f7 Remove a baffling depth offset I don't quite get 2023-02-11 14:41:25 +01:00
Henrik Rydgård
241f8e75bc Replace some uses of DepthSliceFactor 2023-02-11 14:37:48 +01:00
Henrik Rydgård
5bdbe6984c Simplify GetDepthScaleFactors 2023-02-11 13:34:08 +01:00
Henrik Rydgård
a2c9491a06 Remove a division by 0 that I hadn't noticed before. 2023-02-11 13:27:44 +01:00
Henrik Rydgård
d40aa17198 Remove ToScaledDepthFromIntegerScale 2023-02-11 13:27:44 +01:00
Henrik Rydgård
805591e493 Replace all uses of ToScaledDepthFromIntegerScale. 2023-02-11 13:27:44 +01:00
Henrik Rydgård
9053d8ccc7 Flip a sign for consistency 2023-02-11 13:27:44 +01:00
Henrik Rydgård
116b3ba8cc Increase precision of GetDepthScaleFactors to match ToScaledDepthFromIntegerScale 2023-02-11 13:27:44 +01:00
Henrik Rydgård
639ca31814 Address feedback 2023-02-11 11:23:00 +01:00
Henrik Rydgård
28a7912ae6 Add comments, re-enable remaining tests (they do work, just forgot to add expected values) 2023-02-11 01:11:02 +01:00
Henrik Rydgård
8d40684833 Make the test pass, add some commented-out failing ones 2023-02-10 14:57:48 +01:00
Henrik Rydgård
d65dae7185 Depth scale functions: Clean up the naming, add a failing test 2023-02-10 14:57:45 +01:00
Henrik Rydgård
d426ce5118 Clear depth buffers after changing depth rounding mode.
And thus change of depth buffer scale/offset.

Previously, old depth buffers with values that now are out of range
could stick around, causing #16941. This clears them to the expected 0
value, which helps Outrun. Ideally we should convert depth buffers to
the new format, but if we can get away without that, that's also nice.

This is enough for #16941.
2023-02-10 10:03:14 +01:00
Unknown W. Brackets
aff0b46523 GPU: Skip depth resize when forcing 1x. 2023-02-08 18:45:01 -08:00
Henrik Rydgård
2d0252feb8
Merge pull request #16916 from hrydgard/implement-delayed-readback
Implement delayed depth readbacks, Vulkan only
2023-02-08 21:34:29 +01:00
Henrik Rydgård
ab63689cca Remove bad comment 2023-02-08 15:37:06 +01:00
Henrik Rydgård
735cd26db6 Document Syphon Filter hack, but don't enable it 2023-02-08 00:56:45 +01:00
Henrik Rydgård
9827dd536c Count listsyncs and drawsyncs in gpu stats. Eat some cycles in listSync
Chose a conservative number (same as sceGeContinue)
2023-02-08 00:41:26 +01:00
Henrik Rydgård
94f51d5d26 Make the Dangan Ronpa readback async 2023-02-07 23:13:36 +01:00
Henrik Rydgård
5f13bc061a Color readback: Read the previous framebuffer instead of the one being switched to 2023-02-07 23:13:36 +01:00
Henrik Rydgård
b3e6b81e43 Implement delayed depth readbacks for Vulkan only 2023-02-07 23:13:36 +01:00
Henrik Rydgård
30fbcf356a
Merge pull request #16914 from hrydgard/readback-more-prep
Some more plumbing of parameters, preparing for readback stuff
2023-02-05 23:25:57 +01:00
Henrik Rydgård
23049533b9 Restore GetDepthBuffer precision - the stretchy-color-readback path is not suitable for this. 2023-02-05 22:58:26 +01:00
Henrik Rydgård
ec5afb2d8d
Merge pull request #16812 from unknownbrackets/task-priority
ThreadManager: Add simple priority queues
2023-02-05 21:00:47 +01:00
Henrik Rydgård
5ac9b88e81 Plumbing miss 2023-02-05 16:41:12 +01:00
Henrik Rydgård
63c43b90f8 Remove a level of indentation in LoadCLUT 2023-02-05 13:59:16 +01:00
Henrik Rydgård
937975000b Add a ReadbackMode parameter to more functions in the FramebufferManager 2023-02-05 13:57:45 +01:00
Henrik Rydgård
92f4de7b74 Small cleanup. Let's reduce the number of readback paths. 2023-02-05 13:57:45 +01:00
Henrik Rydgård
dd64fe871e
Merge pull request #16912 from lvonasek/compat_openxr_mh3hud
OpenXR - Fix HUD in Monster Hunter 3rd
2023-02-05 08:59:10 +01:00
Lubos
bff0d735e2 OpenXR - Fix HUD in Monster Hunter 3rd 2023-02-05 08:38:43 +01:00
Henrik Rydgård
4427cb4fc3 Add parameter to thin3d::CopyFramebufferToMemory to specify blocking mode. Not yet implemented. 2023-02-04 23:40:36 +01:00
Henrik Rydgård
281b0d6aab Quick fix for the lens flare in Burnout
We have to assume that ForceLowerResolutionForEffects has been set for
good reason - in this case, the effect probably can't safely function
without it.

Fixes #11100 once again.
2023-02-04 18:01:53 +01:00
Henrik Rydgård
236611ac16 Initial implementation of depth readback for Syphon Filter. Fixes the lens flares. 2023-02-04 13:54:57 +01:00
Henrik Rydgård
62484f01ed Make ReadbackFramebufferSync able to use the stretch ability of ReadbackDepthbufferSync 2023-02-04 12:05:50 +01:00
Henrik Rydgård
c7234aa3b5 Handle scaling internally in ReadFramebufferSync 2023-02-04 11:36:48 +01:00
Henrik Rydgård
fb8aff5a8c Split out the depth stuff from the file, move to GPU/Common 2023-02-03 21:06:43 +01:00
Henrik Rydgård
23c8a79473 Make depth readback through the "color path" work on all backends except D3D9 2023-02-03 20:59:58 +01:00
Henrik Rydgård
4402530ca7 Use ShaderWriter to generate the depth readback shader 2023-02-03 20:33:11 +01:00
Henrik Rydgård
f2a6c744bc Add built-in stretch functionality to depth readback shader path 2023-02-03 19:06:40 +01:00
Henrik Rydgård
7635c4447c Oops, apply the alpha fix for D3D9 and OpenGL too.
See #16875
2023-02-03 08:51:35 +01:00
Unknown W. Brackets
88ba003f46 ThreadManager: Add a simple priority field.
Currently, not actually respected.
2023-02-02 17:08:24 -08:00
Henrik Rydgård
c11f7e3a5f Fix texture alpha when texturing from full-alpha textures.
Fixes #16875
2023-02-02 16:13:38 +01:00
Henrik Rydgård
d7605c6877 Use dedicated threads for the shader object creation. Bypasses the deadlock possibility. 2023-02-01 11:15:33 +01:00
Unknown W. Brackets
08ac34bae0 GPU: Allow depth above 65535.
Hopefully it rounds down for any == or <= tests.
2023-01-31 18:41:06 -08:00
Henrik Rydgård
1f3969aff3
Merge pull request #16873 from hrydgard/dedicated-thread
Add facility to run tasks on dedicated threads using the ThreadManager interface
2023-01-31 11:50:59 +01:00
Henrik Rydgård
6b0903f566 Add facility to run tasks on dedicated threads using the ThreadManager interface.
Useful for things that should be run ASAP even if the threadpool is full,
at a small extra cost. (Not recommended for very small tasks).

Considering using this to resolve the deadlocks in #16802.
2023-01-31 11:07:40 +01:00
Henrik Rydgård
b62572a78f Refactor the framedata/GPU thread management. 2023-01-30 11:49:31 +01:00
Serena
30f6296767 Remove some Windows + Qt stuff + meow 2023-01-27 19:12:41 +03:00
Unknown W. Brackets
1c8bedbed9 Vulkan: Align for all Apple devices, not just M1. 2023-01-18 07:28:12 -08:00
Unknown W. Brackets
8d4007ce3f Vulkan: Force align verts to 4 on Apple devices. 2023-01-18 07:24:18 -08:00
Henrik Rydgård
e410bc355a
Merge pull request #16808 from unknownbrackets/shader-errors
GLES: More uint const paranoia
2023-01-15 10:41:13 +01:00
Unknown W. Brackets
3a6fa9b4ba ThreadManager: Don't allow reordering of queue.
Allowing a priority item is faster, but can cause confusion when you
expect things to run in the same sequence they're enqueued.
2023-01-14 16:35:01 -08:00
Henrik Rydgård
784e8ab782 Fix a race condition during Vulkan shader cache load.
Could lead to unnecessary pipelines being created.
2023-01-13 10:35:04 +01:00
Unknown W. Brackets
0f3f2e361f GLES: More uint const paranoia.
We don't use indexing on GLES now, but better to stay consistent.
2023-01-12 17:41:55 -08:00
Henrik Rydgård
5b3ac098ae Fix for old typo in OpenGL texture allocation 2023-01-12 19:45:40 +01:00
Henrik Rydgård
0604e51272
Merge pull request #16734 from hrydgard/remove-nonindexed-optimization-vk
Vulkan: Don't use non-indexed draws for pure tristrips and fans (only PowerVR for now)
2023-01-12 08:09:21 +01:00
Henrik Rydgård
86f34c52a4 Revert bad shader optimization 2023-01-12 00:30:41 +01:00
Henrik Rydgård
1cfc7b11b8 Only force indexed draws on PowerVR / Vulkan. 2023-01-11 22:59:30 +01:00
Henrik Rydgård
beed3c06d2 Vulkan: Don't use non-indexed draws for pure tristrips and fans, creates extra pipelines.
Bump shader cache version
2023-01-11 22:57:23 +01:00
Henrik Rydgård
ca63bb1e5b Even more optimization/cleanup. Don't need to check ldot that we already know is >= 0.0. 2023-01-11 19:34:58 +01:00
Henrik Rydgård
965007d65b Tighten up the lighting shader code a bit, hopefully eliminating a branch or two. 2023-01-11 19:29:02 +01:00
Henrik Rydgård
1c8e456c97 Also apply this to OpenGL and D3D9 2023-01-11 19:29:02 +01:00
Henrik Rydgård
4c2a41cc83 Break out the attenuation term, too 2023-01-11 19:29:02 +01:00
Henrik Rydgård
a508f7e345 Shave a few instructions from lighting shaders by prenormalizing the light dir used for spotlights 2023-01-11 19:29:02 +01:00
Henrik Rydgård
7b62b4626f Comment fixes 2023-01-11 15:29:52 +01:00
Henrik Rydgård
3b46409350 Vertex shaders: On platforms with uniform buffers, use indexing and loop for real over the lights.
Strangely, greatly speeds up pipeline creation on PowerVR.
2023-01-11 15:24:56 +01:00
Henrik Rydgård
d894906a7e Fix formatting of lights uniform buffer (tabs->spaces) 2023-01-11 14:18:14 +01:00
Henrik Rydgård
c4d8ebcad5 D3D11 fix 2023-01-11 14:16:46 +01:00
Henrik Rydgård
3d376b0ab7 Remove the rather redundant DoTexture flag from vshaders.
Slightly reduces the number of unique vertex shaders but doesn't do much
for the pipeline count, as the fragment shader has a tex flag. Still
worth doing for the simplification.
2023-01-11 14:16:46 +01:00
Henrik Rydgård
1b4018d19a Fix shader cache clearing in D3D11 - need to clear the input layout maps too 2023-01-11 14:16:12 +01:00
Henrik Rydgård
5c79b930e9
Merge pull request #16783 from unknownbrackets/gl-cleanup
GLES: Remove some unused depth related code
2023-01-11 09:50:39 +01:00
Unknown W. Brackets
4e67194147 GLES: Remove some unused depth related code. 2023-01-11 00:20:11 -08:00
Henrik Rydgård
289206fee0
Merge pull request #16782 from unknownbrackets/gl-shader-del
GLES: Delete LinkedShaders after the program
2023-01-11 09:07:30 +01:00
Unknown W. Brackets
5102ef8a31 GLES: Delete LinkedShaders after the program.
The program references the shader, so we have to delete in this order.
Caused problems on useFlag change as well as probably DeviceLost.
2023-01-10 22:13:40 -08:00
Henrik Rydgård
56261af697 Uniform dirty-bits: Make room for four more uniforms. Then we're out and need to merge. 2023-01-11 00:16:17 +01:00
Henrik Rydgård
ffb8a9be47 Fix another subtle NEON type mismatch.
Fixes #16777
2023-01-10 14:56:30 +01:00
Henrik Rydgård
edaa5246d1
Merge pull request #16771 from hrydgard/more-getpointer-cleanup
Core: A bit more GetPointer cleanup.
2023-01-10 14:36:08 +01:00
Henrik Rydgård
088d0c39dc Remove the FS_TEXTURE_AT_OFFSET fragment shader flag 2023-01-10 12:37:21 +01:00
Henrik Rydgård
2f6579ea98
Merge pull request #16770 from hrydgard/color-double-flag
Shader generator: Switch the 2x flag to a uniform
2023-01-10 12:36:46 +01:00
Henrik Rydgård
c7c48abb37 Switch the 2x flag to a uniform 2023-01-10 12:36:28 +01:00
Henrik Rydgård
ee3618290b Typo fix in NEON code.
Fixes #16772
2023-01-10 12:32:33 +01:00
Henrik Rydgård
e1a48d74c4 A bit more GetPointer cleanup.
Probably not worth it for performance reasons, but some semantic cleanup
is good, especially the accidental GetPointer -> writable casts without
using GetPointerWrite.

Using Unchecked on already checked pointers, or when we'd crash anyway
if it returned nullptr, is good for clarity.
2023-01-10 12:13:47 +01:00
Henrik Rydgård
0a6d226ddc Remove the unused bool utilities 2023-01-10 10:25:41 +01:00
Henrik Rydgård
00c44ea799 Get rid of the bool, not worth it. 2023-01-10 10:23:29 +01:00
Henrik Rydgård
7df9545195 Fix D3D9 uniform update 2023-01-10 09:42:54 +01:00
Henrik Rydgård
5022ddc4fc D3D9 bool constants have a separate register space, oops. 2023-01-10 09:42:54 +01:00
Henrik Rydgård
d4ce134292 Shader generator: Move FS_TEX_ALPHA to a uniform bool.
Part of #16567
2023-01-10 09:42:54 +01:00
Henrik Rydgård
7672556e5c Better pipeline descriptions in shader viewer (shorter in overview, longer after click) 2023-01-09 11:22:35 +01:00
Henrik Rydgård
cf52324e9e Vulkan: Fix pipeline cache clearing.
Extracted from #16759 and bugfixed. Fixes a leak of Vulkan pipelines.

I guess another way would be to queue the variants for destruction at
the same time as we queue the callback, but I like this better.
2023-01-09 09:49:55 +01:00
Unknown W. Brackets
f09c09caa8 GLES: Avoid GLSL redefinition error. 2023-01-08 22:30:15 -08:00
Henrik Rydgård
10625a6e00
Merge pull request #16757 from unknownbrackets/truncate-verts
GLES: Apply vertex limit only to GLES2
2023-01-08 22:37:44 +01:00
Henrik Rydgård
49e42f59c7
Merge pull request #16758 from unknownbrackets/softgpu-neon
GPU: Use NEON for vector length/normalize
2023-01-08 22:37:22 +01:00
Henrik Rydgård
10d7b2d410
Merge pull request #16756 from unknownbrackets/replace-stride
Replacement: Always return w/h from GetMipSize()
2023-01-08 22:34:50 +01:00
Unknown W. Brackets
d90aec6f63 GPU: Use NEON for vector length/normalize.
This is a bit less accurate for normalize, but it's faster.
2023-01-08 12:32:55 -08:00
Unknown W. Brackets
1f91993e7d GLES: Apply vertex limit only to GLES2. 2023-01-08 11:06:35 -08:00
Unknown W. Brackets
0f92afb0c1 Replacement: Check replaceValid before load. 2023-01-08 10:20:52 -08:00
Unknown W. Brackets
26aedbe2f5 Replacement: Always return w/h from GetMipSize(). 2023-01-08 10:12:04 -08:00
Henrik Rydgård
25e41aebc1
Merge pull request #16753 from unknownbrackets/softgpu-neon
Use NEON intrinsics in software renderer
2023-01-08 12:36:41 +01:00
Unknown W. Brackets
1215714240 softgpu: Use NEON for lighting. 2023-01-07 19:06:35 -08:00
Unknown W. Brackets
62fe03dcb4 softgpu: Use NEON for texture blending. 2023-01-07 19:06:35 -08:00
Unknown W. Brackets
587a322207 softgpu: Use NEON SIMD for alpha blending, etc. 2023-01-07 19:06:34 -08:00
Unknown W. Brackets
b55dbdab7f softgpu: Use NEON for some color conv. 2023-01-07 19:06:34 -08:00
Unknown W. Brackets
e0ed080d8b softgpu: Use NEON more in triangle rasterization.
Some of these places weren't getting converted well.
2023-01-07 19:06:34 -08:00
Henrik Rydgård
a5e1d0f595
Merge pull request #16743 from unknownbrackets/d3d9-fog
D3D9: Force branch usage for fog compute
2023-01-07 09:03:31 +01:00
Unknown W. Brackets
f49f7c6371 D3D9: Force branch usage for fog compute.
When using `[flatten]`/default, it picks the wrong value, seemingly always
taking the else case (even if the condition is changed or reversed.)
2023-01-06 17:25:04 -08:00
Unknown W. Brackets
81f4a76ac9 GPU: Don't bother with fog uniform in sw transform. 2023-01-06 17:24:44 -08:00
Luboš Vonásek
cd3ed86152
Merge branch 'hrydgard:master' into compat-openxr-3rdbirthday 2023-01-06 16:54:00 +01:00
Henrik Rydgård
3cd882f21b
Merge pull request #16565 from unknownbrackets/bloom-hack
GPU: Avoid bloom hack on buffers used for depth
2023-01-06 14:32:23 +01:00
Henrik Rydgård
d1cc378242
Merge pull request #16577 from unknownbrackets/shader-cache
Fix GLES and Vulkan cache with equal depth check detect
2023-01-06 14:19:36 +01:00
Henrik Rydgård
e890af2485
Merge pull request #16737 from unknownbrackets/shader-errors
GLES: Avoid a shader constant error
2023-01-06 10:48:03 +01:00
Henrik Rydgård
ef5cb0c48e Remove left-behind line, how did this happen? 2023-01-06 10:46:39 +01:00
Lubos
864c26be50 Revert "OpenXR - Disable HUD when it is on max scale"
This reverts commit c77a5d37a7.
2023-01-06 08:26:14 +01:00
Unknown W. Brackets
06045b9459 GLES: Cache equal flag, load from cache. 2023-01-05 18:24:29 -08:00
Unknown W. Brackets
5749b5a825 GPU: Clear shaders on use flag change. 2023-01-05 18:24:29 -08:00
Unknown W. Brackets
de3c2783f4 Vulkan: Reload shaders if use flags change. 2023-01-05 18:24:29 -08:00
Unknown W. Brackets
23d254ec21 Vulkan: Clear items as they're loaded from cache.
It's possible we could hit a double insert assert since we're on a
background thread.
2023-01-05 18:24:29 -08:00
Unknown W. Brackets
3f20562b9f Vulkan: Store saw equal depth flag in cache. 2023-01-05 18:24:29 -08:00
Unknown W. Brackets
c3530e63ed GPU: Buildfix fast matrix load. 2023-01-05 18:23:02 -08:00
Unknown W. Brackets
346d1a4089
Merge pull request #16696 from hrydgard/account-for-fast-bone-matrices
Account for the GPU cycle cost of loading bone matrices.
2023-01-05 18:01:38 -08:00
Unknown W. Brackets
e5d67119a8 GPU: Avoid bloom hack on buffers used for depth.
If a buffer even has depth transferred to it, let's avoid lowering its
resolution.
2023-01-05 18:00:43 -08:00
Unknown W. Brackets
f3acdb9da8 GLES: Avoid a shader constant error.
Some Adreno drivers interpret 0u as an integer.
2023-01-05 17:56:58 -08:00
Lubos
cd8d28cc5a OpenXR - Fix postprocess effect in 3rd birthday EU variant 2023-01-05 22:38:50 +01:00
Lubos
c77a5d37a7 OpenXR - Disable HUD when it is on max scale 2023-01-05 22:04:20 +01:00
Henrik Rydgård
5f10cabe5a Fix minor state dirtying issue with FOGCOEFENABLE 2023-01-05 16:56:13 +01:00
Henrik Rydgård
13d07f6ff4 Bump shader cache version 2023-01-05 13:12:11 +01:00
Henrik Rydgård
a58bf45540 Removes LM flag from vshader in the common case, if ubershader is enabled. 2023-01-05 13:09:49 +01:00
Henrik Rydgård
389c7bf44c FragmentShaderDesc improvement (debugging) 2023-01-05 11:49:03 +01:00
Henrik Rydgård
a73ccd77e3 Add FOGCOEFENABLE to the list of base uniforms.
Spotted by Unknown in #16628 comments.
2023-01-05 08:34:54 +01:00
Henrik Rydgård
85e6b4e592 Increment numFlushes near the other stat increments
Might be better for the cache, heh.
2023-01-04 17:10:56 +01:00
Henrik Rydgård
d49b39e422 Remove gpuCommandsAtCallLevel stats, compute another stat more efficiently
These stats have proven rather useless since we don't plan to cache and
optimize display lists.
2023-01-04 17:07:45 +01:00
Henrik Rydgård
4e30c5c0c6 Unbreak fog, oops.
Fixes #16722
2023-01-04 13:01:00 +01:00
Henrik Rydgård
06d69e9953 Bump shader cache version 2023-01-04 11:10:38 +01:00
Henrik Rydgård
b84e24cb89 Invert the nesting of specularIsZero and lmode conditions in VS. 2023-01-04 11:04:24 +01:00
Henrik Rydgård
ae383147db Minor simplification in VS 2023-01-04 11:04:24 +01:00
Henrik Rydgård
18d00b0718 Remove lmode flag bit from fragment and geometry shaders 2023-01-04 11:04:23 +01:00
Henrik Rydgård
10dee90c83
Merge pull request #16628 from hrydgard/remove-fog-fshader-flag
Make fog-enable driven by uniform instead of fragment shader flag bit
2023-01-04 11:01:19 +01:00
Henrik Rydgård
34c11c8acf
Merge pull request #16584 from hrydgard/vertex-format-vshader-id
Pass in the vertex decoder to the shader ID computation
2023-01-04 10:26:18 +01:00
Henrik Rydgård
3dbe69f585 Cache version 2023-01-04 10:17:59 +01:00
Henrik Rydgård
5cae5615ea Use more unusual values as "fog-disabled". 2023-01-04 10:14:12 +01:00
Henrik Rydgård
26c748f959 Make fog-enable driven by uniform instead of fragment shader flag bit 2023-01-04 10:14:11 +01:00
Henrik Rydgård
830f1064e6
Merge pull request #16676 from unknownbrackets/riscv-disasm
Add disassembler for RISC-V
2023-01-04 09:52:56 +01:00
Unknown W. Brackets
d45142ebaa GPU: Avoid uint by int shifts in reinterpret. 2023-01-03 23:00:17 -08:00
Unknown W. Brackets
0b6635c2dc GLES: Avoid switch-case on older glsl. 2023-01-02 14:57:06 -08:00
Unknown W. Brackets
86d748fa0c GLES: Use uint for uint shift amounts.
This seems to cause trouble for some Adreno drivers as well.
2023-01-02 14:37:38 -08:00
Unknown W. Brackets
26dc773b2a
Merge pull request #16709 from unknownbrackets/shader-errors
Correct some shader errors in reporting
2023-01-02 13:51:23 -08:00
Henrik Rydgård
ae99b797d7 Remove some bad float suffixes 2023-01-02 22:30:01 +01:00
Unknown W. Brackets
c8728a12d0 GLES: Use mod() not fmod() in depal shaders. 2023-01-02 13:25:40 -08:00
Henrik Rydgård
6b95ed2e2e Prevent name clash from redefining packUnorm4x8 if the driver "lies" about having it 2023-01-02 22:24:00 +01:00
Henrik Rydgård
a5747d53b3 Fix some report spam 2023-01-02 22:23:50 +01:00
Unknown W. Brackets
5180486ded GLES: Force frag test cache on for Intel.
Seeing drivers report errors trying to shift the alpha value in the test.
Only seeing these errors in fragment shaders, though.
2023-01-02 13:21:47 -08:00
Unknown W. Brackets
2b4a182b46 GLES: Use hex for uint constants.
Apparently some Adreno drivers have issues (fixed in 2014):
https://developer.qualcomm.com/forum/qdn-forums/maximize-hardware/mobile-gaming-graphics-adreno/27945
2023-01-02 13:13:48 -08:00
Henrik Rydgård
d8136adbed GPUCommon::FastRunLoop: Try not to crash 2023-01-02 22:01:20 +01:00
Unknown W. Brackets
761fdd353f GPU: Avoid large constant in depal shader. 2023-01-02 12:59:19 -08:00
Unknown W. Brackets
f1b5cbf993 softgpu: Fix lighting with 0 exp.
Broken in #15317.  Fixes Kratos scene demo.
2023-01-02 11:42:52 -08:00
Henrik Rydgård
2951a6494f Check for valid memory range when doing fast bone matrix loads
In reality, this is probably very rarely a real concern but we do get a
measurable amount of crash reports here. Though if that first access
crashes, which it seems to, we'd probably likely crash soon after this
anyway...
2023-01-01 20:45:02 +01:00
Henrik Rydgård
ee997d1353 Account for the GPU cycle cost of loading bone matrices.
This could change timing slightly in games that use many of these, like
maybe God of War for example. We should probably get it in for 1.15 and
just handle any fallout.
2023-01-01 20:35:04 +01:00
Unknown W. Brackets
77849d3eed riscv: Add disassembler.
From https://github.com/anthony-coulter/riscv-disassembler.
Modified slightly to pull in less headers in the h, prefix funcs.
2023-01-01 10:28:53 -08:00
Henrik Rydgård
71aa4c318d
Merge pull request #16690 from unknownbrackets/softgpu-init
softgpu: Detect binner alloc fail and bail
2023-01-01 16:53:58 +01:00
Unknown W. Brackets
be84bc9934 softgpu: Detect binner alloc fail and bail. 2023-01-01 06:59:14 -08:00
Henrik Rydgård
9ceffa284d Vulkan: Add robustness against bad shader module compiles 2022-12-31 12:21:53 +01:00
Henrik Rydgård
d2feb444b7 Bunch of defensive programming around shaders 2022-12-31 12:21:51 +01:00
Henrik Rydgård
f069de2dd2 Pass the vertex decoder into the vertex shader IDs generator
Instead of just the vertex type.

This will allow things like the vertex decoder supplying defaults, in
order to reduce the number of unique vertex shaders at the cost of
slightly larger vertex data.

This doesn't actually do that yet though, it's just a refactor that can
be done separately.

Part of #16567
2022-12-30 22:57:05 +01:00
Henrik Rydgård
ba2fab5b22
Merge pull request #16677 from unknownbrackets/d3d11-pause
D3D11: Fix Draw state issues on pause screen
2022-12-30 21:51:55 +01:00
Unknown W. Brackets
fdf5fefa91 GPU: Normalize CopyDisplayToOutput across backends. 2022-12-30 12:33:02 -08:00
Unknown W. Brackets
492cf3f123 D3D11: Fix Draw state issues on pause screen. 2022-12-30 12:27:49 -08:00
Henrik Rydgård
67cba831dd Slightly more useful assert message in Hashmaps.h 2022-12-29 00:39:59 +01:00
Henrik Rydgård
d65c7fb05e
Merge pull request #16662 from unknownbrackets/minor-cleanup
Correct some reversed dependencies, minor other cleanup
2022-12-29 00:00:41 +01:00
Unknown W. Brackets
49f6c461ad Reporting: Fix some header includes.
Particularly in Common, avoid including Core/Reporting.h.
2022-12-27 14:58:20 -08:00
Unknown W. Brackets
ec309d55ab GPU: Cleanup definition of shader resources.
Was in the wrong header file, which was a bit confusing.
2022-12-27 14:35:49 -08:00
Unknown W. Brackets
0496ca32ff Global: Cleanup some minor includes and typos. 2022-12-27 08:33:07 -08:00
Henrik Rydgård
61eaa4ea2d Just a very minor optimization 2022-12-27 17:15:31 +01:00
Unknown W. Brackets
6584899891 GPU: Account for perspective in non-centered lines. 2022-12-26 10:13:38 -08:00
Henrik Rydgård
c25e563d13 Fix rendering of lines with the same x/y but different z.
Also enabled centered lines in WebFest homebrew.
2022-12-26 18:16:54 +01:00
Henrik Rydgård
f8c76fa340 Fix vertex shader range culling - the bug check was wrong. 2022-12-22 23:09:17 +01:00
Henrik Rydgård
79ad513b03
Merge pull request #16626 from unknownbrackets/gl-cleanup
GL: Cleanup a check to use ARB instead
2022-12-19 16:51:57 +01:00
Henrik Rydgård
9f552b9003
Merge pull request #16615 from unknownbrackets/d3d9-clip-planes
D3D9: Support old-style user clip planes
2022-12-19 08:12:15 +01:00
Unknown W. Brackets
860be93c0c GE Debugger: Prevent double init.
If you were mashing record, it was possible to add two inits to the
recording, which caused playback issues.
2022-12-18 14:53:11 -08:00
Unknown W. Brackets
252966bb17 GL: Cleanup a check to use ARB instead. 2022-12-18 12:03:21 -08:00
Unknown W. Brackets
f6980b9f9d D3D9: Avoid curve Z clip to be safe.
I think it does actually happen, but we don't do it in the shader, so
let's not do it here.
2022-12-18 12:01:28 -08:00
Unknown W. Brackets
3e77cb1475 D3D9: Support old-style user clip planes.
This fixes negative Z issues on D3D9 in many cases, such as #14168
and #16574, but only when clip planes are supported.
2022-12-18 11:04:33 -08:00
Unknown W. Brackets
6e8aad727b GPU: Prevent GE_PRIM_INVALID on flush.
Wasn't enough to set prim temporarily here.
2022-12-18 07:23:58 -08:00
Unknown W. Brackets
e5dbdba638 GPU: Keep prevPrim_ set on flush.
For continuing previous verts, see #16612.  We still don't handle these
quite accurately (outside software rendering), but this should be better.
2022-12-18 07:14:19 -08:00
Lubos
992d4c5147 OpenXR - Final Fantasy rendering fixed 2022-12-17 17:52:04 +01:00
Lubos
3de2ba1e9f OpenXR - 3rd Birthday rendering fixed 2022-12-17 16:51:05 +01:00
Henrik Rydgård
6bb0115e73 Quickfix for texture uploads after #16599 2022-12-16 14:57:52 +01:00
Henrik Rydgård
26884150d7 Remove the 0th descriptor set, move everything else back to 0 2022-12-16 13:05:40 +01:00
Henrik Rydgård
b70a9993d8 SoftGPU fix 2022-12-14 16:43:37 +01:00
Henrik Rydgård
11366a2ded Don't refer directly to g_Config.iMultiSampleLevel, it can contain unsupported modes. 2022-12-14 16:43:37 +01:00
Henrik Rydgård
41e5b1e95a Plumb through multiSampleLevel so PipelineManager doesn't read config. 2022-12-14 16:43:37 +01:00
Unknown W. Brackets
8c1a247b7b Vulkan: Cleanup some logspam. 2022-12-13 18:29:23 -08:00
Henrik Rydgård
00ebf4957f Make shader cache loading a bit more lenient. 2022-12-13 23:06:57 +01:00
Henrik Rydgård
65c721dce6 Rename Save/LoadCache to Save/LoadPipelineCache 2022-12-13 19:18:20 +01:00
Henrik Rydgård
ee19db091f Add accessor for UseFlags 2022-12-13 18:27:45 +01:00
Henrik Rydgård
313a2b1327 Improve shader cache logging 2022-12-13 16:35:02 +01:00
Henrik Rydgård
427cae67cb Enable some wordwrapping in shader viewer, show variant bitmask 2022-12-13 16:28:59 +01:00
Henrik Rydgård
80a0c97e9e Drop the input attachment descriptor from the layout when unused 2022-12-13 15:17:39 +01:00
Henrik Rydgård
73cd9fac7d Tiny optimization in PipelineDesc 2022-12-13 15:16:11 +01:00
Henrik Rydgård
ad1cd40ff7 Bump shader cache versions before release, just to be safe. 2022-12-13 08:45:20 +01:00
Unknown W. Brackets
fe470c790e Postshader: Reset ini keys for defaults.
Should fix the Vignette shader defaults, see #16562.
2022-12-12 19:11:20 -08:00
Unknown W. Brackets
f202029d0b Postshader: Don't save default setting values.
This way the defaults can change in the future without problems.
2022-12-12 19:09:14 -08:00
Henrik Rydgård
af59bc161b
Merge pull request #16488 from lvonasek/config_openxr_update
OpenXR - Fixes for release candidate
2022-12-11 13:37:09 +01:00
Unknown W. Brackets
1810692236 Global: Cleanup some type/range checks. 2022-12-10 21:13:37 -08:00
Unknown W. Brackets
9cfcbc46e6 Global: Cleanup initialization/pointer checks.
Cleaning up a lot of cases of uninitialized data, unchecked return values
for failures, and similar.
2022-12-10 21:13:36 -08:00
Unknown W. Brackets
a7b7bf7826 Global: Set many read-only params as const.
This makes what they do and which args to use clearer, if nothing else.
2022-12-10 21:13:36 -08:00
Unknown W. Brackets
f44852bb18 Global: Cleanup virtual/override specifiers.
Also missing virtual destructors, hidden non-overrides, etc.
2022-12-10 21:13:36 -08:00
Lubos
abd60a30bc Merge branch 'master' into config_openxr_update 2022-12-10 21:01:41 +01:00
Henrik Rydgård
31efd9565e
Merge pull request #16539 from unknownbrackets/gedebugger
GE Debugger: Fix src/dst stride formatting
2022-12-10 20:27:24 +01:00
Unknown W. Brackets
dcfd82da05 GE Debugger: Fix src/dst stride formatting. 2022-12-10 11:01:43 -08:00
Unknown W. Brackets
b0f93ed8d6
Merge pull request #16535 from hrydgard/minor-fixes
Some minor initialization fixes, and fix for a potential crash found by static analysis
2022-12-10 07:09:58 -08:00
Henrik Rydgård
3e9f62a3a4 Minor fixes 2022-12-10 12:28:56 +01:00
Henrik Rydgård
cdb830f390 Minor optimization/cleanup 2022-12-10 12:05:40 +01:00
Henrik Rydgård
59ab1374f2 Fix regression in Tactics Ogre - the mipmap level hack broke
It broke when we introduced the 3D texture support, in #15727

Fixes #16354
2022-12-10 11:41:12 +01:00
Henrik Rydgård
4ec1e2a175 Some minor initialization fixes, and one potential crash found by static analysis 2022-12-10 11:28:19 +01:00
Lubos
df01f18aa6 Merge branch 'master' into config_openxr_update 2022-12-10 10:20:29 +01:00
Unknown W. Brackets
0a4e3a3867
Merge pull request #16531 from hrydgard/last-frame-shaders
iota97's "Motion blur" - LCD persistence shader, plus fixes to make it work with OpenGL
2022-12-09 16:43:16 -08:00
Henrik Rydgård
37b0c90a2d Silence address-sanitizer warnings in Math3D.h on ARM64 (not very serious but good to fix) 2022-12-09 23:47:42 +01:00
Henrik Rydgård
3b5770da9b DXT5 fix 2022-12-09 23:47:42 +01:00
Henrik Rydgård
e59b734b27 Fix case where we could write off the end of a buffer if texture width == 1 and 4-bit color. 2022-12-09 23:47:39 +01:00
Henrik Rydgård
b7a3cf56cc OpenGL: Fix lifetime issue with uniform/sampler "locs" for thin3d pipelines 2022-12-09 20:52:19 +01:00
Henrik Rydgård
acf55916fd Silence address-sanitizer warnings in Math3D.h on ARM64 (not very serious but good to fix) 2022-12-09 18:31:44 +01:00
Henrik Rydgård
4280a9f51c Force postshaders with the usePreviousFrame flag to the end of the order 2022-12-09 17:19:08 +01:00
Henrik Rydgård
141e076f12
Merge pull request #16523 from hrydgard/post-shader-cleanup
Post shader cleanup
2022-12-08 13:45:03 +01:00
Henrik Rydgård
6ae799d440
Merge pull request #16520 from hrydgard/little-big-planet-gas
LittleBigPlanet: Compat flag to work around smoke rendering problem
2022-12-08 13:22:15 +01:00
Henrik Rydgård
70ce76a8d5 Delete the builtin Grayscale shader. Also make unknown shaders go away from list. 2022-12-07 22:28:55 +01:00
Lubos
13ca232fc0 Merge branch 'master' into config_openxr_update 2022-12-07 21:56:55 +01:00
Henrik Rydgård
7aab096791 LittleBigPlanet: Compat flag to work around smoke rendering problem
See #16030

Hopefully just for the release. There might be a tweak of our heuristics
that can fix it too, but much riskier at this point.
2022-12-07 13:29:47 +01:00
Henrik Rydgård
aed5d76fbc Make the post shader list more editable 2022-12-07 10:27:02 +01:00
Unknown W. Brackets
d9522a7ac5 softgpu: Avoid clear hazard for last cached funcs. 2022-12-06 21:23:56 -08:00
Unknown W. Brackets
eda3ce556e softgpu: Avoid atomic structs.
Apparently we don't link libatomic and rather than fighting that, I'll
just use thread local values.
2022-12-06 20:35:07 -08:00
Unknown W. Brackets
400f6abf9a softgpu: Optimize lookup of last jit func.
This is common (for example, maybe a pixel state is updated but sampler is
not), and reduces time spent in ComputeRasterizerState() quite a bit in
Darkstalkers, where jits are available (i.e. Intel currently.)
2022-12-06 19:16:19 -08:00
Unknown W. Brackets
87fb9eef37 softgpu: Remove std::function usage.
Wanted to avoid coupling these, but don't like the std::function
construct/destructs showing in profiles...
2022-12-06 19:15:57 -08:00
Unknown W. Brackets
77c98441f4 softgpu: Expand fast path to all fb formats.
This should speed up 2D games not using 5551, and make it mroe likely any
regression is caught for Darkstalkers.
2022-12-06 18:43:21 -08:00
Henrik Rydgård
49f8f96a98 Couple more microoptimizations 2022-12-07 02:08:48 +01:00
Henrik Rydgård
50fdf67fd0 Software rect raster: Speed up memory tracking in debug mode (ztag unused, remove allocations) 2022-12-07 01:51:20 +01:00
Henrik Rydgård
b51422c18b Ordering fix, should fix elimination of the DarkStalkers software blit 2022-12-07 01:50:48 +01:00
Henrik Rydgård
70b6733d0a Minor alpha bit optimization in Darkstalkers rectangle code 2022-12-07 01:50:29 +01:00
Unknown W. Brackets
51fa931e46 softgpu: Allow no alpha blend in 5551 fast path. 2022-12-06 06:37:51 -08:00
Unknown W. Brackets
60c129c52f softgpu: Use no-modulate fast path for REPLACE. 2022-12-06 06:31:30 -08:00
Unknown W. Brackets
c291bd78ef softgpu: Use a template for 5551 fast path.
Just refactoring here, should be the same.
2022-12-06 06:29:19 -08:00
Unknown W. Brackets
264a81913d softgpu: Avoid checking UVs for sprites w/o tex. 2022-12-06 06:11:38 -08:00
Unknown W. Brackets
5d6b213fa7 softgpu: Avoid tri combine to rect if clipping. 2022-12-05 23:24:26 -08:00
Unknown W. Brackets
d9501cb0ad softgpu: Fix w culling of triangle rects. 2022-12-05 23:09:55 -08:00
Henrik Rydgård
e969f9cf8b
Merge pull request #16502 from unknownbrackets/softgpu-opt
A few more softgpu optimizations for alpha blend/test
2022-12-05 09:35:36 +01:00
Henrik Rydgård
e44e9b651f
Merge pull request #16503 from unknownbrackets/softgpu-halfpos
softgpu: Fix double rectangle drawing at halfpixel
2022-12-05 09:34:33 +01:00
Unknown W. Brackets
77e510bd90 GPU: Use accurate depth for depth range hack.
This should be easier to ensure stays well tested.
2022-12-04 19:27:23 -08:00
Unknown W. Brackets
07c276c32d softgpu: Fix double rectangle drawing at halfpixel.
There seems to be some odd behavior with the X start pos, but at least the
end pos should not be drawn twice when using 0.5 - 0.5.
2022-12-04 17:47:57 -08:00
Unknown W. Brackets
d6750993d7 softgpu: Force alpha test when it could skip blend.
Blending is slow, and often games do effects like smoke, sun, etc. that
has a lot of zero alpha in them.  Many games do this with alpha testing
off, which is cheap compared to blending.
2022-12-04 16:36:45 -08:00
Unknown W. Brackets
2c90dafe64 softgpu: Force alpha test off in more scenarios.
Since we're already checking the CLUT, we can tell if it doesn't contain
zero alpha, in which case a != 0 test will never fail.  This is actually
pretty common, even when texture alpha is not always FF.
2022-12-04 16:30:12 -08:00
Lubos
d0e6f480a9 Merge branch 'master' into config_openxr_update 2022-12-04 18:04:08 +01:00
Henrik Rydgård
5de3a7c252
Merge pull request #16500 from unknownbrackets/warnings
Fixes to recently introduced warnings and a couple older ones
2022-12-04 17:40:30 +01:00
Unknown W. Brackets
3342d5ecb3 softgpu: Remove an unused case. 2022-12-04 08:17:05 -08:00
Unknown W. Brackets
8c378c4557 GPU: Avoid an override warning. 2022-12-04 07:57:45 -08:00
Henrik Rydgård
a8939f456a Remove dead code, validation fix in GE debugger
See #16490
2022-12-04 00:49:48 +01:00
Unknown W. Brackets
59431de823
Merge pull request #16494 from hrydgard/force-lower-res-for-effects-off
Force "Lower resolution for effects" off in Ratchet & Clank and a few other games
2022-12-03 15:25:57 -08:00
Henrik Rydgård
7e97ce1760
Merge pull request #16495 from unknownbrackets/vulkan-shutdown
Cleanup shader module lifetime handling for Vulkan
2022-12-04 00:16:58 +01:00
Unknown W. Brackets
78ed8d45a7 Vulkan: Defer deletion of shader module promises. 2022-12-03 14:53:10 -08:00
Unknown W. Brackets
53eedf06e3 Vulkan: Track pipeline desc using a refcount.
Not very safe to not allow deletes, and don't want to force Draw objects
on the deleter (this is referenced by them.)
2022-12-03 14:52:06 -08:00
Henrik Rydgård
8567416be6 Force "Lower resolution for effects" off in Ratchet & Clank and a few other games
It breaks or just makes things look terrible in these games, so no
reason to allow it.

An alternative for this would be to remove the option entirely, and only
use it though the ForceLowerResolutionForEffectsOn flag instead.
2022-12-03 23:35:54 +01:00
Henrik Rydgård
c310d1471e
Merge pull request #16493 from unknownbrackets/softgpu-opt
softgpu: Check CLUT alpha to optimize out blend/alpha test
2022-12-03 22:55:53 +01:00
Unknown W. Brackets
00e76b11b6 softgpu: Optimize > non-zero alpha tests as well.
These are fairly common, especially in 3D games.
2022-12-03 12:55:38 -08:00