Unknown W. Brackets
ac60e2ecd4
GPU: Track HW tess at start of frame too.
...
This also makes it so we don't force the setting off when you change
backends, and just ignore it if unsupported.
2020-04-04 11:52:32 -07:00
Unknown W. Brackets
c42fb72419
GPU: Update uniforms w/ consistent render mode too.
2020-04-04 11:03:07 -07:00
Unknown W. Brackets
ad98609819
GPU: Use consistent buffered rendering state.
...
The setting can be changed in Qt and Windows between frames, so let's
track the current setting in most places. This is everywhere fbman is
easily accessible.
2020-04-04 10:51:47 -07:00
Henrik Rydgård
21eaef04fc
Vulkan: Pick shaders after calling ConvertStateToVulkanKey because it may end up disabling shader blending
...
(due to too many copies, see DrawEngineCommon::ApplyShaderBlending).
(So much state leaking all over the place ... I want to redesign the
whole thing).
Typo fix in comment
2020-03-29 15:02:40 +02:00
Unknown W. Brackets
4a0109d273
GPU: Treat negative light exp same as 0.
...
Based on #12507 and some tests, seems like negative exponents are also
fixed to a 1.0f result.
2020-03-22 22:28:05 -07:00
Henrik Rydgård
2eaa1db046
Vulkan: Track down another one of those minor resource leaks.
...
Also no need to zero, queue for delete does it already.
2020-03-09 00:48:00 +01:00
Unknown W. Brackets
ac909d2192
Vulkan: Ensure scaling happens in cached RAM.
...
There's a non-trivial performance impact to using uncached coherent
memory, which is usually what we get for the push buffer.
2020-03-08 12:02:46 -07:00
Unknown W. Brackets
051a84e9bd
GPU: Restart when changing inflight frames setting.
...
We need to keep the push and pull in step, so changing at runtime is
messy.
2020-03-02 19:21:15 -08:00
Henrik Rydgård
fa8968f5c6
Merge pull request #12660 from unknownbrackets/frame-latency
...
GPU: Add setting to control inflight frame usage
2020-03-02 00:16:48 +01:00
Henrik Rydgård
c363c16af9
Merge pull request #12665 from unknownbrackets/frameskip
...
GPU: Use old frame when presenting a skip
2020-03-01 23:35:01 +01:00
Unknown W. Brackets
cebcfb1bbd
GPU: Use old frame when presenting a skip.
...
If we flip using a skipped frame, we may show an even older frame causing
weird flickering.
2020-03-01 13:55:28 -08:00
Henrik Rydgård
63f06cdd91
Address some feedback, thanks unknown
2020-03-01 18:41:09 +01:00
Unknown W. Brackets
98df4bbec3
GPU: Allow choosing number of inflight frames.
2020-03-01 08:53:46 -08:00
Unknown W. Brackets
a91e206926
GPU: Add setting to control inflight frame usage.
2020-03-01 06:21:27 -08:00
Henrik Rydgård
25dcf8dd8d
Warning fixes
2020-03-01 14:15:10 +01:00
Henrik Rydgård
0da04f3694
Vulkan: Support devices that don't properly support 16-bit texture (like MoltenVK).
...
Fixes #12615 .
Will make finishing #10654 worthwhile.
2020-03-01 14:07:13 +01:00
Henrik Rydgård
2ec82951a0
Merge pull request #12659 from unknownbrackets/vsync
...
Support vsync in all hardware backends, support runtime update
2020-03-01 09:52:14 +01:00
Unknown W. Brackets
3c1e8abcfe
GPU: Centralize vsync interval logic.
...
We already do unthrottle checking here.
2020-02-29 22:27:00 -08:00
Henrik Rydgård
974095ac10
Log shader contents to VERBOSE instead of DEBUG.
2020-02-29 10:46:04 +01:00
Unknown W. Brackets
5009698cc0
Core: Use a shared_ptr for i18n categories.
...
This does not make them thread safe, but it reduces the chances of a crash
a bit (see #12594.)
2020-02-09 07:35:16 -08:00
Henrik Rydgård
92a1395cd0
Apply viewport before SoftwareTransform so flipping can be checked
2020-01-26 15:30:20 +01:00
Henrik Rydgård
714205d699
Vulkan: Enable renderpass merging for all games (was introduced in 1.9 for GoW games). A number of other games can also benefit.
2019-11-30 22:44:59 +01:00
Henrik Rydgård
767b1e45b2
Fix the build - there's a Vec3 name collision, fixed it using a namespace.
2019-10-22 22:58:10 +02:00
Henrik Rydgård
c7b3a08cf3
Vulkan: Add checks so we don't try to write NULL objects to a descriptor set.
...
(Shouldn't happen, but bad rendering is better than a crash in descriptor writing)
2019-10-20 17:05:42 +02:00
Henrik Rydgård
1e3711ee66
Vulkan blend factor: Bugfix and minor optimization
2019-10-13 21:17:29 +02:00
Henrik Rydgård
0b17dd04e6
Merge pull request #10393 from hrydgard/compute-upload
...
Vulkan: Texture upload through compute, experimental texture scaling too
2019-10-08 09:11:25 +02:00
Henrik Rydgård
e67a0606ef
Vulkan: Always write gl_PointSize, fixes #12364 . Remove unnecessary predeclaration of gl_Position.
...
Replaces #12393 .
The predeclaration used to be required by early versions of glslang but is no longer. Since the GLSL compiler is controlled by us, we don't need to fear incompatibilities.
2019-10-07 19:57:13 +02:00
Unknown W. Brackets
be5d93d5f1
Vulkan: Compile compute shaders only if enabled.
2019-09-30 00:39:00 -07:00
Unknown W. Brackets
41a6831333
Vulkan: Add a setting for hardware scaling.
2019-09-30 00:35:50 -07:00
Unknown W. Brackets
7fa05a3181
Vulkan: Initial 16-bit texture shader decode.
2019-09-30 00:35:14 -07:00
Unknown W. Brackets
6613312ecc
Vulkan: Add 4xbrz texture shader.
2019-09-30 00:34:53 -07:00
Henrik Rydgård
eeec18c018
Make the barrier a bit more focused. Up some limits.
2019-09-29 10:55:49 -07:00
Henrik Rydgård
080f34acfe
Need a barrier on Mali. Strange that validation didn't warn...
2019-09-29 10:54:55 -07:00
Henrik Rydgård
e9b2af7fc7
In the computeUpload path, use a shader intrinsic to unpack the color.
2019-09-29 10:54:33 -07:00
Henrik Rydgård
101019d5cd
Fix build error on 64-bit android
2019-09-29 10:53:53 -07:00
Henrik Rydgård
a355f49c91
Also experiment with a "copy shader" that just does raw data manipulation into GPU local memory, then copies to image from there.
2019-09-29 10:39:12 -07:00
Henrik Rydgård
9ed66001c6
Use a plain compute shader for RGBA8888 texture uploads, as a proof of concept.
2019-09-29 10:27:50 -07:00
Henrik Rydgård
e6bec3e555
Vulkan: Add simple manager for compute shaders that upload data to images.
2019-09-29 10:24:48 -07:00
Henrik Rydgård
e723594133
Vulkan: Fix shutdown crash accidentally caused by #12324
2019-09-17 14:47:38 +02:00
Henrik Rydgård
6d2be0d716
Merge pull request #12324 from unknownbrackets/vulkan-cache
...
Vulkan: Clear caches when deleting shaders
2019-09-15 20:00:06 +02:00
Unknown W. Brackets
59062ca7bc
Vulkan: Clear caches when deleting shaders.
...
As noticed by iota97 in #12317 , we're not clearing these. If a pointer
gets reused by the Vulkan driver, we have to be careful not to reuse a
pipeline.
2019-09-14 11:23:12 -07:00
Henrik Rydgård
02a96e29bb
Fix a comment
2019-09-09 00:52:23 +02:00
Henrik Rydgård
70ec327b40
Vulkan: Slim down and rename the Mali hack.
2019-09-09 00:43:31 +02:00
Henrik Rydgård
f76adfd760
Vulkan ARM mali Z hack: Modify the matrix instead of the shader.
2019-09-09 00:09:57 +02:00
Henrik Rydgård
0462c01228
Workaround ARM Mali depth hardware bug. Fixes #11937
...
When triangles coincide with the Z=1 plane in specific ways, triggered
by Burnout Legends' sky for example, the depth buffer gets corrupted.
This is worked around here by slightly rescaling Z. This type of
workaround is recommended by ARM driver engineers.
Ugly but what can you do when the hardware is bugged. I've done quick
tests on a number of games with no issues.
2019-09-08 23:44:26 +02:00
Henrik Rydgård
025a9f4dae
Improve Mali driver version detection
2019-09-04 21:46:07 +02:00
Henrik Rydgård
7ad10ff0ef
Vulkan profiling vis bugfix: Restore font scale after drawing.
2019-08-21 23:11:01 +02:00
Henrik Rydgård
93412aff3b
Vulkan: Automatically merge render passes to the same target when possible.
...
Should speed things up a bit on mobile in some games that do stupid
things like GoW. Currently only enabled in GoW, but plan to enable this
globally as it should be quite cheap when nothing is detected.
2019-08-21 20:32:23 +02:00
Henrik Rydgård
e3f1e563f2
Improve renderpass profiling descriptions a little
2019-08-21 18:31:01 +02:00
Henrik Rydgård
653afeb7ab
Vulkan: Implement basic integrated GPU profiling.
...
Currently simply measures the total GPU time of the frame. Will later be
extended to get the execution time of individual render passes.
2019-08-21 00:03:00 +02:00