Commits on Source (7)
-
Daniel Stone authored
If we still have a pending idle timer when the compositor is being destroyed, make sure to free it first. Signed-off-by: Daniel Stone <daniels@collabora.com>
61851f5c -
Daniel Stone authored
We were deinitialising the array, but not also freeing the allocation. Signed-off-by: Daniel Stone <daniels@collabora.com>
f5086034 -
Daniel Stone authored
No sense walking the plane list every frame if we can't use it because it's neither a SHM buffer nor a client buffer we can directly import as a framebuffer. Signed-off-by: Daniel Stone <daniels@collabora.com>
9e379db0 -
Daniel Stone authored
Currently we take a reference on the underlying client buffer every time we materialise a drm_fb from a view, and release it when the drm_fb is destroyed. This means that we need to create and destroy a drm_fb every time we want to use it, which is pathologically unperformant on some platforms. To start working towards being able to cache drm_fb, only take the reference when we apply it to a plane state. Signed-off-by: Daniel Stone <daniels@collabora.com>
267f6cc6 -
Daniel Stone authored
Currently each drm_fb takes a reference on a client buffer it wraps. This prevents us from being able to reuse a drm_fb in multiple places (e.g. two views of the same client buffer) simultaneously, or even back to back. Move the buffer reference to the plane state, as preparation for allowing drm_fb to be cached inside the weston_buffer. Signed-off-by: Daniel Stone <daniels@collabora.com>
2ecc38b0 -
Daniel Stone authored
When we first create a drm_fb from a weston_buffer, cache it and keep it alive as long as the buffer lives. This allows us to reuse the gbm_bo and kernel-side DRM framebuffer, rather than constantly creating and destroying them at every repaint. The overhead of doing so (e.g. MMU updates) can be significant on some platforms. Signed-off-by: Daniel Stone <daniels@collabora.com>
7d27df4c -
Daniel Stone authored
Walking the format/modifier list to try to find out if our FB is compatible with the plane is surprisingly expensive. Since the plane's capabilities are static over the lifetime of the KMS device, cache the set of planes for which the FB is theoretically format/modifier-compatible when it's created, and use that to do an early cull of the set of acceptable planes. Signed-off-by: Daniel Stone <daniels@collabora.com>
57d609a4