Index: src/gpu/vk/GrVkUtil.cpp |
diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp |
index 5ab7966d1a2b0fdb721385f40ffccda69005f076..a6a9d4c1a1df29072efb33b1d2650c6cbf98fe7a 100644 |
--- a/src/gpu/vk/GrVkUtil.cpp |
+++ b/src/gpu/vk/GrVkUtil.cpp |
@@ -23,6 +23,9 @@ bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) { |
case kSRGBA_8888_GrPixelConfig: |
*format = VK_FORMAT_R8G8B8A8_SRGB; |
break; |
+ case kSBGRA_8888_GrPixelConfig: |
+ *format = VK_FORMAT_B8G8R8A8_SRGB; |
+ break; |
case kRGB_565_GrPixelConfig: |
*format = VK_FORMAT_R5G6B5_UNORM_PACK16; |
break; |
@@ -30,7 +33,7 @@ bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) { |
*format = VK_FORMAT_R4G4B4A4_UNORM_PACK16; |
break; |
case kIndex_8_GrPixelConfig: |
- // No current rad support for this config |
+ // No current vulkan support for this config |
return false; |
case kAlpha_8_GrPixelConfig: |
*format = VK_FORMAT_R8_UNORM; |
@@ -40,7 +43,7 @@ bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) { |
*format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK; |
break; |
case kLATC_GrPixelConfig: |
- // No current rad support for this config |
+ // No current vulkan support for this config |
return false; |
case kR11_EAC_GrPixelConfig: |
*format = VK_FORMAT_EAC_R11_UNORM_BLOCK; |
@@ -63,6 +66,58 @@ bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) { |
return true; |
} |
+bool GrVkFormatToPixelConfig(VkFormat format, GrPixelConfig* config) { |
+ GrPixelConfig dontCare; |
+ if (!config) { |
+ config = &dontCare; |
+ } |
+ |
+ switch (format) { |
+ case VK_FORMAT_R8G8B8A8_UNORM: |
+ *config = kRGBA_8888_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_B8G8R8A8_UNORM: |
+ *config = kBGRA_8888_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_R8G8B8A8_SRGB: |
+ *config = kSRGBA_8888_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_B8G8R8A8_SRGB: |
+ *config = kSBGRA_8888_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_R5G6B5_UNORM_PACK16: |
+ *config = kRGB_565_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_R4G4B4A4_UNORM_PACK16: |
+ *config = kRGBA_4444_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_R8_UNORM: |
+ *config = kAlpha_8_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: |
+ *config = kETC1_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK: |
+ *config = kR11_EAC_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK: |
+ *config = kASTC_12x12_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_R32G32B32A32_SFLOAT: |
+ *config = kRGBA_float_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_R16G16B16A16_SFLOAT: |
+ *config = kRGBA_half_GrPixelConfig; |
+ break; |
+ case VK_FORMAT_R16_SFLOAT: |
+ *config = kAlpha_half_GrPixelConfig; |
+ break; |
+ default: |
+ return false; |
+ } |
+ return true; |
+} |
+ |
bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSamples) { |
switch (samples) { |
case 0: // fall through |