[Mesa-dev] [PATCH 1/2] mesa: use more descriptive error messages for glUniform errors
Brian Paul
brianp at vmware.com
Thu Mar 19 07:56:23 PDT 2015
On 03/19/2015 08:53 AM, Brian Paul wrote:
> Different errors for type mismatches, size mismatches and matrix/
> non-matrix mismatches. Use a common format of "uniformName"@location
> in the messags.
> ---
> src/mesa/main/uniform_query.cpp | 69 ++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 65 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
> index 9f82de9..2ab5528 100644
> --- a/src/mesa/main/uniform_query.cpp
> +++ b/src/mesa/main/uniform_query.cpp
> @@ -260,8 +260,8 @@ validate_uniform_parameters(struct gl_context *ctx,
> if (uni->array_elements == 0) {
> if (count > 1) {
> _mesa_error(ctx, GL_INVALID_OPERATION,
> - "%s(count > 1 for non-array, location=%d)",
> - caller, location);
> + "%s(count = %u for non-array \"%s\"@%d)",
> + caller, count, uni->name, location);
> return NULL;
> }
>
> @@ -601,6 +601,46 @@ _mesa_propagate_uniforms_to_driver_storage(struct gl_uniform_storage *uni,
> }
> }
>
> +
> +/**
> + * Return printable string for a given GLSL_TYPE_x
> + */
> +static const char *
> +glsl_type_name(enum glsl_base_type type)
> +{
> + switch (type) {
> + case GLSL_TYPE_UINT:
> + return "uint";
> + case GLSL_TYPE_INT:
> + return "int";
> + case GLSL_TYPE_FLOAT:
> + return "float";
> + case GLSL_TYPE_DOUBLE:
> + return "double";
> + case GLSL_TYPE_BOOL:
> + return "bool";
> + case GLSL_TYPE_SAMPLER:
> + return "sampler";
> + case GLSL_TYPE_IMAGE:
> + return "image";
> + case GLSL_TYPE_ATOMIC_UINT:
> + return "atomic_uint";
> + case GLSL_TYPE_STRUCT:
> + return "struct";
> + case GLSL_TYPE_INTERFACE:
> + return "interface";
> + case GLSL_TYPE_ARRAY:
> + return "array";
> + case GLSL_TYPE_VOID:
> + return "void";
> + case GLSL_TYPE_ERROR:
> + return "error";
> + default:
> + return "other";
> + }
> +}
BTW, I looked around a bit, but I didn't see a glsl_base_type->string
function like this in src/glsl/, but I certainly could have missed it.
-Brian
More information about the mesa-dev
mailing list