Henrik Rydgård
0deefb82a9
thin3d: Merge BeginFrame and SetDebugFlags (set them every frame anyway)
2023-08-10 17:15:54 +02:00
Henrik Rydgård
1b6d4df3a4
Move the EndFrame/Present split one level out, to NativeApp.cpp
2023-08-10 09:59:29 +02:00
Henrik Rydgård
e06e919624
VulkanRenderManager: Split finish and present (so we can inject a wait in between if desired).
2023-08-10 09:50:01 +02:00
Henrik Rydgård
86db91979f
Turn off present-wait for now. Too many issues.
2023-08-08 15:07:44 +02:00
Henrik Rydgård
652cc6cd65
Race condition fix
2023-08-08 14:00:58 +02:00
Henrik Rydgård
8fec4fb02f
wip
2023-08-08 13:26:27 +02:00
Henrik Rydgård
8e74907710
Don't try to use VK_GOOGLE_display_timing on Mac/iOS. MoltenVK has an implementation that seems broken.
2023-08-08 11:46:36 +02:00
Henrik Rydgård
a6b5340d97
Don't crash if VK_KHR_present_id / VK_KHR_present_wait are not exposed (but feature still reported available)
...
Fixes the new crash in #17858
2023-08-07 11:36:49 +02:00
Henrik Rydgård
5533d5ec57
More lenient emoji check, remove unused variable
2023-08-06 17:17:24 +02:00
Henrik Rydgård
63cfe28f61
Implement color emoji support on Android
2023-08-06 15:14:29 +02:00
Henrik Rydgård
39d25ce91f
D3D11: Allow setting the max frame latency
2023-08-04 11:53:51 +02:00
Henrik Rydgård
8e1dc35dd1
Vulkan: Show instance extensions, both enabled and available, in sysinfo
2023-08-03 18:56:47 +02:00
Henrik Rydgård
be63ce3a4a
Minor refactor allowing getting the GPU profile string outside games
2023-08-03 16:31:20 +02:00
Henrik Rydgård
0530dc57a8
Implement frame time measurement on Android using VK_GOOGLE_display_timing
2023-08-03 12:59:25 +02:00
Henrik Rydgård
9b038d6574
Vulkan: Show enabled extensions separately in sysinfo
2023-08-03 11:11:35 +02:00
Henrik Rydgård
e16cac6548
Initial work on supporting VK_GOOGLE_display_timing. Not working yet.
2023-08-03 11:11:16 +02:00
Henrik Rydgård
1a1a6fe15d
Load the functions for VK_GOOGLE_display_timing
2023-08-03 09:52:48 +02:00
Henrik Rydgård
14377259b5
Use VK_KHR_present_wait to get numbers on how much latency we have to screen
...
This extension is not available on Android, there they have
VK_GOOGLE_display_timing, which they also have an abstraction library
for, so will look at that later.
Early part of work on #17685
2023-08-02 20:34:22 +02:00
Henrik Rydgård
cda59e8510
Vulkan: Keep track of some timestamps in a frame
2023-08-02 16:25:17 +02:00
Henrik Rydgård
ffd5e57a20
Vulkan: Don't use multithreaded rendering if frames-in-flight is set to 1
...
It has no benefit, and loses by a few percent in simple benchmarking.
2023-08-01 21:08:07 +02:00
haorui wang
ec4927069e
1. remove some unused code
...
2. add some missing header
3. fix error address offset operation
2023-07-30 12:31:31 +08:00
Henrik Rydgård
b118e25b6a
Vulkan: Make multithreaded rendering an option.
...
Multi-threaded rendering is good for smoothing out performance spikes
and increasing performance on low-power devices. However, the way we use
it it doesn't benefit latency (input lag) at all, rather the opposite.
So make it an option.
2023-07-23 22:06:01 +02:00
Henrik Rydgård
8f6662aa55
Fix an initialLayout issue with the image we use as the backbuffers's depth
2023-07-21 23:17:24 +02:00
Henrik Rydgård
1c83c4a1fe
Vulkan: Enable the present-id/present-wait/display-timing extensions
...
Doesn't actually use any of them yet, just making sure enabling them
doesn't cause any weird issues. They will be used for the future display
timing rewrite.
2023-07-14 10:43:47 +02:00
Henrik Rydgård
c17b84b3d4
Implement RetroAchievements challenge mode restrictions, and fix related bugs
2023-07-08 21:55:32 +02:00
Henrik Rydgård
adc24b5001
OpenGL: Fix a wrong assert
2023-07-03 01:10:42 +02:00
haorui
fb91cf9b21
align should be 3 when format is GL_RGB and type is GL_UNSIGNED_BYTE
2023-06-24 16:09:28 +08:00
Henrik Rydgård
2bee5b64e4
Add new icon cache, for caching small images.
...
It doesn't try to insert or fetch missing things itself, re-fetching is up to the caller.
This will be required for handling the many achievement icons.
Saving/loading the cache to a single file on disk is implemented but not
hooked up yet. It works without it, though of course will have to
re-fetch things on the next startup.
2023-06-18 14:11:12 +02:00
Henrik Rydgård
ae29fd2951
Vulkan profiler: Show CPU command buffer recording timing even if GPU timing is unavailable
2023-06-14 09:15:29 +02:00
Henrik Rydgård
6d8069dfd1
Vulkan: Remove the remains of the input attachment experiment
...
Haven't been using these for a while.
I've come to the conclusion here that I think it's better to try to
deal with the issues using safe workarounds like copies, instead of
relying on features with somewhat iffy driver support that are not
universal across APIs anyway.
2023-06-13 20:46:27 +02:00
Henrik Rydgård
22632b82bd
Merge pull request #17565 from hrydgard/breakout-vcache-vulkan
...
Vulkan: Breakout the vertex cache logic from DoFlush()
2023-06-13 09:56:52 +02:00
Henrik Rydgård
880379c15d
Extract some minor changes from #17497
2023-06-12 20:20:06 +02:00
Henrik Rydgård
d90671e877
Add some comments.
2023-06-12 13:16:13 +02:00
Henrik Rydgård
75dd31894c
Followup to #17471 : Fix Lubos' VR sky clearing hack
2023-06-04 10:18:52 +02:00
Henrik Rydgård
27b8d27efc
Add a different assert to SetGLCoreContext.
2023-06-03 11:57:08 +02:00
Henrik Rydgård
e9e95d23ce
VulkanDebug log fix, reduce log spam
2023-05-30 18:32:33 +02:00
Henrik Rydgård
49ecc01556
Fix image leak bug when pausing and we're just displaying a framebuffer in memory
2023-05-30 18:29:50 +02:00
Henrik Rydgård
364c205d95
Quick, suboptimal barrier fix for the new UpdateImageLevels functionality
2023-05-30 18:29:49 +02:00
Henrik Rydgård
25662a7f6c
Implement UpdateTextureLevels for D3D11
2023-05-30 14:54:19 +02:00
Henrik Rydgård
3a9ce528e7
D3D11: Break out CreateStagingTexture
2023-05-30 14:43:54 +02:00
Henrik Rydgård
198f9756b8
D3D11 texture upload: Refactor for easier changes
2023-05-30 14:35:22 +02:00
Henrik Rydgård
7c4b9bac90
Cache textures created by MakePixelsTexture and reuse where appropriate.
2023-05-30 14:07:44 +02:00
Henrik Rydgård
0b1abf1de9
Add untested UpdateTextureLevels functionality to three of the four backends
2023-05-30 13:28:04 +02:00
Henrik Rydgård
f54f905be5
Vulkan: Remove support for other index types than 16-bit.
...
We don't have any use for them anyway.
2023-05-30 10:15:34 +02:00
Henrik Rydgård
0eec89c853
Fix a very tiny memory leak
2023-05-29 23:11:35 +02:00
Henrik Rydgård
5eb94350fa
Show the class name in refcount debug asserts
2023-05-29 12:50:45 +02:00
Henrik Rydgård
d167a11b1c
SDL: Add a way to reset OpenGL graphics by pressing F7.
2023-05-29 11:48:03 +02:00
Henrik Rydgård
ad8827ae70
Cleanup, address feedback
2023-05-26 10:28:10 +02:00
Henrik Rydgård
82934b9212
OpenGL queue-runner: Add command counts (debug builds only). Useful for checking optimizations.
2023-05-25 14:15:54 +02:00
Henrik Rydgård
0a069f39c9
Windows: Make double-click-for-fullscreen less oversensitive.
2023-05-25 09:28:55 +02:00