summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/main.cpp
AgeCommit message (Collapse)Author
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
2016-10-01VideoCommon: Add config fields for multithreading and validation layersStenzek
2016-08-23OGL: Handle cases where reversed depth is already used.Jules Blok
2016-08-15OGL: Check for GL_DEPTH_CLAMP support.Jules Blok
It's not available in OpenGL ES and officially it's not supported on OpenGL 3.0/3.1. Fallback to old depth range code if there is no method to disable depth clipping. It's more important to have correct clipping than to have accurate depth values. Inaccurate depth values can be fixed by slow depth.
2016-07-29VideoCommon: Make API_TYPE an enum classLioncash
Allows for forward declarations in most places, which prevents dumping unrelated VideoCommon.h contents directly into headers.
2016-06-26VideoCommon: Drop GetConfigName.degasus
We're past 5.0 now, so there is no need to look for old inis.
2016-06-26VideoBackends: Merge ShowConfig functions.degasus
2016-06-26VideoBackends: Merge Initialize and Shutdown functions.degasus
2016-06-24Reformat all the things. Have fun with merge conflicts.Pierre Bourdon
2016-01-24OpcodeDecoder: Add namespaceLioncash
2016-01-12Fifo: Create a "Fifo" namespace.degasus
2016-01-06VideoConfig: Use "GFX.ini" for both D3D and OGL.degasus
They share the same format, so there is no need to separate their configs.
2016-01-04Merge pull request #3434 from lioncash/enumMarkus Wick
OnScreenDisplay: Make CallbackType an enum class