Henrik Rydgard
c38c5469c4
Fixes for issues found by Vulkan validation layers, including a common non-harmful perf warning (doesn't fix all cases, but does fix the most common one).
2019-01-25 20:18:56 +01:00
Unknown W. Brackets
9a3de5cb1c
GPU: Move dual source blending bug check to Draw.
...
This also allows the ini setting to avoid it on Intel.
2018-12-23 14:11:57 -08:00
Unknown W. Brackets
f8ce9b08ba
Vulkan: Limit stencil workaround to Adreno 5xx.
2018-12-23 14:11:57 -08:00
Unknown W. Brackets
1f594f3fb5
GPU: Track draw in shader manager.
...
With device restore etc. everywhere.
2018-12-23 12:55:37 -08:00
Henrik Rydgård
0037da55a1
Avoid breaking any alpha-stencil emulation in Adreno bug workaround
2018-12-23 11:57:06 +01:00
Henrik Rydgård
79ef185d6e
Vulkan/adreno: Apply workaround for Harvest Moon issue #10421
2018-12-22 18:29:56 +01:00
Henrik Rydgård
2d01db805e
Remove no-op DrawBuffer::End()
2018-12-18 10:10:53 +01:00
Henrik Rydgård
d82ec339ee
Remove the DisableShaderCache setting, rename the other
2018-12-15 10:44:05 +01:00
Henrik Rydgård
25b2ba013b
VK: Add INI options to disable some vendor checks, and to disable the shader cache.
2018-12-11 00:36:15 +01:00
Henrik Rydgård
d9cfa3a8fa
Bump shader caches
2018-12-02 21:49:20 +01:00
Unknown W. Brackets
9a7ee41191
Vulkan: Avoid OpKill workaround with no stencil.
...
It seems like depth gets messed up either way on discard, but behaves
sorta better without the write to depth.
2018-12-01 14:10:47 -08:00
Unknown W. Brackets
5932cbabc3
GPU: Avoid stencil emulation if possible.
...
This reduces use of replaceAlpha, and reduces use of more complicated
blend states. This simplifies fragment shaders a little.
2018-12-01 14:05:29 -08:00
Unknown W. Brackets
b1e68c653c
GPU: Avoid a missing virtual destructor warning.
2018-12-01 13:59:47 -08:00
Unknown W. Brackets
d9510f8824
D3D11: Allow shader blend to self.
...
It was forcing from black before. See #9616 .
2018-11-24 10:19:28 -08:00
Unknown W. Brackets
1c19bce514
GPU: Correct specular exponent zero.
2018-11-22 08:53:25 -08:00
Unknown W. Brackets
4816bfc1a6
GPU: Skip specular on negative diffuse factor.
...
This is correct per hardware tests, see #8403 . Note that the PS3 emulator
running PSP HD remasters does not correctly handle this, and applies
specular for negative diffuse factor.
2018-11-22 08:53:25 -08:00
Unknown W. Brackets
6e46d6c0f9
GPU: Correct powered diffuse with exp=0.
...
Just to ensure negative factors are handled too, as they are on hardware.
2018-11-22 08:53:25 -08:00
Unknown W. Brackets
1cec9f5ea1
GPU: Handle spot light with 0 exp or length.
2018-11-22 08:53:25 -08:00
Unknown W. Brackets
9a4cd5bd9d
GPU: Skip specular on powered diffuse.
...
Matches hardware tests and improves lighting for Virtua Tennis, see #4140 .
2018-11-22 07:59:56 -08:00
Unknown W. Brackets
0c5c776bb9
GPU: Correct shade mapping with 0,0,0 light pos.
...
May need to audit more normalize() usage, if it's consistent in other
places.
2018-11-17 18:33:07 -08:00
Henrik Rydgård
b17fc67c45
Get rid of MaskedEqual
2018-11-12 08:19:19 +01:00
Henrik Rydgård
9c6f7000b7
New spline stuff seems to need bigger storage buffer pools
2018-11-11 22:52:37 +01:00
Henrik Rydgård
67d6e3d384
Framebuffer blit: Clip src rectangle as well
2018-11-05 00:34:04 +01:00
Henrik Rydgård and GitHub
22c066515e
Merge pull request #11425 from xebra/refactor_spline_bezier
...
[Refactoring] Improve spline/bezier.
2018-11-04 17:04:29 +01:00
Unknown W. Brackets
40ca49d0e3
GPU: Cancel shader preload on shutdown/lost.
...
Otherwise, we could've ended up with shaders loading after or during the
lost event, and dense hash map corruption.
2018-10-30 20:32:12 -07:00
Unknown W. Brackets
6130eb34be
Vulkan: Wait for GPU ready on shutdown.
...
In case it's still busy preloading shaders.
2018-10-30 19:13:22 -07:00
Henrik Rydgård
fa40bcff8d
Disable triangle range culling on D3D9 on Intel. Should fix #11477
2018-10-21 09:36:15 +02:00
xebra
eca9386c05
[spline/bezier]Reduce static buffers. Get rid of the spline buffer using half of the vertex buffer.
2018-10-07 23:54:31 +09:00
xebra
ef53195ae8
[spline/bezier]Surround with namespace Spline.
2018-10-07 23:54:28 +09:00
xebra
c49d9e2f72
[spline/bezier]minor fix(referenced to c1f0e981).
2018-10-07 23:54:24 +09:00
xebra
41823f8780
[spline/bezier]Fix GLES texture resolution of HW tess to real 2D to avoid huge width in FF4CC mist dragon morphing.
2018-10-07 23:54:23 +09:00
xebra
89786b943d
[spline/bezier]Instanced rendering for B-Spline is very slow when using weak GPU, so disabled it and simplify the shaders.
...
Add changing the quality of HW tessellation.
2018-10-07 23:54:22 +09:00
xebra
3216a83a92
[spline/bezier]Expand loops in the shaders.
2018-10-07 23:54:14 +09:00
xebra
8c279c0e25
[spline/bezier]Precalculate weights in the shaders using the outer product.
2018-10-07 23:54:13 +09:00
xebra
453e274fbe
[spline/bezier]Fix around vertex type flags.
2018-10-07 23:54:11 +09:00
xebra
d4a667397c
[spline/bezier]Improve shader uniforms a bit.
2018-10-07 23:54:10 +09:00
xebra
de5975f13e
[spline/bezier]Reduce multiplications in the shaders from 16 to 4.
2018-10-07 23:54:09 +09:00
xebra
103d180ae7
[spline/bezier]Get rid of wasted if-checks at Graphics Processors.
2018-10-07 23:54:08 +09:00
xebra
41d6c3cf3a
[spline/bezier]Move whole tessellation logic in the shaders into a subroutine.
2018-10-07 23:54:08 +09:00
xebra
3d07bca010
[spline/bezier]Fix spline weights calculation and get rid of using next patch position in hwtess.
...
# Conflicts:
# GPU/Directx9/VertexShaderGeneratorDX9.cpp
# GPU/GLES/VertexShaderGeneratorGLES.cpp
# GPU/Vulkan/VertexShaderGeneratorVulkan.cpp
2018-10-07 23:54:07 +09:00
xebra
a48a5b32f0
[spline/bezier]Unify hardware tessellation of bezier and spline.
2018-10-07 23:54:06 +09:00
xebra
3c0fb44f2e
[spline/bezier]Improve hwtess to use cached weights.
2018-10-07 23:54:05 +09:00
xebra
966ff32ee7
[spline/bezier]Improve the logic of copying control-points.
2018-10-07 23:53:36 +09:00
Henrik Rydgård
6fd1c0e3d9
Instead of the last commit, don't enable the dual src extension at all on Adreno.
...
This reverts commit eba6c00a8a .
2018-10-07 12:19:11 +02:00
Henrik Rydgård
eba6c00a8a
Experimental commit trying to solve #10421 : Blacklist dual src blending on Adreno/Vulkan
2018-10-06 22:57:23 +02:00
Unknown W. Brackets
26cd98cd7e
GPU: Fix a shader unit typo.
2018-09-24 23:05:32 -07:00
Unknown W. Brackets
cd0662c065
GPU: Cleanup outdated flushbefore code.
...
Backends didn't match.
2018-09-20 20:36:41 -07:00
Henrik Rydgård
c1f0e981a3
Throw in very minor fix (apply readonly to buffer used in tesselation).
...
Validation layer seems buggy though as it still complains that we haven't
enabled the feature vertexPipelineStoresAndAtomics
2018-09-18 23:53:16 +02:00
Henrik Rydgård
5975f471e2
Vulkan: Only apply the depth workaround on Qualcomm devices (adreno)
...
We've seen issues, and the validation layer still doesn't like them very much...
2018-09-18 23:46:45 +02:00
Unknown W. Brackets
9859827645
Vulkan: Avoid depth clamp with clip range.
...
Vulkan clamps to the clip range, not the full range. So when clipping, we
don't really want to clamp at all. Unfortunately, when one side is
clipping, we can't do it exactly right.
But many games clip depth, like Dissidia. Fixes #11260 .
2018-09-17 21:43:29 -07:00