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

Side by Side Diff: cc/tiles/gpu_image_decode_controller.cc

Issue 2347123005: cc: Remove some spammy traces from GpuImageDecodeController (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « no previous file | 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/tiles/gpu_image_decode_controller.h" 5 #include "cc/tiles/gpu_image_decode_controller.h"
6 6
7 #include <inttypes.h> 7 #include <inttypes.h>
8 8
9 #include "base/debug/alias.h" 9 #include "base/debug/alias.h"
10 #include "base/memory/discardable_memory_allocator.h" 10 #include "base/memory/discardable_memory_allocator.h"
(...skipping 727 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 .first; 738 .first;
739 } 739 }
740 740
741 DCHECK(found != in_use_cache_.end()); 741 DCHECK(found != in_use_cache_.end());
742 ++found->second.ref_count; 742 ++found->second.ref_count;
743 ++found->second.image_data->upload.ref_count; 743 ++found->second.image_data->upload.ref_count;
744 OwnershipChanged(found->second.image_data.get()); 744 OwnershipChanged(found->second.image_data.get());
745 } 745 }
746 746
747 void GpuImageDecodeController::UnrefImageInternal(const DrawImage& draw_image) { 747 void GpuImageDecodeController::UnrefImageInternal(const DrawImage& draw_image) {
748 TRACE_EVENT0("disabled-by-default-cc.debug",
749 "GpuImageDecodeController::UnrefImageInternal");
750 lock_.AssertAcquired(); 748 lock_.AssertAcquired();
751 auto found = in_use_cache_.find(GenerateInUseCacheKey(draw_image)); 749 auto found = in_use_cache_.find(GenerateInUseCacheKey(draw_image));
752 DCHECK(found != in_use_cache_.end()); 750 DCHECK(found != in_use_cache_.end());
753 DCHECK_GT(found->second.image_data->upload.ref_count, 0u); 751 DCHECK_GT(found->second.image_data->upload.ref_count, 0u);
754 DCHECK_GT(found->second.ref_count, 0u); 752 DCHECK_GT(found->second.ref_count, 0u);
755 --found->second.ref_count; 753 --found->second.ref_count;
756 --found->second.image_data->upload.ref_count; 754 --found->second.image_data->upload.ref_count;
757 OwnershipChanged(found->second.image_data.get()); 755 OwnershipChanged(found->second.image_data.get());
758 if (found->second.ref_count == 0u) { 756 if (found->second.ref_count == 0u) {
759 in_use_cache_.erase(found); 757 in_use_cache_.erase(found);
760 } 758 }
761 } 759 }
762 760
763 // Called any time an image or decode ref count changes. Takes care of any 761 // Called any time an image or decode ref count changes. Takes care of any
764 // necessary memory budget book-keeping and cleanup. 762 // necessary memory budget book-keeping and cleanup.
765 void GpuImageDecodeController::OwnershipChanged(ImageData* image_data) { 763 void GpuImageDecodeController::OwnershipChanged(ImageData* image_data) {
766 TRACE_EVENT0("disabled-by-default-cc.debug",
767 "GpuImageDecodeController::OwnershipChanged");
768 lock_.AssertAcquired(); 764 lock_.AssertAcquired();
769 765
770 bool has_any_refs = 766 bool has_any_refs =
771 image_data->upload.ref_count > 0 || image_data->decode.ref_count > 0; 767 image_data->upload.ref_count > 0 || image_data->decode.ref_count > 0;
772 768
773 // Don't keep around orphaned images. 769 // Don't keep around orphaned images.
774 if (image_data->is_orphaned && !has_any_refs) { 770 if (image_data->is_orphaned && !has_any_refs) {
775 images_pending_deletion_.push_back(std::move(image_data->upload.image())); 771 images_pending_deletion_.push_back(std::move(image_data->upload.image()));
776 image_data->upload.SetImage(nullptr); 772 image_data->upload.SetImage(nullptr);
777 } 773 }
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 if (CanFitSize(required_size) && !ExceedsPreferredCount()) 893 if (CanFitSize(required_size) && !ExceedsPreferredCount())
898 return true; 894 return true;
899 } 895 }
900 896
901 // Preferred count is only used as a guideline when triming the cache. Allow 897 // Preferred count is only used as a guideline when triming the cache. Allow
902 // new elements to be added as long as we are below our size limit. 898 // new elements to be added as long as we are below our size limit.
903 return CanFitSize(required_size); 899 return CanFitSize(required_size);
904 } 900 }
905 901
906 bool GpuImageDecodeController::CanFitSize(size_t size) const { 902 bool GpuImageDecodeController::CanFitSize(size_t size) const {
907 TRACE_EVENT0("disabled-by-default-cc.debug",
908 "GpuImageDecodeController::CanFitSize");
909 lock_.AssertAcquired(); 903 lock_.AssertAcquired();
910 904
911 base::CheckedNumeric<uint32_t> new_size(bytes_used_); 905 base::CheckedNumeric<uint32_t> new_size(bytes_used_);
912 new_size += size; 906 new_size += size;
913 return new_size.IsValid() && new_size.ValueOrDie() <= cached_bytes_limit_; 907 return new_size.IsValid() && new_size.ValueOrDie() <= cached_bytes_limit_;
914 } 908 }
915 909
916 bool GpuImageDecodeController::ExceedsPreferredCount() const { 910 bool GpuImageDecodeController::ExceedsPreferredCount() const {
917 TRACE_EVENT0("disabled-by-default-cc.debug",
918 "GpuImageDecodeController::ExceedsPreferredCount");
919 lock_.AssertAcquired(); 911 lock_.AssertAcquired();
920 912
921 return persistent_cache_.size() > cached_items_limit_; 913 return persistent_cache_.size() > cached_items_limit_;
922 } 914 }
923 915
924 void GpuImageDecodeController::DecodeImageIfNecessary( 916 void GpuImageDecodeController::DecodeImageIfNecessary(
925 const DrawImage& draw_image, 917 const DrawImage& draw_image,
926 ImageData* image_data) { 918 ImageData* image_data) {
927 lock_.AssertAcquired(); 919 lock_.AssertAcquired();
928 920
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
1083 } else { 1075 } else {
1084 mode = DecodedDataMode::GPU; 1076 mode = DecodedDataMode::GPU;
1085 } 1077 }
1086 1078
1087 return make_scoped_refptr( 1079 return make_scoped_refptr(
1088 new ImageData(mode, data_size, upload_scale_mip_level, 1080 new ImageData(mode, data_size, upload_scale_mip_level,
1089 CalculateUploadScaleFilterQuality(draw_image))); 1081 CalculateUploadScaleFilterQuality(draw_image)));
1090 } 1082 }
1091 1083
1092 void GpuImageDecodeController::DeletePendingImages() { 1084 void GpuImageDecodeController::DeletePendingImages() {
1093 TRACE_EVENT0("disabled-by-default-cc.debug",
1094 "GpuImageDecodeController::DeletePendingImages");
1095 context_->GetLock()->AssertAcquired(); 1085 context_->GetLock()->AssertAcquired();
1096 lock_.AssertAcquired(); 1086 lock_.AssertAcquired();
1097 images_pending_deletion_.clear(); 1087 images_pending_deletion_.clear();
1098 } 1088 }
1099 1089
1100 SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage( 1090 SkImageInfo GpuImageDecodeController::CreateImageInfoForDrawImage(
1101 const DrawImage& draw_image, 1091 const DrawImage& draw_image,
1102 int upload_scale_mip_level) const { 1092 int upload_scale_mip_level) const {
1103 TRACE_EVENT0("disabled-by-default-cc.debug",
1104 "GpuImageDecodeController::CreateImageInfoForDrawImage");
1105 gfx::Size mip_size = 1093 gfx::Size mip_size =
1106 CalculateSizeForMipLevel(draw_image, upload_scale_mip_level); 1094 CalculateSizeForMipLevel(draw_image, upload_scale_mip_level);
1107 return SkImageInfo::Make(mip_size.width(), mip_size.height(), 1095 return SkImageInfo::Make(mip_size.width(), mip_size.height(),
1108 ResourceFormatToClosestSkColorType(format_), 1096 ResourceFormatToClosestSkColorType(format_),
1109 kPremul_SkAlphaType); 1097 kPremul_SkAlphaType);
1110 } 1098 }
1111 1099
1112 // Tries to find an ImageData that can be used to draw the provided 1100 // Tries to find an ImageData that can be used to draw the provided
1113 // |draw_image|. First looks for an exact entry in our |in_use_cache_|. If one 1101 // |draw_image|. First looks for an exact entry in our |in_use_cache_|. If one
1114 // cannot be found, it looks for a compatible entry in our |persistent_cache_|. 1102 // cannot be found, it looks for a compatible entry in our |persistent_cache_|.
(...skipping 24 matching lines...) Expand all
1139 1127
1140 return nullptr; 1128 return nullptr;
1141 } 1129 }
1142 1130
1143 // Determines if we can draw the provided |draw_image| using the provided 1131 // Determines if we can draw the provided |draw_image| using the provided
1144 // |image_data|. This is true if the |image_data| is not scaled, or if it 1132 // |image_data|. This is true if the |image_data| is not scaled, or if it
1145 // is scaled at an equal or larger scale and equal or larger quality to 1133 // is scaled at an equal or larger scale and equal or larger quality to
1146 // the provided |draw_image|. 1134 // the provided |draw_image|.
1147 bool GpuImageDecodeController::IsCompatible(const ImageData* image_data, 1135 bool GpuImageDecodeController::IsCompatible(const ImageData* image_data,
1148 const DrawImage& draw_image) const { 1136 const DrawImage& draw_image) const {
1149 TRACE_EVENT0("disabled-by-default-cc.debug",
1150 "GpuImageDecodeController::IsCompatible");
1151 bool is_scaled = image_data->upload_scale_mip_level != 0; 1137 bool is_scaled = image_data->upload_scale_mip_level != 0;
1152 bool scale_is_compatible = CalculateUploadScaleMipLevel(draw_image) >= 1138 bool scale_is_compatible = CalculateUploadScaleMipLevel(draw_image) >=
1153 image_data->upload_scale_mip_level; 1139 image_data->upload_scale_mip_level;
1154 bool quality_is_compatible = CalculateUploadScaleFilterQuality(draw_image) <= 1140 bool quality_is_compatible = CalculateUploadScaleFilterQuality(draw_image) <=
1155 image_data->upload_scale_filter_quality; 1141 image_data->upload_scale_filter_quality;
1156 return !is_scaled || (scale_is_compatible && quality_is_compatible); 1142 return !is_scaled || (scale_is_compatible && quality_is_compatible);
1157 } 1143 }
1158 1144
1159 size_t GpuImageDecodeController::GetDrawImageSizeForTesting( 1145 size_t GpuImageDecodeController::GetDrawImageSizeForTesting(
1160 const DrawImage& image) { 1146 const DrawImage& image) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 // TODO(tasak): free this component's caches as much as possible before 1180 // TODO(tasak): free this component's caches as much as possible before
1195 // suspending renderer. 1181 // suspending renderer.
1196 break; 1182 break;
1197 case base::MemoryState::UNKNOWN: 1183 case base::MemoryState::UNKNOWN:
1198 // NOT_REACHED. 1184 // NOT_REACHED.
1199 break; 1185 break;
1200 } 1186 }
1201 } 1187 }
1202 1188
1203 } // namespace cc 1189 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698