Commit Graph
1633 Commits
Author SHA1 Message Date
Henrik Rydgård fb798cf6b2 Win32 textdrawer: Fix rare crash affecting Patapon 2 in savedata manager. See 10764. 2018-03-23 10:27:08 +01:00
aliaspider 54d9406713 fix mingw and msvc cmake builds. 2018-03-23 03:18:13 +01:00
aliaspider 15c4406df7 add missing inclues. 2018-03-22 22:14:19 +01:00
aliaspider a5b5308d88 fix return value / plug leak. 2018-03-22 22:12:19 +01:00
Henrik Rydgård f1359af0b0 Vulkan: Improve handling of shader compile failures (don't crash) 2018-03-19 17:46:58 +01:00
Henrik Rydgård 1dabccb453 Vulkan: Minor logic fixes in the transition elimination 2018-03-18 13:14:20 +01:00
Henrik Rydgård 3e7723ea6d Vulkan: Use finalLayout to optimize away barriers before framebuffer copies. 2018-03-18 12:09:02 +01:00
Henrik Rydgård 2d3655ea23 Vulkan: Get rid of more explicit barriers by merging the finalLayout color transitions into renderpasses. 2018-03-18 12:03:23 +01:00
Henrik Rydgård 6d5f0665fe Add a super focused workaround for the Mali bug, see #10723
Minimizes the performance penalty.
2018-03-18 11:20:45 +01:00
Henrik Rydgård f43935b030 Merge framebuffer layout pre-transitions into render pass subpass dependencies.
With this, drivers should be able to completely get rid of layout
transitions into render passes that use CLEAR, at least.
2018-03-18 09:55:36 +01:00
Henrik Rydgård 33a1e6a080 Vulkan Clear-renderpass merging: If a copy step is found that reads from the affected buffer, don't merge the clear into the later renderpass. 2018-03-18 09:44:00 +01:00
Henrik Rydgård 0ee058320a Pass new vulkan validation layers. Fix math in FindTransferFramebuffers. 2018-03-17 23:39:02 +01:00
Henrik Rydgård 6858c77612 Don't allow wrapping on framebuffer textures. Fixes GTA on old NV Shield 2018-03-17 01:54:11 +01:00
Henrik Rydgård 614cabb115 Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs.
The raw pipeline cache got pretty large. Instead, store IDs like GL.

There's still a disabled option to store the pipeline cache objects.
2018-03-16 21:03:03 +01:00
Henrik Rydgård c5ebb2d73f Oops, remove logging 2018-03-16 14:58:45 +01:00
Henrik Rydgård a08464eb77 Vulkan: Also check for empty clearing renderpasses later in the frame. 2018-03-16 14:57:41 +01:00
Henrik Rydgård df8dac4aae If the first renderpass is an empty clear, merge it into the next one that touches the same framebuffer. Works around #10723 in Wipeout. 2018-03-16 13:44:56 +01:00
Henrik Rydgård 3cd92b4d90 Vulkan: Add a (disabled) facility to force image layouts to GENERAL, for debugging barrier issues 2018-03-15 16:23:23 +01:00
Henrik Rydgård ba5208efaa GL: Fix bug where we could crash if a readback happened at the same time as a buffer expansion. 2018-03-14 00:06:38 +01:00
Henrik Rydgård 7c6034e2ce Merge pull request #10713 from hrydgard/windows-gl-vsync-fix
Fix VSync on Windows. Should fix #10711
2018-03-13 00:03:33 +01:00
Romain Graillot ad37e7ce45 Fix crash happening with glGetFloatv on GPDXD devices 2018-03-12 23:11:58 +01:00
Henrik Rydgård 2a438d6e03 Fix VSync on Windows. Should fix #10711 2018-03-12 20:07:31 +01:00
Henrik Rydgård 0ed3deabe6 Fix #10692 (crash when starting games from command line). Throw in some minor Vulkan fixes as well. 2018-03-08 16:35:13 +01:00
Henrik Rydgård d45ae9e67a Merge pull request #10688 from unknownbrackets/gl-buffers
GLES: Support more buffer mapping strategies
2018-03-05 09:15:41 +01:00
Henrik Rydgård 40db61a680 Remove further remains of hardware skinning. Fixes #10661 2018-03-05 00:03:47 +01:00
Unknown W. Brackets 7c983a6842 GLES: Support more buffer mapping strategies. 2018-03-04 14:48:06 -08:00
Unknown W. Brackets 021ade5065 GLES: Fix force alignment on buffer map. 2018-03-04 13:26:52 -08:00
Henrik Rydgård 38bf10baaa GL: Use AllocateAlignedMemory to make sure localMemory is always aligned. Fixes #10666
Seems the code that tries to align is faulty in some cases but this avoids the issue at least.
2018-03-04 22:22:47 +01:00
Unknown W. Brackets 1b8e3edb86 GLES: Buffer handling cleanup.
Trying to fix the mystery issues on some devices.
2018-03-04 10:00:45 -08:00
Henrik Rydgård ee752f5399 Some error handling and assert improvements, trying to understand #10662 2018-03-01 12:21:58 +01:00
Henrik Rydgård 3b0d307792 Fix something found by -fsanitize=undefined 2018-03-01 08:24:47 +01:00
Henrik Rydgård bc339c0377 GL: Filter away redundant glEnable/Disable(GL_STENCIL_TEST) 2018-02-28 13:28:39 +01:00
Henrik Rydgård f5dd9c17cd Add comment trying to clarify shutdown of GPU_GLES, restore the wipe, minor tweaks. Should help #10652
This reverts commit 10be0cad96.
2018-02-27 22:04:24 +01:00
Henrik Rydgård 375fa3fb5b Improve a bunch of Vulkan copy-rect asserts by adding more debug info 2018-02-26 14:23:52 +01:00
Henrik Rydgård 373e53fa66 Merge pull request #10645 from hrydgard/vulkan-cleanups
Vulkan cleanups: Remove old texture upload method, etc.
2018-02-26 09:24:24 +01:00
Unknown W. Brackets beeb9cc3a4 GLES: Disable buffer mapping for non-NVIDIA.
Need more stats on other vendors.  I think it can help if we use it
properly.
2018-02-25 12:51:52 -08:00
Henrik Rydgård e1852321a0 Vulkan: Remove the old method of uploading images. 2018-02-25 12:15:29 +01:00
Henrik Rydgård 5f8118b82b Separate T3DCreate* into its own header to avoid including Windows.h etc in some cases. 2018-02-25 10:27:59 +01:00
Henrik Rydgård 1b9c2f26f9 Whitelist mapbuffer usage to NVIDIA only (should maybe add Qualcomm too), it's murder on Mali 2018-02-12 11:46:19 +01:00
Unknown W. Brackets be0ab58365 GLES: iOS buildfix. 2018-02-11 14:38:36 -08:00
Unknown W. Brackets 5f1cd19687 GLES: Android buildfix. 2018-02-11 13:17:08 -08:00
Unknown W. Brackets 20b532fc71 GLES: Use buffer storage and explicit flush.
This is just as fast as using glMapBufferRange on desktop.
2018-02-11 13:14:28 -08:00
Unknown W. Brackets 7179e408da GLES: Free localMemory later.
It was still in use sometimes as of MapDevice(), so this is safer.
2018-02-11 12:35:33 -08:00
Unknown W. Brackets edcd2f966a GLES: Use buffer range mapping where appropriate. 2018-02-11 12:35:33 -08:00
Unknown W. Brackets 9eb51a6a36 GLES: Use mapped device memory when possible. 2018-02-11 12:35:32 -08:00
Unknown W. Brackets fcc2b59c57 GLES: Wait for queue idle properly.
Need to wait for anything ready for run.  Not everything will have been
submitted.
2018-02-11 11:30:38 -08:00
Unknown W. Brackets 0474ff5c23 GLES: Use aligned memory for textures.
We use SSE on them, and they used to be aligned, and must be aligned in
PSP RAM, so keep them aligned.

This only really affects 32-bit, since allocs will typically be aligned on
64-bit anyway.

Fixes #10601.
2018-02-11 08:13:57 -08:00
Unknown W. Brackets 0e2a586c1b Global: Fix some type comparison/shadow warnings. 2018-02-11 07:03:23 -08:00
Unknown W. Brackets 9a40a5971b GLES: Prevent crash on screenshot without buffers.
It still fails for some reason, but that's better than a segfault.
2018-02-10 16:55:53 -08:00
Henrik Rydgård 8ad5b499a9 Improve assert messages in VulkanRenderManager (minor) 2018-02-10 08:58:33 +01:00