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

Side by Side Diff: content/renderer/render_thread_impl.cc

Issue 2120713002: Fix use_image_texture_target inconsistencies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cleanup Created 4 years, 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "content/renderer/render_thread_impl.h" 5 #include "content/renderer/render_thread_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <map> 9 #include <map>
10 #include <utility> 10 #include <utility>
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 405
406 private: 406 private:
407 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_; 407 mojo::StrongBinding<mojom::EmbeddedWorkerSetup> binding_;
408 }; 408 };
409 409
410 void CreateEmbeddedWorkerSetup( 410 void CreateEmbeddedWorkerSetup(
411 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) { 411 mojo::InterfaceRequest<mojom::EmbeddedWorkerSetup> request) {
412 new EmbeddedWorkerSetupImpl(std::move(request)); 412 new EmbeddedWorkerSetupImpl(std::move(request));
413 } 413 }
414 414
415 void StringToUintVector(const std::string& str, std::vector<unsigned>* vector) { 415 // Converts a serialized ImageTextureTargetsMap back to the runtime format.
416 DCHECK(vector->empty()); 416 // Serialization takes the form:
417 std::vector<std::string> pieces = base::SplitString( 417 // "usage,format,target;usage,format,target;...;usage,format,target"
418 str, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); 418 cc::RendererSettings::ImageTextureTargetsMap StringToImageTextureTargetsMap(
419 DCHECK_EQ(pieces.size(), static_cast<size_t>(gfx::BufferFormat::LAST) + 1); 419 const std::string& str) {
420 for (size_t i = 0; i < pieces.size(); ++i) { 420 cc::RendererSettings::ImageTextureTargetsMap map;
421 unsigned number = 0; 421 std::vector<std::string> entries =
422 bool succeed = base::StringToUint(pieces[i], &number); 422 base::SplitString(str, ";", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
423 DCHECK(succeed); 423 for (const auto& entry : entries) {
424 vector->push_back(number); 424 std::vector<std::string> fields = base::SplitString(
425 entry, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
426 DCHECK_EQ(fields.size(), 3);
enne (OOO) 2016/07/15 21:39:32 Mmm, is this safe if the dcheck fails? Should it b
ericrk 2016/07/19 20:22:43 Changed these to CHECKs and added a unit test. We
427 uint32_t usage = 0;
428 uint32_t format = 0;
429 uint32_t target = 0;
430 bool succeeded = base::StringToUint(fields[0], &usage) &&
431 base::StringToUint(fields[1], &format) &&
432 base::StringToUint(fields[2], &target);
433 DCHECK(succeeded);
434 DCHECK_LE(usage, static_cast<uint32_t>(gfx::BufferUsage::LAST));
435 DCHECK_LE(format, static_cast<uint32_t>(gfx::BufferFormat::LAST));
436 map.emplace(cc::RendererSettings::ImageTextureTargetKey(
437 static_cast<gfx::BufferUsage>(usage),
438 static_cast<gfx::BufferFormat>(format)),
439 target);
425 } 440 }
441 return map;
426 } 442 }
427 443
428 scoped_refptr<ContextProviderCommandBuffer> CreateOffscreenContext( 444 scoped_refptr<ContextProviderCommandBuffer> CreateOffscreenContext(
429 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host, 445 scoped_refptr<gpu::GpuChannelHost> gpu_channel_host,
430 const gpu::SharedMemoryLimits& limits, 446 const gpu::SharedMemoryLimits& limits,
431 bool support_locking, 447 bool support_locking,
432 command_buffer_metrics::ContextType type, 448 command_buffer_metrics::ContextType type,
433 int32_t stream_id, 449 int32_t stream_id,
434 gpu::GpuStreamPriority stream_priority) { 450 gpu::GpuStreamPriority stream_priority) {
435 DCHECK(gpu_channel_host); 451 DCHECK(gpu_channel_host);
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 Boolean key_exists = false; 766 Boolean key_exists = false;
751 Boolean value = CFPreferencesGetAppBooleanValue( 767 Boolean value = CFPreferencesGetAppBooleanValue(
752 key, kCFPreferencesCurrentApplication, &key_exists); 768 key, kCFPreferencesCurrentApplication, &key_exists);
753 is_elastic_overscroll_enabled_ = !key_exists || value; 769 is_elastic_overscroll_enabled_ = !key_exists || value;
754 #else 770 #else
755 is_elastic_overscroll_enabled_ = false; 771 is_elastic_overscroll_enabled_ = false;
756 #endif 772 #endif
757 773
758 std::string image_texture_target_string = 774 std::string image_texture_target_string =
759 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget); 775 command_line.GetSwitchValueASCII(switches::kContentImageTextureTarget);
760 StringToUintVector(image_texture_target_string, &use_image_texture_targets_); 776 use_image_texture_targets_ =
777 StringToImageTextureTargetsMap(image_texture_target_string);
761 778
762 if (command_line.HasSwitch(switches::kDisableLCDText)) { 779 if (command_line.HasSwitch(switches::kDisableLCDText)) {
763 is_lcd_text_enabled_ = false; 780 is_lcd_text_enabled_ = false;
764 } else if (command_line.HasSwitch(switches::kEnableLCDText)) { 781 } else if (command_line.HasSwitch(switches::kEnableLCDText)) {
765 is_lcd_text_enabled_ = true; 782 is_lcd_text_enabled_ = true;
766 } else { 783 } else {
767 #if defined(OS_ANDROID) 784 #if defined(OS_ANDROID)
768 is_lcd_text_enabled_ = false; 785 is_lcd_text_enabled_ = false;
769 #else 786 #else
770 is_lcd_text_enabled_ = true; 787 is_lcd_text_enabled_ = true;
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
1448 const bool enable_video_accelerator = 1465 const bool enable_video_accelerator =
1449 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode); 1466 !cmd_line->HasSwitch(switches::kDisableAcceleratedVideoDecode);
1450 const bool enable_gpu_memory_buffer_video_frames = 1467 const bool enable_gpu_memory_buffer_video_frames =
1451 #if defined(OS_MACOSX) || defined(OS_LINUX) 1468 #if defined(OS_MACOSX) || defined(OS_LINUX)
1452 !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) && 1469 !cmd_line->HasSwitch(switches::kDisableGpuMemoryBufferVideoFrames) &&
1453 !cmd_line->HasSwitch(switches::kDisableGpuCompositing) && 1470 !cmd_line->HasSwitch(switches::kDisableGpuCompositing) &&
1454 !gpu_channel_host->gpu_info().software_rendering; 1471 !gpu_channel_host->gpu_info().software_rendering;
1455 #else 1472 #else
1456 cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames); 1473 cmd_line->HasSwitch(switches::kEnableGpuMemoryBufferVideoFrames);
1457 #endif 1474 #endif
1458 std::vector<unsigned> image_texture_targets;
1459 std::string video_frame_image_texture_target_string =
1460 cmd_line->GetSwitchValueASCII(switches::kVideoImageTextureTarget);
1461 StringToUintVector(video_frame_image_texture_target_string,
1462 &image_texture_targets);
1463 1475
1464 gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create( 1476 gpu_factories_.push_back(RendererGpuVideoAcceleratorFactories::Create(
1465 std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(), 1477 std::move(gpu_channel_host), base::ThreadTaskRunnerHandle::Get(),
1466 media_task_runner, std::move(media_context_provider), 1478 media_task_runner, std::move(media_context_provider),
1467 enable_gpu_memory_buffer_video_frames, image_texture_targets, 1479 enable_gpu_memory_buffer_video_frames, use_image_texture_targets_,
1468 enable_video_accelerator)); 1480 enable_video_accelerator));
1469 return gpu_factories_.back(); 1481 return gpu_factories_.back();
1470 } 1482 }
1471 1483
1472 scoped_refptr<ContextProviderCommandBuffer> 1484 scoped_refptr<ContextProviderCommandBuffer>
1473 RenderThreadImpl::SharedMainThreadContextProvider() { 1485 RenderThreadImpl::SharedMainThreadContextProvider() {
1474 DCHECK(IsMainThread()); 1486 DCHECK(IsMainThread());
1475 if (shared_main_thread_contexts_ && 1487 if (shared_main_thread_contexts_ &&
1476 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() == 1488 shared_main_thread_contexts_->ContextGL()->GetGraphicsResetStatusKHR() ==
1477 GL_NO_ERROR) 1489 GL_NO_ERROR)
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
1588 } 1600 }
1589 1601
1590 bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() { 1602 bool RenderThreadImpl::IsGpuMemoryBufferCompositorResourcesEnabled() {
1591 return is_gpu_memory_buffer_compositor_resources_enabled_; 1603 return is_gpu_memory_buffer_compositor_resources_enabled_;
1592 } 1604 }
1593 1605
1594 bool RenderThreadImpl::IsElasticOverscrollEnabled() { 1606 bool RenderThreadImpl::IsElasticOverscrollEnabled() {
1595 return is_elastic_overscroll_enabled_; 1607 return is_elastic_overscroll_enabled_;
1596 } 1608 }
1597 1609
1598 std::vector<unsigned> RenderThreadImpl::GetImageTextureTargets() { 1610 const cc::RendererSettings::ImageTextureTargetsMap&
1611 RenderThreadImpl::GetImageTextureTargets() {
1599 return use_image_texture_targets_; 1612 return use_image_texture_targets_;
1600 } 1613 }
1601 1614
1602 scoped_refptr<base::SingleThreadTaskRunner> 1615 scoped_refptr<base::SingleThreadTaskRunner>
1603 RenderThreadImpl::GetCompositorMainThreadTaskRunner() { 1616 RenderThreadImpl::GetCompositorMainThreadTaskRunner() {
1604 return main_thread_compositor_task_runner_; 1617 return main_thread_compositor_task_runner_;
1605 } 1618 }
1606 1619
1607 scoped_refptr<base::SingleThreadTaskRunner> 1620 scoped_refptr<base::SingleThreadTaskRunner>
1608 RenderThreadImpl::GetCompositorImplThreadTaskRunner() { 1621 RenderThreadImpl::GetCompositorImplThreadTaskRunner() {
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
2222 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical) 2235 v8_memory_pressure_level == v8::MemoryPressureLevel::kCritical)
2223 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate; 2236 v8_memory_pressure_level = v8::MemoryPressureLevel::kModerate;
2224 2237
2225 blink::mainThreadIsolate()->MemoryPressureNotification( 2238 blink::mainThreadIsolate()->MemoryPressureNotification(
2226 v8_memory_pressure_level); 2239 v8_memory_pressure_level);
2227 blink::MemoryPressureNotificationToWorkerThreadIsolates( 2240 blink::MemoryPressureNotificationToWorkerThreadIsolates(
2228 v8_memory_pressure_level); 2241 v8_memory_pressure_level);
2229 } 2242 }
2230 2243
2231 } // namespace content 2244 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698