dri3: Clamp to 1.0 if not all screens support 1.2
Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
parent
352a5ac87f
commit
19d006ee3d
|
@ -32,6 +32,17 @@
|
||||||
#include <protocol-versions.h>
|
#include <protocol-versions.h>
|
||||||
#include <drm_fourcc.h>
|
#include <drm_fourcc.h>
|
||||||
|
|
||||||
|
static Bool
|
||||||
|
dri3_screen_can_one_point_two(ScreenPtr screen)
|
||||||
|
{
|
||||||
|
dri3_screen_priv_ptr dri3 = dri3_screen_priv(screen);
|
||||||
|
|
||||||
|
if (dri3 && dri3->info && dri3->info->version >= 2)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
proc_dri3_query_version(ClientPtr client)
|
proc_dri3_query_version(ClientPtr client)
|
||||||
{
|
{
|
||||||
|
@ -45,6 +56,21 @@ proc_dri3_query_version(ClientPtr client)
|
||||||
};
|
};
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xDRI3QueryVersionReq);
|
REQUEST_SIZE_MATCH(xDRI3QueryVersionReq);
|
||||||
|
|
||||||
|
for (int i = 0; i < screenInfo.numScreens; i++) {
|
||||||
|
if (!dri3_screen_can_one_point_two(screenInfo.screens[i])) {
|
||||||
|
rep.minorVersion = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < screenInfo.numGPUScreens; i++) {
|
||||||
|
if (!dri3_screen_can_one_point_two(screenInfo.gpuscreens[i])) {
|
||||||
|
rep.minorVersion = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* From DRI3 proto:
|
/* From DRI3 proto:
|
||||||
*
|
*
|
||||||
* The client sends the highest supported version to the server
|
* The client sends the highest supported version to the server
|
||||||
|
|
Loading…
Reference in New Issue