Mir

Activity log for bug #1379610

Date Who What changed Old value New value Message
2014-10-10 02:54:29 Daniel van Vugt bug added bug
2014-10-10 02:54:55 Daniel van Vugt description MultiThreadedCompositor fails to schedule sufficient frames in a mostly-idle single surface scenario: 1. surfaceA emits a frame, one is scheduled 2. surfaceA emits another frame, but still only one is scheduled for compositing 3. We composite only frame (frames_scheduled == 1) 4. System is idle for some unknown time, with no compositing scheduled but surfaceA has its 2nd frame rendered that we're not seeing. The problem is: void schedule_compositing(int num_frames) { std::lock_guard<std::mutex> lock{run_mutex}; if (num_frames > frames_scheduled) { frames_scheduled = num_frames; run_cv.notify_one(); } } If a surface only emits schedule_compositing(1) but does it multiple times per compositor frame, then the second and subsequent frames won't get scheduled. This can happen for surfaces that are triple (or higher) buffered; i.e. any Mir client right now. If correct, this would explain bug 1295851 but I will keep them separate while we're not 100% sure. MultiThreadedCompositor fails to schedule sufficient frames in a mostly-idle single surface scenario: 1. surfaceA emits a frame, one is scheduled 2. surfaceA emits another frame, but still only one is scheduled for compositing 3. We composite only one frame (frames_scheduled == 1) 4. System is idle for some unknown time, with no compositing scheduled but surfaceA has its 2nd frame rendered that we're not seeing. The problem is:     void schedule_compositing(int num_frames)     {         std::lock_guard<std::mutex> lock{run_mutex};         if (num_frames > frames_scheduled)         {             frames_scheduled = num_frames;             run_cv.notify_one();         }     } If a surface only emits schedule_compositing(1) but does it multiple times per compositor frame, then the second and subsequent frames won't get scheduled. This can happen for surfaces that are triple (or higher) buffered; i.e. any Mir client right now. If correct, this would explain bug 1295851 but I will keep them separate while we're not 100% sure.
2014-10-10 02:57:20 Daniel van Vugt summary MultiThreadedCompositor fails to schedule sufficient frames MultiThreadedCompositor fails to schedule sufficient frames and may lag at random times
2014-10-10 03:46:11 Daniel van Vugt summary MultiThreadedCompositor fails to schedule sufficient frames and may lag at random times [regression] MultiThreadedCompositor fails to schedule sufficient frames and may lag at random times
2014-10-10 03:46:17 Daniel van Vugt tags regression
2014-10-10 03:56:41 Daniel van Vugt branch linked lp:~vanvugt/mir/fix-1379610
2014-10-10 03:59:08 Daniel van Vugt nominated for series mir/0.8
2014-10-10 03:59:08 Daniel van Vugt bug task added mir/0.8
2014-10-10 03:59:21 Daniel van Vugt nominated for series mir/0.7
2014-10-10 03:59:21 Daniel van Vugt bug task added mir/0.7
2014-10-10 03:59:31 Daniel van Vugt mir/0.7: importance Undecided High
2014-10-10 03:59:31 Daniel van Vugt mir/0.7: status New Triaged
2014-10-10 03:59:47 Daniel van Vugt mir/0.8: importance Undecided High
2014-10-10 03:59:47 Daniel van Vugt mir/0.8: status New Triaged
2014-10-10 03:59:47 Daniel van Vugt mir/0.8: milestone 0.8.1
2014-10-10 04:39:54 Daniel van Vugt bug task added mir (Ubuntu)
2014-10-10 04:40:04 Daniel van Vugt bug task added mir (Ubuntu RTM)
2014-10-10 04:40:18 Daniel van Vugt mir (Ubuntu RTM): importance Undecided High
2014-10-10 04:40:18 Daniel van Vugt mir (Ubuntu RTM): status New Triaged
2014-10-10 04:40:29 Daniel van Vugt mir (Ubuntu): importance Undecided High
2014-10-10 04:40:29 Daniel van Vugt mir (Ubuntu): status New Triaged
2014-10-10 19:02:33 Lime bug added subscriber Lime
2014-10-14 02:02:36 Daniel van Vugt mir/0.8: milestone 0.8.1
2014-10-14 02:04:10 Daniel van Vugt mir: milestone 0.9.0
2014-10-14 02:04:18 Daniel van Vugt mir: status In Progress Incomplete
2014-10-14 02:04:22 Daniel van Vugt mir/0.7: status Triaged Incomplete
2014-10-14 02:04:25 Daniel van Vugt mir/0.8: status Triaged Incomplete
2014-10-14 02:04:28 Daniel van Vugt mir (Ubuntu): status Triaged Incomplete
2014-10-14 02:04:32 Daniel van Vugt mir (Ubuntu RTM): status Triaged Incomplete
2014-10-30 03:26:38 Daniel van Vugt bug task deleted mir/0.7
2014-10-30 03:26:43 Daniel van Vugt bug task deleted mir/0.8
2014-12-02 07:22:49 Daniel van Vugt marked as duplicate 1395581