Commit b637456
committed
feat: frame scheduling
Always do non-blocking atomic commits.
To resolve issues with flutter trying to present frames too soon,
while another frame was already sent to the kernel (i.e. comitted via
KMS atomic commit), we either have to discard subsequent, too-early
frames or queue them.
In this case, we basically keep a 1-frame deep queue (or 2-frames,
if you count the in-kernel waiting-for-scanout frame), with the 1 queued
frame being displaced whenever a newer frame is available.
(Similar to vulkans MAILBOX swapchain presentation mode)1 parent dcf354e commit b637456
3 files changed
+111
-24
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
27 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
28 | 36 | | |
29 | 37 | | |
30 | 38 | | |
| |||
43 | 51 | | |
44 | 52 | | |
45 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
46 | 57 | | |
47 | 58 | | |
48 | 59 | | |
49 | 60 | | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
50 | 64 | | |
51 | 65 | | |
52 | 66 | | |
| |||
118 | 132 | | |
119 | 133 | | |
120 | 134 | | |
121 | | - | |
| 135 | + | |
122 | 136 | | |
123 | 137 | | |
124 | | - | |
125 | | - | |
| 138 | + | |
| 139 | + | |
126 | 140 | | |
127 | | - | |
128 | | - | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
129 | 173 | | |
130 | 174 | | |
131 | 175 | | |
| |||
135 | 179 | | |
136 | 180 | | |
137 | 181 | | |
138 | | - | |
139 | | - | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
140 | 205 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
| 84 | + | |
83 | 85 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1074 | 1074 | | |
1075 | 1075 | | |
1076 | 1076 | | |
| 1077 | + | |
1077 | 1078 | | |
1078 | 1079 | | |
1079 | 1080 | | |
1080 | | - | |
1081 | | - | |
1082 | | - | |
1083 | | - | |
1084 | | - | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
1085 | 1084 | | |
1086 | | - | |
| 1085 | + | |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
| 1091 | + | |
| 1092 | + | |
1087 | 1093 | | |
1088 | 1094 | | |
1089 | 1095 | | |
1090 | 1096 | | |
1091 | 1097 | | |
1092 | 1098 | | |
1093 | | - | |
1094 | | - | |
1095 | | - | |
| 1099 | + | |
| 1100 | + | |
| 1101 | + | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
1096 | 1115 | | |
1097 | 1116 | | |
1098 | 1117 | | |
| 1118 | + | |
| 1119 | + | |
| 1120 | + | |
| 1121 | + | |
| 1122 | + | |
1099 | 1123 | | |
1100 | | - | |
1101 | | - | |
1102 | | - | |
1103 | | - | |
1104 | | - | |
1105 | 1124 | | |
1106 | 1125 | | |
1107 | 1126 | | |
1108 | | - | |
1109 | 1127 | | |
1110 | 1128 | | |
1111 | | - | |
| 1129 | + | |
1112 | 1130 | | |
| 1131 | + | |
1113 | 1132 | | |
1114 | 1133 | | |
1115 | 1134 | | |
| |||
1226 | 1245 | | |
1227 | 1246 | | |
1228 | 1247 | | |
| 1248 | + | |
1229 | 1249 | | |
1230 | 1250 | | |
1231 | 1251 | | |
| |||
0 commit comments