First pass at VulkanViewer
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1848833005
Review URL: https://codereview.chromium.org/1848833005
diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp
index 5ab7966..a6a9d4c 100644
--- a/src/gpu/vk/GrVkUtil.cpp
+++ b/src/gpu/vk/GrVkUtil.cpp
@@ -23,6 +23,9 @@
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 @@
*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 @@
*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 @@
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