summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL
AgeCommit message (Collapse)Author
2024-10-15Merge pull request #13090 from mitaclaw/ranges-modernization-1-trivialJosJuice
Ranges Algorithms Modernization - Trivial
2024-10-10C++20: Synthesize `operator!=` From `operator==`mitaclaw
The inequality operator is automatically generated by the compiler if `operator==` is defined.
2024-10-10Modernize `std::set_intersection` with rangesmitaclaw
2024-10-10Modernize `std::is_sorted` with rangesmitaclaw
In OGLConfig.cpp, `std::views::reverse` is used rather than sorting using `std::ranges::greater` in order to parallel other instances of reverse iteration in the function.
2024-10-10Modernize `std::reverse` with rangesmitaclaw
2024-10-02VideoBackends:Vulkan: Don't try to present if swapchain acquire failedTellowKrinkle
2024-08-22Add support for libfmt-11Alfred Wingate
fmt::join was moved into fmt/ranges.h Signed-off-by: Alfred Wingate <parona@protonmail.com>
2024-05-21Merge pull request #12537 from TellowKrinkle/MTLSubgroupAdmiral H. Curtiss
VideoCommon: More specific subgroup op bugs
2024-04-22port to OpenBSDGuilherme Janczak
2024-04-04Fix out of bounds accesses for invalid vertex component formatsPokechu22
On all platforms, this would result in out of bounds accesses when getting the component sizes (which uses stuff from VertexLoader_Position.h/VertexLoader_TextCoord.h/VertexLoader_Normal.h). On platforms other than x64 and ARM64, this would also be out of bounds accesses when getting function pointers for the non-JIT vertex loader (in VertexLoader_Position.cpp etc.). Usually both of these would get data from other entries in the same multi-dimensional array, but the last few entries would be truly out of bounds. This does mean that an out of bounds function pointer can be called on platforms that don't have a JIT vertex loader, but it is limited to invalid component formats with values 5/6/7 due to the size of the bitfield the formats come from, so it seems unlikely that this could be exploited in practice. This issue affects a few games; Def Jam: Fight for New York (https://bugs.dolphin-emu.org/issues/12719) and Fifa Street are known to be affected. I have not done any hardware testing for this PR specifically, though I *think* I previously determined that at least a value of 5 behaves the same as float (4). That's what I implemented in any case. I did previously determine that both Def Jam: Fight for New York and Fifa Street use an invalid normal format, but don't actually have lighting enabled when that normal vector is used, so it doesn't change rendering in practice. The color component format also has two invalid values, but VertexLoader_Color.h/.cpp do check for those invalid ones and return a default value instead of doing an out of bounds access.
2024-01-28VideoCommon: Post to analytics when bug is overriddenTellowKrinkle
2023-12-15VideoBackends / VideoCommon: add type enum to dictate whether a texture is a ↵iwubcode
2D texture, a texture array, or a cube map; support 2D texture type across backends Co-authored-by: TellowKrinkle <tellowkrinkle@gmail.com>
2023-12-09VideoCommon: Use std::span for BoundingBox::Write()Lioncash
Crosses off a lingering TODO. Also amends a few nearby cases where a u32 cast was being repromoted to size_t.
2023-11-27OGLConfig: Only use Warn Log if OGL extensions are missingDentomologist
2023-10-25VideoBackends:OGL: Handle when SSBOs are only supported in some shader stagesTellowKrinkle
2023-10-06VideoBackends / VideoCommon: add new uniform buffer object for custom shader ↵iwubcode
materials (slot 3, geometry shader buffer moves to slot 4 if available)
2023-07-21VideoBackends: add support for cube maps for OGL, Vulkan, and D3Diwubcode
2023-06-28VideoBackends: support multiple compute images for some backends (D3D, OGL, ↵iwubcode
Vulkan)
2023-06-09Merge pull request #11699 from Pokechu22/gl-check-maximum-samplesAdmiral H. Curtiss
OpenGL: Check the list of supported AA modes instead of hardcoding
2023-06-09Merge pull request #11859 from iwubcode/backend-multi-outputAdmiral H. Curtiss
VideoBackends: add support to allow rendering to multiple output targets
2023-06-08OpenGL: Check the list of supported AA modes instead of hardcodingPokechu22
2023-06-08VideoCommon: Pass WindowSystemInfo to InitBackendInfoPokechu22
2023-06-08Video: add R10B10G10A2 and R16G16B16A16F texture types (needed by PR 11850)Filoppi
2023-06-03VideoBackends: add support to allow rendering to multiple output texturesiwubcode
2023-04-23Merge pull request #11628 from Pokechu22/gles-32-only-multisampleAdmiral H. Curtiss
OGL: Only specify precision for sampler2DMSArray when it is defined
2023-04-18Merge pull request #11760 from Minty-Meeo/embracing-nullptrAdmiral H. Curtiss
Embrace nullptr over NULL and 0
2023-04-15Embrace nullptr over NULL and 0get
2023-04-15Common/MathUtil: Move IntLog2 into MathUtil namespaceLioncash
Gets this out of the global namespace.
2023-04-08OGL: Use GL_OES_texture_storage_multisample_2d_array when supportedPokechu22
See https://bugs.dolphin-emu.org/issues/13198
2023-04-08OGL: Only specify precision for sampler2DMSArray when it is definedPokechu22
See https://bugs.dolphin-emu.org/issues/13198
2023-04-08OGL: Remove bSupports2DTextureStorageMultisample and ↵Pokechu22
bSupports3DTextureStorageMultisample bSupports2DTextureStorageMultisample is completely unused, while bSupports3DTextureStorageMultisample is practically unused. In the past, these were checked and fell back to sampler2DMS instead of sampler2DMSArray on GLES 3.1, but this path was removed in f039149198657c1891e1c6462ed30c31ed4b8486 and Dolphin always uses array textures now.
2023-04-08OGL: Convert SupportedESPointSize to an enum classPokechu22
2023-03-14Return quarter value for PerfQuery in all backends.Admiral H. Curtiss
2023-02-14VideoCommon: Fix stereoscopic 3D on OpenGL < 4.3 (macOS)TellowKrinkle
2023-02-13Merge pull request #11550 from iwubcode/set_common_samplers_countScott Mansell
VideoCommon: add constant value for maximum number of pixel samplers
2023-02-10Merge pull request #11523 from degasus/OGL_KHR_subgroupJMC47
VideoBackend/OGL: Prefer KHR_shader_subgroup over NV_shader_thread.
2023-02-10VideoCommon: add constant value to set the allowed maximum number of pixel ↵iwubcode
samplers
2023-02-09Merge pull request #11498 from iwubcode/save_pipeline_configJMC47
VideoCommon: store the configuration used to create the AbstractPipeline
2023-02-09OGL: Fix GLES crashing on initializationJosJuice
Fixes a regression from PR 11522 ("Kill Renderer").
2023-02-09VideoBackend/OGL: Prefer KHR_subgroup over NV_shader_thread.degasus
While the NV extension is totally fine, the KHR extension should be able to support more hardware. For NVIDIA, the hardware either supports both or neither, it just needs a driver from the last two years. For AMD, the drivers from late 2022-12 seems to bring support for the KHR extension. For Intel, the KHR is also supported for some years.
2023-02-09VideoCommon: store the configuration used to create the AbstractPipeline on ↵iwubcode
the pipeline itself, so that it's easy to duplicate pipelines with slightly altered configuration
2023-02-09Merge pull request #11522 from phire/KillRendererWithFireScott Mansell
Kill Renderer (with phire)
2023-02-09Lint fixesScott Mansell
2023-02-09Lint fixesScott Mansell
2023-02-09Move xfb tracking and IR scaling out of RenderBaseScott Mansell
2023-02-09Refactor ClearRegionScott Mansell
And fix bug where opengl was getting the wrong coordinates
2023-01-31Also use events for config changedScott Mansell
2023-01-31Don't set common globals from Video BackendsScott Mansell
2023-01-31Implement AbstractGfx for OpenGLScott Mansell
Mostly involves moving contents of OGLRender to OGLGfx and OGLConfig
2023-01-31Move Presenting, Dumping and ImGui out of RendererScott Mansell