onscreen/native: Increase secondary GPU dumb_fbs from 2 to 3
So that they don't get overwritten prematurely during triple buffering causing tearing. https://launchpad.net/bugs/1999216 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441>
This commit is contained in:
parent
ffc2a7d3cd
commit
c681b6977c
@ -78,7 +78,7 @@ typedef struct _MetaOnscreenNativeSecondaryGpuState
|
|||||||
|
|
||||||
struct {
|
struct {
|
||||||
MetaDrmBufferDumb *current_dumb_fb;
|
MetaDrmBufferDumb *current_dumb_fb;
|
||||||
MetaDrmBufferDumb *dumb_fbs[2];
|
MetaDrmBufferDumb *dumb_fbs[3];
|
||||||
} cpu;
|
} cpu;
|
||||||
|
|
||||||
gboolean noted_primary_gpu_copy_ok;
|
gboolean noted_primary_gpu_copy_ok;
|
||||||
@ -1054,12 +1054,17 @@ static MetaDrmBufferDumb *
|
|||||||
secondary_gpu_get_next_dumb_buffer (MetaOnscreenNativeSecondaryGpuState *secondary_gpu_state)
|
secondary_gpu_get_next_dumb_buffer (MetaOnscreenNativeSecondaryGpuState *secondary_gpu_state)
|
||||||
{
|
{
|
||||||
MetaDrmBufferDumb *current_dumb_fb;
|
MetaDrmBufferDumb *current_dumb_fb;
|
||||||
|
const int n_dumb_fbs = G_N_ELEMENTS (secondary_gpu_state->cpu.dumb_fbs);
|
||||||
|
int i;
|
||||||
|
|
||||||
current_dumb_fb = secondary_gpu_state->cpu.current_dumb_fb;
|
current_dumb_fb = secondary_gpu_state->cpu.current_dumb_fb;
|
||||||
if (current_dumb_fb == secondary_gpu_state->cpu.dumb_fbs[0])
|
for (i = 0; i < n_dumb_fbs; i++)
|
||||||
return secondary_gpu_state->cpu.dumb_fbs[1];
|
{
|
||||||
else
|
if (current_dumb_fb == secondary_gpu_state->cpu.dumb_fbs[i])
|
||||||
return secondary_gpu_state->cpu.dumb_fbs[0];
|
return secondary_gpu_state->cpu.dumb_fbs[(i + 1) % n_dumb_fbs];
|
||||||
|
}
|
||||||
|
|
||||||
|
return secondary_gpu_state->cpu.dumb_fbs[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaDrmBuffer *
|
static MetaDrmBuffer *
|
||||||
|
Loading…
x
Reference in New Issue
Block a user