Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: src/gpu/vk/GrVkUtil.cpp

Issue 2238563002: Fix 4444 on Vulkan devices who don't support RGBA_4444 (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Read back in 8888 Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "GrVkUtil.h" 8 #include "GrVkUtil.h"
9 9
10 bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) { 10 bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) {
(...skipping 12 matching lines...) Expand all
23 case kSRGBA_8888_GrPixelConfig: 23 case kSRGBA_8888_GrPixelConfig:
24 *format = VK_FORMAT_R8G8B8A8_SRGB; 24 *format = VK_FORMAT_R8G8B8A8_SRGB;
25 break; 25 break;
26 case kSBGRA_8888_GrPixelConfig: 26 case kSBGRA_8888_GrPixelConfig:
27 *format = VK_FORMAT_B8G8R8A8_SRGB; 27 *format = VK_FORMAT_B8G8R8A8_SRGB;
28 break; 28 break;
29 case kRGB_565_GrPixelConfig: 29 case kRGB_565_GrPixelConfig:
30 *format = VK_FORMAT_R5G6B5_UNORM_PACK16; 30 *format = VK_FORMAT_R5G6B5_UNORM_PACK16;
31 break; 31 break;
32 case kRGBA_4444_GrPixelConfig: 32 case kRGBA_4444_GrPixelConfig:
33 *format = VK_FORMAT_R4G4B4A4_UNORM_PACK16; 33 // R4G4B4A4 is not required to be supported so we actually
34 // store the data is if it was B4G4R4A4 and swizzle in shaders
35 *format = VK_FORMAT_B4G4R4A4_UNORM_PACK16;
34 break; 36 break;
35 case kIndex_8_GrPixelConfig: 37 case kIndex_8_GrPixelConfig:
36 // No current vulkan support for this config 38 // No current vulkan support for this config
37 return false; 39 return false;
38 case kAlpha_8_GrPixelConfig: 40 case kAlpha_8_GrPixelConfig:
39 *format = VK_FORMAT_R8_UNORM; 41 *format = VK_FORMAT_R8_UNORM;
40 break; 42 break;
41 case kETC1_GrPixelConfig: 43 case kETC1_GrPixelConfig:
42 // converting to ETC2 which is a superset of ETC1 44 // converting to ETC2 which is a superset of ETC1
43 *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK; 45 *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 break; 83 break;
82 case VK_FORMAT_R8G8B8A8_SRGB: 84 case VK_FORMAT_R8G8B8A8_SRGB:
83 *config = kSRGBA_8888_GrPixelConfig; 85 *config = kSRGBA_8888_GrPixelConfig;
84 break; 86 break;
85 case VK_FORMAT_B8G8R8A8_SRGB: 87 case VK_FORMAT_B8G8R8A8_SRGB:
86 *config = kSBGRA_8888_GrPixelConfig; 88 *config = kSBGRA_8888_GrPixelConfig;
87 break; 89 break;
88 case VK_FORMAT_R5G6B5_UNORM_PACK16: 90 case VK_FORMAT_R5G6B5_UNORM_PACK16:
89 *config = kRGB_565_GrPixelConfig; 91 *config = kRGB_565_GrPixelConfig;
90 break; 92 break;
91 case VK_FORMAT_R4G4B4A4_UNORM_PACK16: 93 case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
94 // R4G4B4A4 is not required to be supported so we actually
95 // store RGBA_4444 data as B4G4R4A4.
92 *config = kRGBA_4444_GrPixelConfig; 96 *config = kRGBA_4444_GrPixelConfig;
93 break; 97 break;
94 case VK_FORMAT_R8_UNORM: 98 case VK_FORMAT_R8_UNORM:
95 *config = kAlpha_8_GrPixelConfig; 99 *config = kAlpha_8_GrPixelConfig;
96 break; 100 break;
97 case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: 101 case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
98 *config = kETC1_GrPixelConfig; 102 *config = kETC1_GrPixelConfig;
99 break; 103 break;
100 case VK_FORMAT_EAC_R11_UNORM_BLOCK: 104 case VK_FORMAT_EAC_R11_UNORM_BLOCK:
101 *config = kR11_EAC_GrPixelConfig; 105 *config = kR11_EAC_GrPixelConfig;
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 case 32: 242 case 32:
239 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 243 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
240 return true; 244 return true;
241 case 64: 245 case 64:
242 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 246 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
243 return true; 247 return true;
244 default: 248 default:
245 return false; 249 return false;
246 } 250 }
247 } 251 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698