Commit graph

313 commits

Author SHA1 Message Date
Henrik Rydgård
626d901441 OpenGL: Fix hang that mostly happened when buffered commands == off 2023-09-11 00:30:52 +02:00
Henrik Rydgård
13cfd9c3d6 Add Mesa as a known GPU driver "vendor". 2023-08-17 22:06:03 +02:00
Henrik Rydgård
8fb5b06e0e Add workaround for 32-bit x86 debug builds on AMD on Windows
Fixes issue #17787
2023-08-17 21:05:43 +02:00
Henrik Rydgård
691c8b8d8d Write to the frame time history from the other backends too. Needed for the upcoming timing code. 2023-08-16 12:22:49 +02:00
Henrik Rydgård
ff6e118fff Get rid of a lot of ifdefs around presentation mode. Instead, set things dynamically. 2023-08-14 11:02:29 +02:00
Henrik Rydgård
bec9c5611e Rename PresentationMode to PresentMode 2023-08-14 11:02:29 +02:00
Henrik Rydgård
e651d6e59f Finish the separation of EndFrame and Present. 2023-08-13 18:40:35 +02:00
Henrik Rydgård
377704f195 OpenGL: Split submit and presentation into two tasks, but schedule them together 2023-08-13 18:40:35 +02:00
Henrik Rydgård
86fcb28d4d Remove "bool retainControl_" for simplicity. Not needed. 2023-08-13 18:40:35 +02:00
Henrik Rydgård
cf83be8b3c Very small memory leak fix 2023-08-13 13:55:51 +02:00
Henrik Rydgård
0ccd29f2ba Revert "OpenGL: Separate submit/present for this backend as well"
This reverts commit 0143d67f9b.
2023-08-12 13:35:21 +02:00
Henrik Rydgård
ed9b033f7d D3D9/11: Move away from using context->SwapBuffers(), instead move present to draw_->Present(). 2023-08-11 01:57:02 +02:00
Henrik Rydgård
0143d67f9b OpenGL: Separate submit/present for this backend as well 2023-08-10 17:46:10 +02:00
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
39d25ce91f D3D11: Allow setting the max frame latency 2023-08-04 11:53:51 +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
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
880379c15d Extract some minor changes from #17497 2023-06-12 20:20:06 +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
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
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
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