From: Antia Puentes <apuen...@igalia.com> From the ARB_internalformat_query2 specification:
"- VERTEX_TEXTURE: The support for using the resource as a source for texture sampling in a vertex shader is written to <params>. - TESS_CONTROL_TEXTURE: The support for using the resource as a source for texture sampling in a tessellation control shader is written to <params>. - TESS_EVALUATION_TEXTURE: The support for using the resource as a source for texture sampling in a tessellation evaluation shader is written to <params>. - GEOMETRY_TEXTURE: The support for using the resource as a source for texture sampling in a geometry shader is written to <params>. - FRAGMENT_TEXTURE: The support for using the resource as a source for texture sampling in a fragment shader is written to <params>. - COMPUTE_TEXTURE: The support for using the resource as a source for texture sampling in a compute shader is written to <params>." For all of them, "Possible values returned are FULL_SUPPORT, CAVEAT_SUPPORT, or NONE. If the resource or operation is not supported, NONE is returned." --- src/mesa/main/formatquery.c | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/mesa/main/formatquery.c b/src/mesa/main/formatquery.c index cea36c5..fb19686 100644 --- a/src/mesa/main/formatquery.c +++ b/src/mesa/main/formatquery.c @@ -596,6 +596,12 @@ _mesa_query_internal_format_default(struct gl_context *ctx, GLenum target, case GL_SRGB_READ: case GL_SRGB_WRITE: case GL_SRGB_DECODE_ARB: + case GL_VERTEX_TEXTURE: + case GL_TESS_CONTROL_TEXTURE: + case GL_TESS_EVALUATION_TEXTURE: + case GL_GEOMETRY_TEXTURE: + case GL_FRAGMENT_TEXTURE: + case GL_COMPUTE_TEXTURE: params[0] = GL_FULL_SUPPORT; break; @@ -1127,27 +1133,27 @@ _mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, break; case GL_VERTEX_TEXTURE: - /* @TODO */ - break; - case GL_TESS_CONTROL_TEXTURE: - /* @TODO */ - break; - case GL_TESS_EVALUATION_TEXTURE: - /* @TODO */ - break; - case GL_GEOMETRY_TEXTURE: - /* @TODO */ - break; - case GL_FRAGMENT_TEXTURE: - /* @TODO */ - break; - case GL_COMPUTE_TEXTURE: - /* @TODO */ + if (target == GL_RENDERBUFFER) + goto end; + + if ((pname == GL_TESS_CONTROL_TEXTURE || + pname == GL_TESS_EVALUATION_TEXTURE) && + !_mesa_has_tessellation(ctx)) + goto end; + + if (pname == GL_GEOMETRY_TEXTURE && !_mesa_has_geometry_shaders(ctx)) + goto end; + + if (pname == GL_COMPUTE_TEXTURE && !_mesa_has_compute_shaders(ctx)) + goto end; + + ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname, + buffer); break; case GL_TEXTURE_SHADOW: -- 2.5.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev