summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/main.cpp
AgeCommit message (Collapse)Author
2021-01-27normalize common filenames in VideoBackends/OGLShawn Hoffman
2020-12-02General: Convert PanicAlerts over to fmt equivalentLioncash
Converts lingering panic alert calls over to the fmt-capable ones.
2020-09-06Make default graphics backend not show up as emptyJosJuice
Fixes https://bugs.dolphin-emu.org/issues/12245. I considered making a change to DolphinQt instead of the core, but then additional effort would've been required to add the same fix to the Android GUI once we start using the new config system there.
2020-05-25VideoCommon/ShaderGenCommon: Make template functions regular functionsLioncash
These are only ever used with ShaderCode instances and nothing else. Given that, we can convert these helper functions to expect that type of object as an argument and remove the need for templates, improving compiler throughput a marginal amount, as the template instantiation process doesn't need to be performed. We can also move the definitions of these functions into the cpp file, which allows us to remove a few inclusions from the ShaderGenCommon header. This uncovered a few instances of indirect inclusions being relied upon in other source files. One other benefit is this allows changes to be made to the definitions of the functions without needing to recompile all translation units that make use of these functions, making change testing a little quicker. Moving the definitions into the cpp file also allows us to completely hide DefineOutputMember() from external view, given it's only ever used inside of GenerateVSOutputMembers().
2020-05-24FramebufferManager: Copy to color format for depth readbacks on GLESStenzek
glReadPixels() with depth formats is not supported. Should fix broken EFB access on GLES.
2019-04-16AbstractPipeline: Support returning "cache data"Stenzek
"Cache data" can be used to assist a driver with creating pipelines by using previously-compiled shader ISA.
2019-03-31Merge pull request #7939 from Techjar/no-more-disabled-gfx-featuresConnor McLaughlin
Qt/HacksWidget: Fix backend feature support checks
2019-03-29Qt/HacksWidget: Fix backend feature support checksTechjar
2019-03-29VideoBackends: Verify validity before doing full renderer initStenzek
Prevents attempting to create invalid MSAA configurations, for example.
2019-03-09VideoConfig: Add SupportsPartialDepthCopies to backend infoStenzek
D3D11 doesn't support partial copies of depth buffers via CopySubResource(), so we need to use a different path for the EFB cache.
2019-02-19Move most backend functionality to VideoCommonStenzek
2019-01-25VideoBackends: Store a backbuffer 'scale'Stenzek
This is a scaling factor, used for hi-dpi configurations.
2018-12-04Renderer: Add a base Initialize() method to match Shutdown()Stenzek
2018-11-07OGL: Fix crash when opening graphics window on another backendStenzek
2018-10-20GLContext: Runtime selection of EGL/GLX on LinuxStenzek
2018-10-20GLContext: Use destructor instead of Shutdown() to cleanupStenzek
Also uses the Initialize() method to make the context current.
2018-10-20GLContext: Remove global context pointerStenzek
2018-10-20VideoBackends: Pass window system info from host on creationStenzek
2018-10-20GLContext: Use host connectionStenzek
This also removes the need for a sleeping event thread.
2018-10-20Drop Host_GetRenderSurface and pass display to backendStenzek
2018-10-20Refactoring and cleanup of GLInterface (now GLContext)Stenzek
2018-09-28Core: Call InitBackendInfo before loading configStenzek
2018-06-30Mark all video backend names for translationTechjar
2018-05-26VideoConfig: Add a field for indicating logic op support in the backendStenzek
2018-03-10GLUtil: Encapsulate functions in a namespaceStenzek
2018-03-10Move shader caches to VideoCommonStenzek
2018-02-11VideoConfig: Remove bForceCopyToRam fieldStenzek
It's the inverse of supports-copy-to-vram.
2018-01-27VideoBackend: Remove PeekMessages methodStenzek
The video thread and backend no longer create any windows, therefore there will never be any messages dispatched to their thread.
2018-01-27VideoBackends: Combine Initialize/Prepare and Cleanup/Shutdown methodsStenzek
Also allows the work previously done in Prepare to return a failure status.
2017-11-21VideoConfig: Remove bSupportsInternalResolutionFrameDumpsStenzek
Field is unused as of Hybrid XFB.
2017-11-18VideoConfig: Make StereoMode an enum classLioncash
Makes for more strongly-typed identifiers (and doesn't pollute surrounding namespaces)
2017-11-17Software Backend: Force EFB/XFB to copy to ramiwubcode
2017-11-17Add support for hybrid XFBiwubcode
2017-08-01HiresTextures: Support loading BC7 (BPTC) from DDS filesStenzek
2017-07-05OGL: Support Quad-Buffered stereoscopy.Jules Blok
2017-04-29HiresTextures: Support parsing DDS files directlyStenzek
This leaves DDS textures using DXT1/3/5 compressed in-memory, which can be passed directly to the backend.
2017-04-25VideoConfigDiag: Move post-processing shader list to post processorStenzek
The backends don't use this list at all, and since more than one backend supports post-processing now, it's duplicate code.
2017-04-07FileSearch: Namespace functions under the Common namespaceLioncash
2017-04-01OGL: Implement GPU texture decoding backendStenzek
2017-04-01VideoBackends: Add configuration field for GPU texture decodingStenzek
2017-04-01VideoBackends: Add support flag for compute shadersStenzek
2017-03-31OGL: Fix MSAA being forced to 1xStenzek
This was a regression from the remove-everything-static-from-renderer PR. As the comment indicates, it would be nice to move all of this logic out of the Renderer constructor, but this is a much larger change.
2017-03-15OGL: implement Bounding Box on systems w/o SSBOMichael Maltese
This commit should have zero performance effect if SSBOs are supported. If they aren't (e.g. on all Macs), this commit alters FramebufferManager to attach a new stencil buffer and VertexManager to draw to it when bounding box is active. `BBoxRead` gets the pixel data from the buffer and dumbly loops through it to find the bounding box. This patch can run Paper Mario: The Thousand-Year Door at almost full speed (50–60 FPS) without Dual-Core enabled for all common bounding box-using actions I tested (going through pipes, Plane Mode, Paper Mode, Prof. Frankly's gate, combat, walking around the overworld, etc.) on my computer (macOS 10.12.3, 2.8 GHz Intel Core i7, 16 GB 1600 MHz DDR3, and Intel Iris 1536 MB). A few more demanding scenes (e.g. the self-building bridge on the way to Petalburg) slow to ~15% of their speed without this patch (though they don't run quite at full speed even on master). The slowdown is caused almost solely by `glReadPixels` in `OGL::BoundingBox::Get`. Other implementation ideas: - Use a stencil buffer that's separate from the depth buffer. This would require ARB_texture_stencil8 / OpenGL 4.4, which isn't available on macOS. - Use `glGetTexImage` instead of `glReadPixels`. This is ~5 FPS slower on my computer, presumably because it has to transfer the entire combined depth-stencil buffer instead of only the stencil data. Getting only stencil data from `glGetTexImage` requires ARB_texture_stencil8 / OpenGL 4.4, which (again) is not available on macOS. - Don't use a PBO, and use `glReadPixels` synchronously. This has no visible performance effect on my computer, and is theoretically slower.
2017-03-14OGL: Remove support for NV_depth_buffer_float.Jules Blok
We can't clamp the depth values to the 24-bit range while this extension is active.
2017-03-10Merge pull request #4935 from Armada651/depth-range-fixMarkus Wick
VideoBackends: Set the maximum range when the depth range is oversized.
2017-03-10VideoBackends: Move max texture size to VideoConfigStenzek
This stops the virtual method call from within the Renderer constructor. The initialization here for GL had to be moved to VideoBackend, as the Renderer constructor will not have been executed before the value is required.
2017-03-04VideoCommon: Eliminate static state in RendererStenzek
2017-02-24OGL: Add support for glDepthRangedNV to handle oversized depth ranges.Jules Blok
2016-11-28OGL: Support full-resolution frame dumpingStenzek
2016-11-28VideoConfig: Add option for full-resolution frame dumpingStenzek