[Mesa-dev] [PATCH 10/23] main: Support 1 Mesa format with get for GL_PROGRAM_BINARY_FORMATS
Timothy Arceri
tarceri at itsqueeze.com
Wed Nov 29 01:24:46 UTC 2017
From: Jordan Justen <jordan.l.justen at intel.com>
Mesa supports either 0 or 1 formats. If 1 format is supported, it is
GL_PROGRAM_BINARY_FORMAT_MESA as defined in the
GL_MESA_program_binary_formats extension spec.
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
---
src/mesa/main/get.c | 9 +++++++++
src/mesa/main/get_hash_params.py | 2 +-
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index ea8d932b182..c1b1a89ee05 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1144,20 +1144,29 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
* All three (VBO, TEXTURE, RENDERBUFFER) queries return
* the same numbers here.
*/
v->value_int_4[0] = info.avail_device_memory;
v->value_int_4[1] = info.avail_device_memory;
v->value_int_4[2] = info.avail_staging_memory;
v->value_int_4[3] = info.avail_staging_memory;
}
}
break;
+
+ /* GL_ARB_get_program_binary */
+ case GL_PROGRAM_BINARY_FORMATS:
+ assert(ctx->Const.NumProgramBinaryFormats <= 1);
+ v->value_int_n.n = MIN2(ctx->Const.NumProgramBinaryFormats, 1);
+ if (ctx->Const.NumProgramBinaryFormats > 0) {
+ v->value_int_n.ints[0] = GL_PROGRAM_BINARY_FORMAT_MESA;
+ }
+ break;
}
}
/**
* Check extra constraints on a struct value_desc descriptor
*
* If a struct value_desc has a non-NULL extra pointer, it means that
* there are a number of extra constraints to check or actions to
* perform. The extras is just an integer array where each integer
* encode different constraints or actions.
diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
index 6d99a029ed2..eac250a1ecf 100644
--- a/src/mesa/main/get_hash_params.py
+++ b/src/mesa/main/get_hash_params.py
@@ -318,21 +318,21 @@ descriptor=[
# GL_ARB_ES2_compatibility
[ "SHADER_COMPILER", "CONST(1), extra_ARB_ES2_compatibility_api_es2" ],
[ "MAX_VARYING_VECTORS", "CONTEXT_INT(Const.MaxVarying), extra_ARB_ES2_compatibility_api_es2" ],
[ "MAX_VERTEX_UNIFORM_VECTORS", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_ES2_compatibility_api_es2" ],
[ "MAX_FRAGMENT_UNIFORM_VECTORS", "LOC_CUSTOM, TYPE_INT, 0, extra_ARB_ES2_compatibility_api_es2" ],
[ "NUM_SHADER_BINARY_FORMATS", "CONST(0), extra_ARB_ES2_compatibility_api_es2" ],
[ "SHADER_BINARY_FORMATS", "LOC_CUSTOM, TYPE_INVALID, 0, extra_ARB_ES2_compatibility_api_es2" ],
# GL_ARB_get_program_binary / GL_OES_get_program_binary
[ "NUM_PROGRAM_BINARY_FORMATS", "CONTEXT_UINT(Const.NumProgramBinaryFormats), NO_EXTRA" ],
- [ "PROGRAM_BINARY_FORMATS", "LOC_CUSTOM, TYPE_INVALID, 0, NO_EXTRA" ],
+ [ "PROGRAM_BINARY_FORMATS", "LOC_CUSTOM, TYPE_INT_N, 0, NO_EXTRA" ],
# GL_INTEL_performance_query
[ "PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL", "CONST(MAX_PERFQUERY_QUERY_NAME_LENGTH), extra_INTEL_performance_query" ],
[ "PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL", "CONST(MAX_PERFQUERY_COUNTER_NAME_LENGTH), extra_INTEL_performance_query" ],
[ "PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL", "CONST(MAX_PERFQUERY_COUNTER_DESC_LENGTH), extra_INTEL_performance_query" ],
[ "PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL", "CONST(PERFQUERY_HAVE_GPA_EXTENDED_COUNTERS), extra_INTEL_performance_query" ],
# GL_KHR_context_flush_control
[ "CONTEXT_RELEASE_BEHAVIOR", "CONTEXT_ENUM(Const.ContextReleaseBehavior), NO_EXTRA" ],
--
2.14.3
More information about the mesa-dev
mailing list