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

Unified Diff: cc/resources/resource_provider.cc

Issue 2122573003: media: replace LUMINANCE_F16 by RG_88 for 9/10-bit h264 videos Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: introduce --disable-half-float-conversion-texture flag 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 side-by-side diff with in-line comments
Download patch
Index: cc/resources/resource_provider.cc
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
index 49dae1d6ae988284713422c430f0f1e8a2f814e8..c48f96db5b9a54d8a94a6b2b13cfbd53cfdf3cf1 100644
--- a/cc/resources/resource_provider.cc
+++ b/cc/resources/resource_provider.cc
@@ -12,6 +12,7 @@
#include <unordered_map>
#include "base/atomic_sequence_num.h"
+#include "base/command_line.h"
#include "base/macros.h"
#include "base/metrics/histogram.h"
#include "base/numerics/safe_math.h"
@@ -22,6 +23,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/memory_dump_manager.h"
#include "base/trace_event/trace_event.h"
+#include "cc/base/switches.h"
#include "cc/resources/platform_color.h"
#include "cc/resources/resource_util.h"
#include "cc/resources/returned_resource.h"
@@ -92,6 +94,7 @@ GLenum TextureToStorageFormat(ResourceFormat format) {
case RGB_565:
case ETC1:
case RED_8:
+ case RG_88:
case LUMINANCE_F16:
NOTREACHED();
break;
@@ -112,6 +115,7 @@ bool IsFormatSupportedForStorage(ResourceFormat format, bool use_bgra) {
case RGB_565:
case ETC1:
case RED_8:
+ case RG_88:
case LUMINANCE_F16:
return false;
}
@@ -456,6 +460,13 @@ ResourceProvider::ResourceProvider(
yuv_resource_format_ = caps.texture_rg ? RED_8 : LUMINANCE_8;
yuv_highbit_resource_format_ =
caps.texture_half_float_linear ? LUMINANCE_F16 : yuv_resource_format_;
+ const base::CommandLine* command_line =
+ base::CommandLine::ForCurrentProcess();
+ if (command_line->HasSwitch(switches::kDisableHalfFloatConversionTexture) ||
+ !caps.texture_half_float_linear) {
+ yuv_highbit_resource_format_ =
+ caps.texture_rg ? RG_88 : yuv_highbit_resource_format_;
+ }
}
use_sync_query_ = caps.sync_query;
@@ -523,6 +534,7 @@ bool ResourceProvider::IsResourceFormatSupported(ResourceFormat format) const {
case ETC1:
return caps.texture_format_etc1;
case RED_8:
+ case RG_88:
return caps.texture_rg;
case LUMINANCE_F16:
return caps.texture_half_float_linear;
@@ -664,6 +676,7 @@ ResourceId ResourceProvider::CreateResourceFromTextureMailbox(
DCHECK(mailbox.IsValid());
Resource* resource = nullptr;
if (mailbox.IsTexture()) {
+ // TODO(dshwang): the resource can be R_8 or RG_88. crbug.com/624436
resource = InsertResource(
id,
Resource(0, mailbox.size_in_pixels(), Resource::EXTERNAL,

Powered by Google App Engine
This is Rietveld 408576698