On Fri, Jun 6, 2014 at 4:57 PM, Anuj Phogat <anuj.pho...@gmail.com> wrote:
> Fixes gles3 Khronos CTS test: texture_storage_texture_internal_formats > > Cc: <mesa-sta...@lists.freedesktop.org> > Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> > --- > src/mesa/main/texstorage.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c > index 44b5374..897d589 100644 > --- a/src/mesa/main/texstorage.c > +++ b/src/mesa/main/texstorage.c > @@ -41,6 +41,7 @@ > #include "texstorage.h" > #include "textureview.h" > #include "mtypes.h" > +#include "glformats.h" > > > > @@ -301,6 +302,23 @@ tex_storage_error_check(struct gl_context *ctx, > GLuint dims, GLenum target, > return GL_TRUE; > } > > + /* From section 3.8.6, page 146 of OpenGL ES 3.0 spec: > + * > + * "The ETC2/EAC texture compression algorithm supports only > + * two-dimensional images. If internalformat is an ETC2/EAC format, > + * CompressedTexImage3D will generate an INVALID_OPERATION error if > + * target is not TEXTURE_2D_ARRAY." > + * > + * This should also be applicable for glTexStorage3D(). > + */ > + if (_mesa_is_compressed_format(ctx, internalformat) > + && !_mesa_target_can_be_compressed(ctx, target, internalformat)) { > + _mesa_error(ctx, _mesa_is_desktop_gl(ctx)? > + GL_INVALID_ENUM : GL_INVALID_OPERATION, > + "glTexStorage3D(internalformat = %s)", > + _mesa_lookup_enum_by_nr(internalformat)); > + } > It seems to me as if the mesa_target_can_be_compressed function completely disallows 3D texture formats, but the spec implies that they are allowed in some cases. What's going on here? --Jason Ekstrand > + > /* levels check */ > if (levels < 1) { > _mesa_error(ctx, GL_INVALID_VALUE, "glTexStorage%uD(levels < 1)", > -- > 1.8.3.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev