Commit Graph

2795 Commits

Author SHA1 Message Date
Henrik Rydgård
c1d1c85116 Minor code cleanups (hasBegun is now redundant, for example) 2022-09-20 17:05:53 +02:00
Henrik Rydgård
b190c33cc7 Rewrite some present logic for slightly more clarity. Fixes bad logic and a minor race condition. 2022-09-20 17:05:53 +02:00
Henrik Rydgård
c7322edf7b Various refactoring 2022-09-20 17:05:45 +02:00
Henrik Rydgård
aa19712fc3 Unify depth texture and framebuffer fetch checks 2022-09-20 10:47:49 +02:00
Henrik Rydgård
09bcf3ec13 Unify range culling detection 2022-09-20 10:15:04 +02:00
Henrik Rydgård
1ae7c0132c Start unifying setting of the GPU feature flags, now that thin3d has feature detection. 2022-09-20 10:07:01 +02:00
Henrik Rydgård
2160882e95 Address feedback 2022-09-19 19:27:50 +02:00
Henrik Rydgård
cfe4e3278d Vulkan: Remove the useThread bool entirely. 2022-09-19 18:17:26 +02:00
Henrik Rydgård
d0016add37 Start moving stuff out to VulkanFrameData.cpp 2022-09-19 18:14:41 +02:00
Unknown W. Brackets
c08c873462 GLES: Support more clip distances.
Will be used later, for now just the enable/disable logic.
2022-09-18 13:16:59 -07:00
Henrik Rydgård
fc84f25818 Quick GE debugger stepping fix, after the recent vulkan swapchain acquire change 2022-09-18 12:10:23 +02:00
Henrik Rydgård
4045de8d56 Consider the Adreno and Mali stencil-discard bugs the same. Use the better check from the Mali bug.
Should fix #11980
2022-09-18 10:34:43 +02:00
Unknown W. Brackets
6576b853e4 UI: Fix some logic dependent on screen tags.
9f38516 changed various tags but not code referencing them.
2022-09-17 13:36:25 -07:00
Henrik Rydgård
48162858d8 Remove assert (this happens when playing framedumps) 2022-09-17 09:30:08 +02:00
Henrik Rydgård
9d9f2c539e Finish the switch to late acquire, moving the swapchain responsibility to the queue runner. 2022-09-17 08:43:13 +02:00
Henrik Rydgård
a369252a29 RunSteps cleanup 2022-09-17 01:41:26 +02:00
Henrik Rydgård
fabd50b178 Move FrameData out of VulkanRenderManager 2022-09-17 01:34:38 +02:00
Henrik Rydgård
415a795b11 Move back buffer rendering to a separate "present" command buffer 2022-09-17 01:11:41 +02:00
Henrik Rydgård
242efba6f7 Remove splitSubmit setting. Now we submit init commands before the acquire. 2022-09-17 01:07:30 +02:00
Henrik Rydgård
262a306b9a Flag shader blending as broken on Adreno for now. 2022-09-16 19:19:42 +02:00
Henrik Rydgård
a0f7a4ee2f Remove logspam 2022-09-16 19:19:42 +02:00
Henrik Rydgård
eadb144cc4 Show render pass types in GPU profiler 2022-09-16 19:19:42 +02:00
Henrik Rydgård
ce82fce8de Use subpass dependencies to implement shader framebuffer read in Vulkan. 2022-09-16 19:19:42 +02:00
Henrik Rydgård
30e3f3b47a Add two more extensions to device extension lookup 2022-09-16 19:19:42 +02:00
Henrik Rydgård
02793375a4
Merge pull request #16032 from hrydgard/more-outrun-water-fixes
Fix the water in Outrun when no logic ops
2022-09-16 13:15:32 +02:00
Henrik Rydgård
ac9677dcc0 Ah, need to enable the Mali workaround for Outrun's water, too. 2022-09-16 13:14:44 +02:00
Henrik Rydgård
0b9d6f9cb0 Log the screen tag when logging scissor errors. 2022-09-16 10:32:09 +02:00
Luboš Vonásek
861af63be9
Merge branch 'hrydgard:master' into compat_openxr_gta 2022-09-16 10:20:11 +02:00
Henrik Rydgård
9f3851678e Add tags to all our UI screens. Useful to debug UI problems. 2022-09-16 10:14:00 +02:00
Henrik Rydgård
ca2962beab
Merge pull request #16014 from hrydgard/shader-depal-clut8-8888
Texture depal using CLUT loaded from framebuffers, and more. Fixes Burnout Dominator lens flare
2022-09-16 08:33:11 +02:00
Sprite
0ed86188b0 Fix const pointer conversion error for RISC-V 2022-09-15 23:53:19 +08:00
Henrik Rydgård
e8aaf22163 D3D9 crashfix (flare doesn't render correctly though) 2022-09-15 17:22:09 +02:00
Lubos
3331fedab7 OpenXR - Better variable/methods naming 2022-09-15 00:03:41 +02:00
Henrik Rydgård
a208afb7b8 OpenGL and D3D11 fixes 2022-09-14 23:35:15 +02:00
Lubos
0c2d47d74d OpenXR - Add code comments 2022-09-14 23:23:28 +02:00
Henrik Rydgård
d6d7a15d25 Get depal-from-dynamic-CLUT working 2022-09-14 22:18:35 +02:00
Henrik Rydgård
f745e94899 Allow binding "native" texture objects to thin3d 2022-09-14 22:18:35 +02:00
Henrik Rydgård
6744fe3da1 OpenGL fix 2022-09-14 22:18:34 +02:00
Henrik Rydgård
a52e62a187 Enable depth uploads on render-to-clut-buffer. Esoteric but needed for #11100. Compat flag for now. 2022-09-14 22:18:34 +02:00
Lubos
57ef2bb0d5 OpenXR - Ensure the head pose is locked during frame rendering 2022-09-14 20:36:33 +02:00
Lubos
e4f44e680d OpenXR - Move skyplane compat flag into compatvr.ini 2022-09-13 21:16:03 +02:00
Lubos
e406dc4730 Merge branch 'master' into compat_openxr_gta 2022-09-13 21:01:55 +02:00
Unknown W. Brackets
56e30495aa Common: Fix some type compare warnings on 32-bit. 2022-09-12 22:14:48 -07:00
Lubos
b695c1ffb3 Merge branch 'master' into compat_openxr_gta 2022-09-12 23:04:31 +02:00
Lubos
9ede9bd822 OpenXR - Refactor variable name 2022-09-12 23:01:44 +02:00
Lubos
c6ff56d4a3 OpenXR - Crash when using 3D stereo fixed 2022-09-12 22:55:53 +02:00
Lubos
e49ee5c93b Merge branch 'master' into feature_openxr_stereo 2022-09-12 18:49:22 +02:00
Lubos
bdde5f0f7f OpenXR - Use per game stereo separation file 2022-09-12 18:47:13 +02:00
Henrik Rydgård
75efcd9dfd
Merge pull request #16000 from unknownbrackets/gedebugger
Cleanup some crashes in GE debugger or with large textures
2022-09-11 19:41:11 +02:00
Henrik Rydgård
3e7f6b57aa Shadergen issues found by the test 2022-09-11 16:52:33 +02:00
Henrik Rydgård
9bd8b11bf8 Implement shader depal for D3D11. 2022-09-11 13:41:17 +02:00
Unknown W. Brackets
6c6d817ce7 Vulkan: Avoid crash if large texture attempted.
Doesn't do the clamp/wrap thing, but at least this won't crash.
2022-09-10 20:14:37 -07:00
Unknown W. Brackets
54fe342f4b Vulkan: Wake compile thread when enqueued.
Previously was being woken up every frame unconditionally, causing some
logspam.
2022-09-10 08:30:09 -07:00
Henrik Rydgård
e5d1bb5552 Warning fix 2022-09-09 11:34:11 +02:00
Lubos
214a5572c3 OpenXR - Compile fix 2022-09-08 19:00:41 +02:00
Luboš Vonásek
5be9455bf5
Merge branch 'hrydgard:master' into compat_openxr_gta 2022-09-08 18:39:11 +02:00
Lubos
c9f08a85c6 OpenXR - Do not mashup Common/GPU 2022-09-08 18:25:10 +02:00
Lubos
64857ce5c7 Merge branch 'compat_openxr_gta' of github.com:lvonasek/ppsspp into compat_openxr_gta 2022-09-08 18:17:09 +02:00
Lubos
6e4849b910 OpenXR - Refactor 2022-09-08 18:05:12 +02:00
Henrik Rydgård
974cd38b1f Some more debug names to vulkan objects 2022-09-08 09:16:40 +02:00
Henrik Rydgård
58a7f0cf21 Assorted cleanup 2022-09-08 01:26:01 +02:00
Henrik Rydgård
68dd329d95 Fix for desc struct 2022-09-08 01:24:04 +02:00
Henrik Rydgård
347f7c4e5a Vulkan: Improve tagging of pipelines for debugging purposes 2022-09-08 00:47:22 +02:00
Henrik Rydgård
cddc612f6d Extend lifetime of ShaderModule objects since we might need to recreate pipelines for different render passes 2022-09-08 00:38:32 +02:00
Henrik Rydgård
14b5a1a7cd Fix pipeline lifetime issue, misc. 2022-09-08 00:38:32 +02:00
Henrik Rydgård
caff2ea573 Correct merging of render passes. However, we have lifetime issues. 2022-09-08 00:38:32 +02:00
Henrik Rydgård
77819c6f80 Lifetime fixes, cleanups 2022-09-08 00:38:32 +02:00
Henrik Rydgård
befcfb470c Fix shader caching. 2022-09-08 00:38:32 +02:00
Henrik Rydgård
7ab7440475 Also create renderpass variants on demand 2022-09-08 00:38:32 +02:00
Henrik Rydgård
80ca822bf2 Create framebuffer variants on demand 2022-09-08 00:38:28 +02:00
Henrik Rydgård
e828df9f25 Split each renderpass/framebuffer into multiple "compatibility classes" (RenderPassType). 2022-09-08 00:32:03 +02:00
Luboš Vonásek
8906abebba
Merge branch 'hrydgard:master' into compat_openxr_gta 2022-09-07 22:28:18 +02:00
Lubos
52af230210 OpenXR - Use fog color to replace the sky 2022-09-07 19:57:26 +02:00
Lubos
4b129bb9c3 OpenXR - Refactor VR compat integration 2022-09-07 15:52:50 +02:00
Lubos
4ff3e496c5 Merge branch 'master' into compat_openxr_gta 2022-09-07 14:58:18 +02:00
Henrik Rydgård
ae23c3c266
Merge pull request #15974 from unknownbrackets/debugger-gecond
Add breakpoint conditions to GE debugger
2022-09-06 23:39:26 +02:00
Henrik Rydgård
759c9695e5
Merge pull request #15901 from lvonasek/feature_openxr_stereo
OpenXR - Stereoscopic rendering
2022-09-06 11:52:32 +02:00
Unknown W. Brackets
f595299fe5 GE Debugger: Allow expressions for goto address. 2022-09-05 17:33:54 -07:00
Henrik Rydgård
16212cae73 NFS speed effect: Improve framebuffer choice logging, tighten up stride checks. 2022-09-05 23:31:30 +02:00
Lubos
93202e47f4 OpenXR - Config for stereo separation added 2022-09-05 22:10:20 +02:00
Lubos
08226d8396 OpenXR - Stereo matrices fixed 2022-09-05 20:49:25 +02:00
Henrik Rydgård
06e9995ab6 Remove reference to non-existent file from Common.vcxproj 2022-09-05 19:13:14 +02:00
Lubos
3a0e6c7232 Merge branch 'master' into feature_openxr_stereo 2022-09-05 19:11:52 +02:00
Lubos
0e4f93d200 OpenXR - Fixing FOV better 2022-09-05 18:15:31 +02:00
Henrik Rydgård
a7074cda44 Fix for ARM 32-bit. 2022-09-05 17:58:26 +02:00
Henrik Rydgård
ed8c4e8758 Remove the assembly implementation of 4x4 matrix mul, in favor of intrinsics. 2022-09-05 10:33:05 +02:00
Unknown W. Brackets
3c9f63e297 Vulkan: Update to latest VMA. 2022-09-04 23:54:15 -07:00
Lubos
4ce0579f70 OpenXR - Split projection matrix for color and depth buffer 2022-09-04 21:12:18 +02:00
Lubos
93a2817062 Merge branch 'feature_openxr_stereo' into compat_openxr_gta 2022-09-04 16:33:33 +02:00
Lubos
2195f4b2e7 OpenXR - Mismatched call order fixed 2022-09-04 14:08:03 +02:00
Lubos
fb875b94de OpenXR - Multipass rendering fixed 2022-09-04 14:01:17 +02:00
Lubos
5be6665df8 Merge branch 'master' into feature_openxr_stereo 2022-09-04 12:37:41 +02:00
Lubos
1df1d79b9e OpenXR - Stereo without multiview added 2022-09-04 12:36:52 +02:00
Henrik Rydgård
d6b953bddd Fix GLES check 2022-09-04 00:10:56 +02:00
Henrik Rydgård
5f1ffeae70 Correct LogicOp API support detection 2022-09-04 00:08:40 +02:00
Henrik Rydgård
d3309dd8e9 Minor refactor with pipelines in QueueRunner (makes more information available for easier debugging) 2022-09-03 23:08:02 +02:00
Henrik Rydgård
fb3f417e77 Fix lying comment, log level reduction 2022-09-03 16:15:46 +02:00
Henrik Rydgård
76bd2395bf Promise: Add SpawnEmpty (couldn't come up with a better name), fix bug with multiple waiters 2022-09-03 15:21:08 +02:00
Henrik Rydgård
c06cf8efaa Switch Vulkan pipelines to use promises for synchronization
Slightly more expensive I guess but shouldn't be much of a bottleneck.
2022-09-03 15:21:08 +02:00
Henrik Rydgård
ebe2d1b30f More buildfixing 2022-09-03 15:21:07 +02:00
Henrik Rydgård
210233ede0 Buildfix 2022-09-03 15:21:07 +02:00
Henrik Rydgård
e701037267 Buildfix 2022-09-03 15:21:07 +02:00
Henrik Rydgård
8775837c11 Work towards finding the leak 2022-09-03 15:21:07 +02:00
Henrik Rydgård
93422f6dea Don't block on shader creation until it's time to create the pipeline. 2022-09-03 15:21:07 +02:00
Henrik Rydgård
ec0586ba50 Use promises to hold shader modules, for later asyncification 2022-09-03 15:21:07 +02:00
Lubos
5e2ecb5ebb OpenXR - FBO intialization better 2022-09-02 12:40:41 +02:00
Lubos
bda42e5772 compile fix 2022-09-01 19:56:38 +02:00
Lubos
22db37d128 OpenXR - Viewport init better 2022-09-01 19:43:43 +02:00
Lubos
00aaf9e1a6 Merge branch 'master' into feature_openxr_stereo 2022-09-01 18:09:21 +02:00
Lubos
044d9a416b OpenXR - Emulate mouse cursor 2022-09-01 18:08:08 +02:00
Henrik Rydgård
f2e0f7611c Display paths with backslashes on Windows. Show texture path when saving. 2022-09-01 15:04:59 +02:00
Henrik Rydgård
9097fdaae6 Shrink VkRenderData from 88 to 64 bytes. 2022-09-01 14:21:34 +02:00
Henrik Rydgård
ecb84987ef Remove allocation from the heaviest MemBlockInfo path (BlockTransfer). Required some refactoring. 2022-09-01 11:59:35 +02:00
Henrik Rydgård
24d674d2bc Shrink the TransitionRequest struct, use TinySet 2022-09-01 10:59:27 +02:00
Henrik Rydgård
bd71d8044b TinySet bugfix, add "append" 2022-09-01 10:59:24 +02:00
Henrik Rydgård
a8a9fb4206 Much faster framebuffer matching (no more ToString every time there's more than 1 candidate, etc). 2022-08-31 14:23:56 +02:00
Lubos
30a3cb622a Force clearing framebuffer for GTA games 2022-08-30 21:09:12 +02:00
Henrik Rydgård
4da2ca0935 Implement shader blending for D3D9
This was easy, dunno why I never got around to it before..
I guess I didn't know about VPOS.

This does raise our minimum shader model requirement to ps_3_0.
2022-08-30 12:19:56 +02:00
Henrik Rydgård
44d822be3b Address feedback 2022-08-30 06:41:37 +02:00
Henrik Rydgård
670c31e746 Add support for reading depth buffers to the PackFramebufferSync function.
Also adds D16 conversion code (though, could probably get away with just
creating a 16-bit depth buffer on the GPU and blit to it, where depth
blit is available).

Not yet used, just getting it in separately.
2022-08-30 00:00:59 +02:00
Lubos
462174f548 OpenXR - Multiview refactor to make it optional 2022-08-29 22:06:59 +02:00
Lubos
94968c3075 Merge branch 'master' into feature_openxr_stereo 2022-08-29 21:32:59 +02:00
Henrik Rydgård
34ed960a72 Use better pattern for enum switches 2022-08-28 23:57:01 +02:00
Henrik Rydgård
b447092742 Some Vulkan renderpass load/store optimizations. 2022-08-28 23:16:48 +02:00
Lubos
6adabd8779 OpenXR - Compile fix 2022-08-28 21:55:56 +02:00
Lubos
2adc7269a3 Merge branch 'master' into feature_openxr_stereo 2022-08-28 21:55:15 +02:00
Lubos
aa150a830a OpenXR - Swapchain acquiring fixed 2022-08-28 21:09:02 +02:00
Unknown W. Brackets
da53ab8ef9 UI: Validate UI scissor inside bounds. 2022-08-28 09:01:35 -07:00
Henrik Rydgård
5247ffa0af
Merge pull request #15910 from unknownbrackets/riscv-emitter
Add LI and compressed instructions for RISC-V
2022-08-28 15:57:03 +02:00
Lubos
4bd5a28604 OpenXR - Flag to easily disable multiview shaders added 2022-08-28 14:49:27 +02:00
Lubos
2d0e426fa9 OpenXR - Keep using GLES2 headers for now 2022-08-28 14:26:50 +02:00
Lubos
ca92f80bd8 Merge branch 'master' into feature_openxr_stereo 2022-08-28 14:22:18 +02:00
Unknown W. Brackets
08d82ec15b riscv: Emit compressed instructions.
Includes automatically using compressed, optionally.
2022-08-27 15:44:19 -07:00
Unknown W. Brackets
946080206d riscv: Improve sign reduce/immediate readability. 2022-08-27 15:44:18 -07:00
Unknown W. Brackets
c807d459f6 riscv: Emit ADD/SUB/etc. for ADDW/SUBW/etc. on R32.
No need to complicate code, we can just write ADDW() and expect it to work
on R32 (if ever motivated to support it.)
2022-08-27 15:44:18 -07:00
Unknown W. Brackets
c81d887a86 riscv: Include an LI helper in the emitter.
Can be used for integers and floats.
2022-08-27 15:44:18 -07:00
Henrik Rydgård
322f29ce80 Comments and fixes 2022-08-27 23:37:02 +02:00
Lubos
9e208207b8 OpenXR - Dummy integration compile fix 2022-08-27 17:46:16 +02:00
Lubos
c2c0561be2 OpenXR - OPENXR ifdef removal 2022-08-27 17:33:37 +02:00
Luboš Vonásek
5e434bccdb
Merge branch 'hrydgard:master' into feature_openxr_stereo 2022-08-27 12:23:38 +02:00
Lubos
723d641771 OpenXR - Enable performance mode 2022-08-27 12:23:03 +02:00
Henrik Rydgård
3c5ec25f61 Initial implementation of 32/16-bit color reinterpret blits. 2022-08-26 15:51:25 +02:00
Henrik Rydgård
31bd16a042
Merge pull request #15905 from unknownbrackets/riscv-emitter
Add a RISC-V emitter
2022-08-26 09:41:20 +02:00
Unknown W. Brackets
4a93647acb riscv: Emit CSR manipulation instructions. 2022-08-25 21:20:49 -07:00
Unknown W. Brackets
b5755b6cf7 riscv: Validate FixupBranch usage better.
Also avoid FixupBranch alignment issues.
2022-08-25 21:20:49 -07:00
Unknown W. Brackets
591de6be1d riscv: Emit float instructions. 2022-08-25 21:19:28 -07:00
Unknown W. Brackets
53693072d2 riscv: Emit atomic operations. 2022-08-25 21:19:28 -07:00
Unknown W. Brackets
c66d02d4db riscv: Emit mul/div instructions. 2022-08-25 21:19:28 -07:00
Unknown W. Brackets
00280ab2ad riscv: Emit fence and 64-bit instructions. 2022-08-25 21:19:28 -07:00
Unknown W. Brackets
49ec8a207d riscv: Emit 32-bit 3-op instructions, validate GPR. 2022-08-25 21:19:27 -07:00