Henrik Rydgård
485131a29c
Win32: Plumb through an attempt at handling Vulkan device lost.
...
Unfortunately, recreating the device fails on NV.
2023-05-29 18:32:29 +02:00
Henrik Rydgård
f33776bc4a
Fix a very tiny memory leak
2023-05-29 16:02:53 +02:00
Henrik Rydgård
9f2005113b
Add a function to the dev menu to intentionally lose the VK device. To be used for debugging recovery.
2023-05-29 15:16:27 +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
Henrik Rydgård
12106ceb75
Format string fix
2023-05-24 15:52:39 +02:00
Henrik Rydgård
dfb446f89d
Allow other backends than Vulkan to have GPU memory stats. Implement for GL.
2023-05-24 14:33:01 +02:00
Henrik Rydgård
62b41c6640
OpenGL: Add a simple pass list to gpu profiler
2023-05-24 14:08:19 +02:00
Henrik Rydgård
edd208791e
Add tag field to GLRFramebuffer for debugging
2023-05-24 13:47:51 +02:00
Henrik Rydgård
f4035a0802
GLPushBuffer: Fix bug when growing, forgot to mark space used in the new buffer. Old bug!
2023-05-24 13:45:10 +02:00
Henrik Rydgård
84da0327d6
GLQueueRunner: Make DrawIndexed parameters more consistent.
2023-05-23 17:49:11 +02:00
Henrik Rydgård
f1f0bfae2d
Driveby simplification, reduce logspam
2023-05-23 17:09:40 +02:00
Henrik Rydgård
d7ea2ebf8a
GL: Add tags to push buffers for debug purposes. Double the default vertex buffer size.
2023-05-23 15:53:41 +02:00
Henrik Rydgård
72df93a2f1
GLMemory: Allow "rewind"
2023-05-23 14:41:27 +02:00
Henrik Rydgård
3f5206fa9a
Also dirty-track the viewport
2023-05-23 10:09:38 +02:00
Henrik Rydgård
2081e2865a
Dirty track a bunch more GL state. It's so expensive to change on old devices!
2023-05-23 10:02:10 +02:00
Henrik Rydgård
3b81b3ca80
Do dirty-tracking for stencil state
2023-05-23 09:14:24 +02:00
Henrik Rydgård
cb38c43d7e
GL render manager: Merge the two stencil commands, for more compact command lists
2023-05-23 09:14:23 +02:00
Henrik Rydgård
234c1f05b8
Apply the same optimizations to the Vulkan backend. Smaller effect than for OpenGL.
2023-05-23 08:54:41 +02:00
Henrik Rydgård
0b9dfac844
Make sure VKRRenderThreadTask isn't copied.
2023-05-23 08:54:41 +02:00
Henrik Rydgård
37906384ee
Use the faster pushes.
2023-05-23 08:54:41 +02:00
Henrik Rydgård
47931deda7
Switch to FastVec for commands. Slower than std::vector!
2023-05-23 08:54:41 +02:00
Henrik Rydgård
558e29a9bb
Switch to the copy-free method of initializing initsteps
2023-05-23 08:54:41 +02:00
Henrik Rydgård
956d784bde
Add FastVec, start using it for InitSteps
2023-05-23 08:54:40 +02:00
Henrik Rydgård
78eaa8c235
Make sure we never copy GLRRenderThreadTask objects
2023-05-23 08:53:48 +02:00
Henrik Rydgård
c30895b6b4
Remove unnecessary variable
2023-05-23 08:53:48 +02:00
Henrik Rydgård
e4a729d371
Remove unnecessary zero-initialization of GLRRenderCommand structs
2023-05-23 08:53:48 +02:00
Henrik Rydgård
b9157fd4d4
Break out EnableDisableVertexArrays
2023-05-23 08:52:42 +02:00
Henrik Rydgård
a4baed4c0c
Minor GLPushBuffer cleanup (now same API as the VK one)
2023-05-23 08:41:09 +02:00
Henrik Rydgård
d7a5edeb6f
GL: Break out GLPushBuffer from GLRenderManager.cpp/h
2023-05-23 08:41:09 +02:00
Henrik Rydgård
05b6bbdc56
Add a trivial profiling tool to the OpenGL backend - meaasure the time it takes to run a frame of commands.
...
Accessed from the in-game dev menu just like the Vulkan frame profiler.
With this we can easily see that actually submitting the GL commands is often the bottleneck on old
devices like a Galaxy S3.
2023-05-17 14:38:11 +02:00
Henrik Rydgård
07a96b8734
Merge pull request #17465 from hrydgard/android-content-uri-cpp
...
AndroidContentURI: Move code from the header to cpp.
2023-05-16 16:39:43 +02:00
Henrik Rydgård
c729519cf5
Merge pull request #17442 from hrydgard/glr-render-command-shrink
...
Shrink the GLRRenderCommand struct from 152 to 88 bytes
2023-05-16 16:38:41 +02:00
Henrik Rydgård
cf9a628a2e
AndroidContentURI: Move code from the header to cpp. Some assorted cleanup, add a unit test for Download paths
2023-05-16 16:08:51 +02:00
Henrik Rydgård
b27c427547
We always bind and draw together, so let's combine them to one command.
2023-05-10 10:56:25 +02:00
Henrik Rydgård
c7caefe6d8
Have Draw and DrawIndexed share command and struct. Will make the next change easier.
2023-05-10 10:40:33 +02:00
Henrik Rydgård
d5e0299b0b
GLR: Share union struct between Draw/DrawIndex
2023-05-10 10:32:13 +02:00
Henrik Rydgård
f593d65833
Avoid double-free in stereo mode
2023-05-10 10:13:54 +02:00
Henrik Rydgård
c882046251
Remove redundant render command
2023-05-10 09:23:10 +02:00
Henrik Rydgård
8f2069ef71
GLQueueRunner: Combine BindVertexBuffer with BindIndexBuffer
2023-05-10 09:23:10 +02:00
Henrik Rydgård
cc16eb8321
Shrink the GLRRenderCommand struct from 152 to 88 bytes
...
Turns out the VR work bloated it a bit, which can't be good.
Think it's fine to allocate these view matrices on the heap to get them
out of the way, there won't be that crazy many per frame usually.
2023-05-10 00:24:17 +02:00
Henrik Rydgård
0d0b0fc60b
Turn some reported crashes into asserts, to try to confirm what's going on
2023-05-05 23:26:21 +02:00
Henrik Rydgård
38178d34b5
Sanity checks in InitSwapchain
2023-05-05 00:03:20 +02:00
Henrik Rydgård
7e1f907826
VulkanPushPool: Sprinkle a couple of asserts.
2023-05-04 10:25:16 +02:00
Henrik Rydgård
1d053d2ea8
GLPushBuffer::Flush: Add debug-assert-and-bail prompted by suspicious callstack
2023-05-03 23:49:41 +02:00
Henrik Rydgård
5724bbd8e9
Correct size calculations in GLPushBuffer. I don't see how this failed as badly as in that crash report though...
2023-05-03 23:49:41 +02:00
Henrik Rydgård
c9b7c815a1
~GPU_Vulkan: Check that we still have a draw_ pointer before trying to drain the compile queue.
2023-05-03 22:33:34 +02:00