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:
committed by
Marge Bot
parent
479f778a2c
commit
5edfc64858
+2
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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 */
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user