KhronosGroup / KhronosGroup/WebGL

WEBGL GL_EXT_draw_buffers broken

Open
#3,098 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
2.9k
Forks
703
Avg merge
2d 9h
Merged PRs (30d)
4

Description

Irresponsible change breaks existing WEBGL GL_EXT_draw_buffers API (I guess it was this one: https://github.com/KhronosGroup/WebGL/pull/2780/files).

The change is responsible that pages like this one no longer work correctly: https://www.wothke.ch/269life (for details see my respective https://bugzilla.mozilla.org/show_bug.cgi?id=1645800).

The problem not only breaks existing functionality but there is NO workaround that would allow to fix the broken pages with a reasonable amount of effort (i.e. pages that rely on higher-abstraction frameworks like THREE.js and where different shaders that use different numbers of additional attachments are mixed for the different surfaces of complex 3d objects.,). It counterproductively prohibits respective usage patterns that previously allowed a maximum reuse of a framework's (like THREE.js) built-in single-attachment shaders even in contexts where some custom multi-attachment shaders are involved.

Given the weeks of my work effort that have been destroyed by this API breaking change, I would like to at least see a reasonable justification why it was "necessary". I am convinced that the benefits of the original API far outweigh those of the broken one and ideally the respective change should be reverted!

Contributor guide

Open the contributing guide

Research direction

Review the API change in linked pull request #2780 and compare it with the failure described in Bugzilla 1645800 and the wothke.ch/269life example. Determine whether restoring the previous GL_EXT_draw_buffers behavior would recover the affected usage patterns; done means a justified compatibility decision, ideally backed by a regression case.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, three.js
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.