path: root/src/lib/ecore_drm2/ecore_drm2_private.h (unfollow)
AgeCommit message (Collapse)Author
2017-08-09ecore_drm2: Remove connector bitfieldDerek Foreman
This is unreliable - there's no reason to expect these connector ids will be low enough to sensibly store in a bit field.
2017-08-09ecore_drm2: remove unused crtc bitfieldDerek Foreman
We'll need something like this when multi-head works, but it can't be implemented this way anyway. There's no guarantee that crtc ids will be low enough to fit sensibly in a bitfield.
2017-07-28ecore_drm2: Add a fallback method for vblank waitingDerek Foreman
We can't depend on vblank waits being implemented by the driver, but we can count on page flips functioning, so add a fallback that does a page flip and waits for it.
2017-07-13ecore_drm2: Add a query for the next vblank timeDerek Foreman
I guess this is a feature, and we're deep in freeze, but: a) this is critical for fixing T5462 properly without any side effects. b) ecore_drm2 is all beta api c) this should only affect wayland users ref T5462
2017-06-23ecore_drm2: Track number of times an fb is on scanoutDerek Foreman
The same fb can be placed in multiple hardware planes, we need to keep track of the number of planes it's on at any time so we can send events to a compositor in a later commit.
2017-06-23ecore_drm2: Track whether an Ecore_Drm2_Plane has ever been on scanoutDerek Foreman
2017-06-23ecore_drm2: Move fb from plane state struct to plane structDerek Foreman
The plane state struct needs the fb id for drm updates, and the plane state can be updated even if it's pointed to by a dead plane. Dead planes need to keep their fb so we can properly handle the fb lifetime.
2017-06-23ecore_drm2: Remove obsolete per output fb callback apiDerek Foreman
It's all beta API so I can throw this away now that there are no in-tree users anymore.
2017-06-23ecore_drm2: Add ecore_drm2_fb_status_handler_setDerek Foreman
The old per output release handler is no longer complicated enough. In the near future we'll need to be able to tell an engine that its fb has been placed on scanout via hardware plane, or removed from a hardware plane. It's simpler to provide that information as well as release information through a single callback.
2017-06-09ecore-drm2: Remove #ifdef HAVE_ATOMIC_DRMChris Michael
As we now use static_libs/libdrm for compiling ecore-drm2, we can remove the atomic #ifdefs as we can run-time check this now. Signed-off-by: Chris Michael <>
2017-06-09ecore-drm2: Use static libdrm to build ecore-drm2Chris Michael
As we will now use static_libs/libdrm to build ecore_drm2, we no longer need to include the copied code from the libdrm headers so remove all of the copied code from our source files. @fix Signed-off-by: Chris Michael <>
2017-06-06ecore-drm2: Fix output backlight value type definitionsChris Michael
When we go to set output backlight level we use doubles, so lets just store these values as doubles in the structure. @fix Signed-off-by: Chris Michael <>
2017-06-02ecore_drm2: Rename _release_buffer and make it private instead of staticDerek Foreman
Other files in ecore_drm2 need to release buffers too.
2017-05-26wayland/drm: create evas_devices and add device pointer to input eventsMike Blumenkrantz
this is still semi-broken if a seat has many pointer-ish type devices since pointer devices in ecore-evas were never correctly implemented to be 1:1 with seat:cursor relationships @feature
2017-05-12ecore_drm2: refcount fbsDerek Foreman
Removes the previous "busy" flag, as now we might have an fb attached to multiple outputs at once, and need to be careful to destroy them only after they've been removed from all outputs. Removed the old "busy_set" API which nothing used, and renames fb_destroy to fb_discard to make it more clear that it's not immediately destroyed. It's all beta api, so I can do this.
2017-05-09ecore-drm2: Add start of refcounting for FB objectsChris Michael
Small patch which starts to implement refcounting on framebuffer objects. This will be needed so that we do not free FB objects while they are on the screen. Signed-off-by: Chris Michael <>
2017-05-09ecore_drm2: Fix dmabuf fb destroyDerek Foreman
I missed the fact that it'd run through the existing non-gbm path on destroy, resulting in a (probably harmless) bad ioctl
2017-05-05ecore_drm2: Replace plane state release flag with plane dead flagDerek Foreman
The release flag is actually less useful than the existing in_use flag for determining if a plane is unused. If a new plane is assigned before the next flip cleans up released planes, then it can point to a released plane state, and both it and the previous user will be freed on the next commit, leaking a plane. Putting the flag in the plane structure fixes this while still allowing us to keep released planes around to ensure a recently released plane is cleared from atomic state.
2017-05-05ecore-drm2: Add 'release' flag for planesChris Michael
As we cannot immediately remove a plane from an output, due to needing an atomic commit to actually remove the plane from screen, we can use a 'release' flag to indicate that a given plane needs removal from the screen during our next atomic commit. Signed-off-by: Chris Michael <>
2017-05-05ecore_drm2: Replace output fbs with state structsDerek Foreman
next, pending, and current are going to have to deal with atomic state instead of just fbs soon
2017-05-05ecore_drm2: Move atomic state into an output state structDerek Foreman
This should make it easier to share code paths between atomic and non atomic operations.
2017-05-05ecore_drm2: Drop static from _fb_atomic_flip_test()Derek Foreman
We're going to need this one in plane assign to test commits
2017-05-05ecore_drm2: Store output in plane structureDerek Foreman
This will simplify a bunch of API that would otherwise have to pass in both output and plane - and in some cases we might not have the output handy anyway.
2017-05-05ecore_drm2: Remove next, current, pending from plane stateDerek Foreman
These will be output state eventually
2017-05-05ecore_drm2: Assign planes in ecore_drm2_plane_assignDerek Foreman
Don't just test, allocate the resource, and then prevent further assignments from trying to use it as well.
2017-05-05ecore-drm2: Remove newly added atomic API functionsChris Michael
As we need to do atomic commits on a per-output basis, these 2 newly added API functions can go because these functions did one atomic commit for all outputs Signed-off-by: Chris Michael <>
2017-05-05ecore-drm2: Enable reuse of existing state structures for non-atomicChris Michael
As there is nothing 'atomic' specific in these structures, we can move them outside the atomic ifdef and make use of them for handling pageflip for both atomic and non-atomic use cases. @fix Signed-off-by: Chris Michael <>
2017-04-19ecore-drm2: Iterate plane formats properlyChris Michael
This patch addresses an issue where plane formats were not being properly copied into our Plane State structure and causing any usage of our atomic code paths to crash and burn @fix Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Add fields to plane structure for current, next, pendingChris Michael
FBOs Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Add library symlink to merge atomic commit requestsChris Michael
Small commit to symlink to drmModeAtomicMerge function so we can use that for atomic commit tests. @feature Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Cleanup list of output planes on output_destroyChris Michael
Small patch to make sure we free memory previously allocated for hardware planes when we destroy an output Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Move defines for CAP_CURSOR sizes to private headerChris Michael
As we may need these defines in other files, move them to the private header so there is access to them. @fix Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Store cursor size on deviceChris Michael
As we will need these values later to determine if an FBO can go onto the cursor plane, we should store this in the device structure to avoid having to refetch them later. @fix Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Support multiple planes on a given outputChris Michael
Various hardware can support multiple planes on a given output. As such, we need to be able to store multiple plane states per-output. This small patch adds support for that. @feature Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Add support for plane formatsChris Michael
Small patch to store supported formats on a given plane state. This will be used for assigning dmabuf clients to a hardware plane based on size and supported format. @feature Signed-off-by: Chris Michael <>
2017-04-18ecore-drm2: Add opaque structure to represent a hardware planeChris Michael
Signed-off-by: Chris Michael <>
2017-04-18ecore_drm2: Add ecore_drm2_fb_dmabuf_importDerek Foreman
Imports a set of dmabuf buffers as a single Ecore_Drm2_Fb
2017-04-18ecore_drm2: store 4 handles, strides, and planesDerek Foreman
We're going to support multi-planar formats soon. It'll be great, you'll love it.
2017-04-18ecore_drm2: Use library function instead of ioctl for addfb2Derek Foreman
Minor clean up.
2017-03-24ecore-drm2: Remove unused field in Output structureChris Michael
The 'planes' field in Ecore_Drm2_Output structure is unused and can thus be removed here. @fix Signed-off-by: Chris Michael <>
2017-01-18ecore-drm2: Expose Ecore_Drm2_Rotation enumChris Michael
As we will need these values when doing rotation checks inside wl_drm module (for randr rotation support), let's move them out of the private header and expose them in Ecore_Drm2.h Signed-off-by: Chris Michael <>
2017-01-18ecore-drm2: Minor formatting fixChris Michael
NB: No functional changes, just formatting Signed-off-by: Chris Michael <>
2016-11-29ecore-drm2: Add symlink to gamma setting functionChris Michael
Signed-off-by: Chris Michael <>
2016-11-15ecore-drm2: Remove unused structureChris Michael
As we don't ever use drmVersionBroken structure in this code, remove it Signed-off-by: Chris Michael <>
2016-11-15ecore-drm2: Add copyright information from included headersChris Michael
Small patch to reorganize defines & structures from included files, and to add copyright information related to each file where defines & structures were borrowed from. Signed-off-by: Chris Michael <>
2016-11-15ecore-drm2: Add structure definitions and function symlinks for libdrmChris Michael
As we are moving away from linking to libdrm during compile time, and instead dlsym to things we need at runtime, we need to include copies of the libdrm structures that we will be using along with function declarations that we symlink to. @feature Signed-off-by: Chris Michael <>
2016-10-11ecore-drm2: Use Atomic Modesetting for resolution changesChris Michael
Since we have atomic properties now, we can use those to set given Output modes (resolutions). Signed-off-by: Chris Michael <>
2016-09-22ecore-drm2: Add private structures to support Atomic ModesettingChris Michael
Signed-off-by: Chris Michael <>
2016-09-09ecore_drm2: Add release handlers for buffersDerek Foreman
Allow the engine to register a callback for buffer release. This lets us do appropriate buffer bookkeeping (for example, gbm locking) in the engine.
2016-09-09ecore_drm2: Store gbm_bo for Fbs and add a getter function for itDerek Foreman
This will aid with proper locking in gl_drm later