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
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
Unknown W. Brackets
44ba31fbc6
Vulkan: Implement verex range culling.
...
Also D3D11, since they are very similar.
2018-09-17 07:27:26 -07:00
Unknown W. Brackets
022670d882
GPU: Apply fog before color test.
...
Hardware tests confirm the fog result is what's color tested.
2018-09-09 23:59:48 -07:00
Unknown W. Brackets
8eb011c22d
GPU: Clamp after color doubling.
...
This is needed for blending to be correct - it blends a clamped value.
2018-09-09 20:27:39 -07:00
Unknown W. Brackets
703181607e
GPU: Apply color test after doubling.
2018-09-09 20:09:48 -07:00
Unknown W. Brackets
332788d0b5
GPU: Clean up some shader id flag usage.
2018-09-09 09:59:42 -07:00
Unknown W. Brackets
a4c0640f01
GE Debugger: Factor out host calls some.
...
Moving more of this to cross platform for the web debugger.
2018-09-01 08:32:03 -07:00
Unknown W. Brackets
16d7a80980
GPU: Clear alpha more consistently from 565.
...
Before, the backends all did different things. Now they are more in sync,
but Vulkan still behaves slightly differently.
Fixes #11326 .
2018-08-30 21:00:21 -07:00
Unknown W. Brackets
77f0499f7f
GPU: Rename clipping flag to depth clamp.
...
It seems to just to depth clamp. When depth clamp happens, it affects
clipping a little, but only for vertices that needed clamping.
2018-08-05 17:11:51 -07:00
Unknown W. Brackets
5ad948df73
Vulkan: Avoid discard when we can blend.
...
Where possible, replace alpha and color testing with a zero alpha value.
This allows early fragment tests more often, which may help #11227 . It
may also generally help performance on PowerVR devices.
2018-07-27 20:04:36 -07:00
Unknown W. Brackets
9bac603976
GPU: Use HW transform for flat spline/bezier.
...
We can control the provoking vertex here, but it's less likely to matter.
2018-06-28 19:30:20 -07:00
Unknown W. Brackets
e2c217ab29
Core: More consistently use config enums.
2018-06-23 10:59:18 -07:00
Unknown W. Brackets
b4496f1975
Core: Move config enums to separate file.
...
These are a bit strewn about and there are constants that aren't
consistently used, which just adds confusion.
2018-06-23 10:59:18 -07:00
Unknown W. Brackets
06340bfa9c
Vulkan: Workaround Adreno discard bug. ( #11197 )
...
This also explicitly enables early fragment tests when possible. Using
conversative depth still works on Adreno and should allow some depth
optimizations.
2018-06-20 09:05:27 +02:00
Unknown W. Brackets
bd13f6b906
Vulkan: Workaround stencil upload bug on Adreno.
...
We write a static depth value, which will be ignored, to force the driver
to support discard.
2018-06-17 17:50:38 -07:00
Unknown W. Brackets
d1fa9b97a3
GPU: Remove some unused fields.
2018-06-17 11:26:09 -07:00
Henrik Rydgård
6bf6490c2f
Merge pull request #11128 from unknownbrackets/gpu-minor
...
Minor framebuffer code cleanup
2018-06-06 22:28:35 +02:00
Henrik Rydgård
03175b74ef
Merge pull request #10957 from unknownbrackets/depal-bounds2
...
GPU: Dirty tex when clearing or rendering to self
2018-06-06 22:22:01 +02:00
Unknown W. Brackets
8f354e5312
GPU: Minor framebuffer code cleanup.
2018-06-06 05:56:30 -07:00
Unknown W. Brackets
7c8780bfb6
GPU: Remove some unused code.
2018-06-06 05:56:29 -07:00
Unknown W. Brackets
2606365ba4
GPU: Use software transform for flat shading.
...
Except on GLES where it works fine with the default provoking index.
This fixes #10969 so that it works everywhere.
2018-06-06 05:53:50 -07:00