Commit Graph

59 Commits

Author SHA1 Message Date
Kristian Høgsberg
191454e6c2 compositor: Rename scanout surfaces
Let's call the surface that's about to be pageflipped 'pending' and the
one we're currently showing 'scanout'.
2011-10-24 13:25:17 -04:00
Benjamin Franzke
02dee2caad compositor-drm: Fix invalid usage of udev ressources
The reference returned by udev_list_entry_get_name is
only valid until udev_enumerate_unref is called.
Call unref after the last usage of such.
2011-10-07 10:00:11 +02:00
Benjamin Franzke
a764ee5158 compositor-drm: Enumerate only cards with name card*
To exclude /dev/dri/controlD* from the enumeration.
2011-10-07 09:57:50 +02:00
Benjamin Franzke
439d98697a compositor-drm: Be patient when output creation fails
Do not fail if e.g. only one of 3 connectors cant be enabled.
Could be that we just have not enough crtcs available.
2011-10-07 09:56:54 +02:00
Kristian Høgsberg
96aa7da24a Change remaining GPLv2 headers to MIT
The files in question are copyright Benjamin Franzke (who agrees),
Intel Corporation, Red Hat and myself.  On behalf of Red Hat,
Richard Fontana says:

   "Therefore, to the extent that Red Hat, Inc. has any copyright
    interest in the files you cited as of this date (compositor-drm.c,
    compositor.c, compositor.h, screenshooter.c in
    http://cgit.freedesktop.org/wayland/wayland-demos/tree/compositor),
    Red Hat hereby elects to apply the CC0 1.0 Universal Public Domain
    Dedication to such copyrighted material.  See:
    http://creativecommons.org/publicdomain/zero/1.0/legalcode .

    Thanks,
    Richard E. Fontana
    Open Source Licensing and Patent Counsel
    Red Hat, Inc."
2011-09-19 17:29:24 -04:00
Tiago Vignatti
faee80196f compositor: choose tty from command line
This is a backend option, so you should use something like '-otty='.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-09-01 16:07:07 -04:00
Benjamin Franzke
91eacca38b Remove egl display type setenv hack
No longer needed with mesa 7.12-devel egl display autodetection.
2011-08-31 16:25:18 -04:00
Benjamin Franzke
48c4ea2dbd compositor-drm: Merge drm_output_destroy and destroy_output 2011-08-31 16:24:27 -04:00
Benjamin Franzke
117483daaa compositor-drm: Coding style fixes
- Reformat indentation and 80-column wrap
 - Use output->base rather than output_base
 - Remove traling space
2011-08-31 16:24:25 -04:00
Matt Roper
361d2ade02 Update compositor shutdown code
Adds a general wlsc_compositor_shutdown() function that all output
backends call when shutting down.  wlsc_compositor_shutdown() will call
a new 'destroy' method of each output to perform backend-specific
cleanup (e.g., turning off the hardware cursor in the DRM compositor).

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
2011-08-29 17:12:27 -04:00
Matt Roper
045037e005 Turn off hardware cursors on VT switch before dropping DRM master.
The DRM cursor ioctl requires DRM master.  We shouldn't drop
master until after we're done turning off the hardware cursors
for a VT switch.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
2011-08-27 12:10:19 -04:00
Ander Conselvan de Oliveira
90bc9e6532 compositor-drm: Fix compilation error caused by typo. 2011-08-17 09:30:16 -04:00
Ander Conselvan de Oliveira
c483917512 compositor-drm: Make unused parts of the cursor image transparent
The bo for the cursor image is always created with size 64x64 even if
the actual cursor image is smaller than that. If this memory is not
initialized, random data can create artifacts near the cursor.

Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
2011-08-16 21:32:54 -04:00
Benjamin Franzke
9eaee35613 compositor-drm: Ignore disconnected connectors width
- Fixes segfault, if first enumerated connector is not connected.
- Corrects x-offset where e.g. the 2. of 3 connectors is not connected.
  (where width of 1. output would have taken twice as
   offset for output at 3. connector)
2011-08-12 10:17:12 -04:00
Kristian Høgsberg
86ec8e80d8 compositor: Use systemd seats for input devices as well 2011-07-19 16:10:11 -07:00
Kristian Høgsberg
8d51f141ca compositor: Use systemd seat configuration conventions
http://www.freedesktop.org/wiki/Software/systemd/multiseat
2011-07-15 21:28:38 -04:00
Kristian Høgsberg
6244668cc5 compositor-drm: Drop cursor debug message 2011-07-15 17:26:34 -04:00
Benjamin Franzke
a8bdeae1b6 compositor: Fix cursor damaging on multi head
Removing cursors from the surface list,
for usage as hardware cursor needs lower damaging.

Also damge when re-adding to the surface list.
2011-07-01 15:51:41 -04:00
Benjamin Franzke
a16e002bd8 compositor-drm: Pass physical size to output_init 2011-06-24 11:57:06 +02:00
Benjamin Franzke
060cf805bb Use gbm for compositor-{drm,openwfd} 2011-06-23 21:25:37 +02:00
Kristian Høgsberg
8f0ce05f52 compositor: Send out more detailed output events 2011-06-21 11:16:58 -04:00
Egbert Eich
e7b8d9055e compositor: Set EGL_PLATFORM env variable for each backend.
I may have missed something, but - since the Wayland compositor
already picks a platform backend, opens a connection and initializes the
backend specific display data structure it doesn't make sense
to let egl pick a platform. If it picks a different one the
display specific data structure will most likely not match.
Thus determine the platform in the Wayland rendering backend by setting
the EGL_PLATFORM env variable.
For the client any other platform than 'wayland' doesn't seem to make
sense.
I'm not sure if I've got the the platform ofr openfwd right.

Signed-off-by: Egbert Eich <eich@freedesktop.org>
2011-05-10 16:42:08 -04:00
Kristian Høgsberg
d8e181bd3f compositor-drm: Hide hw cursors on vt switch 2011-05-06 15:38:28 -04:00
Kristian Høgsberg
9396fc515b compositor-drm: Fix vt switching
Don't take input or render while switched away, drop and set master correctly.
2011-05-06 15:15:37 -04:00
Kristian Høgsberg
6c709a3e4f Fix warnings and symbol visibility from missing CFLAGS 2011-05-06 14:52:41 -04:00
Kristian Høgsberg
e4c40a4734 compositor: Disable hw cursor if we're texturing the cursor 2011-05-06 14:04:21 -04:00
Kristian Høgsberg
4d07a1c213 compositor: Scanout client buffers even if they're not map_fullscreen 2011-05-06 14:03:12 -04:00
Kristian Høgsberg
7981d00a59 compositor-drm: Use EGL_DRM_BUFFER_USE_CURSOR_MESA 2011-05-06 13:23:49 -04:00
Kristian Høgsberg
8050bd217f compositor-drm: Fix modularization breakage 2011-05-04 15:08:04 -04:00
Kristian Høgsberg
1c5621840b compositor: Split backends into modules 2011-05-02 22:09:20 -04:00
Benjamin Franzke
d59eb1c3aa compositor-drm: Retrieve extension functions before wlsc_compositor_init
wlsc_compositor_init calls pointer_create, which calls
create_cursor which needs EGL_MESA_drm_image functions.
2011-04-29 22:20:25 +02:00
Benjamin Franzke
e5b3b2601c Cast fd's to intptr_t before casting to EGLNativeDisplay
Fixes warnings on 64bit.

Also use wlsc_compositor::destroy_image in compositor-openwfd.
2011-04-26 11:18:43 -04:00
Kristian Høgsberg
b5819dc61d compositor: Stop using EGL_EGLEXT_PROTOTYPES and look up extension functions 2011-04-25 15:35:05 -04:00
Kristian Høgsberg
b1868479ad Update return types of event handler functions
Missed this in previous commit.
2011-04-22 12:27:57 -04:00
Benjamin Franzke
66aa235b4c Optimize fullscreen scanout abit
Use the drm fb_id used for the scanout-test
as well for the corresponding pageflip.

Move most of the scanout details into compositor-drm.
2011-04-20 17:30:12 +02:00
Benjamin Franzke
431da9a4cc Make use of a hardware cursor in compositor-drm 2011-04-20 15:29:35 +02:00
Benjamin Franzke
1178a3ce5c compositor(-drm): Pageflip to fullscreen surfaces 2011-04-19 09:05:08 +02:00
Kristian Høgsberg
0b9334a51a Define _GNU_SOURCE for O_CLOEXEC flag 2011-04-12 11:34:32 -04:00
Kristian Høgsberg
11e2828bdc Merge remote-tracking branch 'bnf/surface-frame-event'
Conflicts:
	compositor/compositor.c
2011-04-11 16:47:50 -04:00
Kristian Høgsberg
9cd7aca0e0 compositor-drm: Close drm fd on exec 2011-04-11 13:19:16 -04:00
Benjamin Franzke
ec4d342aa9 Support per surface frame events
This fixes tearing with multi head.
2011-03-17 11:54:35 +01:00
Benjamin Franzke
9c26ff3507 compositor-drm: Support output hotplugging 2011-03-15 17:21:36 +01:00
Benjamin Franzke
eefc36c760 compositor-drm: Fix multi head rendering 2011-03-13 15:02:58 -04:00
Marty Jack
13d9db2095 Beginnings of multiple monitor
Allocate the CRTCs from a bit mask to avoid the multiple monitor black
screen problem.
2011-03-13 15:02:01 -04:00
Benjamin Franzke
c649a92549 compositor: Remove drm.c, use shm.c for pointer images 2011-03-02 11:31:46 -05:00
Benjamin Franzke
2af7f10674 compositor: Remove wlsc_drm 2011-03-02 11:31:46 -05:00
Benjamin Franzke
5b2cb6f911 compositor: Generate Framebuffer in the backends 2011-03-01 16:21:01 +01:00
Benjamin Franzke
1b765ffb8c compositor: Add flags parameter to wlsc_output_init
Currently available flags:
 - WL_OUTPUT_FLIPPED
2011-03-01 16:21:01 +01:00
Benjamin Franzke
faa0a9dfa9 compositor: Use eglBindWaylandDisplayWL 2011-03-01 16:20:56 +01:00
Benjamin Franzke
feb370e4ea compositor-drm: Flush before pageflipping
This fixes compositor-drm flickering on r600.
2011-02-14 08:28:44 -05:00