Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit ef41d50

Browse files
committed
Disable MTLPixelFormatBGR10A2Unorm on iOS
This is a bit overkill. Support for BGR10_A2 was added in iOS 11 but we support iOS 9 and up. Bug: skia:10195 Bug: 1068416 Change-Id: I0b66c3ac676ef14d5bc2c7fcf194047b51017e83 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/286878 Commit-Queue: Robert Phillips <[email protected]> Reviewed-by: Jim Van Verth <[email protected]>
1 parent 6a6de65 commit ef41d50

File tree

5 files changed

+18
-1
lines changed

5 files changed

+18
-1
lines changed

src/gpu/mtl/GrMtlCaps.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class GrMtlCaps : public GrCaps {
156156
int fColorTypeInfoCount = 0;
157157
};
158158
#ifdef SK_BUILD_FOR_IOS
159-
static constexpr size_t kNumMtlFormats = 18;
159+
static constexpr size_t kNumMtlFormats = 17;
160160
#else
161161
static constexpr size_t kNumMtlFormats = 16;
162162
#endif

src/gpu/mtl/GrMtlCaps.mm

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,10 @@ static bool format_is_srgb(MTLPixelFormat format) {
469469
MTLPixelFormatR16Float,
470470
MTLPixelFormatRG8Unorm,
471471
MTLPixelFormatRGB10A2Unorm,
472+
#ifdef SK_BUILD_FOR_MAC
473+
// BGR10_A2 wasn't added until iOS 11
472474
MTLPixelFormatBGR10A2Unorm,
475+
#endif
473476
#ifdef SK_BUILD_FOR_IOS
474477
MTLPixelFormatABGR4Unorm,
475478
#endif
@@ -698,6 +701,7 @@ static bool format_is_srgb(MTLPixelFormat format) {
698701
}
699702
}
700703

704+
#ifdef SK_BUILD_FOR_MAC
701705
// Format: BGR10A2Unorm
702706
{
703707
info = &fFormatTable[GetFormatIndex(MTLPixelFormatBGR10A2Unorm)];
@@ -717,6 +721,7 @@ static bool format_is_srgb(MTLPixelFormat format) {
717721
ctInfo.fFlags = ColorTypeInfo::kUploadData_Flag | ColorTypeInfo::kRenderable_Flag;
718722
}
719723
}
724+
#endif
720725

721726
// Format: R16Float
722727
{
@@ -867,7 +872,9 @@ static bool format_is_srgb(MTLPixelFormat format) {
867872
this->setColorType(GrColorType::kRG_88, { MTLPixelFormatRG8Unorm });
868873
this->setColorType(GrColorType::kBGRA_8888, { MTLPixelFormatBGRA8Unorm });
869874
this->setColorType(GrColorType::kRGBA_1010102, { MTLPixelFormatRGB10A2Unorm });
875+
#ifdef SK_BUILD_FOR_MAC
870876
this->setColorType(GrColorType::kBGRA_1010102, { MTLPixelFormatBGR10A2Unorm });
877+
#endif
871878
this->setColorType(GrColorType::kGray_8, { MTLPixelFormatR8Unorm });
872879
this->setColorType(GrColorType::kAlpha_F16, { MTLPixelFormatR16Float });
873880
this->setColorType(GrColorType::kRGBA_F16, { MTLPixelFormatRGBA16Float });
@@ -1094,7 +1101,9 @@ static bool format_is_srgb(MTLPixelFormat format) {
10941101
{ GrColorType::kRG_88, GrBackendFormat::MakeMtl(MTLPixelFormatRG8Unorm) },
10951102
{ GrColorType::kBGRA_8888, GrBackendFormat::MakeMtl(MTLPixelFormatBGRA8Unorm) },
10961103
{ GrColorType::kRGBA_1010102, GrBackendFormat::MakeMtl(MTLPixelFormatRGB10A2Unorm) },
1104+
#ifdef SK_BUILD_FOR_MAC
10971105
{ GrColorType::kBGRA_1010102, GrBackendFormat::MakeMtl(MTLPixelFormatBGR10A2Unorm) },
1106+
#endif
10981107
{ GrColorType::kGray_8, GrBackendFormat::MakeMtl(MTLPixelFormatR8Unorm) },
10991108
{ GrColorType::kAlpha_F16, GrBackendFormat::MakeMtl(MTLPixelFormatR16Float) },
11001109
{ GrColorType::kRGBA_F16, GrBackendFormat::MakeMtl(MTLPixelFormatRGBA16Float) },

src/gpu/mtl/GrMtlGpu.mm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -741,7 +741,9 @@ static GrColorType mtl_format_to_backend_tex_clear_colortype(MTLPixelFormat form
741741
case MTLPixelFormatRG8Unorm: return GrColorType::kRG_88;
742742
case MTLPixelFormatBGRA8Unorm: return GrColorType::kBGRA_8888;
743743
case MTLPixelFormatRGB10A2Unorm: return GrColorType::kRGBA_1010102;
744+
#ifdef SK_BUILD_FOR_MAC
744745
case MTLPixelFormatBGR10A2Unorm: return GrColorType::kBGRA_1010102;
746+
#endif
745747
case MTLPixelFormatR16Float: return GrColorType::kR_F16;
746748
case MTLPixelFormatRGBA16Float: return GrColorType::kRGBA_F16;
747749
case MTLPixelFormatR16Unorm: return GrColorType::kR_16;

src/gpu/mtl/GrMtlUtil.mm

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,9 @@ uint32_t GrMtlFormatChannels(GrMTLPixelFormat mtlFormat) {
248248
case MTLPixelFormatR16Float: return kRed_SkColorChannelFlag;
249249
case MTLPixelFormatRG8Unorm: return kRG_SkColorChannelFlags;
250250
case MTLPixelFormatRGB10A2Unorm: return kRGBA_SkColorChannelFlags;
251+
#ifdef SK_BUILD_FOR_MAC
251252
case MTLPixelFormatBGR10A2Unorm: return kRGBA_SkColorChannelFlags;
253+
#endif
252254
#if defined(SK_BUILD_FOR_IOS) && !TARGET_OS_SIMULATOR
253255
case MTLPixelFormatABGR4Unorm: return kRGBA_SkColorChannelFlags;
254256
#endif
@@ -313,7 +315,9 @@ bool GrMtlFormatIsBGRA8(GrMTLPixelFormat mtlFormat) {
313315
case MTLPixelFormatR16Float: return "R16Float";
314316
case MTLPixelFormatRG8Unorm: return "RG8Unorm";
315317
case MTLPixelFormatRGB10A2Unorm: return "RGB10A2Unorm";
318+
#ifdef SK_BUILD_FOR_MAC
316319
case MTLPixelFormatBGR10A2Unorm: return "BGR10A2Unorm";
320+
#endif
317321
#ifdef SK_BUILD_FOR_IOS
318322
case MTLPixelFormatABGR4Unorm: return "ABGR4Unorm";
319323
#endif

tests/MtlBackendAllocationTest.mm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ void test_color_init(GrContext* context, skiatest::Reporter* reporter,
5151

5252
{ GrColorType::kRGBA_1010102, MTLPixelFormatRGB10A2Unorm,
5353
{ 0.25f, 0.5f, 0.75f, 1.0f } },
54+
#ifdef SK_BUILD_FOR_MAC
5455
{ GrColorType::kBGRA_1010102, MTLPixelFormatBGR10A2Unorm,
5556
{ 0.25f, 0.5f, 0.75f, 1.0f } },
57+
#endif
5658
#ifdef SK_BUILD_FOR_IOS
5759
{ GrColorType::kBGR_565, MTLPixelFormatB5G6R5Unorm, SkColors::kRed },
5860
{ GrColorType::kABGR_4444, MTLPixelFormatABGR4Unorm, SkColors::kGreen },

0 commit comments

Comments
 (0)