Merge lp://qastaging/~kdub/mir/gl-program-creation-factory into lp://qastaging/mir
Status: | Merged |
---|---|
Approved by: | Kevin DuBois |
Approved revision: | no longer in the source branch. |
Merged at revision: | 1569 |
Proposed branch: | lp://qastaging/~kdub/mir/gl-program-creation-factory |
Merge into: | lp://qastaging/mir |
Prerequisite: | lp://qastaging/~kdub/mir/gl-program-creation-to-common-place |
Diff against target: |
1061 lines (+439/-216) 20 files modified
examples/demo-shell/demo_renderer.cpp (+4/-2) examples/demo-shell/demo_renderer.h (+1/-1) examples/demo-shell/demo_shell.cpp (+9/-2) include/platform/mir/graphics/gl_program_factory.h (+50/-0) include/server/mir/compositor/gl_renderer.h (+6/-3) include/server/mir/default_server_configuration.h (+3/-0) include/server/mir/graphics/gl_program.h (+4/-4) src/server/compositor/CMakeLists.txt (+0/-1) src/server/compositor/default_configuration.cpp (+2/-2) src/server/compositor/gl_renderer.cpp (+16/-14) src/server/compositor/gl_renderer_factory.cpp (+9/-4) src/server/compositor/gl_renderer_factory.h (+6/-10) src/server/graphics/CMakeLists.txt (+2/-0) src/server/graphics/default_configuration.cpp (+11/-0) src/server/graphics/gl_program.cpp (+8/-8) src/server/graphics/program_factory.cpp (+32/-0) src/server/graphics/program_factory.h (+47/-0) tests/unit-tests/compositor/test_gl_renderer.cpp (+17/-165) tests/unit-tests/graphics/CMakeLists.txt (+1/-0) tests/unit-tests/graphics/test_program_factory.cpp (+211/-0) |
To merge this branch: | bzr merge lp://qastaging/~kdub/mir/gl-program-creation-factory |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alberto Aguirre (community) | Approve | ||
Alexandros Frantzis (community) | Approve | ||
Robert Carr (community) | Needs Information | ||
PS Jenkins bot (community) | continuous-integration | Approve | |
Review via email:
|
Commit message
Add a factory that is capable of compiling a vertex shader and a fragment shader into a gl program.
I am doing this so that the android platform can create a gl program that it can use when the overlays fail. I don't intend to expose this program in the platform-
A few things were weighed (do we /really/ need another factory?)...
1) calls relating to gl program/shader creation should be serialized which points to a common factory.
2) the GLRendererFactory is a class that is overridable by the user. (see the demo-shell). I didn't want to extend the GLRendererFactory to have a method for creating a separate android-only specific renderer. It seemed better to have a generic factory for making any gl program, and have GLRendererFactory and GLRenderer use that generic factory to accomplish its goals
Description of the change
Add a factory that is capable of compiling a vertex shader and a fragment shader into a gl program.
I am doing this so that the android platform can create a gl program that it can use when the overlays fail. I don't intend to expose this program in the platform-
A few things were weighed (do we /really/ need another factory?)...
1) calls relating to gl program/shader creation should be serialized which points to a common factory.
2) the GLRendererFactory is a class that is overridable by the user. (see the demo-shell). I didn't want to extend the GLRendererFactory to have a method for creating a separate android-only specific renderer. It seemed better to have a generic factory for making any gl program, and have GLRendererFactory and GLRenderer use that generic factory to accomplish its goals
note 1:
I also made an attempt to split out testing the gl program setup from the GLRenderer use cases. This one of the oldest tests (and... a mess by 'modern' mir test standards), so it has some cruft that could still use some attention. We'll probably have to continue to improve this test in smaller steps in subsequent MPs.
note 2:
If HWC rejects a surface, we are expected to draw that surface with OpenGLES. We should be doing this in the android platform, so the platform-
note 3: (future planning)
I plan on giving the GLProgramFactory down to the android platform so it can make its own HWC gl program.
FAILED: Continuous integration, rev:1571 jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- ci/1359/ jenkins. qa.ubuntu. com/job/ mir-android- trusty- i386-build/ 1651/console jenkins. qa.ubuntu. com/job/ mir-clang- trusty- amd64-build/ 1649/console jenkins. qa.ubuntu. com/job/ mir-mediumtests -trusty- touch/1224/ console jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- trusty- amd64-ci/ 1091/console jenkins. qa.ubuntu. com/job/ mir-team- mir-development -branch- trusty- armhf-ci/ 1096/console jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- trusty- armhf/1225/ console
http://
Executed test runs:
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- team-mir- development- branch- ci/1359/ rebuild
http://