Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(309)

Side by Side Diff: cc/trees/quad_culler_unittest.cc

Issue 23708021: Do not clip inside OcclusionTracker. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/quad_culler.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/quad_culler.h" 5 #include "cc/trees/quad_culler.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/debug/overdraw_metrics.h" 10 #include "cc/debug/overdraw_metrics.h"
(...skipping 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 EXPECT_EQ(12u, quad_list.size()); 713 EXPECT_EQ(12u, quad_list.size());
714 EXPECT_NEAR( 714 EXPECT_NEAR(
715 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 100600, 1); 715 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 100600, 1);
716 EXPECT_NEAR( 716 EXPECT_NEAR(
717 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1); 717 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
718 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(), 718 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
719 29400, 719 29400,
720 1); 720 1);
721 } 721 }
722 722
723 TEST_F(QuadCullerTest, VerifyCullOutsideScissorOverTile) {
724 DECLARE_AND_INITIALIZE_TEST_QUADS();
725 scoped_ptr<TiledLayerImpl> root_layer =
726 MakeLayer(NULL,
727 gfx::Transform(),
728 root_rect,
729 1,
730 true,
731 gfx::Rect(),
732 render_surface_layer_list);
733 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
734 gfx::Transform(),
735 child_rect,
736 1,
737 true,
738 gfx::Rect(),
739 render_surface_layer_list);
740 TestOcclusionTrackerImpl occlusion_tracker(gfx::Rect(200, 100, 100, 100));
741 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
742
743 AppendQuads(&quad_list,
744 &shared_state_list,
745 child_layer.get(),
746 &it,
747 &occlusion_tracker);
748 AppendQuads(&quad_list,
749 &shared_state_list,
750 root_layer.get(),
751 &it,
752 &occlusion_tracker);
753 EXPECT_EQ(quad_list.size(), 1u);
754 EXPECT_NEAR(
755 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 10000, 1);
756 EXPECT_NEAR(
757 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
758 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
759 120000,
760 1);
761 }
762
763 TEST_F(QuadCullerTest, VerifyCullOutsideScissorOverCulledTile) {
764 DECLARE_AND_INITIALIZE_TEST_QUADS();
765 scoped_ptr<TiledLayerImpl> root_layer =
766 MakeLayer(NULL,
767 gfx::Transform(),
768 root_rect,
769 1,
770 true,
771 gfx::Rect(),
772 render_surface_layer_list);
773 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
774 gfx::Transform(),
775 child_rect,
776 1,
777 true,
778 gfx::Rect(),
779 render_surface_layer_list);
780 TestOcclusionTrackerImpl occlusion_tracker(gfx::Rect(100, 100, 100, 100));
781 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
782
783 AppendQuads(&quad_list,
784 &shared_state_list,
785 child_layer.get(),
786 &it,
787 &occlusion_tracker);
788 AppendQuads(&quad_list,
789 &shared_state_list,
790 root_layer.get(),
791 &it,
792 &occlusion_tracker);
793 EXPECT_EQ(quad_list.size(), 1u);
794 EXPECT_NEAR(
795 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 10000, 1);
796 EXPECT_NEAR(
797 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
798 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
799 120000,
800 1);
801 }
802
803 TEST_F(QuadCullerTest, VerifyCullOutsideScissorOverPartialTiles) {
804 DECLARE_AND_INITIALIZE_TEST_QUADS();
805 scoped_ptr<TiledLayerImpl> root_layer =
806 MakeLayer(NULL,
807 gfx::Transform(),
808 root_rect,
809 1,
810 true,
811 gfx::Rect(),
812 render_surface_layer_list);
813 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
814 gfx::Transform(),
815 child_rect,
816 1,
817 true,
818 gfx::Rect(),
819 render_surface_layer_list);
820 TestOcclusionTrackerImpl occlusion_tracker(gfx::Rect(50, 50, 200, 200));
821 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
822
823 AppendQuads(&quad_list,
824 &shared_state_list,
825 child_layer.get(),
826 &it,
827 &occlusion_tracker);
828 AppendQuads(&quad_list,
829 &shared_state_list,
830 root_layer.get(),
831 &it,
832 &occlusion_tracker);
833 EXPECT_EQ(quad_list.size(), 9u);
834 EXPECT_NEAR(
835 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 40000, 1);
836 EXPECT_NEAR(
837 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
838 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
839 90000,
840 1);
841 }
842
843 TEST_F(QuadCullerTest, VerifyCullOutsideScissorOverNoTiles) {
844 DECLARE_AND_INITIALIZE_TEST_QUADS();
845 scoped_ptr<TiledLayerImpl> root_layer =
846 MakeLayer(NULL,
847 gfx::Transform(),
848 root_rect,
849 1,
850 true,
851 gfx::Rect(),
852 render_surface_layer_list);
853 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
854 gfx::Transform(),
855 child_rect,
856 1,
857 true,
858 gfx::Rect(),
859 render_surface_layer_list);
860 TestOcclusionTrackerImpl occlusion_tracker(gfx::Rect(500, 500, 100, 100));
861 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
862
863 AppendQuads(&quad_list,
864 &shared_state_list,
865 child_layer.get(),
866 &it,
867 &occlusion_tracker);
868 AppendQuads(&quad_list,
869 &shared_state_list,
870 root_layer.get(),
871 &it,
872 &occlusion_tracker);
873 EXPECT_EQ(quad_list.size(), 0u);
874 EXPECT_NEAR(
875 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque(), 0, 1);
876 EXPECT_NEAR(
877 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent(), 0, 1);
878 EXPECT_NEAR(occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing(),
879 130000,
880 1);
881 }
882
883 TEST_F(QuadCullerTest, VerifyWithoutMetrics) { 723 TEST_F(QuadCullerTest, VerifyWithoutMetrics) {
884 DECLARE_AND_INITIALIZE_TEST_QUADS(); 724 DECLARE_AND_INITIALIZE_TEST_QUADS();
885 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL, 725 scoped_ptr<TiledLayerImpl> root_layer = MakeLayer(NULL,
886 gfx::Transform(), 726 gfx::Transform(),
887 root_rect, 727 root_rect,
888 1.f, 728 1.f,
889 true, 729 true,
890 gfx::Rect(), 730 gfx::Rect(),
891 render_surface_layer_list); 731 render_surface_layer_list);
892 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(), 732 scoped_ptr<TiledLayerImpl> child_layer = MakeLayer(root_layer.get(),
893 gfx::Transform(), 733 gfx::Transform(),
894 child_rect, 734 child_rect,
895 1.f, 735 1.f,
896 true, 736 true,
897 gfx::Rect(), 737 gfx::Rect(),
898 render_surface_layer_list); 738 render_surface_layer_list);
899 bool record_metrics = false; 739 bool record_metrics = false;
900 TestOcclusionTrackerImpl occlusion_tracker(gfx::Rect(50, 50, 200, 200), 740 TestOcclusionTrackerImpl occlusion_tracker(gfx::Rect(-100, -100, 1000, 1000),
901 record_metrics); 741 record_metrics);
902 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list); 742 LayerIteratorType it = LayerIteratorType::Begin(&render_surface_layer_list);
903 743
904 AppendQuads(&quad_list, 744 AppendQuads(&quad_list,
905 &shared_state_list, 745 &shared_state_list,
906 child_layer.get(), 746 child_layer.get(),
907 &it, 747 &it,
908 &occlusion_tracker); 748 &occlusion_tracker);
909 AppendQuads(&quad_list, 749 AppendQuads(&quad_list,
910 &shared_state_list, 750 &shared_state_list,
911 root_layer.get(), 751 root_layer.get(),
912 &it, 752 &it,
913 &occlusion_tracker); 753 &occlusion_tracker);
914 EXPECT_EQ(9u, quad_list.size()); 754 EXPECT_EQ(9u, quad_list.size());
915 EXPECT_EQ(0.f, 755 EXPECT_EQ(0.f,
916 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque()); 756 occlusion_tracker.overdraw_metrics()->pixels_drawn_opaque());
917 EXPECT_EQ(0.f, 757 EXPECT_EQ(0.f,
918 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent()); 758 occlusion_tracker.overdraw_metrics()->pixels_drawn_translucent());
919 EXPECT_EQ(0.f, 759 EXPECT_EQ(0.f,
920 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing()); 760 occlusion_tracker.overdraw_metrics()->pixels_culled_for_drawing());
921 } 761 }
922 762
923 } // namespace 763 } // namespace
924 } // namespace cc 764 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/quad_culler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698