During surface creation, first stream in spec becomes default stream.
Bug #1577967 reported by
Cemil Azizoglu
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
High
|
Unassigned | ||
Mir |
Fix Released
|
High
|
Kevin DuBois | ||
mir (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
A surface creation spec can have multiple streams. The code currently, by happenstance, makes the first stream the "default stream", i.e. instantiates a MirSurface using that stream. The MirSurface object's methods then use that stream for various purposes, e.g. to set the swap interval, to set size during resize, to query parameters of the surface, etc. Here's a list of MirSurface methods that use the default stream :
MirSurface:
MirSurface:
MirSurface:
MirSurface:
We need to define the precise semantics of MirSurface properly in regards to the streams that may be associated with it.
Related branches
lp://qastaging/~kdub/mir/fix-1577967
- Mir CI Bot: Approve (continuous-integration)
- Daniel van Vugt: Abstain
- Cemil Azizoglu (community): Approve
- Alan Griffiths: Approve
- Chris Halse Rogers: Approve
-
Diff: 349 lines (+137/-48)7 files modifiedinclude/client/mir_toolkit/mir_surface.h (+17/-5)
playground/mir_demo_client_prerendered_frames.c (+6/-0)
src/client/mir_connection.cpp (+21/-25)
src/client/mir_surface.cpp (+17/-16)
src/client/mir_surface.h (+7/-2)
tests/acceptance-tests/test_buffer_stream_arrangement.cpp (+45/-0)
tests/unit-tests/client/test_client_mir_surface.cpp (+24/-0)
summary: |
- mir_surface_is_valid(surface) returns false when a presentation chain is - used + During surface creation, first stream in spec becomes default stream. |
description: | updated |
description: | updated |
description: | updated |
Changed in mir: | |
importance: | Undecided → High |
milestone: | none → 0.24.0 |
description: | updated |
Changed in mir: | |
status: | New → Confirmed |
status: | Confirmed → In Progress |
assignee: | nobody → Kevin DuBois (kdub) |
Changed in canonical-devices-system-image: | |
status: | New → Fix Committed |
importance: | Undecided → High |
milestone: | none → 13 |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in canonical-devices-system-image: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
As a result of the way the code currently works, we have e.g. the following problem :
When mir_demo_ client_ prerendered_ frames, which uses a presentation chain, is run, it works fine.
When
mir_surface_ is_valid( surface)
is added after surface creation (i.e. http:// bazaar. launchpad. net/~mir- team/mir/ development- branch/ view/head: /playground/ mir_demo_ client_ prerendered_ frames. c#L164), it fails due to the following error being set :
"Can not create buffer stream: Error processing buffer stream create response, no ID (disconnected?)"