Commit Graph
3514 Commits
Author SHA1 Message Date
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 50aa598ed1 Fix handling events in "empty" (no root) UIScreens 2023-05-27 00:35:25 +02:00
Henrik Rydgård 3715b1ffa1 Split the functions up, so you don't have to care about the Unsync ones at all in most cases while still getting synced behavior. 2023-05-26 18:41:13 +02:00
Henrik Rydgård cca613e785 Initial work on queueing up UI events for processing. Key events excepted for now. 2023-05-26 18:41:13 +02:00
Henrik Rydgård 2675d6ea43 Input event and device enums (#17514)
* Switch deviceID from int to enum InputDeviceID, globally

* Switch axisId to enum InputAxis

* Change int keycodes to InputKeyCode where it makes sense.

* SDL input buildfix

* SDL keycode buildfix

* Switch on enum warning fixes

* Qt keycode buildfix

* iOS keycode buildfix

* UWP keycode buildfix

* More iOS buildfix

* More iOS buildfix

* Update DinputDevice.cpp
2023-05-26 18:40:13 +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 ab34d20058 Add more methods to FastVec 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 736ba3dd90 Merge pull request #17357 from unknownbrackets/game-search
Add half of game list search
2023-05-23 08:31:04 +02:00
Henrik Rydgård 67a35d3476 Merge pull request #17356 from unknownbrackets/minor-cleanup
Cleanup some more string formats, mostly in debugger
2023-05-23 08:29:23 +02:00
Henrik Rydgård 5d7a0516cc Merge pull request #17475 from hrydgard/opengl-basic-profiler
Add a trivial profiling tool to the OpenGL backend
2023-05-17 15:01:16 +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 4f1be34f24 Revert "Remove the Android display resolution selector"
This reverts commit ea0eaa31e6.
2023-05-17 09:37:15 +02:00
Henrik Rydgård 444897a8b8 Some reordering to make the code make more sense (no actual effect) 2023-05-16 18:25:31 +02:00
Henrik Rydgård 081bdb323a Fix running some file formats from the Downloads folder
Due to how we mount stuff, we need to be able to navigate one step up
from the executable, and then re-attach the executable filename. To
allow this, in content URIs, treat ':' as a directory separator for
navigation purposes.

End result, you can now download cube.elf from the website and run it directly
from Downloads without using a file manager to move it.
2023-05-16 16:44:28 +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