I'm planning to send out a v6 to fix an issue w/ a not-yet-upstreamed piglit test I've developed for ASTC.
On Tue, Aug 25, 2015 at 1:00 PM, Nanley Chery <nanleych...@gmail.com> wrote: > From: Nanley Chery <nanley.g.ch...@intel.com> > > The ASTC spec was revised as follows: > > Revision 2, April 28, 2015 - added CompressedTex{Sub,}Image3D to > commands accepting ASTC format tokens in the New Tokens section [...]. > > Support only exists in the HDR submode: > > Add a second new column "3D Tex." which is empty for all non-ASTC > formats. If only the LDR profile is supported by the implementation, > this column is also empty for all ASTC formats. If both the LDR and HDR > profiles are supported only, this column is checked for all ASTC > formats. > > LDR-only systems should generate an INVALID_OPERATION error when > attempting to call CompressedTexImage3D with the TEXTURE_3D target. > > v2. return the proper error for LDR-only systems. > v3. update is_astc_format(). > v4. use _mesa_is_astc_format(). > v5. place logic in _mesa_target_can_be_compressed. > > Signed-off-by: Nanley Chery <nanley.g.ch...@intel.com> > --- > src/mesa/main/teximage.c | 54 > +++++++++++++++++++++++++++++++++++++++++------- > 1 file changed, 47 insertions(+), 7 deletions(-) > > diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c > index c28cd03..5602123 100644 > --- a/src/mesa/main/teximage.c > +++ b/src/mesa/main/teximage.c > @@ -1854,19 +1854,59 @@ _mesa_target_can_be_compressed(const struct > gl_context *ctx, GLenum target, > return write_error(error, GL_INVALID_OPERATION); > > target_can_be_compresed = > ctx->Extensions.ARB_texture_cube_map_array; > - break; > - case GL_TEXTURE_3D: > > - /* See ETC2/EAC comment in switch case GL_TEXTURE_CUBE_MAP_ARRAY. */ > - if (layout == MESA_FORMAT_LAYOUT_ETC2 && _mesa_is_gles3(ctx)) > + /* From the KHR_texture_compression_astc_hdr spec: > + * > + * Add a second new column "3D Tex." which is empty for all > non-ASTC > + * formats. If only the LDR profile is supported by the > implementation, > + * this column is also empty for all ASTC formats. If both the > LDR and HDR > + * profiles are supported only, this column is checked for all > ASTC > + * formats. > + * > + * Add a third new column "Cube Map Array Tex." which is empty > for all > + * non-ASTC formats, and checked for all ASTC formats. > + * > + * and, > + * > + * 'An INVALID_OPERATION error is generated by > CompressedTexImage3D > + * if <internalformat> is TEXTURE_CUBE_MAP_ARRAY and the > + * "Cube Map Array" column of table 8.19 is *not* checked, or > if > + * <internalformat> is TEXTURE_3D and the "3D Tex." column of > table > + * 8.19 is *not* checked' > + * > + * The instances of <internalformat> above should say <target>. > + */ > + > + /* Throw an INVALID_OPERATION error if the target is > + * TEXTURE_CUBE_MAP_ARRAY and the format is not ASTC. > + */ > + if (target_can_be_compresed && > + ctx->Extensions.KHR_texture_compression_astc_ldr && > + layout != MESA_FORMAT_LAYOUT_ASTC) > return write_error(error, GL_INVALID_OPERATION); > > - if (layout == MESA_FORMAT_LAYOUT_BPTC) { > + break; > + case GL_TEXTURE_3D: > + switch (layout) { > + case MESA_FORMAT_LAYOUT_ETC2: > + /* See ETC2/EAC comment in case GL_TEXTURE_CUBE_MAP_ARRAY. */ > + if (_mesa_is_gles3(ctx)) > + return write_error(error, GL_INVALID_OPERATION); > + break; > + case MESA_FORMAT_LAYOUT_BPTC: > target_can_be_compresed = > ctx->Extensions.ARB_texture_compression_bptc; > break; > + default: > + /* Throw an INVALID_OPERATION error if the target is TEXTURE_3D > and > + * (the format is not ASTC or the hdr extension is not > supported). > + * See comment in switch case GL_TEXTURE_CUBE_MAP_ARRAY for more > info. > + */ > + if (ctx->Extensions.KHR_texture_compression_astc_ldr && > + (layout != MESA_FORMAT_LAYOUT_ASTC || > + !ctx->Extensions.KHR_texture_compression_astc_hdr)) > + return write_error(error, GL_INVALID_OPERATION); > + break; > } > - > - break; > default: > break; > } > -- > 2.5.0 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev