|
|
DescriptionMove all CARendererLayerTree parameters to separate struct.
Remove duplicate code.
BUG=
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel
Committed: https://crrev.com/565dd1451e49baa4d7e52b07d0c1cbd4cd2b92ab
Cr-Commit-Position: refs/heads/master@{#403424}
Patch Set 1 #Patch Set 2 : Rebase #
Total comments: 7
Patch Set 3 : Use gl::Image in CARenderLayerParams. Minimized DEPS. #Patch Set 4 : Rebase. #Patch Set 5 : Fixed non-mac compilation. ca_renderer_layer_params moved to ui/gl. #Patch Set 6 : One more rebase. #Patch Set 7 : Rebase #
Total comments: 1
Messages
Total messages: 51 (22 generated)
Description was changed from ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= ========== to ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Description was changed from ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel ==========
kirr@yandex-team.ru changed reviewers: + ccameron@chromium.org
PTAL Here is a small refactoring with removing duplicate code. I'm not sure about adding "+ui/accelerated_widget_mac" in gpu DEPS. May be it would be better to place ca_renderer_layer_params in ui/gfx to avoid this dependency.
On 2016/05/25 15:14:53, kirr wrote: > PTAL > Here is a small refactoring with removing duplicate code. > > I'm not sure about adding "+ui/accelerated_widget_mac" in gpu DEPS. > May be it would be better to place ca_renderer_layer_params in ui/gfx to avoid > this dependency. You're right that this are needs refactoring. I'm currently working to make it so that we go from cc::CALayerOverlay directly to the CARendererLayerTree in the browser process (the work is attached to crbug.com/604052). The plan is to delete the GLSurface and decoder interfaces entirely. The only thing that is holding up this work is some complications with our h264 decode path -- I'm hoping to make this transition in M53 (next 2-3 weeks). With that in mind, should we hold off on this for now?
On 2016/05/25 22:46:37, ccameron wrote: > On 2016/05/25 15:14:53, kirr wrote: > > PTAL > > Here is a small refactoring with removing duplicate code. > > > > I'm not sure about adding "+ui/accelerated_widget_mac" in gpu DEPS. > > May be it would be better to place ca_renderer_layer_params in ui/gfx to avoid > > this dependency. > > You're right that this are needs refactoring. > > I'm currently working to make it so that we go from cc::CALayerOverlay directly > to the CARendererLayerTree in the browser process (the work is attached to > crbug.com/604052). The plan is to delete the GLSurface and decoder interfaces > entirely. > > The only thing that is holding up this work is some complications with our h264 > decode path -- I'm hoping to make this transition in M53 (next 2-3 weeks). With > that in mind, should we hold off on this for now? Sure. Thanks for telling your plans :) I was needed to add some parameters for CALayers and wanted to reduce number of conflicts. Things would be much easier when CARendererLayerTree would be in browser process.
ccameron@chromium.org changed reviewers: + piman@chromium.org
Sorry about the going-around-in-circles about the CALayer tree in the browser process. This lg, but I'd like to have piman quickly verify that the DEPS changes are okay to him as well. https://codereview.chromium.org/2006923006/diff/20001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/2006923006/diff/20001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:10341: static_cast<gl::GLImageIOSurface*>(image); Add a TODO(ccameron): Remove this cast (crbug.com/619698) [feel free to add it to the other existing instances of this cast as well].
https://codereview.chromium.org/2006923006/diff/20001/gpu/DEPS File gpu/DEPS (right): https://codereview.chromium.org/2006923006/diff/20001/gpu/DEPS#newcode8 gpu/DEPS:8: "+ui/accelerated_widget_mac", Could you make this specific to ui/accelerated_widget_mac/ca_renderer_layer_params.h ? There's a bunch of things in ui/accelerated_widget_mac that really don't belong in gpu code, so I would prefer to make the DEPS as narrow as possible. https://codereview.chromium.org/2006923006/diff/20001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/2006923006/diff/20001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:10336: This, and the headers will now need to be in a #if defined(MACOSX), and now so does the ScheduleCALayer call. The build files will also need to make the new dependency conditional. Keep in mind that if we want to also delegate compositing to the system compositor on say Windows or Linux, we will likely want to undo some of this, and make the CARendererLayerParams slightly more generic (remove the concrete types and move them back to the GLSurface implementation). I don't want to block this, but I'm necessarily convinced it's a net win.
https://codereview.chromium.org/2006923006/diff/20001/gpu/DEPS File gpu/DEPS (right): https://codereview.chromium.org/2006923006/diff/20001/gpu/DEPS#newcode8 gpu/DEPS:8: "+ui/accelerated_widget_mac", On 2016/06/28 00:28:09, piman wrote: > Could you make this specific to > ui/accelerated_widget_mac/ca_renderer_layer_params.h ? > There's a bunch of things in ui/accelerated_widget_mac that really don't belong > in gpu code, so I would prefer to make the DEPS as narrow as possible. Done. https://codereview.chromium.org/2006923006/diff/20001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/2006923006/diff/20001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:10336: On 2016/06/28 00:28:09, piman wrote: > This, and the headers will now need to be in a #if defined(MACOSX), and now so > does the ScheduleCALayer call. The build files will also need to make the new > dependency conditional. > > > Keep in mind that if we want to also delegate compositing to the system > compositor on say Windows or Linux, we will likely want to undo some of this, > and make the CARendererLayerParams slightly more generic (remove the concrete > types and move them back to the GLSurface implementation). > > I don't want to block this, but I'm necessarily convinced it's a net win. Done. Thanks. I've replaced mac-specific surfaces with gl::GLImage in CARendererLayerParams. https://codereview.chromium.org/2006923006/diff/20001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:10341: static_cast<gl::GLImageIOSurface*>(image); On 2016/06/28 00:05:14, ccameron wrote: > Add a TODO(ccameron): Remove this cast (crbug.com/619698) > > [feel free to add it to the other existing instances of this cast as well]. Done.
Ok, thanks, LGTM. If we want to share the code, we can move ca_renderer_layer_params.h out of the mac-specific code (and rename it).
The CQ bit was checked by kirr@yandex-team.ru to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device-gn on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-gn/bui...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) ios-simulator-gn on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-gn/...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by kirr@yandex-team.ru to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_compile_dbg on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_comp...) cast_shell_android on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a...) cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...)
Please see one more time. Is it fine to move the struct definition to ui/gl to fix compilation?
The CQ bit was checked by kirr@yandex-team.ru to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...) ios-device-gn on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-gn/bui...) ios-simulator-gn on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-gn/...)
The CQ bit was checked by kirr@yandex-team.ru to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_optional_gpu_tests_rel on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_optional_gpu_...)
lgtm
The CQ bit was checked by kirr@yandex-team.ru
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
The CQ bit was checked by kirr@yandex-team.ru
The patchset sent to the CQ was uploaded after l-g-t-m from piman@chromium.org Link to the patchset: https://codereview.chromium.org/2006923006/#ps120001 (title: "Rebase")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
ccameron@ your lgtm is needed.
lgtm https://codereview.chromium.org/2006923006/diff/20001/gpu/DEPS File gpu/DEPS (right): https://codereview.chromium.org/2006923006/diff/20001/gpu/DEPS#newcode8 gpu/DEPS:8: "+ui/accelerated_widget_mac", On 2016/06/28 00:28:09, piman wrote: > Could you make this specific to > ui/accelerated_widget_mac/ca_renderer_layer_params.h ? > There's a bunch of things in ui/accelerated_widget_mac that really don't belong > in gpu code, so I would prefer to make the DEPS as narrow as possible. Good point. Moreover, I should move the CARendererLayerTree and friends out of accelerated_widget_mac and into a separate path, now that they aren't going to be rolled into accelerated_widget_mac directly.
The CQ bit was checked by kirr@yandex-team.ru
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Message was sent while issue was closed.
Committed patchset #7 (id:120001)
Message was sent while issue was closed.
Description was changed from ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Move all CARendererLayerTree parameters to separate struct. Remove duplicate code. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel;tryserver.chromium.win:win_optional_gpu_tests_rel Committed: https://crrev.com/565dd1451e49baa4d7e52b07d0c1cbd4cd2b92ab Cr-Commit-Position: refs/heads/master@{#403424} ==========
Message was sent while issue was closed.
Patchset 7 (id:??) landed as https://crrev.com/565dd1451e49baa4d7e52b07d0c1cbd4cd2b92ab Cr-Commit-Position: refs/heads/master@{#403424}
Message was sent while issue was closed.
thakis@chromium.org changed reviewers: + thakis@chromium.org
Message was sent while issue was closed.
https://codereview.chromium.org/2006923006/diff/120001/gpu/command_buffer/ser... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/2006923006/diff/120001/gpu/command_buffer/ser... gpu/command_buffer/service/gles2_cmd_decoder.cc:10706: c.is_clipped ? true : false, gfx::ToEnclosingRect(clip_rect), why `? true : false`?
Message was sent while issue was closed.
A revert of this CL (patchset #7 id:120001) has been created in https://codereview.chromium.org/2125673002/ by magjed@chromium.org. The reason for reverting is: Breaks https://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_arc...: [21783/42386] OBJCXX obj/ui/accelerated_widget_mac/accelerated_widget_mac_unittests/ca_layer_tree_unittest_mac.o FAILED: obj/ui/accelerated_widget_mac/accelerated_widget_mac_unittests/ca_layer_tree_unittest_mac.o /b/build/slave/cache/cipd/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/ui/accelerated_widget_mac/accelerated_widget_mac_unittests/ca_layer_tree_unittest_mac.o.d -DV8_DEPRECATION_WARNINGS -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PDF=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DUSE_BROWSER_SPELLCHECKER=1 -DNO_TCMALLOC -DUSE_EXTERNAL_POPUP_MENU=1 -DENABLE_WEBRTC=1 -DENABLE_EXTENSIONS=1 -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_PLUGIN_INSTALLATION=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=274142-1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORE=0 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DGTEST_HAS_RTTI=0 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_NOEXCEPT= -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DSK_IGNORE_DW_GRAY_FIX -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_SUPPORT_GPU=1 -DSK_BUILD_FOR_MAC -DUNIT_TEST -DMESA_EGL_NO_X11_HEADERS -I../.. -Igen -I../../testing/gtest/include -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../testing/gmock/include -I../../third_party/khronos -I../../gpu -I../../third_party/mesa/src/include -fno-strict-aliasing -fstack-protector -fcolor-diagnostics -arch x86_64 -Wall -Werror -Wextra -Wpartial-availability -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-undefined-var-template -Wno-nonportable-include-path -O2 -gdwarf-2 -isysroot /Applications/Xcode7.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -mmacosx-version-min=10.7 -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -plugin-arg-find-bad-constructs -Xclang follow-macro-expansion -Xclang -plugin-arg-find-bad-constructs -Xclang check-implicit-copy-ctors -Wheader-hygiene -Wstring-conversion -fno-threadsafe-statics -fvisibility-inlines-hidden -std=c++11 -stdlib=libc++ -fobjc-call-cxx-cdtors -Wobjc-missing-property-synthesis -fno-rtti -fno-exceptions -c ../../ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm -o obj/ui/accelerated_widget_mac/accelerated_widget_mac_unittests/ca_layer_tree_unittest_mac.o ../../ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm:40:31: error: too many arguments to function call, expected single argument 'params', have 12 arguments properties->is_clipped, properties->clip_rect, ^~~~~~~~~~~~~~~~~~~~~~ ../../ui/accelerated_widget_mac/ca_renderer_layer_tree.h:43:3: note: 'ScheduleCALayer' declared here bool ScheduleCALayer(const CARendererLayerParams& params); ^ 1 error generated. You need to update this file: https://cs.chromium.org/chromium/src/ui/accelerated_widget_mac/ca_layer_tree_....
Message was sent while issue was closed.
magjed@chromium.org changed reviewers: + magjed@chromium.org
Message was sent while issue was closed.
I can't land the revert because of merge conflicts. Please fix ca_layer_tree_unittest_mac.mm as soon as possible. |