Henrik Rydgård
654f4bff40
Split out ReplacedTexture into its own file.
2023-03-09 21:19:20 +01:00
Henrik Rydgård
cb10862510
Move texture replacer to GPU/Common.
...
Add new files ReplacedTexture.cpp/h too.
2023-03-09 21:11:53 +01:00
Henrik Rydgård
ecf1134494
GL crashfix
2023-03-09 19:12:47 +01:00
Henrik Rydgård
b253225815
Fix another replacer lifecycle issue, causing unnecessary texture invalidation.
2023-03-09 15:03:17 +01:00
Henrik Rydgård
44c4e63753
Simplifies and speeds up D3D11 texture uploads. Also, fixes a bug with replacement off
2023-03-09 14:43:59 +01:00
Henrik Rydgård
092bbf5eaa
Fix saving of textures
2023-03-09 10:51:15 +01:00
Henrik Rydgård
bda09be109
Texture color format doesn't belong as a per-level property, that's not supported.
...
All levels of a texture must have the same format.
2023-03-09 00:10:46 +01:00
Henrik Rydgård
4ba2001479
Replacer: Make the cache data model texture-centric instead of level-centric
2023-03-09 00:10:46 +01:00
Henrik Rydgård
226197f30f
Replace "none_" with nullptr.
2023-03-08 13:17:10 +01:00
Henrik Rydgård
3d5526a175
Allow specifying the VFS when loading INI files.
...
Will be useful in the tex replacer.
2023-03-07 10:04:10 +01:00
Henrik Rydgård
3b39e9e068
Turn the VFS into a class, to be able to reuse it for other purposes.
2023-03-06 16:42:47 +01:00
Henrik Rydgård
ebd8a63914
Merge pull request #17032 from hrydgard/cache-framebuffer-copy
...
Cache framebuffer copies (for self-texturing) until the next TexFlush GPU instruction
2023-03-06 09:03:39 +01:00
Henrik Rydgård
74f9b55669
Merge pull request #17055 from unknownbrackets/depth-zero-scale
...
GPU: Correct depth clip/cull for zero scale
2023-03-05 22:54:24 +01:00
Unknown W. Brackets
9fcc1509e4
GPU: Correct depth clip/cull for zero scale.
2023-03-05 08:51:45 -08:00
Henrik Rydgård
cc9c01b1d0
Vulkan texture uploads: Take optimalBufferCopyRowPitchAlignment into account
...
Might marginally increase texture upload performance on some GPUs, but
mainly just the right thing to do.
For example, on Intel, this is 64.
2023-03-05 17:32:41 +01:00
Unknown W. Brackets
92a18eed01
GPU: Discard framebuffer copy when clearing.
...
This avoids retaining the framebuffer copy any longer than the current
framebuffer target.
2023-03-01 22:11:20 -08:00
Henrik Rydgård
4d0fbdb96f
Add a safety check - don't cache partial copies.
2023-03-01 22:51:23 +01:00
Henrik Rydgård
7a7117f2f7
Cache framebuffer copies (for self-texturing) until the next TexFlush instruction.
...
Fixes #17030 , or at least improves on it - for optimal performance that
big framebuffer used for bloom should be split like in Killzone, but it's not trivial.
The regression in 1.14 is fixed with this, at least.
I tried it with a few other games with no issues - it seems games are
using TexFlush when needed. But let's see if it really is safe to rely
on that...
There might also be other places we should call DiscardFramebufferCopy
in.
2023-03-01 22:42:22 +01:00
Henrik Rydgård
c6352a262d
Fix crash in SoftGPU when frameskipping, noticed by sum2012 in Daxter
...
Fixes #17021
2023-02-28 23:21:36 +01:00
Unknown W. Brackets
9c21184352
vertexjit: Simplify CPU core check.
...
This also avoids allocating the memory we won't use if it's off.
2023-02-28 07:03:12 -08:00
Henrik Rydgård
970f7993df
Android: Make font rendering work even absent support for R4G4B4A4 textures.
...
This shouldn't normally happen as conforming drivers are required to
support that texture format, but the software driver that we
accidentally choose on Poco C40 (see issue #16391 ) doesn't.
That we choose that driver will be fixed separately. This fix on its own
at least lets the user comfortably navigate to settings and switch to
OpenGL.
2023-02-28 00:01:29 +01:00
Henrik Rydgård
bdc271385b
Merge pull request #17011 from hrydgard/vulkan-memory-visualizer
...
Resurrect the Vulkan memory visualizer, but now it's global stats and pushbuffer stats.
2023-02-27 09:46:41 +01:00
Henrik Rydgård
86c1d5711a
Merge pull request #17017 from unknownbrackets/d3d11-equal-clear
...
D3D11: Correct equal clear check
2023-02-27 09:18:11 +01:00
Unknown W. Brackets
15f087b71a
D3D11: Correct equal clear check.
2023-02-26 23:59:48 -08:00
Henrik Rydgård
ef4f17e998
Resurrect the Vulkan memory visualizer, but now it's global stats and pushbuffer stats.
2023-02-27 01:11:11 +01:00
Unknown W. Brackets
9e46a30c13
GPU: Correct some missing override specifiers.
2023-02-26 15:58:58 -08:00
Henrik Rydgård
b3ce31c61e
Address feedback
2023-02-26 19:54:30 +01:00
Henrik Rydgård
72bed6f2b5
Some DeviceLost/DeviceRestore cleanup
2023-02-26 11:05:52 +01:00
Henrik Rydgård
231f4efbbb
Move some more stuff to GPUCommonHW
2023-02-26 10:33:11 +01:00
Henrik Rydgård
3dc47c7fef
Unify TextureCache ::StartFrame as much as possible.
...
Tiny optimization avoiding a Vulkan pool reset on most frames.
2023-02-25 23:20:41 +01:00
Henrik Rydgård
4c45f8a4b0
Pass in draw directly in GPUCommon::DeviceRestore, instead of awkwardly fetching it
2023-02-25 23:04:27 +01:00
Henrik Rydgård
af2fd7b038
Move Vulkan clear detection logic into DrawEngine like the other backends.
2023-02-25 19:23:07 +01:00
Henrik Rydgård
526ba74d05
Move the shaderManager_ to GPUCommonHW
2023-02-25 19:23:07 +01:00
Henrik Rydgård
c3ceb9bf70
Move assorted debug functions and similar to GPUCommonHW
2023-02-25 19:23:07 +01:00
Henrik Rydgård
807d40e095
Move the matrix loading exec functions too
2023-02-25 19:23:07 +01:00
Henrik Rydgård
8520e1dec5
Move SetDisplayFramebuffer to GPUCommonHW
2023-02-25 19:23:07 +01:00
Henrik Rydgård
71ed265c57
Move sawExactEqualDepth to GPUCommonHW
2023-02-25 19:23:07 +01:00
Henrik Rydgård
bcd38bc9e8
Move some more commands to GPUCommonHW. Get rid of ugly cast.
2023-02-25 19:23:07 +01:00
Henrik Rydgård
d22a22569a
Move the drawing commands to GPUCommonHW
2023-02-25 19:23:07 +01:00
Henrik Rydgård
8fb75e0c12
Unify most of the DebugGetShader* functions
2023-02-25 16:42:09 +01:00
Henrik Rydgård
92ee6e6a75
Remove more redundant functions
2023-02-25 16:33:09 +01:00
Henrik Rydgård
c2c479b217
Remove function InitClear. Was only implemented for DX9, and only barely meaningful in non-buffered.
2023-02-25 16:32:50 +01:00
Henrik Rydgård
7bcc21b0e3
Move msaaLevel_ to GPUCommonHW
2023-02-25 16:27:00 +01:00
Henrik Rydgård
8b54a14bf2
Move the big command table to where it belongs, GPUCommonHW
2023-02-25 16:20:34 +01:00
Henrik Rydgård
9d6c3c329e
Move CheckGPUFeatures() to GPUCommonHW
2023-02-25 16:13:54 +01:00
Henrik Rydgård
8ba665e258
More unification work
2023-02-25 16:12:24 +01:00
Henrik Rydgård
c74f5b2189
Prepare for unifying more stuff
2023-02-25 16:01:32 +01:00
Henrik Rydgård
e136ad795a
Some slight unification
2023-02-25 15:15:34 +01:00
Henrik Rydgård
b6846646af
Remove some uses of gfxCtx_
2023-02-25 15:15:34 +01:00
Henrik Rydgård
9e8f1d3cb3
Make the DoState stuff less ugly
2023-02-25 14:42:15 +01:00
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