mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-20 13:10:24 +01:00
glx: unify renderer query hooks
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30619>
This commit is contained in:
parent
479f778a2c
commit
5edfc64858
8 changed files with 17 additions and 110 deletions
|
|
@ -666,8 +666,8 @@ dri2_get_driver_name(struct glx_screen *glx_screen)
|
|||
static const struct glx_screen_vtable dri2_screen_vtable = {
|
||||
.create_context = dri_common_create_context,
|
||||
.create_context_attribs = dri_create_context_attribs,
|
||||
.query_renderer_integer = dri2_query_renderer_integer,
|
||||
.query_renderer_string = dri2_query_renderer_string,
|
||||
.query_renderer_integer = glx_dri_query_renderer_integer,
|
||||
.query_renderer_string = glx_dri_query_renderer_string,
|
||||
.get_driver_name = dri2_get_driver_name,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -52,14 +52,6 @@ struct dri2_screen {
|
|||
int show_fps_interval;
|
||||
};
|
||||
|
||||
_X_HIDDEN int
|
||||
dri2_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
unsigned int *value);
|
||||
|
||||
_X_HIDDEN int
|
||||
dri2_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
const char **value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -507,8 +507,8 @@ dri3_get_driver_name(struct glx_screen *glx_screen)
|
|||
static const struct glx_screen_vtable dri3_screen_vtable = {
|
||||
.create_context = dri_common_create_context,
|
||||
.create_context_attribs = dri_create_context_attribs,
|
||||
.query_renderer_integer = dri3_query_renderer_integer,
|
||||
.query_renderer_string = dri3_query_renderer_string,
|
||||
.query_renderer_integer = glx_dri_query_renderer_integer,
|
||||
.query_renderer_string = glx_dri_query_renderer_string,
|
||||
.get_driver_name = dri3_get_driver_name,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -99,11 +99,3 @@ struct dri3_drawable {
|
|||
uint64_t previous_ust;
|
||||
unsigned frames;
|
||||
};
|
||||
|
||||
_X_HIDDEN int
|
||||
dri3_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
unsigned int *value);
|
||||
|
||||
_X_HIDDEN int
|
||||
dri3_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
const char **value);
|
||||
|
|
|
|||
|
|
@ -102,6 +102,12 @@ dri_create_context_attribs(struct glx_screen *base,
|
|||
unsigned num_attribs,
|
||||
const uint32_t *attribs,
|
||||
unsigned *error);
|
||||
_X_HIDDEN int
|
||||
glx_dri_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
unsigned int *value);
|
||||
_X_HIDDEN int
|
||||
glx_dri_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
const char **value);
|
||||
#endif /* GLX_DIRECT_RENDERING */
|
||||
|
||||
#endif /* _DRI_COMMON_H */
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#endif
|
||||
#include "drisw_priv.h"
|
||||
#include "dri_util.h"
|
||||
#include "dri_common.h"
|
||||
|
||||
#define __RENDERER(attrib) \
|
||||
{ GLX_RENDERER_##attrib##_MESA, __DRI2_RENDERER_##attrib }
|
||||
|
|
@ -79,12 +80,10 @@ dri_convert_context_profile_bits(int attribute, unsigned int *value)
|
|||
}
|
||||
|
||||
_X_HIDDEN int
|
||||
dri2_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
glx_dri_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
unsigned int *value)
|
||||
{
|
||||
int ret;
|
||||
struct dri2_screen *const psc = (struct dri2_screen *) base;
|
||||
|
||||
/* Even though there are invalid values (and
|
||||
* dri2_convert_glx_query_renderer_attribs may return -1), the higher level
|
||||
* GLX code is required to perform the filtering. Assume that we got a
|
||||
|
|
@ -92,98 +91,23 @@ dri2_query_renderer_integer(struct glx_screen *base, int attribute,
|
|||
*/
|
||||
const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
|
||||
|
||||
ret = dri_query_renderer_integer(psc->driScreen, dri_attribute, value);
|
||||
ret = dri_query_renderer_integer(base->frontend_screen, dri_attribute, value);
|
||||
dri_convert_context_profile_bits(attribute, value);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
_X_HIDDEN int
|
||||
dri2_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
glx_dri_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
const char **value)
|
||||
{
|
||||
struct dri2_screen *const psc = (struct dri2_screen *) base;
|
||||
|
||||
/* Even though queryString only accepts a subset of the possible GLX
|
||||
* queries, the higher level GLX code is required to perform the filtering.
|
||||
* Assume that we got a good value.
|
||||
*/
|
||||
const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
|
||||
|
||||
return dri_query_renderer_string(psc->driScreen, dri_attribute, value);
|
||||
return dri_query_renderer_string(base->frontend_screen, dri_attribute, value);
|
||||
}
|
||||
|
||||
#if defined(HAVE_DRI3)
|
||||
_X_HIDDEN int
|
||||
dri3_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
unsigned int *value)
|
||||
{
|
||||
int ret;
|
||||
struct dri3_screen *const psc = (struct dri3_screen *) base;
|
||||
|
||||
/* Even though there are invalid values (and
|
||||
* dri2_convert_glx_query_renderer_attribs may return -1), the higher level
|
||||
* GLX code is required to perform the filtering. Assume that we got a
|
||||
* good value.
|
||||
*/
|
||||
const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
|
||||
|
||||
ret = dri_query_renderer_integer(psc->driScreenRenderGPU, dri_attribute, value);
|
||||
dri_convert_context_profile_bits(attribute, value);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
_X_HIDDEN int
|
||||
dri3_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
const char **value)
|
||||
{
|
||||
struct dri3_screen *const psc = (struct dri3_screen *) base;
|
||||
|
||||
/* Even though queryString only accepts a subset of the possible GLX
|
||||
* queries, the higher level GLX code is required to perform the filtering.
|
||||
* Assume that we got a good value.
|
||||
*/
|
||||
const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
|
||||
|
||||
return dri_query_renderer_string(psc->driScreenRenderGPU, dri_attribute, value);
|
||||
}
|
||||
#endif /* HAVE_DRI3 */
|
||||
|
||||
_X_HIDDEN int
|
||||
drisw_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
unsigned int *value)
|
||||
{
|
||||
int ret;
|
||||
struct drisw_screen *const psc = (struct drisw_screen *) base;
|
||||
|
||||
/* Even though there are invalid values (and
|
||||
* dri2_convert_glx_query_renderer_attribs may return -1), the higher level
|
||||
* GLX code is required to perform the filtering. Assume that we got a
|
||||
* good value.
|
||||
*/
|
||||
const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
|
||||
|
||||
ret = dri_query_renderer_integer(psc->driScreen, dri_attribute, value);
|
||||
dri_convert_context_profile_bits(attribute, value);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
_X_HIDDEN int
|
||||
drisw_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
const char **value)
|
||||
{
|
||||
struct drisw_screen *const psc = (struct drisw_screen *) base;
|
||||
|
||||
/* Even though queryString only accepts a subset of the possible GLX
|
||||
* queries, the higher level GLX code is required to perform the filtering.
|
||||
* Assume that we got a good value.
|
||||
*/
|
||||
const int dri_attribute = dri2_convert_glx_query_renderer_attribs(attribute);
|
||||
|
||||
return dri_query_renderer_string(psc->driScreen, dri_attribute, value);
|
||||
}
|
||||
|
||||
|
||||
#endif /* GLX_DIRECT_RENDERING */
|
||||
|
|
|
|||
|
|
@ -599,8 +599,8 @@ drisw_get_driver_name(struct glx_screen *glx_screen)
|
|||
static const struct glx_screen_vtable drisw_screen_vtable = {
|
||||
.create_context = dri_common_create_context,
|
||||
.create_context_attribs = dri_create_context_attribs,
|
||||
.query_renderer_integer = drisw_query_renderer_integer,
|
||||
.query_renderer_string = drisw_query_renderer_string,
|
||||
.query_renderer_integer = glx_dri_query_renderer_integer,
|
||||
.query_renderer_string = glx_dri_query_renderer_string,
|
||||
.get_driver_name = drisw_get_driver_name,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -57,11 +57,4 @@ struct drisw_drawable
|
|||
int swapInterval;
|
||||
};
|
||||
|
||||
_X_HIDDEN int
|
||||
drisw_query_renderer_integer(struct glx_screen *base, int attribute,
|
||||
unsigned int *value);
|
||||
_X_HIDDEN int
|
||||
drisw_query_renderer_string(struct glx_screen *base, int attribute,
|
||||
const char **value);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue