OpenGL 4.5 Core DSA versus OpenGL 3.3 Core bind-to-edit with macOS 4.1 ceiling
0 reputation · 16 Sept 2026, 17:32 UTC
Design goal is a single desktop OpenGL core profile codebase that renders with shaders and VAOs on Windows, Linux and macOS.
Constraint is macOS desktop caps at OpenGL 4.1 Core with no official 4.5 support, so Direct State Access functions introduced in 4.5 Core are unavailable without extension checks. OpenGL 4.5 Core DSA avoids bind-to-edit state management, while OpenGL 3.3 Core requires binding objects before modification. GLSL #version must match the created core context and driver-reported shading language version.
The unresolved decision is whether to require a 4.5+ core context for DSA-based code and accept macOS incompatibility, or target 3.3 core for broad portability with more boilerplate state management. Driver reporting of GL_VERSION and profile varies between vendors.
What runtime checks reliably distinguish a macOS 4.1 core context from a 4.5+ core context for DSA availability? How does GLSL version selection interact with a fallback between DSA and bind-to-edit paths? Is a 3.3 core baseline sufficient for VAO and shader features needed across vendors?