aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/renderer_opengl/gl_device.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [meta] Discourage profanity usage (#4239)crueter2026-08-091-1/+1
| | | | | | | | | | | I'm not into millennial humor, personally. Proactively removed as much profanity as I could grep. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4239 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Samuel <lizzie@eden-emu.dev>
* [opengl] query GL_MAX_CLIP_DISTANCES instead of hardcoding 8 (#4095)BoiledElectricity2026-06-151-0/+1
| | | | | | | | | | | | | | | | | | The GL shader profile hardcoded max_user_clip_distances to 8. Query the device limit like the Vulkan path already does (it reads maxClipDistances), so we use what the host actually reports. Clamp to Maxwell's NumClipDistances (8) since the guest never produces more than that and the SPIR-V output array is sized for at most 8. So a host reporting fewer than 8 is respected, and one reporting more can't overrun anything. Fixes #3910 https://git.eden-emu.dev/eden-emu/eden/issues/3910 Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4095 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* [common/logging] Simplify logging logic and fix issues when logging before ↵lizzie2026-03-121-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | system is created (#3688) - our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [common] merge RenderBackend and ShaderBackend options (#3313)lizzie2026-01-181-10/+8
| | | | | | | | | | | | | | | | | first of all it makes UI a tad bit more simple and benefits the end user second, it allows to add new backends a bit more easily and also, there was a shader backend option in android... we don't use opengl in android so may as well save ourselves the trouble, aye ![image](/attachments/c0195bca-da18-4907-9e4a-3b62c4292f1a) Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3313 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: DraVee <dravee@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* Reapply PRs #2778 and #2812 (#2867) (#2868)lizzie2025-10-301-1/+1
| | | | | | | | | | | Reverts the "problematic" part of the pr (swap of s64/F16x2FTZRN) + leaves a very visible comment for newcomers (since yes, disas says it should be like that but oh well) Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2868 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] remove unused YUZU_UNIX define (#2875)lizzie2025-10-281-1/+1
| | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2875 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* Revert PRs #2778 and #2812 (#2867)MaranBr2025-10-281-1/+1
| | | | | | Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2867 Co-authored-by: MaranBr <maranbr@outlook.com> Co-committed-by: MaranBr <maranbr@outlook.com>
* [video_core] fix compilation errors from bad merge, fix string_view UB (#2812)lizzie2025-10-221-1/+1
| | | | | | | | | | | - fixes string_view corruption - fixes the latest master Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2812 Reviewed-by: Maufeat <sahyno1996@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [compat] HaikuOS port (#2805)lizzie2025-10-221-11/+22
| | | | | | | | | | | Still had the issues with libusb, but that should get solved with the other PRs anyways Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2805 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [common] remove ranges polyfill (#2546)lizzie2025-09-241-1/+4
| | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2546 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [compat] fix solaris Qt build (#194)lizzie2025-08-151-2/+4
| | | | | | | | Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/194 Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* gl_device: Remove AMD blacklists that are no longer applicableAmeer J2023-12-201-5/+6
|
* gl_buffer_cache: Reintroduce NV_vertex_buffer_unified_memoryAmeer J2023-12-191-0/+1
| | | | Workaround Nvidia drivers complaining when a buffer is bound as both a vertex buffer and transform feedback buffer
* Merge pull request #12094 from ameerj/gl-buffer-cache-batch-vtxliamwhite2023-12-031-1/+0
|\ | | | | gl_buffer_cache: Batch vertex/tfb buffer binding
| * gl_buffer_cache: Batch vertex/tfb buffer bindingAmeer J2023-11-191-1/+0
| |
* | vulkan_device: add names for more driverID enumeration valuesLiam2023-11-241-9/+9
|/
* gl_device: Filter more specifically for slow ASTClat9nq2023-08-051-1/+42
| | | | | | | | | | | | | | | Adds a check to find if the renderer is Intel DG (i.e. DG2). gl_device: Detect Mesa to disable their ASTC In our testing, our own ASTC decoder has shown itself to perform faster than the included one from the driver. Disable theirs when Mesa is detected. Mesa detection depends on the vendor string. Some drivers never appear outside of *nix contexts, so only check those in the *nix context. gl_device: Internalize Intel DG detection
* settings,general: Rename non-confirming enumslat9nq2023-07-211-4/+4
|
* OpenGL: Limit lmem warmup to NVIDIAameerj2023-06-251-0/+1
| | | | :frog:
* shader_recompiler: remove barriers in conditional control flow when device ↵Liam2023-06-101-0/+1
| | | | lacks support
* Log object names with debug renderer, add a GPU address to ImageViewsKelebek12023-05-061-1/+2
|
* video_core: Implement opengl/vulkan draw_textureFeng Chen2023-01-051-0/+1
|
* gl_device: Use a more robust way to use strict context modeAlexander Orzechowski2022-12-131-5/+3
| | | | | | Instead of checking a environment variable which may not actually exist or is just wrong, ask QT if it's running on the wayland platform.
* renderer_opengl: refactor context acquireLiam2022-12-131-3/+7
|
* general: fix compile for Apple ClangLiam2022-11-221-0/+1
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* GPU Garbage Collection: Fix regressions.Fernando Sahmkow2022-04-011-1/+1
|
* GC: Address Feedback.Fernando Sahmkow2022-03-251-0/+10
|
* video_core: Reduce unused includesameerj2022-03-191-3/+0
|
* glsl: Add boolean reference workaroundameerj2021-12-291-0/+1
|
* glsl_context_get_set: Add alternative cbuf type for broken driversameerj2021-12-291-7/+2
| | | | some drivers have a bug bitwise converting floating point cbuf values to uint variables. This adds a workaround for these drivers to make all cbufs uint and convert to floating point as needed.
* gl_device: Force GLASM on NVIDIA drivers 495-496lat9nq2021-10-281-0/+15
| | | | | | | | | GLSL shaders currently do not render correctly on the recent NVIDIA drivers. This adds a check that forces assembly shaders for these drivers since they seem unaffected and adds a warning informing of the decision. Developers can disable the check by enabling graphics debugging.
* settings: Remove std::chrono usageameerj2021-10-171-0/+1
| | | | Alleviates the dependency on chrono for all files that include settings.h
* Revert "renderers: Disable async shader compilation"ReinUsesLisp2021-07-221-4/+2
| | | | This reverts commit 4a152767286717fa69bfc94846a124a366f70065.
* gl_device: Simplify GLASM setting logicameerj2021-07-221-15/+8
|
* renderers: Disable async shader compilationameerj2021-07-221-2/+4
| | | | The current implementation is prone to causing graphical issues. Disable until a better solution is implemented.
* video_core: Enable GL SPIR-V shaderslat9nq2021-07-221-2/+6
|
* general: Add setting shader_backendlat9nq2021-07-221-4/+6
| | | | | | | | | | | | | | | | GLASM is getting good enough that we can move it out of advanced graphics settings. This removes the setting `use_assembly_shaders`, opting for a enum class `shader_backend`. This comes with the benefits that it is extensible for additional shader backends besides GLSL and GLASM, and this will work better with a QComboBox. Qt removes the related assembly shader setting from the Advanced Graphics section and places it as a new QComboBox in the API Settings group. This will replace the Vulkan device selector when OpenGL is selected. Additionally, mark all of the custom anisotropic filtering settings as "WILL BREAK THINGS", as that is the case with a select few games.
* glasm: Add passthrough geometry shader supportReinUsesLisp2021-07-221-0/+1
|
* shader: Unify shader stage typesReinUsesLisp2021-07-221-8/+10
|
* shader: Emulate 64-bit integers when not supportedReinUsesLisp2021-07-221-0/+1
| | | | Useful for mobile and Intel Xe devices.
* glsl: Address rest of feedbackameerj2021-07-221-0/+1
|
* glsl: Add stubs for sparse queries and variable aoffi when not supportedameerj2021-07-221-0/+1
|
* glsl: Implement VOTE for subgroup size potentially largerameerj2021-07-221-0/+1
|
* glsl: Query GL Device for FP16 extension supportameerj2021-07-221-0/+2
|
* glasm: Use ARB_derivative_control conditionallyReinUsesLisp2021-07-221-0/+1
|
* glasm: Use storage buffers instead of global memory when possibleReinUsesLisp2021-07-221-17/+1
|
* shader: Initial OpenGL implementationReinUsesLisp2021-07-221-89/+0
|
* gl_device: Expand on Mesa driver nameslat9nq2021-06-201-3/+28
| | | | | | Makes this list a bit more capable at identifying Mesa drivers. Tries to deal with two of the overloaded vendor strings in a more generic fashion.
* video_core: Add GPU vendor name to window title barameerj2021-06-201-4/+29
|