Henrik Rydgård
29d8f40c28
Merge pull request #16117 from unknownbrackets/softgpu-texgen
...
Correct texture projection issues, mainly in softgpu
2022-09-27 09:02:27 +02:00
Unknown W. Brackets
23af9be9f4
softgpu: Handle rectangle texture projection.
2022-09-26 18:44:39 -07:00
Unknown W. Brackets
faa6c2d461
softgpu: Implement triangle texture projection.
2022-09-26 18:12:20 -07:00
Unknown W. Brackets
6282f8b05f
softgpu: Expand texture coords to include q.
...
We'll need this to correctly project.
2022-09-26 17:13:14 -07:00
Unknown W. Brackets
8376176b2f
softgpu: Split clippos out of rasterization vert.
...
We don't use it, except w, at all in rasterization, so no need to keep it
in the bin queue.
2022-09-26 16:50:40 -07:00
Unknown W. Brackets
97ae4ae712
GPU: Correct flat normal projection mapping.
2022-09-26 15:11:11 -07:00
Unknown W. Brackets
34a8056017
GPU: Correct normalized zero normal proj map.
...
Unlike lighting, this does not use 0, 0, 1.
2022-09-26 15:11:11 -07:00
Unknown W. Brackets
b3c0f177e2
softgpu: Save last tc/normal in vertex reading.
...
Matches PSP behavior, reusing last set values.
2022-09-26 15:11:11 -07:00
Unknown W. Brackets
59f11df98b
Merge pull request #16116 from hrydgard/color-test-fix
...
Fix color test.
2022-09-26 14:18:12 -07:00
Henrik Rydgård
9b46adb985
Fix color test.
...
Fixes the new color test bug reported in #13324 , though doesn't fix that
issue (didn't confirm it still is one).
2022-09-26 22:51:46 +02:00
Henrik Rydgård
87e49d8775
Merge pull request #16115 from hrydgard/fb-create-nearest-filter
...
Add compatibility flag for loading pixels on framebuffer create using nearest filtering
2022-09-26 21:49:41 +02:00
Henrik Rydgård
1c0d66aef7
Add compatibility flag for loading pixels on framebuffer create using nearest filtering
...
Solves the last problem with the speedometers - so we can finally say: Fixes #8509
Render-to-CLUT for speedometers renders on top of an image that just comes from the
underlying memory, so it's been drawn to the framebuffer with DrawPixels. That adds
filtering so at higher resolutions, there's some blurring of the CLUT, causing
artifacts. We can solve this two ways: either we force on lower-resolution-for-effects
for Ridge Racer games, or we use nearest filtering when doing DrawPixels of the
memory under a framebuffer. For best result, we do the latter.
(The speedometers look even better with nearest filtering, but that's a more
general issue of UI looking better that way).
2022-09-26 20:47:55 +02:00
Henrik Rydgård
89e6b1068f
Merge pull request #16103 from hrydgard/optimize-shader-constants
...
Shrink our main uniform buffer by 32 bytes
2022-09-26 19:33:08 +02:00
Henrik Rydgård
2097a9c39b
Merge pull request #16114 from unknownbrackets/mpeg-fix
...
Mpeg: Correct Au update size
2022-09-26 17:02:56 +02:00
Unknown W. Brackets
4e31a469f0
Mpeg: Correct Au update size.
2022-09-26 07:40:17 -07:00
Unknown W. Brackets
ce835d1892
Merge pull request #16109 from unknownbrackets/optimize-shader-constants
...
GPU: Apply color test mask as a uint
2022-09-26 07:00:05 -07:00
Unknown W. Brackets
4329aaa31c
GPU: Apply color test mask as a uint.
...
This is simpler and allows us to unify paths better.
2022-09-26 06:57:41 -07:00
Unknown W. Brackets
a19a057e8c
GPU: Consistently use uvec3 for colortest.
2022-09-26 06:57:41 -07:00
Henrik Rydgård
d9f74d2fb7
ivec->uvec, comment fix
2022-09-26 13:05:25 +02:00
Henrik Rydgård
fc30b04430
ShaderUniforms: cleanup, put every "4-float" on a line for clarity
2022-09-26 13:05:25 +02:00
Henrik Rydgård
cfa427c37a
Shuffle constants around, squeezing them into gaps. Saves another 16 bytes.
2022-09-26 13:05:24 +02:00
Henrik Rydgård
f4b71e2dc7
Fragment shader uniforms: Pack color mask in 32 bits instead of expand to 128 bits.
...
Allows us to save 16 bytes from the main uniform buffer, since there's
free 32-bit spaces here and there to use.
2022-09-26 13:04:56 +02:00
Henrik Rydgård
51ec3eba4f
Merge pull request #16112 from hrydgard/dynamic-matupdate
...
Fold the "materialUpdate" flag into the light-ubershader
2022-09-26 12:35:57 +02:00
Henrik Rydgård
07ca9e4656
Fold the "materialUpdate" flag into the light ubershader part.
...
This reduces the number of vertex shaders and thus pipelines by quite a
bit more in a few games, like Tekken and GoW, continuing the fight
against shader compile stutter.
The perf impact should be minimal if not positive due to less pipeline
changes.
GLES fixes
Make the vertex input declarations match (always declare fog input). Fixes D3D11 validation
Tess fix
2022-09-26 12:06:16 +02:00
Henrik Rydgård
ad1021ea4b
Add some recent flags to FragmentShaderDesc
2022-09-26 12:06:16 +02:00
Henrik Rydgård
76f03d30bf
Remove suspicious dirty flag
2022-09-26 11:21:40 +02:00
Henrik Rydgård
196f8e3461
Prepare for dynamic mat update
2022-09-26 11:21:40 +02:00
Henrik Rydgård
9c63973c9a
Minor debugger fix
2022-09-26 11:21:40 +02:00
Henrik Rydgård
94e439280e
Merge pull request #16111 from hrydgard/always-compute-fog-in-vs
...
Always do the vertex shader part of the fog computation.
2022-09-26 11:20:06 +02:00
Henrik Rydgård
970998479b
Merge pull request #16110 from unknownbrackets/sse4-normalize
...
GPU: Fix SSE4 Vec3f normalize
2022-09-26 09:46:50 +02:00
Henrik Rydgård
9d1355e137
Always do the vertex shader part of the fog computation.
...
In #16104 , we drastically reduced the number of shader variants for
games that use flexible lighting setups. I looked at a few games and it
seems that a lot of games have the same shaders with fog on/off, while
fog is super cheap to compute. So let's just always do it, reducing
vertex shader variants further (though the amount of pipelines will probably
remain the same, since we still specialize the fragment shader).
Might also be worth adding a dynamic bool for the fragment shader, but
if so, doing it separately.
2022-09-26 09:30:54 +02:00
Unknown W. Brackets
c80f325912
GPU: Fix SSE4 Vec3f normalize.
...
Was sometimes adding in garbage data, which could create NANs.
2022-09-26 00:24:12 -07:00
Unknown W. Brackets
391320db52
Merge pull request #16104 from hrydgard/light-ubershader
...
Generate "Ubershaders" that can handle all lighting configurations
2022-09-25 14:52:01 -07:00
Unknown W. Brackets
c8c25dbbf3
Merge pull request #16108 from hrydgard/fix-vulkan-pretransition-bug
...
Vulkan: Fix bug setting up pretransitions for both color and depth of the same framebuffer
2022-09-25 14:41:35 -07:00
Henrik Rydgård
f30252f8d5
Oops! Also, testfix
2022-09-25 23:35:08 +02:00
Henrik Rydgård
96f054f098
Fix light ubershader for D3D11 and OpenGL, GLES unsigned/signed stuff
2022-09-25 23:35:08 +02:00
Henrik Rydgård
7adba20fac
Experiment: Generate "Ubershaders" that can handle all lighting configurations
...
This drastically reduces the shader compile stutter that happens when a lot of new
light setups are created, like on the first punch in Tekken 6.
There's more stuff that might benefit from being made dynamic like this.
These branches are very cheap on modern GPUs since they're branching on
a uniform variable, so no divergence.
Only tested on Vulkan. I think we'll need to keep the old path too for
gpus like Mali-450...
2022-09-25 23:35:01 +02:00
Henrik Rydgård
a7642bac15
Replace faulty layout transition deduplication algorithm.
2022-09-25 23:24:54 +02:00
Henrik Rydgård
894ab45677
Vulkan: Add debug names to our command buffers, so you can see which one errored in validation
2022-09-25 23:24:29 +02:00
Henrik Rydgård
e30e45fa26
Minor cleanup in TinySet
2022-09-25 23:23:53 +02:00
Henrik Rydgård
b1afeeaf43
Merge pull request #16100 from unknownbrackets/d3d9-debugger
...
D3D9: Allow INTZ depth buffers more correctly
2022-09-25 17:37:56 +02:00
Unknown W. Brackets
e6db0bef2d
Merge pull request #16099 from hrydgard/vulkan-dont-always-alloc-depth
...
Vulkan: Avoid allocating depth images for stuff like temp copies, depal buffers etc.
2022-09-25 08:05:50 -07:00
Henrik Rydgård
788e80b2fc
Merge pull request #16105 from GABO1423/master
...
(UWP) Remove expandedResources
2022-09-25 16:33:59 +02:00
GABO1423
212598fc27
(UWP) Remove expandedResources
2022-09-25 10:04:56 -04:00
Henrik Rydgård
a26a353c25
Merge pull request #16102 from unknownbrackets/softgpu-bin-tweaks
...
softgpu: Avoid waiting for a thread to drain
2022-09-25 10:01:44 +02:00
Henrik Rydgård
70c5ca62e6
Remove debug log. Add some new debug log though, unrelated to this PR, for fb clut + fb texture. Plus a couple asserts.
2022-09-25 09:56:39 +02:00
Henrik Rydgård
8a4147c042
Merge pull request #16101 from unknownbrackets/softgpu-fixes
...
softgpu: Avoid fast path in another wrong case
2022-09-25 09:52:29 +02:00
Henrik Rydgård
a76dcf0e76
Merge pull request #16098 from hrydgard/dont-compile-incompatible-shader-variants
...
Vulkan: Don't compile shader variants for incompatible render pass types
2022-09-25 09:48:39 +02:00
Unknown W. Brackets
24560eef5c
softgpu: Avoid waiting for a thread to drain.
...
If we can, we want to keep the thread queues healthy, but not full.
Reduce the amount we push on a typical drain to avoid the Wait().
2022-09-24 20:01:00 -07:00
Unknown W. Brackets
1aa6841759
softgpu: Increase queued prims.
...
We made them smaller, so we can queue more of them in the same space.
Helps a little bit.
2022-09-24 20:01:00 -07:00