Khronos Public Bugzilla
Bug 327 - EGL 1.4 config sort rule 3 (component sizes)
EGL 1.4 config sort rule 3 (component sizes)
Status: RESOLVED FIXED
Product: EGL
Classification: Unclassified
Component: Specification
unspecified
PC Windows
: P3 normal
: ---
Assigned To: Jon Leech
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-07-21 09:40 PDT by Tom Cooksey
Modified: 2013-06-19 13:26 PDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Cooksey 2010-07-21 09:40:47 PDT
The EGL 1.4 spec's config sort rule 3 for component sizes is counter-intuative. However, I think the foot note (foot note 6) on page 24 should make it clearer that this is really, really odd behaviour. Currently it reads:

"This rule places configs with deeper color buffers first in the list returned by eglChooseConfig. Applications may find this counterintuitive, and need to perform additional processing on the list of configs to find one best matching their requirements. For example, specifying RGBA depths of 5651 could return a list whose first config has a depth of 8888."

I think it should use the example where there is an RGBA5650 and RGBA8888 config and the application has specified 1110, as this will also return the RGBA8888 config first. I also think it should be noted that the entire sort rule can be skipped by specifying 0 or EGL_DONT_CARE for the individual buffer sizes. In that case, the implementation will then drop to the 4th sort rule which puts configs with smaller EGL_BUFFER_SIZE higher up in the list, which I think is the more natural sort order. In fact perhaps that should be made a recommendation as this sort rule leads to a great deal of confusion. IMHO, it's a broken part of the spec.

"This rule places configs with deeper color buffers first in the list returned by eglChooseConfig. Applications may find this counterintuitive if they expect configs with smaller buffer sizes to be returned first. For example, if an EGL implementation has two configs with RGBA depths of 8888 and 5650 and the application specifies RGBA 1110, the implementation will return the 8888 config first. To avoid this rule altogether, an application can specify 0 or EGL_DONT_CARE for each component size, in which case the EGL implementation will drop to the next rule which puts configs with a smaller EGL_BUFFER_SIZE higher up in the list."
Comment 1 Jon Leech 2010-08-04 12:11:48 PDT
We're going to include a clarification like this in the next bugfix update
to the EGL 1.4 spec, which will probably come out after the F2F meeting
in September. Thanks for the report & suggestion!
Comment 2 Jon Leech 2013-06-19 13:26:04 PDT
This was fixed a long time ago.