Commit Graph

387 Commits

Author SHA1 Message Date
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 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 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 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 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
Henrik Rydgård d4249c1d73 OpenGL: Add an assert to catch a class of crash bugs early. Also assorted paranoia. 2023-05-01 11:56:26 +02:00
Henrik Rydgård 3d477003c4 Fix issue where if Break on Load was set, we'd crash once we started running in a few games 2023-04-30 10:06:43 +02:00
Henrik Rydgård 42ce619705 Vulkan fastforward: Check the current presentation mode instead of the Vsync setting.
After 1.15, I'm gonna clean up the presentation mode/vsync management
across the code base. This works around #17308 for now.
2023-04-26 12:02:42 +02:00
Unknown W. Brackets 58abc7a154 GLES: Avoid shader error for uint with GLSL 1.2. 2023-04-23 09:49:24 -07:00
haoruiwang 7cbb7a09e5 [what][style][gpu] some coding style refine 2023-04-18 19:18:38 +08:00
Andreas Stieger 822592c6b1 Fix build with GCC13: various standard includes 2023-04-05 00:20:14 +02:00
haoruiwang 41d561895b [what][style][gpu] some coding style refine
[how]
1. use comment instead of unnecessary logic comparison
2. remove some useless code
3. move some implemention code from header to source
4. some more assert
2023-03-16 15:07:24 +08:00
Henrik Rydgård c6e0027604 OpenGL: Try a different way to exclude desktop compression formats in build
May fix #17110
2023-03-14 16:09:40 +01:00
haoruiwang dae11c4ea6 [chore][gpu] Fix some clerical errors for GLQueueRunner but not effect logic 2023-03-14 14:22:13 +08:00
Henrik Rydgård a4b5641f11 Add compressed texture format support checks 2023-03-12 16:18:46 +01:00
Henrik Rydgård 25fbfd7a89 Finish up OpenGL compressed texture format checks. Show in dev screen 2023-03-12 12:20:10 +01:00