Open kusma opened 3 months ago
WG 2024-06-05: Need more time to investigate/discuss.
There's no indication in section 8.14.4 that mipmap generation isn't supported for all formats (although with an undefined filtering function).
There are some format constraints for ES given this:
An INVALID_OPERATION error is generated if the level_base array was not specified with an unsized internal format from table 8.3 or a sized internal format that is both color-renderable and texture-filterable according to table 8.10.
That doesn't answer any of the questions for GL 4.6, though. It looks like MANUAL_GENERATE_MIPMAP was added in GL_ARB_internalformat_query2, but I haven't been able to dig up the discussion that led to that (and the spec doesn't say very much about what it means).
For reference, I found some of the original discussion around the MANUAL_GENERATE_MIPMAP internal format query: https://www.khronos.org/members/login/bugzilla/show_bug.cgi?id=7719 (needs Khronos internal bugzilla access).
I haven't read it all, though this bit seems relevant (MIPMAPS was later renamed to MANUAL_GENERATE_MIPMAP):
- MIPMAPS (do we have any texture formats that don't support mipmapping?) Maybe not texture formats alone, but when you factor in
you have cases where mipmapping is not supported (i.e. rectangle and multisample textures).
The OpenGL ES 3.2 spec, section 8.14.4 ("Manual Mipmap Generation") defines some additional requirements for
GenerateMipmap()
that the corresponding part of the OpenGL 4.6 compatibility spec doesn't include:There's no indication in section 8.14.4 that mipmap generation isn't supported for all formats (although with an undefined filtering function).
However, OpenGL 4.6 spec, section 22.3.1 also includes the
MANUAL_GENERATE_MIPMAP
query, that seems to allow implementations to report lacking support for some (if not all?) formats. However, the CTS does not check formats before testing if mipmapping works. The CTS also seems to assume that a box-filter, which isn't mandated by the spec (although it's recommended).So, my questions are:
GenerateMipmap()
supposed to to work for all core OpenGL 4.6 internal formats?MANUAL_GENERATE_MIPMAP
-query allowed to reportNONE
?MANUAL_GENERATE_MIPMAP
-query required to report something else thanNONE
?