
Originally Posted by
ARB_texture_storage
4. Should use of these entry-points make the metadata (format and dimensions) immutable?
RESOLVED: Yes.
DISCUSSION: The benefits of knowing metadata can't change will probably outweigh the extra cost of checking the TEXTURE_IMMUTABLE_FORMAT flag on each texture specification call.
5. Should it be legal to completely replace the texture using a new call to TexStorage*?
RESOLVED. It will not be allowed.
DISCUSSION: This is useful to invalidate all levels of a texture. Allowing the metadata to be changed here seems easier than trying to define a portable definition of what it means to change the metadata (e.g. what if you used an unsized internal format the first time and the corresponding sized internal format the second time, or vice versa)?
However, while this is largely similar to deleting the old texture object and replacing it with a new one, it does lose some of the advantages of immutability. Specifically, because doing so does not reset bindings, it doesn't allow a migration path to an API that validates the texture format at bind time.