On 12/04/2012 10:56 AM, Eric Anholt wrote:
Ian Romanick <i...@freedesktop.org> writes:

From: Ian Romanick <ian.d.roman...@intel.com>

The OpenGL 3.2 core profile spec says:

     "The following base internal formats from table 3.11 are
     color-renderable: RED, RG, RGB, and RGBA. The sized internal formats
     from table 3.12 that have a color-renderable base internal format
     are also color-renderable. No other formats, including compressed
     internal formats, are color-renderable."

The OpenGL 3.2 compatibility profile spec says (only ALPHA is added):

     "The following base internal formats from table 3.16 are
     color-renderable: ALPHA, RED, RG, RGB, and RGBA. The sized internal formats
     from table 3.17 that have a color-renderable base internal format
     are also color-renderable. No other formats, including compressed
     internal formats, are color-renderable."

Table 3.12 in the core profile spec and table 3.17 in the compatibility
profile spec list SNORM formats as having a base internal format of RED,
RG, RGB, or RGBA.  From this we infer that they should also be color
renderable.

This sounds sort of like the description of the bottom half of the
change, to remove L/LA/I snorm formats.  (ALPHA being left in place,
which I missed at first).

I wonder, do they also not support FBOs with unorm L/LA/I, despite
ARB_framebuffer_object?  fbo-clear-formats should tell.  I'd be happy to
see those go if nobody else supports them either, and it would make this
change make more sense to me.

Ken pointed out that this patch really should have been two patches. I've split it into a patch that just makes the deprecated SNORM formats non-renderable and a second patch that makes all of the other SNORM formats non-renderable in ES.

I had some discussions with the ES group on this topic. They said the intention of the spec is the formats not listed as renderable in the table are not allowed to be renderable *ever*... unless you have an extension that adds them to the table. The conformance tests check for this, and allowing extra formats causes them to fail.

The OpenGL ES 3.0 spec says:

     "An internal format is color-renderable if it is one of the formats
     from table 3.12 noted as color-renderable or if it is unsized format
     RGBA or RGB. No other formats, including compressed internal
     formats, are color-renderable."

In the OpenGL ES 3.0 spec, none of the SNORM formats have "color-
renderable" marked in table 3.12.  The RGB I and UI formats also are not
color-renderable in ES3, but we'll save that change for another patch.

As a data point, NVIDIA's closed-source driver (version 304.64) rejects
*all* SNORM formats for renderbuffers in an OpenGL 4.x compatibility
                                                      ^^^

Not that it matters, but this should say "3.3 compatibility profile." I forgot my NVIDIA card can't do 4.x. :)

profile.

This sounds like the description of the top half of the change, and this
half if pulled out would get my r-b.

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to