On Mon Feb 9 17:18:01 2026 +0000, Jacek Caban wrote:
Here, you use `glGetStringi` ordering for newer contexts and then later reinterpret it as legacy string ordering. Those sortings are different on real drivers. To me, postponing construction of the legacy string until it is first queried seems like the simplest way to handle this. That said, the idea of storing those indices in the context for `glGetStringi` is interesting. It would be nice to avoid having that loop there. Maybe we could repurpose `compat_extensions` for that purpose? I don't understand what you mean with glGetStringi. This is using the same order as `parsed_extensions` was filled in at parse time, and parsed_extension is only initialized when `glGetString( GL_EXTENSIONS )` succeeds. When it doesn't succeed, `parsed_extensions` is empty (only has one `GL_EXTENSION_COUNT` element), and `compat_extensions` is also considered empty (and later `GL_EXTENSIONS` returns NULL).
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10019#note_129239