Commit 059d82c1 authored by Andres Rodriguez's avatar Andres Rodriguez Committed by Timothy Arceri

mesa: hook up queries for NUM_TILING_TYPES and TILING_TYPES

These are just basic implementations.
Signed-off-by: Andres Rodriguez's avatarAndres Rodriguez <andresx7@gmail.com>
Reviewed-by: Timothy Arceri's avatarTimothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset@gmail.com>
parent 68623933
......@@ -216,6 +216,8 @@ _legal_parameters(struct gl_context *ctx, GLenum target, GLenum internalformat,
case GL_CLEAR_BUFFER:
case GL_TEXTURE_VIEW:
case GL_VIEW_COMPATIBILITY_CLASS:
case GL_NUM_TILING_TYPES_EXT:
case GL_TILING_TYPES_EXT:
/* The ARB_internalformat_query spec says:
*
* "If the <pname> parameter to GetInternalformativ is not SAMPLES
......@@ -284,6 +286,7 @@ _set_default_response(GLenum pname, GLint buffer[16])
*/
switch(pname) {
case GL_SAMPLES:
case GL_TILING_TYPES_EXT:
break;
case GL_MAX_COMBINED_DIMENSIONS:
......@@ -309,6 +312,7 @@ _set_default_response(GLenum pname, GLint buffer[16])
case GL_TEXTURE_COMPRESSED_BLOCK_WIDTH:
case GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT:
case GL_TEXTURE_COMPRESSED_BLOCK_SIZE:
case GL_NUM_TILING_TYPES_EXT:
buffer[0] = 0;
break;
......@@ -700,6 +704,13 @@ _mesa_query_internal_format_default(struct gl_context *ctx, GLenum target,
case GL_FILTER:
params[0] = GL_FULL_SUPPORT;
break;
case GL_NUM_TILING_TYPES_EXT:
params[0] = 2;
break;
case GL_TILING_TYPES_EXT:
params[0] = GL_OPTIMAL_TILING_EXT;
params[1] = GL_LINEAR_TILING_EXT;
break;
default:
_set_default_response(pname, params);
......@@ -1519,6 +1530,12 @@ _mesa_GetInternalformativ(GLenum target, GLenum internalformat, GLenum pname,
}
break;
case GL_NUM_TILING_TYPES_EXT:
case GL_TILING_TYPES_EXT:
ctx->Driver.QueryInternalFormat(ctx, target, internalformat, pname,
buffer);
break;
default:
unreachable("bad param");
}
......
......@@ -1057,6 +1057,9 @@ struct gl_texture_object
/** GL_ARB_shader_image_load_store */
GLenum ImageFormatCompatibilityType;
/** GL_EXT_memory_object */
GLenum TextureTiling;
/** GL_ARB_bindless_texture */
struct util_dynarray SamplerHandles;
struct util_dynarray ImageHandles;
......
......@@ -622,6 +622,14 @@ set_tex_parameteri(struct gl_context *ctx,
}
goto invalid_pname;
case GL_TEXTURE_TILING_EXT:
if (ctx->Extensions.EXT_memory_object) {
texObj->TextureTiling = params[0];
return GL_TRUE;
}
goto invalid_pname;
default:
goto invalid_pname;
}
......@@ -778,6 +786,13 @@ set_tex_parameterf(struct gl_context *ctx,
}
return GL_TRUE;
case GL_TEXTURE_TILING_EXT:
if (ctx->Extensions.EXT_memory_object) {
texObj->TextureTiling = params[0];
return GL_TRUE;
}
goto invalid_pname;
default:
goto invalid_pname;
}
......@@ -2019,6 +2034,12 @@ get_tex_parameterfv(struct gl_context *ctx,
*params = ENUM_TO_FLOAT(obj->Target);
break;
case GL_TEXTURE_TILING_EXT:
if (!ctx->Extensions.EXT_memory_object)
goto invalid_pname;
*params = ENUM_TO_FLOAT(obj->TextureTiling);
break;
default:
goto invalid_pname;
}
......@@ -2251,6 +2272,12 @@ get_tex_parameteriv(struct gl_context *ctx,
*params = (GLint) obj->Target;
break;
case GL_TEXTURE_TILING_EXT:
if (!ctx->Extensions.EXT_memory_object)
goto invalid_pname;
*params = (GLint) obj->TextureTiling;
break;
default:
goto invalid_pname;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment