Merge lp://staging/~kdub/mir/rfc-vulkan-submission-modes into lp://staging/mir
Status: | Merged |
---|---|
Approved by: | Cemil Azizoglu |
Approved revision: | no longer in the source branch. |
Merged at revision: | 4075 |
Proposed branch: | lp://staging/~kdub/mir/rfc-vulkan-submission-modes |
Merge into: | lp://staging/mir |
Diff against target: |
131 lines (+65/-1) 5 files modified
include/client/mir_toolkit/client_types.h (+9/-0) include/client/mir_toolkit/rs/mir_render_surface.h (+22/-1) src/client/mir_presentation_chain_api.cpp (+19/-0) src/client/symbols.map (+2/-0) tests/acceptance-tests/test_presentation_chain.cpp (+13/-0) |
To merge this branch: | bzr merge lp://staging/~kdub/mir/rfc-vulkan-submission-modes |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Cemil Azizoglu (community) | Approve | ||
Mir CI Bot | continuous-integration | Approve | |
Review via email: mp+318257@code.staging.launchpad.net |
Commit message
client: add different mode selection to MirPresentation
Description of the change
RFC, description of reasoning:
mir_connection_
A vulkan user can select from the 1st 4 modes, and the modes are negotiated with the server. (with FIFO being a required mode). This fn accommodates the negotiation for the client user, in the future this should be told by, or ask, the server about the support.
Different modes:
The 4 modes are the vulkan modes, so their inclusion is hopefully noncontroversial. The timeout-based framedropping policy only applies to MirBufferStream objects.
VK_PRESENT_
VK_PRESENT_
mir_presentatio
AFAIK, you have to reconstruct the VkSwapChainKHR to change the mode, so vulkan doesnt need to set modes after construction. The reason to be able to change modes is so that our mesa egl driver can support egl swapinterval 0/1 properly (which does allow for post-construction mode setting).
chain create/destroy:
I think this maps better to vulkan's SwapChain management, where we could recreate a PresentationChain without having to renegotiate the RenderSurface. It also was easy to do, and let us add a parameter to construction without a name collision.
FAILED: Continuous integration, rev:4052 /mir-jenkins. ubuntu. com/job/ mir-ci/ 3062/ /mir-jenkins. ubuntu. com/job/ build-mir/ 4094/console /mir-jenkins. ubuntu. com/job/ build-0- fetch/4181 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 4171 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 4171 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= zesty/4171 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/4121 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= zesty/4121/ artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4121/console /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4121 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= zesty/4121/ artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4121 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 4121/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 4121 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 4121/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4121 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial+ overlay/ 4121/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 3062/rebuild
https:/