add kRGBA_F16Norm_SkColorType
For now this is distinct from kRGBA_F16_SkColorType but treated the
same. Next steps are to see if we can keep it clamped to [0,1].
Switched a few switches away from default to exhaustive.
Took away any explicit SW clamps for now except the one we definitely
want in append_gamut_clamp_if_normalized().
Skip F16Norm in the DDL test because we can't yet distinguish it from
F16.
Change-Id: I021a864fe078e4fa4e2b399982e6c38350e10d74
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/196371
Commit-Queue: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Klein <mtklein@google.com>
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index c9cfadb..6fdfea5 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -306,6 +306,8 @@
return kUnknown_GrPixelConfig;
case kGray_8_SkColorType:
return kGray_8_GrPixelConfig;
+ case kRGBA_F16Norm_SkColorType: // TODO(brianosman): anything to do here?
+ return kRGBA_half_GrPixelConfig;
case kRGBA_F16_SkColorType:
return kRGBA_half_GrPixelConfig;
case kRGBA_F32_SkColorType:
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index d0d54a4..ee3d6ee 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -2994,6 +2994,11 @@
return kGray_8_as_Red_GrPixelConfig;
}
break;
+ case kRGBA_F16Norm_SkColorType: // TODO(brianosman): anything here?
+ if (GR_GL_RGBA16F == format) {
+ return kRGBA_half_GrPixelConfig;
+ }
+ break;
case kRGBA_F16_SkColorType:
if (GR_GL_RGBA16F == format) {
return kRGBA_half_GrPixelConfig;
diff --git a/src/gpu/mtl/GrMtlCaps.mm b/src/gpu/mtl/GrMtlCaps.mm
index 45ceb50..b2e6970 100644
--- a/src/gpu/mtl/GrMtlCaps.mm
+++ b/src/gpu/mtl/GrMtlCaps.mm
@@ -489,6 +489,11 @@
return kGray_8_as_Red_GrPixelConfig;
}
break;
+ case kRGBA_F16Norm_SkColorType: // TODO(brianosman): ?
+ if (MTLPixelFormatRG16Float == format) {
+ return kRGBA_half_GrPixelConfig;
+ }
+ break;
case kRGBA_F16_SkColorType:
if (MTLPixelFormatRG16Float == format) {
return kRGBA_half_GrPixelConfig;
diff --git a/src/gpu/vk/GrVkCaps.cpp b/src/gpu/vk/GrVkCaps.cpp
index 9b61fb6..0007ba9 100644
--- a/src/gpu/vk/GrVkCaps.cpp
+++ b/src/gpu/vk/GrVkCaps.cpp
@@ -800,6 +800,11 @@
return kGray_8_as_Red_GrPixelConfig;
}
break;
+ case kRGBA_F16Norm_SkColorType: // TODO(brianosman): ?
+ if (VK_FORMAT_R16G16B16A16_SFLOAT == format) {
+ return kRGBA_half_GrPixelConfig;
+ }
+ break;
case kRGBA_F16_SkColorType:
if (VK_FORMAT_R16G16B16A16_SFLOAT == format) {
return kRGBA_half_GrPixelConfig;