dri: move driQueryRendererIntegerCommon near its one caller

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16377>
This commit is contained in:
Adam Jackson 2022-05-06 14:11:04 -04:00 committed by Marge Bot
parent 6c546ece69
commit 4873b13aec
3 changed files with 72 additions and 74 deletions

View File

@ -8,6 +8,78 @@
#include "dri_query_renderer.h"
#include "pipe-loader/pipe_loader.h"
/**
* Implement queries for values that are common across all Mesa drivers
*
* Currently only the following queries are supported by this function:
*
* - \c __DRI2_RENDERER_VERSION
* - \c __DRI2_RENDERER_PREFERRED_PROFILE
* - \c __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION
* - \c __DRI2_RENDERER_OPENGL_COMPATIBLITY_PROFILE_VERSION
* - \c __DRI2_RENDERER_ES_PROFILE_VERSION
* - \c __DRI2_RENDERER_ES2_PROFILE_VERSION
* - \c __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT
*
* \returns
* Zero if a recognized value of \c param is supplied, -1 otherwise.
*/
static int
driQueryRendererIntegerCommon(__DRIscreen *psp, int param, unsigned int *value)
{
switch (param) {
case __DRI2_RENDERER_VERSION: {
static const char *const ver = PACKAGE_VERSION;
char *endptr;
int v[3];
v[0] = strtol(ver, &endptr, 10);
assert(endptr[0] == '.');
if (endptr[0] != '.')
return -1;
v[1] = strtol(endptr + 1, &endptr, 10);
assert(endptr[0] == '.');
if (endptr[0] != '.')
return -1;
v[2] = strtol(endptr + 1, &endptr, 10);
value[0] = v[0];
value[1] = v[1];
value[2] = v[2];
return 0;
}
case __DRI2_RENDERER_PREFERRED_PROFILE:
value[0] = (psp->max_gl_core_version != 0)
? (1U << __DRI_API_OPENGL_CORE) : (1U << __DRI_API_OPENGL);
return 0;
case __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION:
value[0] = psp->max_gl_core_version / 10;
value[1] = psp->max_gl_core_version % 10;
return 0;
case __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION:
value[0] = psp->max_gl_compat_version / 10;
value[1] = psp->max_gl_compat_version % 10;
return 0;
case __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION:
value[0] = psp->max_gl_es1_version / 10;
value[1] = psp->max_gl_es1_version % 10;
return 0;
case __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION:
value[0] = psp->max_gl_es2_version / 10;
value[1] = psp->max_gl_es2_version % 10;
return 0;
case __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT:
value[0] = GL_TRUE;
return 0;
default:
break;
}
return -1;
}
static int
dri2_query_renderer_integer(__DRIscreen *_screen, int param,
unsigned int *value)

View File

@ -491,74 +491,3 @@ driIndexConfigAttrib(const __DRIconfig *config, int index,
return GL_FALSE;
}
/**
* Implement queries for values that are common across all Mesa drivers
*
* Currently only the following queries are supported by this function:
*
* - \c __DRI2_RENDERER_VERSION
* - \c __DRI2_RENDERER_PREFERRED_PROFILE
* - \c __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION
* - \c __DRI2_RENDERER_OPENGL_COMPATIBLITY_PROFILE_VERSION
* - \c __DRI2_RENDERER_ES_PROFILE_VERSION
* - \c __DRI2_RENDERER_ES2_PROFILE_VERSION
* - \c __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT
*
* \returns
* Zero if a recognized value of \c param is supplied, -1 otherwise.
*/
int
driQueryRendererIntegerCommon(__DRIscreen *psp, int param, unsigned int *value)
{
switch (param) {
case __DRI2_RENDERER_VERSION: {
static const char *const ver = PACKAGE_VERSION;
char *endptr;
int v[3];
v[0] = strtol(ver, &endptr, 10);
assert(endptr[0] == '.');
if (endptr[0] != '.')
return -1;
v[1] = strtol(endptr + 1, &endptr, 10);
assert(endptr[0] == '.');
if (endptr[0] != '.')
return -1;
v[2] = strtol(endptr + 1, &endptr, 10);
value[0] = v[0];
value[1] = v[1];
value[2] = v[2];
return 0;
}
case __DRI2_RENDERER_PREFERRED_PROFILE:
value[0] = (psp->max_gl_core_version != 0)
? (1U << __DRI_API_OPENGL_CORE) : (1U << __DRI_API_OPENGL);
return 0;
case __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION:
value[0] = psp->max_gl_core_version / 10;
value[1] = psp->max_gl_core_version % 10;
return 0;
case __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION:
value[0] = psp->max_gl_compat_version / 10;
value[1] = psp->max_gl_compat_version % 10;
return 0;
case __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION:
value[0] = psp->max_gl_es1_version / 10;
value[1] = psp->max_gl_es1_version % 10;
return 0;
case __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION:
value[0] = psp->max_gl_es2_version / 10;
value[1] = psp->max_gl_es2_version % 10;
return 0;
case __DRI2_RENDERER_HAS_NO_ERROR_CONTEXT:
value[0] = GL_TRUE;
return 0;
default:
break;
}
return -1;
}

View File

@ -55,7 +55,4 @@ int
driIndexConfigAttrib(const __DRIconfig *config, int index,
unsigned int *attrib, unsigned int *value);
int
driQueryRendererIntegerCommon(__DRIscreen *psp, int param, unsigned int *value);
#endif /* DRI_DEBUG_H */