Commit Graph
5798 Commits
Author SHA1 Message Date
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 46b9454e73 GPU: Reset hw transform once per frame.
Might prevent potential crashes if it changes mid-frame.
2020-04-04 11:21:22 -07:00
Unknown W. Brackets 30ede8240c GPU: Move hw transform decision to draw engine. 2020-04-04 11:14: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
Unknown W. Brackets a95f3111cf GPU: Assume a scissor of 481x273 is a mistake.
We already do this for viewport, and only when region is still a correct
size.  Helps flicker in Everybody's Golf.
2020-03-21 23:47:50 -07:00
Unknown W. Brackets 4a8839c99d GPU: Avoid divide by zero in garbage displaylist. 2020-03-19 20:56:24 -07:00
Unknown W. Brackets c7a27ed9af GPU: Fix memory corruption with bufw > w.
Seen for example in Mecho Wars.
2020-03-19 20:56:02 -07:00
Henrik Rydgård 01165e7277 Merge pull request #12699 from unknownbrackets/softgpu-minor
softgpu: Correct clear/solid rect BR corner
2020-03-10 07:34:15 +01:00
Unknown W. Brackets f1dfb25427 softgpu: Correct clear/solid rect BR corner.
The scissor is inclusive, not exclusive.
2020-03-09 18:57:55 -07:00
Henrik Rydgård a19ba6d472 New heuristic for getting rid of unnecessary "antialias-lines".
Should fix #12558, while keeping the other aa line issues also fixed.

Heuristic derived from discussions in #12558 and #6483.
2020-03-10 00:49:16 +01: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 3ce9483d24 Headless: Prevent crash running graphics tests. 2020-03-08 11:10:16 -07:00
Henrik Rydgård f8a0ba3b86 Update the glslang submodule, fix the build afterwards. 2020-03-03 22:19:32 +01: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 41a6b97023 DX9: Simplify some expressions 2020-01-26 16:34:46 +01:00
Henrik Rydgård 118e927b86 GPU: Only GL uses a flipped buffer in non-buffered, reflect that in the SW transform code. 2020-01-26 15:54:51 +01: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 3aa575daef OpenGL: Call ApplyDrawState before SoftwareTransform 2020-01-26 15:29:45 +01:00
Henrik Rydgård e4f9f3b120 DrawEngineDX9: Rename lookup table, cleanup 2020-01-26 15:28:54 +01:00
Unknown W. Brackets 072041a63d SoftGPU: Convert from 16-bit if unsupported.
Should help #12455, but not actually tested on an affected device.
2019-12-24 11:08:44 -08: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 54823a87cc Oops 2019-10-28 13:13:52 +01:00
Henrik Rydgård 970adfbcc9 Isolate most of the softgpu specialization code to RasterizerRectangle.
See comments.
2019-10-28 09:33:30 +01:00
Henrik Rydgård 1966c8fe75 Fix a backwards check 2019-10-27 20:55:32 +01:00
Henrik Rydgård 6c8186d046 Remove unused textureswizzle support (we use shaders instead). Universally support presenting 5551 format directly. 2019-10-27 20:55:32 +01:00
Henrik Rydgård 86c781e434 Hack around most of the problems with the save/load dialog. Software stretch gets enabled in non-wide mode, so wallpapers work at a cost of speed. 2019-10-27 20:55:32 +01:00
Henrik Rydgård 102a70b4a5 Scissor fix 2019-10-27 20:55:32 +01:00
Henrik Rydgård a84f4a0caa Even more speed. 2019-10-27 20:55:32 +01:00
Henrik Rydgård eb53609cb0 More speed 2019-10-27 20:55:32 +01:00
Henrik Rydgård bbbd7f8acc Buildfix 2019-10-27 20:55:32 +01:00
Henrik Rydgård 714f83f614 Further specialization. 2019-10-27 20:54:36 +01:00
Henrik Rydgård 290e9971a7 More specialization work. 2019-10-27 20:54:36 +01:00
Henrik Rydgård 4f7c23fe79 DarkStalkers: Fix display on OpenGL ES. 2019-10-27 20:54:36 +01:00
Henrik Rydgård 796539ad7f DarkStalkers: Fix display in the D3D backends. Still broken in OpenGL. 2019-10-27 20:54:36 +01:00