[Wayland] Don't use dmabuf wayland buffer for partial screen updates
Categories
(Core :: Widget: Gtk, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox72 | --- | fixed |
People
(Reporter: stransky, Assigned: stransky)
References
(Blocks 1 open bug)
Details
Attachments
(1 file, 4 obsolete files)
Dmabuf wayland buffer in basic compositor should be used for fullscreen (whole buffer) updates only (if even).
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Assignee | ||
Comment 2•5 years ago
|
||
Don't use GetWaylandBufferToDraw() method to get/create wayland buffer
but split it to smaller methods:
GetPartialWaylandBuffer() - get wayland bufer for partial screen update
GetFullScreenWaylandBuffer() - get wayland buffer for fullscreen update, buffer
can be switched/changed.
SetNewWaylandBuffer() - changes active wayland buffer or create a new one.
Depends on D47890
Assignee | ||
Comment 3•5 years ago
|
||
When CACHE_MISSING image cache is selected we draw directly to wayland buffer if it's available
and cache drawing when wayland buffer is missing only. That produces flickering when small buffer parts are
sent to compositor early and the buffer is blocked for further rendering.
This patch enables direct rendering of bigger screen parts only (like page scrolling) to eliminate small
buffer updates.
Depends on D47891
Assignee | ||
Comment 4•5 years ago
|
||
-
Use two sets of wayland buffers (shm and dmabuf) and use dmabuf for fullscreen updates only
when dmabuf is enabled. -
Fix buffered rendering, disable direct rendering for CACHE_ALL
-
Rename GetFullScreenWaylandBuffer() to GetWaylandBufferWithSwitch() and
GetPartialWaylandBuffer() to GetWaylandBufferRecent() to better reflect
actual roles.
Depends on D47892
Assignee | ||
Comment 5•5 years ago
|
||
Add IsDMABufBuffer identification to WindowBackBuffer
Use two sets of wayland buffers (shm and dmabuf) and use dmabuf for fullscreen updates only
when dmabuf is enabled.
Don't use GetWaylandBufferToDraw() method to get/create wayland buffer
but split it to smaller methods:
GetPartialWaylandBuffer() - get wayland bufer for partial screen update
GetFullScreenWaylandBuffer() - get wayland buffer for fullscreen update, buffer
can be switched/changed.
SetNewWaylandBuffer() - changes active wayland buffer or create a new one.
When CACHE_MISSING image cache is selected we draw directly to wayland buffer if it's available
and cache drawing when wayland buffer is missing only. That produces flickering when small buffer parts are
sent to compositor early and the buffer is blocked for further rendering.
This patch enables direct rendering of bigger screen parts only (like page scrolling) to eliminate small
buffer updates.
Rename GetFullScreenWaylandBuffer() to GetWaylandBufferWithSwitch() and
GetPartialWaylandBuffer() to GetWaylandBufferRecent() to better reflect
actual roles.
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 7•5 years ago
|
||
bugherder |
Description
•