| Index: src/gpu/vk/GrVkUtil.cpp
|
| diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ec3ec234d40981056508c80052e283aa8ddeaeb6
|
| --- /dev/null
|
| +++ b/src/gpu/vk/GrVkUtil.cpp
|
| @@ -0,0 +1,94 @@
|
| +/*
|
| + * Copyright 2015 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#include "GrVkUtil.h"
|
| +
|
| +bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) {
|
| + VkFormat dontCare;
|
| + if (!format) {
|
| + format = &dontCare;
|
| + }
|
| +
|
| + switch (config) {
|
| + case kRGBA_8888_GrPixelConfig:
|
| + *format = VK_FORMAT_R8G8B8A8_UNORM;
|
| + break;
|
| + case kBGRA_8888_GrPixelConfig:
|
| + *format = VK_FORMAT_B8G8R8A8_UNORM;
|
| + break;
|
| + case kSRGBA_8888_GrPixelConfig:
|
| + *format = VK_FORMAT_R8G8B8A8_SRGB;
|
| + break;
|
| + case kRGB_565_GrPixelConfig:
|
| + *format = VK_FORMAT_R5G6B5_UNORM_PACK16;
|
| + break;
|
| + case kRGBA_4444_GrPixelConfig:
|
| + *format = VK_FORMAT_R4G4B4A4_UNORM_PACK16;
|
| + break;
|
| + case kIndex_8_GrPixelConfig:
|
| + // No current rad support for this config
|
| + return false;
|
| + case kAlpha_8_GrPixelConfig:
|
| + *format = VK_FORMAT_R8_UNORM;
|
| + break;
|
| + case kETC1_GrPixelConfig:
|
| + // converting to ETC2 which is a superset of ETC1
|
| + *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
|
| + break;
|
| + case kLATC_GrPixelConfig:
|
| + // No current rad support for this config
|
| + return false;
|
| + case kR11_EAC_GrPixelConfig:
|
| + *format = VK_FORMAT_EAC_R11_UNORM_BLOCK;
|
| + break;
|
| + case kASTC_12x12_GrPixelConfig:
|
| + *format = VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
|
| + break;
|
| + case kRGBA_float_GrPixelConfig:
|
| + *format = VK_FORMAT_R32G32B32A32_SFLOAT;
|
| + break;
|
| + case kRGBA_half_GrPixelConfig:
|
| + *format = VK_FORMAT_R16G16B16A16_SFLOAT;
|
| + break;
|
| + case kAlpha_half_GrPixelConfig:
|
| + *format = VK_FORMAT_R16_SFLOAT;
|
| + break;
|
| + default:
|
| + return false;
|
| + }
|
| + return true;
|
| +}
|
| +
|
| +bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSamples) {
|
| + switch (samples) {
|
| + case 0: // fall through
|
| + case 1:
|
| + *vkSamples = VK_SAMPLE_COUNT_1_BIT;
|
| + return true;
|
| + case 2:
|
| + *vkSamples = VK_SAMPLE_COUNT_2_BIT;
|
| + return true;
|
| + case 4:
|
| + *vkSamples = VK_SAMPLE_COUNT_2_BIT;
|
| + return true;
|
| + case 8:
|
| + *vkSamples = VK_SAMPLE_COUNT_2_BIT;
|
| + return true;
|
| + case 16:
|
| + *vkSamples = VK_SAMPLE_COUNT_2_BIT;
|
| + return true;
|
| + case 32:
|
| + *vkSamples = VK_SAMPLE_COUNT_2_BIT;
|
| + return true;
|
| + case 64:
|
| + *vkSamples = VK_SAMPLE_COUNT_2_BIT;
|
| + return true;
|
| + default:
|
| + return false;
|
| + }
|
| +}
|
| +
|
|
|