12 Commits
Author SHA1 Message Date
LibretroAdmin 85b64dc7b0 VideoCommon: video globals and backend objects as plain pointers 2026-11-08 03:21:40 +01:00
LibretroAdmin 037f0ca008 VideoCommon: bounding box and queries call their backend without virtual methods
Each backend's are final and called by the backend in use; the Null
backend uses the base classes, which count nothing. Bounding box values
are read into and written from the caller's arrays, and GL's queries
are one class for each kind of query object.
2026-11-07 20:57:55 +01:00
Andy1210 52cb774d97 OGL: do not call glMemoryBarrier when ARB_shader_image_load_store is missing
OGLBoundingBox::Read calls glMemoryBarrier on the non-GLES path, but that entry
point comes from ARB_shader_image_load_store. On a desktop context below GL 4.2
the pointer is null, while bSupportsBBox can still be true because it is set
from bSupportsFragmentStoresAndAtomics. Saving a state reads the bounding box
and calls the null pointer.

Add bSupportsImageLoadStore to the condition, the same check
UsePersistentStagingBuffers() in OGLTexture.cpp already uses for that function.
Drivers without it fall to the glMapBufferRange path below.
2026-08-07 14:17:10 +02:00
Joshua Vandaële faaea5919a Add missing includes 2026-06-23 21:09:18 +02:00
Dr. Dystopia 6d44afc7dd Replace 'reinterpret_cast' with 'static_cast' 2024-11-08 07:26:47 +01:00
Lioncash 5f6c76af51 VideoCommon: Use std::span for BoundingBox::Write()
Crosses off a lingering TODO.

Also amends a few nearby cases where a u32 cast was being repromoted to
size_t.
2023-12-09 16:33:21 -05:00
Scott Mansell f0336a3129 Implement AbstractGfx for OpenGL
Mostly involves moving contents of OGLRender
to OGLGfx and OGLConfig
2023-01-31 18:46:04 +13:00
Techjar 1161af8059 VideoCommon: Abstract bounding box
This moves much of the duplicated bounding box code into VideoCommon,
leaving only the specific buffer implementations in each backend.
2021-10-04 15:51:24 -04:00
Pierre Bourdon e149ad4f0a treewide: convert GPLv2+ license info to SPDX tags
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
2021-07-05 04:35:56 +02:00
Connor McLaughlin 6393f157f0 OGL: Force memory barrier when reading back bounding box values
We also need to ensure the the CPU does not receive stale values
which have been updated by the GPU. Apparently the buffer here
is not coherent on NVIDIA drivers. Not sure if this is a driver
bug/spec violation or not, one would think that
glGetBufferSubData() would invalidate any caches as needed, but
this path is only used on NVIDIA anyway, so it's fine. A point
to note is that according to ARB_debug_report, it's moved from
video to host memory, which would explain why it needs the
cache invalidate.
2021-05-29 16:57:40 +10:00
Connor McLaughlin 7fd0a526e1 VideoBackends/OGL: Cache bounding box values between reads 2021-05-28 19:30:46 +10:00
Shawn Hoffman ff4f67492b normalize common filenames in VideoBackends/OGL 2021-01-27 14:29:48 -08:00