weston/src/Makefile.am
Ander Conselvan de Oliveira 95eb3a2eb4 compositor-drm: Don't page flip before a mode is set
The function drm_output_start_repaint_loop() unconditionally issues a
page flip, even if the crtc for that output has not been enabled yet.
That causes the page flip to fail, and drm_output_repaint() is never
called.

Solve this by bypassing the initial page flip if the output needs a
mode set.

This has the caveat of affecting latency predictability for that first
frame and when a "driver" mode fullscreen surface causes a mode set.
However, on both cases the mode set would take an unpredictable amount
of time anyway.

https://bugs.freedesktop.org/show_bug.cgi?id=63812
https://bugs.freedesktop.org/show_bug.cgi?id=64183
2013-05-14 10:21:54 -04:00

303 lines
7.5 KiB
Makefile

bin_PROGRAMS = weston \
$(weston_launch)
AM_CPPFLAGS = \
-I$(top_srcdir)/shared \
-DDATADIR='"$(datadir)"' \
-DMODULEDIR='"$(moduledir)"' \
-DLIBEXECDIR='"$(libexecdir)"' \
-DIN_WESTON
weston_LDFLAGS = -export-dynamic
weston_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS) $(LIBUNWIND_CFLAGS)
weston_LDADD = $(COMPOSITOR_LIBS) $(LIBUNWIND_LIBS) \
$(DLOPEN_LIBS) -lm ../shared/libshared.la
weston_SOURCES = \
git-version.h \
log.c \
compositor.c \
compositor.h \
input.c \
data-device.c \
filter.c \
filter.h \
screenshooter.c \
screenshooter-protocol.c \
screenshooter-server-protocol.h \
clipboard.c \
text-cursor-position-protocol.c \
text-cursor-position-server-protocol.h \
zoom.c \
text-backend.c \
text-protocol.c \
text-server-protocol.h \
input-method-protocol.c \
input-method-server-protocol.h \
workspaces-protocol.c \
workspaces-server-protocol.h \
subsurface-protocol.c \
subsurface-server-protocol.h \
bindings.c \
animation.c \
gl-renderer.h \
noop-renderer.c \
pixman-renderer.c \
pixman-renderer.h \
../shared/matrix.c \
../shared/matrix.h \
weston-launch.h \
weston-egl-ext.h
if ENABLE_EGL
weston_SOURCES += \
gl-renderer.c
endif
git-version.h : .FORCE
$(AM_V_GEN)(echo "#define BUILD_ID \"$(shell git --git-dir=$(top_srcdir)/.git describe --always --dirty) $(shell git --git-dir=$(top_srcdir)/.git log -1 --format='%s (%ci)')\"" > $@-new; \
cmp -s $@ $@-new || cp $@-new $@; \
rm $@-new)
.FORCE :
if ENABLE_XWAYLAND
SUBDIRS = xwayland
endif
DIST_SUBDIRS = xwayland
if BUILD_WESTON_LAUNCH
weston_launch = weston-launch
weston_launch_SOURCES = weston-launch.c weston-launch.h
weston_launch_CFLAGS= $(GCC_CFLAGS)
weston_launch_CPPFLAGS = $(WESTON_LAUNCH_CFLAGS) $(SYSTEMD_LOGIN_CFLAGS) \
-DBINDIR='"$(bindir)"'
weston_launch_LDADD = $(WESTON_LAUNCH_LIBS) $(SYSTEMD_LOGIN_LIBS)
if ENABLE_SETUID_INSTALL
install-exec-hook:
chown root $(DESTDIR)$(bindir)/weston-launch
chmod u+s $(DESTDIR)$(bindir)/weston-launch
endif
endif # BUILD_WESTON_LAUNCH
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = weston.pc
westonincludedir = $(includedir)/weston
westoninclude_HEADERS = \
version.h \
compositor.h \
../shared/matrix.h \
../shared/config-parser.h
moduledir = $(libdir)/weston
module_LTLIBRARIES = \
$(desktop_shell) \
$(tablet_shell) \
$(cms_static) \
$(cms_colord) \
$(x11_backend) \
$(drm_backend) \
$(wayland_backend) \
$(headless_backend) \
$(fbdev_backend) \
$(rdp_backend)
noinst_LTLIBRARIES =
if INSTALL_RPI_COMPOSITOR
module_LTLIBRARIES += $(rpi_backend)
else
noinst_LTLIBRARIES += $(rpi_backend)
endif
if ENABLE_X11_COMPOSITOR
x11_backend = x11-backend.la
x11_backend_la_LDFLAGS = -module -avoid-version
x11_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(X11_COMPOSITOR_LIBS) \
../shared/libshared-cairo.la
x11_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(PIXMAN_CFLAGS) \
$(CAIRO_CFLAGS) \
$(X11_COMPOSITOR_CFLAGS) \
$(GCC_CFLAGS)
x11_backend_la_SOURCES = compositor-x11.c
endif
if ENABLE_DRM_COMPOSITOR
drm_backend = drm-backend.la
drm_backend_la_LDFLAGS = -module -avoid-version
drm_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(DRM_COMPOSITOR_LIBS) \
../shared/libshared.la -lrt
drm_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(DRM_COMPOSITOR_CFLAGS) \
$(GCC_CFLAGS)
drm_backend_la_SOURCES = \
compositor-drm.c \
tty.c \
udev-seat.c \
udev-seat.h \
evdev.c \
evdev.h \
evdev-touchpad.c \
launcher-util.c \
launcher-util.h \
libbacklight.c \
libbacklight.h
endif
if ENABLE_WAYLAND_COMPOSITOR
wayland_backend = wayland-backend.la
wayland_backend_la_LDFLAGS = -module -avoid-version
wayland_backend_la_LIBADD = $(COMPOSITOR_LIBS) $(WAYLAND_COMPOSITOR_LIBS) \
../shared/libshared-cairo.la
wayland_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(PIXMAN_CFLAGS) \
$(CAIRO_CFLAGS) \
$(WAYLAND_COMPOSITOR_CFLAGS) \
$(GCC_CFLAGS)
wayland_backend_la_SOURCES = compositor-wayland.c
endif
if ENABLE_RPI_COMPOSITOR
rpi_backend = rpi-backend.la
rpi_backend_la_LDFLAGS = -module -avoid-version
rpi_backend_la_LIBADD = $(COMPOSITOR_LIBS) \
$(RPI_COMPOSITOR_LIBS) \
$(RPI_BCM_HOST_LIBS) \
../shared/libshared.la
rpi_backend_la_CFLAGS = \
$(GCC_CFLAGS) \
$(COMPOSITOR_CFLAGS) \
$(RPI_COMPOSITOR_CFLAGS) \
$(RPI_BCM_HOST_CFLAGS)
rpi_backend_la_SOURCES = \
compositor-rpi.c \
rpi-bcm-stubs.h \
tty.c \
evdev.c \
evdev.h \
evdev-touchpad.c
endif
if ENABLE_HEADLESS_COMPOSITOR
headless_backend = headless-backend.la
headless_backend_la_LDFLAGS = -module -avoid-version
headless_backend_la_LIBADD = $(COMPOSITOR_LIBS) \
../shared/libshared.la
headless_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(GCC_CFLAGS)
headless_backend_la_SOURCES = compositor-headless.c
endif
if ENABLE_FBDEV_COMPOSITOR
fbdev_backend = fbdev-backend.la
fbdev_backend_la_LDFLAGS = -module -avoid-version
fbdev_backend_la_LIBADD = \
$(COMPOSITOR_LIBS) \
$(FBDEV_COMPOSITOR_LIBS) \
../shared/libshared.la
fbdev_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(FBDEV_COMPOSITOR_CFLAGS) \
$(PIXMAN_CFLAGS) \
$(GCC_CFLAGS)
fbdev_backend_la_SOURCES = \
compositor-fbdev.c \
tty.c \
udev-seat.c \
udev-seat.h \
evdev.c \
evdev.h \
evdev-touchpad.c \
launcher-util.c
endif
if ENABLE_RDP_COMPOSITOR
rdp_backend = rdp-backend.la
rdp_backend_la_LDFLAGS = -module -avoid-version
rdp_backend_la_LIBADD = $(COMPOSITOR_LIBS) \
$(RDP_COMPOSITOR_LIBS) \
../shared/libshared.la
rdp_backend_la_CFLAGS = \
$(COMPOSITOR_CFLAGS) \
$(RDP_COMPOSITOR_CFLAGS) \
$(GCC_CFLAGS)
rdp_backend_la_SOURCES = compositor-rdp.c
endif
if ENABLE_DESKTOP_SHELL
desktop_shell = desktop-shell.la
desktop_shell_la_LDFLAGS = -module -avoid-version
desktop_shell_la_LIBADD = $(COMPOSITOR_LIBS) \
../shared/libshared.la
desktop_shell_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS)
desktop_shell_la_SOURCES = \
shell.c \
desktop-shell-protocol.c \
desktop-shell-server-protocol.h
endif
if ENABLE_TABLET_SHELL
tablet_shell = tablet-shell.la
tablet_shell_la_LDFLAGS = -module -avoid-version
tablet_shell_la_LIBADD = $(COMPOSITOR_LIBS)
tablet_shell_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS)
tablet_shell_la_SOURCES = \
tablet-shell.c \
tablet-shell-protocol.c \
tablet-shell-server-protocol.h
endif
if HAVE_LCMS
cms_static = cms-static.la
cms_static_la_LDFLAGS = -module -avoid-version
cms_static_la_LIBADD = $(COMPOSITOR_LIBS) $(LCMS_LIBS) ../shared/libshared.la
cms_static_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS) $(LCMS_CFLAGS)
cms_static_la_SOURCES = \
cms-static.c \
cms-helper.c \
cms-helper.h
if ENABLE_COLORD
cms_colord = cms-colord.la
cms_colord_la_LDFLAGS = -module -avoid-version
cms_colord_la_LIBADD = $(COMPOSITOR_LIBS) $(COLORD_LIBS)
cms_colord_la_CFLAGS = $(GCC_CFLAGS) $(COMPOSITOR_CFLAGS) $(COLORD_CFLAGS)
cms_colord_la_SOURCES = \
cms-colord.c \
cms-helper.c \
cms-helper.h
endif
endif
BUILT_SOURCES = \
screenshooter-server-protocol.h \
screenshooter-protocol.c \
text-cursor-position-server-protocol.h \
text-cursor-position-protocol.c \
tablet-shell-protocol.c \
tablet-shell-server-protocol.h \
desktop-shell-protocol.c \
desktop-shell-server-protocol.h \
text-protocol.c \
text-server-protocol.h \
input-method-protocol.c \
input-method-server-protocol.h \
workspaces-server-protocol.h \
workspaces-protocol.c \
subsurface-server-protocol.h \
subsurface-protocol.c \
git-version.h
CLEANFILES = $(BUILT_SOURCES)
@wayland_scanner_rules@