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