diff options
| -rw-r--r-- | CHANGELOG.md | 9 | ||||
| -rw-r--r-- | sokol_gfx.h | 8 |
2 files changed, 17 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dff9e78..3e9043c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ ## Updates +### 18-Jan-2026 + +Happy New Year! + +- sokol_gfx.h gl: merged PR https://github.com/floooh/sokol/pull/1412 which fixes + a GL error on some drivers when switching between `GL_DEPTH_ATTACHMENT` and + `GL_DEPTH_STENCIL_ATTACHMENT`. Many thanks to @luigi-rosso for identifying + the issue and providing a fix! + ### 13-Dec-2025 A WebGPU backend code cleanup round: diff --git a/sokol_gfx.h b/sokol_gfx.h index aaadb456..887f08a0 100644 --- a/sokol_gfx.h +++ b/sokol_gfx.h @@ -11365,6 +11365,14 @@ _SOKOL_PRIVATE void _sg_gl_begin_pass(const sg_pass* pass, const _sg_attachments glFramebufferTexture2D(GL_FRAMEBUFFER, gl_att_type, GL_TEXTURE_2D, 0, 0); } if (atts->ds_view) { + // When switching between depth-only and depth-stencil attachments, + // explicitly detach BOTH attachment types first. Some GL drivers + // fail with GL_FRAMEBUFFER_UNSUPPORTED if both attachment types + // are bound to the same FBO. + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, 0, 0); + glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, 0); + glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0); const _sg_view_t* view = atts->ds_view; const _sg_image_t* img = _sg_image_ref_ptr(&view->cmn.img.ref); const GLenum gl_att_type = _sg_gl_depth_stencil_attachment_type(img); |