Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ryanneph/xserver
  • wjp/xserver
  • DemiMarie/xserver
  • alanc/xserver
  • uvas/xserver
  • cl91/xserver
  • heymiaoO/xserver
  • oreaus/xserver
  • miztake/xserver
  • stapelberg/xserver
  • PaulKocialkowski/xserver
  • CendioOssman/xserver
  • wiz/xserver
  • maos20008/xserver
  • dougvj/xserver
  • gldrk/xserver
  • TMR5454/xserver
  • cubanismo/xserver
  • agoins/xserver
  • kleinerm/xserver
  • zagursky/xserver
  • Kyawswat/xserver
  • hexiaodong/xserver
  • gilvbp/xserver
  • vliaskov/xserver
  • aarondill/xserver
  • zzyiwei/xserver
  • arichardson/xserver
  • jcherry/xserver
  • erwinou/xserver
  • nathankidd/xserver
  • jexposit/xserver
  • refi_64/xserver
  • kupper.pa/xserver
  • kbrenneman/xserver
  • thesamesam/xserver
  • metux/xserver
  • LickmeDown/xserver
  • meMuszr/xserver
  • Julia/xserver
  • twaik/xserver
  • fvalasiad/xserver
  • zzxyb/xserver
  • HermannSW/xserver
  • ekurzinger/xserver
  • NSUTanghaixiang/xserver
  • huxd1532/xserver
  • vinilokorlok/xserver
  • bbeckett/xserver
  • dslater38/xserver
  • emersion/xserver
  • zzag/xserver
  • ccullumbine2018/xserver
  • daniels/xserver
  • doraskayo/xserver
  • llandwerlin/xserver
  • XDXTHX/xserver
  • zboszor/xserver
  • jadahl/xserver
  • shadeslayer/xserver
  • ecurtin/xserver
  • pekdon/xserver
  • tomty89/xserver
  • russellcnv/xserver
  • orbea/xserver
  • lyudess/xserver
  • lucmann/xserver
  • tmlind/xserver
  • tholin/xserver
  • chema/xserver
  • J-Bu/xserver
  • chenhuacai/xserver
  • E5ten/xserver
  • haagch/xserver
  • whot/xserver
  • nacho.resa/xserver
  • strassek/xserver
  • tzimmermann/xserver
  • liyi42/xserver
  • YusufKhan-gamedev/xserver
  • mgorse1/xserver
  • iv-m/xserver
  • vanvugt/xserver
  • keithp/xserver
  • Rui511/xserver
  • catap/xserver
  • tjbp/xserver
  • webi123/xserver
  • djlucas/xserver
  • noblock/xserver
  • freemangordon/xserver
  • xdandys/xserver
  • afett/xserver
  • xexaxo/xserver
  • jbeich/xserver
  • zeising/xserver
  • romangg/xserver
  • mbiebl/xserver
  • pq/xserver
  • azhadchenko/xserver
  • manu/xserver
  • vsyrjala/xserver
  • Emantor/xserver
  • lostgoat/xserver
  • carlosg/xserver
  • yarivb/xserver
  • kwg/xserver
  • pichika/xserver
  • marv/xserver
  • jcristau/xserver
  • mntmn/xserver
  • klniu/xserver
  • TAAPArthur/xserver
  • sjoerd/xserver
  • Sjecai2/xserver
  • 3v1n0/xserver
  • awilfox/xserver
  • pkubaj/xserver
  • os369510/xserver
  • Gorg/xserver
  • Zamundaaa/xserver
  • lkundrak/xserver
  • niveditharau/xserver
  • ForTheReallys/xserver
  • jmonteiro/xserver
  • jocelyn/xserver
  • ThatMG393/xserver
  • fweimer/xserver
  • mlankhorst/xserver
  • dbn/xserver
  • jturney/xserver
  • mattrope/xserver
  • coypoop/xserver
  • schreibemirhalt/xserver
  • frog/xserver
  • mherrb/xserver
  • rarbab/xserver
  • yshui/xserver
  • muesli4/xserver
  • jannau/xserver
  • mikeroyal/xserver
  • andrebsguedes/xserver
  • JeffyCN/xserver
  • ipominov/xserver
  • gtrentalancia/xserver
  • lucyllewy/xserver
  • qarmin/xserver
  • tagr/xserver
  • zwenna/xserver
  • bkylerussell/xserver
  • mupuf/xserver
  • zubzub/xserver
  • galaxytgtabiday/xserver
  • OlCe/xserver
  • ashafer/xserver
  • dengbo/xserver
  • valpackett/xserver
  • andreyknyazev077/xserver
  • antonovitch/xserver
  • contactshashanksharma/xserver-fork-shashank
  • xorg/xserver
  • gsittyz/xserver
  • akihiko.odaki/xserver
  • sknsean/xserver
  • rnpnr/xserver
  • hitong602/xserver
  • halfline/xserver
  • ismailsiege/xserver
  • dongwonk/xserver
  • GermanAizek/xserver
  • FeepingCreature/xserver
  • Acidburn0zzz/xserver
  • mvlad/xserver
  • puleglot/xserver
  • smelenius/xserver
  • sewn/xserver
  • kaichuan.hsieh/xserver
  • Fatton1/xserver
  • aditj/xserver
  • SimonPilkington/xserver
  • adamdruppe/xserver
  • floppym/xserver
  • trevdave/xserver
  • headrush/xserver
  • luke-jr/xserver
  • davidriley/xserver
  • heitbaum/xserver
  • goosen78/xserver
  • Ma/xserver
  • gmbr3/xserver
  • tsutsui/xserver
  • sherrodejjohnson/xserver
  • ydc-dadada/xserver
  • wengxt/xserver
  • icenowy/xserver
  • denisfa/xserver
  • StarsGreen/xserver
  • adamjrichter/xserver
  • bigon/xserver
  • djacewicz/xserver
  • davidre/xserver
  • kylin0061/xserver
  • arrowd/xserver
  • p12tic/xserver
  • karlosrangel337/xserver
  • bbrezillon/xserver
  • penguin42/xserver
  • anarsoul/xserver
  • marvinjr35/xserver
  • gerddie/xserver
  • knisht/xserver
  • xry111/xserver
  • psyruss85/xserver
  • volkanorhan/xserver
  • luporl/xserver
  • cbur201592/xserver
  • bphaslett/xserver
  • guillem/xserver
  • haihao/xserver
  • zaps166/xserver
  • bentiss/xserver
  • rilian-la-te/xserver
  • wujiangGitHub/xserver
  • mrisaacb/xserver
  • ross/xserver
  • davidedmundson/xserver
  • topimiettinen/xserver
  • MisterDA/xserver
  • DPA/xserver
  • dkorkmazturk/xserver
  • karamjameelmoore/xserver
  • sthibaul/xserver
  • ydirson/xserver
  • lihongtao/xserver
  • RyzenDew/xserver
  • christian-rauch/xserver
  • Vivek/xserver
  • peigongdsd/xserver
  • peng.jin/xserver
  • dixler/xserver
  • mehdigh419/xserver
  • BBaoVanC/xserver
  • Drakulix/xserver
  • bafanahub/xserver
  • jengelh/xserver
  • yangxiaojuan-loongson/xserver
  • pepp/xserver
  • cgzones/xserver
  • luyn/xserver
  • ids1024/xserver
  • svalaskevicius/xserver
  • eschwartz/xserver
  • jayantpranjal0/xserver
  • hmazlan/xserver
  • kerneltoast/xserver
  • Michaelypk/xserver
  • dottedmag/xserver
  • hassoon1986/xserver
  • aplattner/xserver
  • sergiomb/xserver
  • looi/xserver
  • robclark/xserver
  • vitoux.pascal/xserver
  • kennylevinsen/xserver
  • Kishore409/xserver
  • msizanoen1/xserver
  • Daasin/xserver
  • xinbowang/xserver
  • mwei/xserver
  • SpikyCaterpillar1/xserver
  • devin11911191/xserver
  • alex-tu-cc/xserver
  • kaniini/xserver
  • alagner/xserver
  • jcourreges/xserver
  • n3rdopolis/xserver
  • cooperch/xserver
  • peterh/xserver
  • anholt/xserver
  • themaister/xserver
  • josch/xserver
  • jrtc27/xserver
  • JoseExposito/xserver
  • lanodan/xserver
  • Hi-Angel/xserver
  • City-busz/xserver
  • karolherbst/xserver
  • daenzer/xserver
  • dawnhan/xserver
  • avolkov/xserver
  • Tuetuopay/xserver
  • gabifalk/xserver
  • jeremyhu/xserver
  • road2react/xserver
  • 1480c1/xserver
  • Spintzyk/xserver
  • abono/xserver
  • ajax/xserver
  • dougg3/xserver
  • chenx_dust/xserver
  • ernstp/xserver
  • EXtremeExploit/xserver
  • starnight/xserver
  • dirbaio/xserver
  • jwrdegoede/xserver
  • vfjpl/xserver
  • acelan/xserver
  • airlied/xserver
  • justazarsky/xserver
  • sri-ka1ki/xserver
  • benpicco/xserver
  • kaocher82/xserver
  • rgfernandes/xserver
  • lynxeye/xserver
  • tintou/xserver
  • rmader/xserver
  • linkmauve/xserver
  • mattst88/xserver
  • kamarul6401/xserver
  • andy-zetier/xserver
  • bernhardu/xserver
  • causztic/xserver
  • cpmichael/modesetting
  • mwyraz/xserver
  • zhangyaning/xserver
  • olv/xserver
  • hongaoo/xserver
  • LiChenG-P/xserver
  • jsg/xserver
  • Ivaniku/x-taylan
  • dk/xserver
  • manuelcrack642/xserver
  • dkg/xserver
  • ofourdan/xserver
  • mahkoh/xserver
  • AkiSakurai/xserver
  • 1740301466jxz/xserver
  • ZhiJie.Zhang/xserver
  • chengbo7135/xserver
339 results
Show changes
Commits on Source (19)
Showing
with 118 additions and 67 deletions
......@@ -26,7 +26,7 @@ gcc-core,\
meson,\
ninja,\
pkg-config,\
python3,\
python38,\
windowsdriproto,\
xorgproto,\
libepoxy-devel,\
......@@ -58,10 +58,11 @@ libxcb-render-util-devel,\
libxcb-shape-devel,\
libxcb-util-devel,\
libxcb-xkb-devel,\
libxcvt-devel,\
libxkbfile-devel,\
font-util,\
khronos-opengl-registry,\
python3-lxml,\
python38-lxml,\
xkbcomp-devel,\
xkeyboard-config,\
xtrans"
......@@ -72,7 +73,7 @@ cache:
- '%CYGWIN_ROOT%\home\%USERNAME%\.ccache'
build_script:
- SET PATH=%CYGWIN_ROOT%/bin
- '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; meson setup --prefix=/usr -Dxv=false -Dxf86bigfont=true -Dxephyr=true -Dxnest=true -Dxvfb=true -Dxwin=true -Dxorg=true -Dhal=false -Dudev=false -Dpciaccess=false -Dint10=false build"'
- '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; meson setup --prefix=/usr -Dxv=false -Dxf86bigfont=true -Dxephyr=true -Dxnest=true -Dxvfb=true -Dxwin=true -Dxorg=true -Dpciaccess=false -Dint10=false -Dglamor=false build"'
- '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; meson configure build"'
- '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; ninja -C build"'
- '%CYGWIN_ROOT%/bin/bash -lc "cd $APPVEYOR_BUILD_FOLDER; ccache -s"'
......
......@@ -260,8 +260,8 @@ glamor_build_program(ScreenPtr screen,
char *fs_vars = NULL;
char *vs_vars = NULL;
char *vs_prog_string;
char *fs_prog_string;
char *vs_prog_string = NULL;
char *fs_prog_string = NULL;
GLint fs_prog, vs_prog;
Bool gpu_shader4 = FALSE;
......
......@@ -382,6 +382,17 @@ xf86VTLeave(void)
for (i = 0; i < xf86NumGPUScreens; i++)
xf86GPUScreens[i]->LeaveVT(xf86GPUScreens[i]);
if (systemd_logind_controls_session()) {
for (i = 0; i < xf86_num_platform_devices; i++) {
if (xf86_platform_devices[i].flags & XF86_PDEV_SERVER_FD) {
int major, minor;
major = xf86_platform_odev_attributes(i)->major;
minor = xf86_platform_odev_attributes(i)->minor;
systemd_logind_drop_master(major, minor);
}
}
}
if (!xf86VTSwitchAway())
goto switch_failed;
......
......@@ -55,7 +55,6 @@
#include "xf86Xinput.h"
#include "xf86InPriv.h"
#include "mivalidate.h"
#include "xf86Crtc.h"
/* For xf86GetClocks */
#if defined(CSRG_BASED) || defined(__GNU__)
......@@ -852,9 +851,8 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
{
MessageType from = X_DEFAULT;
xf86MonPtr DDC = (xf86MonPtr) (pScrn->monitor->DDC);
int probedWidthmm, probedHeightmm;
int ddcWidthmm, ddcHeightmm;
int widthErr, heightErr;
xf86OutputPtr compat = xf86CompatOutput(pScrn);
/* XXX Maybe there is no need for widthmm/heightmm in ScrnInfoRec */
pScrn->widthmm = pScrn->monitor->widthmm;
......@@ -864,15 +862,11 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
/* DDC gives display size in mm for individual modes,
* but cm for monitor
*/
probedWidthmm = DDC->features.hsize * 10; /* 10mm in 1cm */
probedHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
}
else if (compat && compat->mm_width > 0 && compat->mm_height > 0) {
probedWidthmm = compat->mm_width;
probedHeightmm = compat->mm_height;
ddcWidthmm = DDC->features.hsize * 10; /* 10mm in 1cm */
ddcHeightmm = DDC->features.vsize * 10; /* 10mm in 1cm */
}
else {
probedWidthmm = probedHeightmm = 0;
ddcWidthmm = ddcHeightmm = 0;
}
if (monitorResolution > 0) {
......@@ -898,15 +892,15 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
pScrn->widthmm, pScrn->heightmm);
/* Warn if config and probe disagree about display size */
if (probedWidthmm && probedHeightmm) {
if (ddcWidthmm && ddcHeightmm) {
if (pScrn->widthmm > 0) {
widthErr = abs(probedWidthmm - pScrn->widthmm);
widthErr = abs(ddcWidthmm - pScrn->widthmm);
}
else {
widthErr = 0;
}
if (pScrn->heightmm > 0) {
heightErr = abs(probedHeightmm - pScrn->heightmm);
heightErr = abs(ddcHeightmm - pScrn->heightmm);
}
else {
heightErr = 0;
......@@ -915,17 +909,17 @@ xf86SetDpi(ScrnInfoPtr pScrn, int x, int y)
/* Should include config file name for monitor here */
xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
"Probed monitor is %dx%d mm, using Displaysize %dx%d mm\n",
probedWidthmm, probedHeightmm, pScrn->widthmm,
ddcWidthmm, ddcHeightmm, pScrn->widthmm,
pScrn->heightmm);
}
}
}
else if (probedWidthmm && probedHeightmm) {
else if (ddcWidthmm && ddcHeightmm) {
from = X_PROBED;
xf86DrvMsg(pScrn->scrnIndex, from, "Display dimensions: (%d, %d) mm\n",
probedWidthmm, probedHeightmm);
pScrn->widthmm = probedWidthmm;
pScrn->heightmm = probedHeightmm;
ddcWidthmm, ddcHeightmm);
pScrn->widthmm = ddcWidthmm;
pScrn->heightmm = ddcHeightmm;
if (pScrn->widthmm > 0) {
pScrn->xDpi =
(int) ((double) pScrn->virtualX * MMPERINCH / pScrn->widthmm);
......
......@@ -85,6 +85,11 @@
#include <X11/extensions/dpmsconst.h>
#include "dpmsproc.h"
#endif
#ifdef __linux__
#include <linux/major.h>
#include <sys/sysmacros.h>
#endif
#include <hotplug.h>
void (*xf86OSPMClose) (void) = NULL;
......@@ -201,6 +206,17 @@ xf86PrivsElevated(void)
return PrivsElevated();
}
Bool
xf86HasTTYs(void)
{
#ifdef __linux__
struct stat tty0devAttributes;
return (stat("/dev/tty0", &tty0devAttributes) == 0 && major(tty0devAttributes.st_rdev) == TTY_MAJOR);
#else
return TRUE;
#endif
}
static void
xf86AutoConfigOutputDevices(void)
{
......@@ -425,7 +441,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
want_hw_access = TRUE;
/* Non-seat0 X servers should not open console */
if (!(flags & HW_SKIP_CONSOLE) && !ServerIsNotSeat0())
if (!(flags & HW_SKIP_CONSOLE) && !ServerIsNotSeat0() && xf86HasTTYs())
xorgHWOpenConsole = TRUE;
}
......
......@@ -158,6 +158,8 @@ extern _X_EXPORT Bool
xf86CallDriverProbe(struct _DriverRec *drv, Bool detect_only);
extern _X_EXPORT Bool
xf86PrivsElevated(void);
extern _X_EXPORT Bool
xf86HasTTYs(void);
#endif /* _NO_XF86_PROTOTYPES */
......
......@@ -1086,7 +1086,8 @@ ms_dri2_screen_init(ScreenPtr screen)
* guess that the DRI and VDPAU drivers have the same name.
*/
if (strcmp(driver_names[0], "i965") == 0 ||
strcmp(driver_names[0], "iris") == 0) {
strcmp(driver_names[0], "iris") == 0 ||
strcmp(driver_names[0], "crocus") == 0) {
driver_names[1] = "va_gl";
} else {
driver_names[1] = driver_names[0];
......
......@@ -3256,10 +3256,8 @@ xf86OutputSetEDID(xf86OutputPtr output, xf86MonPtr edid_mon)
free(output->MonInfo);
output->MonInfo = edid_mon;
if (edid_mon) {
output->mm_width = 0;
output->mm_height = 0;
}
output->mm_width = 0;
output->mm_height = 0;
if (debug_modes) {
xf86DrvMsg(scrn->scrnIndex, X_INFO, "EDID for output %s\n",
......
......@@ -806,12 +806,6 @@ xf86RandR12CreateScreenResources(ScreenPtr pScreen)
mmWidth = output->conf_monitor->mon_width;
mmHeight = output->conf_monitor->mon_height;
}
else if (output &&
(output->mm_width > 0 &&
output->mm_height > 0)) {
mmWidth = output->mm_width;
mmHeight = output->mm_height;
}
else {
/*
* Otherwise, just set the screen to DEFAULT_DPI
......
......@@ -38,6 +38,7 @@
#include "xf86.h"
#include "xf86platformBus.h"
#include "xf86Xinput.h"
#include "xf86Priv.h"
#include "globals.h"
#include "systemd-logind.h"
......@@ -302,6 +303,20 @@ cleanup:
dbus_error_free(&error);
}
/*
* Send a message to logind, to pause the drm device
* and ensure the drm_drop_master is done before
* VT_RELDISP when switching VT
*/
void systemd_logind_drop_master(int _major, int _minor)
{
struct systemd_logind_info *info = &logind_info;
dbus_int32_t major = _major;
dbus_int32_t minor = _minor;
systemd_logind_ack_pause(info, minor, major);
}
static DBusHandlerResult
message_filter(DBusConnection * connection, DBusMessage * message, void *data)
{
......@@ -393,14 +408,16 @@ message_filter(DBusConnection * connection, DBusMessage * message, void *data)
/* info->vt_active gets set by systemd_logind_vtenter() */
info->active = TRUE;
if (pdev)
if (pdev) {
pdev->flags &= ~XF86_PDEV_PAUSED;
else
systemd_logind_vtenter();
} else
systemd_logind_set_input_fd_for_all_devs(major, minor, fd,
info->vt_active);
/* Always call vtenter(), in case there are only legacy video devs */
systemd_logind_vtenter();
/* Always call vtenter(), only if there are only legacy video devs */
if (!xf86_num_platform_devices)
systemd_logind_vtenter();
}
return DBUS_HANDLER_RESULT_HANDLED;
}
......@@ -583,7 +600,7 @@ static struct dbus_core_hook core_hook = {
int
systemd_logind_init(void)
{
if (!ServerIsNotSeat0() && linux_parse_vt_settings(TRUE) && !linux_get_keeptty()) {
if (!ServerIsNotSeat0() && xf86HasTTYs() && linux_parse_vt_settings(TRUE) && !linux_get_keeptty()) {
LogMessage(X_INFO,
"systemd-logind: logind integration requires -keeptty and "
"-keeptty was not provided, disabling logind integration\n");
......
......@@ -691,12 +691,14 @@ xwl_glamor_eglstream_has_wl_interfaces(struct xwl_screen *xwl_screen)
xwl_eglstream_get(xwl_screen);
if (xwl_eglstream->display == NULL) {
ErrorF("glamor: 'wl_eglstream_display' not supported\n");
LogMessageVerb(X_INFO, 3,
"glamor: 'wl_eglstream_display' not supported\n");
return FALSE;
}
if (xwl_eglstream->controller == NULL) {
ErrorF("glamor: 'wl_eglstream_controller' not supported\n");
LogMessageVerb(X_INFO, 3,
"glamor: 'wl_eglstream_controller' not supported\n");
return FALSE;
}
......@@ -1079,7 +1081,7 @@ xwl_eglstream_get_device(struct xwl_screen *xwl_screen)
free(devices);
out:
if (!device)
ErrorF("glamor: No eglstream capable devices found\n");
LogMessageVerb(X_INFO, 3, "glamor: No eglstream capable devices found\n");
return device;
}
......
......@@ -835,7 +835,7 @@ xwl_glamor_gbm_has_wl_interfaces(struct xwl_screen *xwl_screen)
struct xwl_gbm_private *xwl_gbm = xwl_gbm_get(xwl_screen);
if (xwl_gbm->drm == NULL) {
ErrorF("glamor: 'wl_drm' not supported\n");
LogMessageVerb(X_INFO, 3, "glamor: 'wl_drm' not supported\n");
return FALSE;
}
......
......@@ -412,10 +412,12 @@ xwl_glamor_select_gbm_backend(struct xwl_screen *xwl_screen)
if (xwl_screen->gbm_backend.is_available &&
xwl_glamor_has_wl_interfaces(xwl_screen, &xwl_screen->gbm_backend)) {
xwl_screen->egl_backend = &xwl_screen->gbm_backend;
LogMessageVerb(X_INFO, 3, "glamor: Using GBM backend\n");
return TRUE;
}
else
ErrorF("Missing Wayland requirements for glamor GBM backend\n");
LogMessageVerb(X_INFO, 3,
"Missing Wayland requirements for glamor GBM backend\n");
#endif
return FALSE;
......@@ -428,10 +430,12 @@ xwl_glamor_select_eglstream_backend(struct xwl_screen *xwl_screen)
if (xwl_screen->eglstream_backend.is_available &&
xwl_glamor_has_wl_interfaces(xwl_screen, &xwl_screen->eglstream_backend)) {
xwl_screen->egl_backend = &xwl_screen->eglstream_backend;
LogMessageVerb(X_INFO, 3, "glamor: Using EGLStream backend\n");
return TRUE;
}
else
ErrorF("Missing Wayland requirements for glamor EGLStream backend\n");
LogMessageVerb(X_INFO, 3,
"Missing Wayland requirements for glamor EGLStream backend\n");
#endif
return FALSE;
......@@ -440,14 +444,10 @@ xwl_glamor_select_eglstream_backend(struct xwl_screen *xwl_screen)
void
xwl_glamor_select_backend(struct xwl_screen *xwl_screen, Bool use_eglstream)
{
if (use_eglstream) {
if (!xwl_glamor_select_eglstream_backend(xwl_screen))
if (!xwl_glamor_select_eglstream_backend(xwl_screen)) {
if (!use_eglstream)
xwl_glamor_select_gbm_backend(xwl_screen);
}
else {
if (!xwl_glamor_select_gbm_backend(xwl_screen))
xwl_glamor_select_eglstream_backend(xwl_screen);
}
}
Bool
......
......@@ -107,7 +107,11 @@ srcs_windows += [
'../../mi/miinitext.h',
]
rsrc = windows.compile_resources('XWin.rc', include_directories: include_directories('../../include/'))
rsrc = windows.compile_resources(
'XWin.rc',
include_directories: include_directories('../../include/'),
depend_files: ['XWin.exe.manifest', 'X.ico'],
)
srcs_windows += rsrc
flex = find_program('flex')
......
......@@ -28,6 +28,7 @@ srcs_xwinclip = [
executable(
'xwinclip',
srcs_xwinclip,
dependencies: dependency('xcb'),
link_with: xwin_clipboard,
link_args: ['-lgdi32', '-lpthread'],
install: true,
......
......@@ -247,6 +247,8 @@ conf_data.set('HAVE_LIBUNWIND', get_option('libunwind'))
conf_data.set('HAVE_APM', (build_apm or build_acpi) ? '1' : false)
conf_data.set('HAVE_ACPI', build_acpi ? '1' : false)
conf_data.set('DDXOSVERRORF', build_xwin ? '1' : false)
conf_data.set('DDXBEFORERESET', build_xwin ? '1' : false)
enable_debugging = get_option('buildtype') == 'debug'
conf_data.set('DEBUG', enable_debugging ? '1' : false)
......
......@@ -33,6 +33,7 @@ int systemd_logind_take_fd(int major, int minor, const char *path, Bool *paus);
void systemd_logind_release_fd(int major, int minor, int fd);
int systemd_logind_controls_session(void);
void systemd_logind_vtenter(void);
void systemd_logind_drop_master(int major, int minor);
#else
#define systemd_logind_init()
#define systemd_logind_fini()
......@@ -40,6 +41,7 @@ void systemd_logind_vtenter(void);
#define systemd_logind_release_fd(major, minor, fd) close(fd)
#define systemd_logind_controls_session() 0
#define systemd_logind_vtenter()
#define systemd_logind_drop_master(major, minor)
#endif
#endif
......@@ -3,7 +3,7 @@ project('xserver', 'c',
'buildtype=debugoptimized',
'c_std=gnu99',
],
version: '21.0.99.1',
version: '21.1.99.1',
meson_version: '>= 0.47.0',
)
release_date = '2021-07-05'
......@@ -11,10 +11,10 @@ release_date = '2021-07-05'
add_project_arguments('-DHAVE_DIX_CONFIG_H', language: ['c', 'objc'])
cc = meson.get_compiler('c')
add_global_arguments('-fno-strict-aliasing', language : 'c')
add_global_arguments('-fvisibility=hidden', language : 'c')
add_project_arguments('-fno-strict-aliasing', language : 'c')
add_project_arguments('-fvisibility=hidden', language : 'c')
add_global_link_arguments('-fvisibility=hidden', language : 'c')
add_project_link_arguments('-fvisibility=hidden', language : 'c')
if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
test_wflags = [
......@@ -58,7 +58,7 @@ foreach wflag: test_wflags
endif
endforeach
add_global_arguments(common_wflags, language : ['c', 'objc'])
add_project_arguments(common_wflags, language : ['c', 'objc'])
libdrm_req = '>= 2.4.89'
libselinux_req = '>= 2.0.86'
......@@ -194,7 +194,7 @@ if (host_machine.system() != 'darwin' and
endif
endif
xorgsdkdir = join_paths(get_option('prefix'), get_option('includedir'), 'xorg')
libxcvt_dep = dependency('libxcvt', required: build_xorg)
libxcvt_dep = dependency('libxcvt', fallback: ['libxcvt', 'libxcvt_dep'], required: build_xorg)
build_xwayland = false
if (host_machine.system() != 'darwin' and
......@@ -211,7 +211,7 @@ if (host_machine.system() != 'darwin' and
xwayland_dep = [
dependency('wayland-client', version: wayland_req, required: xwayland_required),
dependency('wayland-protocols', version: wayland_protocols_req, required: xwayland_required),
dependency('libxcvt', required: xwayland_required),
dependency('libxcvt', fallback: ['libxcvt', 'libxcvt_dep'], required: xwayland_required),
]
if build_glamor
......@@ -860,6 +860,13 @@ if build_xorg
sdkconfig.set('symbol_visibility', '-fvisibility=hidden')
sdkconfig.set('XORG_DRIVER_LIBS', '')
# On Windows, modules built with the SDK will need to link with server and
# module implibs to resolve symbols
if (host_machine.system() == 'cygwin' or
host_machine.system() == 'windows')
sdkconfig.set('XORG_DRIVER_LIBS', '-lXorg.exe -L\${moduledir} -lshadow -no-undefined')
endif
configure_file(
input: 'xorg-server.pc.in',
output: 'xorg-server.pc',
......
......@@ -2511,15 +2511,14 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req,
}
}
if ((req->present & XkbKeyTypesMask) &&
(!CheckKeyTypes(client, xkb, req, (xkbKeyTypeWireDesc **) &values,
&nTypes, mapWidths, doswap))) {
client->errorValue = nTypes;
return BadValue;
}
else {
if (!(req->present & XkbKeyTypesMask)) {
nTypes = xkb->map->num_types;
}
else if (!CheckKeyTypes(client, xkb, req, (xkbKeyTypeWireDesc **) &values,
&nTypes, mapWidths, doswap)) {
client->errorValue = nTypes;
return BadValue;
}
/* symsPerKey/mapWidths must be filled regardless of client-side flags */
map = &xkb->map->key_sym_map[xkb->min_key_code];
......