50 Commits

Author SHA1 Message Date
Henrik Rydgård dd125b2e4d Delete obsolete (and non-working) support for GPUs without non-pow-2 textures. 2026-05-24 14:15:34 +02:00
Henrik Rydgård 2a745bc98d Apple buildfix 2026-05-21 16:36:32 +02:00
Henrik Rydgård 4a420c95c2 Remove some redundant device caps, show clip/cull/depth-clamp in system info 2026-05-21 11:59:26 +02:00
Chris Healy 856e6ed49b OpenGL: Add timer query extension detection
Add detection for GL_EXT_disjoint_timer_query (OpenGL ES) and
GL_ARB_timer_query (desktop GL) extensions. These extensions provide
GPU timestamp queries for profiling render pass durations.

Also adds function pointer declarations for glQueryCounter,
glGetQueryObjecti64v, and glGetQueryObjectui64v.

Signed-off-by: Chris Healy <cphealy@gmail.com>
2026-03-18 09:52:42 -07:00
Chris Healy 7ea1260ef0 OpenGL: Fix GLES3 detection for Mesa/Panfrost Mali drivers
The original code checked for "Mali" in GL_RENDERER and disabled GLES3
for all Mali GPUs, which was a workaround for bugs in ARM's proprietary
Mali driver. However, Mesa/Panfrost (open-source Mali driver) does not
have these bugs and should be allowed to use GLES3.

This patch:
- Adds GPU_VENDOR_MESA for identifying Mesa drivers via GL_VENDOR
- Changes the GLES3 ban to only apply when GL_VENDOR="ARM" (proprietary)
- Allows Mesa/Panfrost Mali GPUs to use GLES3 features

Expected behavior:
- ARM proprietary driver (GL_VENDOR="ARM"): GLES3 disabled (preserved)
- Mesa/Panfrost (GL_VENDOR="Mesa"): GLES3 enabled
- Other Mesa drivers: Unaffected

Related issues: #4078, #15413

Signed-off-by: Chris Healy <cphealy@gmail.com>
2026-03-08 21:41:20 -07:00
Henrik Rydgård 1cc2b7233a Fix some minor visual UI issues
See #21223
2026-02-15 19:57:56 +01:00
Henrik Rydgård d6ebfed432 Fix some bugs and warnings from a pass of static analysis 2026-01-29 17:41:54 +01:00
Henrik Rydgård 1efcaafd5a Add query for max texture size 2025-11-15 15:26:02 +01:00
Henrik Rydgård d43b1d4618 String function cleanup 2025-08-31 14:45:41 +02:00
Henrik Rydgård ed8f0c560a Merge branch 'master' into fix-core-gpu-always-true 2024-09-17 13:03:26 +02:00
Henrik Rydgård e01ca5b057 Logging API change (refactor) (#19324)
* Rename LogType to Log

* Explicitly use the Log:: enum when logging. Allows for autocomplete when editing.

* Mac/ARM64 buildfix

* Do the same with the hle result log macros

* Rename the log names to mixed case while at it.

* iOS buildfix

* Qt buildfix attempt, ARM32 buildfix
2024-07-14 14:42:59 +02:00
Herman Semenov c901e8c9bb [Core/GPU] Fixed condition blocks where result always true 2024-04-11 16:05:11 +03:00
Henrik Rydgård e3177ac870 Make some global string pointers const, not just the strings.
Minor cleanup.
2023-12-29 14:09:45 +01:00
Jools Wills 82ce83185e Fix building on OpenGL ES 2.0 (RPI VideoCore IV)
GL_COMPRESSED_RGBA_ASTC_4x4_KHR is not defined and looks to be an OpenGL ES 3.0 extension.

This fixes building on the Raspberry Pi 1-3 using VideoCore IV OpenGL ES 2.0 headers.
2023-11-21 20:16:09 +00:00
Henrik Rydgård 27b8d27efc Add a different assert to SetGLCoreContext. 2023-06-03 11:57:08 +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 c6e0027604 OpenGL: Try a different way to exclude desktop compression formats in build
May fix #17110
2023-03-14 16:09:40 +01:00
Henrik Rydgård a4b5641f11 Add compressed texture format support checks 2023-03-12 16:18:46 +01:00
Henrik Rydgård 25fbfd7a89 Finish up OpenGL compressed texture format checks. Show in dev screen 2023-03-12 12:20:10 +01:00
Unknown W. Brackets a37ed84b31 GLES: Avoid clip distance error in ANGLE. 2023-01-08 22:50:39 -08:00
Henrik Rydgård 10c0b3f2ae Comment improvements 2022-12-29 00:39:59 +01:00
Henrik Rydgård 463d703feb More assorted cleanup 2022-12-29 00:39:59 +01:00
Unknown W. Brackets f6c26ecac0 Headless: Prevent crash on errors in graphics init. 2022-12-24 17:43:32 +00:00
Unknown W. Brackets b33662550f Vulkan: Use stencil export when available.
This prevents multiple passes to upload stencil buffers.
2022-11-24 18:48:46 -08:00
Unknown W. Brackets fc68cd9457 GLES: Add debug readback of stencil data.
This allows the existing gpu.buffer.renderStencil to snapshot the state.
2022-10-10 17:09:14 -07:00
Unknown W. Brackets 179c1e4a3b GLES: Enable EXT_depth_clamp where supported.
Seems like Freedreno may support this.
2022-10-10 00:54:29 -07:00
lainon 3cdf72b68b Better readability and optimization insertion into container by replacing 'insert' -> 'emplace', 'push_back' -> 'emplace_back' 2022-09-30 12:35:28 +03:00
Unknown W. Brackets 20c2ec1392 GPU: Skip alpha stencil upload when safe.
Otherwise, let's not do things that give different behavior at 1x or are
inconsistent.
2022-08-06 21:12:59 -07:00
Henrik Rydgård 77535c8132 Fix feature check for wrapping of non-pow-2 textures
May fix some problems with using 3x/5x upscaling or 3x/5x resolution on some
hardware.
2022-08-06 23:54:03 +02:00
Henrik Rydgård 46d6b43618 Support 3D textures in OpenGL ES, add feature check 2022-07-31 10:43:48 +02:00
Unknown W. Brackets c20f352be2 GLES: Add asserts for correct blend usage.
Also make sure we don't try to use ARB blending on GLES.
2022-02-21 08:57:21 -08:00
Unknown W. Brackets 275baccc5b GLES: Support GL_APPLE_clip_distance too.
Seems modern Apple mobile chips only support clip.
2021-10-12 20:34:44 -07:00
iota97 4ac7e28726 log fix 2021-07-22 11:31:03 +02:00
Henrik Rydgård e3c748cc97 OpenGL: Accept "AMD" as a vendor string for, well, AMD.
Seen with the open source driver by archanox
2021-07-22 08:59:48 +02:00
Unknown W. Brackets 5119d79082 Build: Remove IOS define. 2021-03-02 21:04:03 -08:00
Henrik Rydgård 1eeebccd04 Fix Apple gpu detection 2021-01-30 18:31:39 +01:00
Henrik Rydgård ca50077341 More GPU test improvements
* Fix the flat test. Unfortunately doesn't repro the bug :(
2021-01-17 18:04:00 +01:00
Henrik Rydgård 7de7680416 Apple driver bug workaround. See issue #13451 2020-12-16 14:39:08 +01:00
Henrik Rydgård 2dcfa63498 GL: Detect Apple GPUs as a category 2020-12-14 22:10:18 +01:00
Henrik Rydgård 32c9728c0c Some cleanups in GL feature and shader language detection.
Gets rid of many wrong or bad checks for IsCoreContext.
2020-12-14 19:46:11 +01:00
Henrik Rydgård 3c2733d8eb Adreno/OpenGL: Limit shader depal to 6xx series GPUs. Should help #13668.
Also make a function static.
2020-11-22 18:00:07 +01:00
Henrik Rydgård 29b2f2c4ef Better GLSL version handling. Now specify the latest version supported by the device.
Correct the version check for our own implementations of packUnorm4x8 etc.
2020-11-16 23:30:07 +01:00
Henrik Rydgård e14437cb3f OpenGL: Assorted shader-depal bugfixes and regression fixes.
Fixes #13517
2020-11-11 23:09:48 +01:00
Henrik Rydgård a3d06e366f OpenGL: Detect Adreno model number 2020-11-11 22:46:25 +01:00
Henrik Rydgård 9f33a82b49 Merge pull request #13646 from hrydgard/framebuffer-fetch-fixes
Framebuffer fetch fixes
2020-11-09 19:30:35 +01:00
Henrik Rydgård 2384b7a17d Remove support for NV_shader_framebuffer_fetch extension, very old and rare.
Minor refactor.
2020-11-09 13:31:39 +01:00
Henrik Rydgård 864cc54aa4 Remove ForceGL2 flag. Add comments... hm. 2020-11-09 11:18:43 +01:00
Henrik Rydgård 207b76da6e Show an error on screen if a shader fails to compile.
Part of #1 investigation of #13541
2020-11-05 08:27:13 +01:00
Henrik Rydgård 3d4fc7c696 Check for a couple additional GL extensions 2020-10-31 18:32:43 +01:00
Henrik Rydgård 0e3a84b4a8 Move most GPU things to Common.
It works after the move, on Windows and Android at least.

Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00