From feecd28993169c7857701a8d648fca4e2ec50487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 25 Mar 2025 12:00:18 +0100 Subject: [PATCH] GL: new "nv-broken-buffer-dsa" workaround. As the time goes, I have less and less patience trying to figure these things out. It's likely my fault for using the not-well-tested DSA APIs or something. --- doc/changelog.dox | 3 +++ src/Magnum/GL/Implementation/BufferState.cpp | 2 ++ src/Magnum/GL/Implementation/driverSpecific.cpp | 17 ++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/doc/changelog.dox b/doc/changelog.dox index 6fb1a91db..81fca970f 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -248,6 +248,9 @@ See also: on exit happening with Mesa 24 when the DSA variants of @ref GL::Framebuffer::clearColor() and related APIs are used. See @ref opengl-workarounds for more information. +- A new @cpp "nv-broken-buffer-dsa" @ce workaround for a rendering corruption + on NVidia 572.82 drivers happening when DSA codepaths for @ref GL::Buffer + are used. See @ref opengl-workarounds for more information. @subsubsection changelog-latest-new-math Math library diff --git a/src/Magnum/GL/Implementation/BufferState.cpp b/src/Magnum/GL/Implementation/BufferState.cpp index ee1d7ecba..9859f0a90 100644 --- a/src/Magnum/GL/Implementation/BufferState.cpp +++ b/src/Magnum/GL/Implementation/BufferState.cpp @@ -100,6 +100,8 @@ BufferState::BufferState(Context& context, Containers::StaticArrayView