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