diff options
author | 2016-02-22 09:11:32 -0500 | |
---|---|---|
committer | 2016-02-22 09:11:32 -0500 | |
commit | 48cf268defad66f58f1aa03b4835e5583be96b2f (patch) | |
tree | d6ce2161cae1b69ca7a595110185652297464696 /src/gpu/vk/GrVkUtil.cpp | |
parent | 1d524699274bc1d4c43af0c3d0ae269b8c37a3bb (diff) |
Add vulkan files into skia repo. This is an incomplete backend with only partial functionality at this time.
R=robertphillips@google.com
TBR=bsalomon@google.com
BUG=skia:4955
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1718693002
Review URL: https://codereview.chromium.org/1718693002
Diffstat (limited to 'src/gpu/vk/GrVkUtil.cpp')
-rw-r--r-- | src/gpu/vk/GrVkUtil.cpp | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/gpu/vk/GrVkUtil.cpp b/src/gpu/vk/GrVkUtil.cpp new file mode 100644 index 0000000000..ec3ec234d4 --- /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; + } +} + |