apitrace/apitrace — comment on commit c0e24af608bc7e2c259a398544e590ecb06b6655
File: glstate.cpp line 594
By zackr:

On Thursday, November 17, 2011 10:58:32 AM José Fonseca wrote:
> Zack,
>
> Internal format is an attribute of the image, but unlike unit/target/level
> it doesn not idenfity it, ie., it's not possible to have two images with
> the same unit/target/level and different image.

Sorry, I'm not sure what you mean. Yes, it's possible and it happens all the
time. Over a lifespan of an application there can be and usually are hundreds
of images bound to the same unit/target/level.

> This will make, e.g., comparing state dumps between textures of different
> internal formats impossible.

But that is correct, isn't it?
GL_TEXTURE0, GL_TEXTURE_2D, GL_R32_F, 0 level, 1025 x 493
is not the same as
GL_TEXTURE0, GL_TEXTURE_2D, GL_RGBA8, 0 level, 1025 x 493
and without the format they will incorrectly compare as the same.

> I'd prefer that this sort of meta data was passed separately of the image
> label. The label should just uniquely identify the texture.

As mentioned the issue is that the label doesn't uniquely identify the image.
We don't pass at all the only thing that uniquely identifies the image - the
object name. Over large traces it's really very irritating to always see
GL_TEXTURE0, GL_TEXTURE_2D bound but with no quick way of knowing what exactly
it is.
Personally I think the label should be the object name, whether it's the same
as the trace or not doesn't matter, it's still an unique identifier and all
the rest of the data should be passed as metadata. As long as the gui can get
the format it doesn't matter to me hough. It's simply that we can't visualize
the float surfaces very well so unless we list the format lots of images in
the gui seems to just be garbage.

z