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

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

Issue 1848833005: First pass at VulkanViewer (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Address comments, plus add GM rendering Created 4 years, 8 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) {
11 VkFormat dontCare; 11 VkFormat dontCare;
12 if (!format) { 12 if (!format) {
13 format = &dontCare; 13 format = &dontCare;
14 } 14 }
15 15
16 switch (config) { 16 switch (config) {
17 case kRGBA_8888_GrPixelConfig: 17 case kRGBA_8888_GrPixelConfig:
18 *format = VK_FORMAT_R8G8B8A8_UNORM; 18 *format = VK_FORMAT_R8G8B8A8_UNORM;
19 break; 19 break;
20 case kBGRA_8888_GrPixelConfig: 20 case kBGRA_8888_GrPixelConfig:
21 *format = VK_FORMAT_B8G8R8A8_UNORM; 21 *format = VK_FORMAT_B8G8R8A8_UNORM;
22 break; 22 break;
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:
27 *format = VK_FORMAT_B8G8R8A8_SRGB;
28 break;
26 case kRGB_565_GrPixelConfig: 29 case kRGB_565_GrPixelConfig:
27 *format = VK_FORMAT_R5G6B5_UNORM_PACK16; 30 *format = VK_FORMAT_R5G6B5_UNORM_PACK16;
28 break; 31 break;
29 case kRGBA_4444_GrPixelConfig: 32 case kRGBA_4444_GrPixelConfig:
30 *format = VK_FORMAT_R4G4B4A4_UNORM_PACK16; 33 *format = VK_FORMAT_R4G4B4A4_UNORM_PACK16;
31 break; 34 break;
32 case kIndex_8_GrPixelConfig: 35 case kIndex_8_GrPixelConfig:
33 // No current rad support for this config 36 // No current vulkan support for this config
34 return false; 37 return false;
35 case kAlpha_8_GrPixelConfig: 38 case kAlpha_8_GrPixelConfig:
36 *format = VK_FORMAT_R8_UNORM; 39 *format = VK_FORMAT_R8_UNORM;
37 break; 40 break;
38 case kETC1_GrPixelConfig: 41 case kETC1_GrPixelConfig:
39 // converting to ETC2 which is a superset of ETC1 42 // converting to ETC2 which is a superset of ETC1
40 *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK; 43 *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
41 break; 44 break;
42 case kLATC_GrPixelConfig: 45 case kLATC_GrPixelConfig:
43 // No current rad support for this config 46 // No current vulkan support for this config
44 return false; 47 return false;
45 case kR11_EAC_GrPixelConfig: 48 case kR11_EAC_GrPixelConfig:
46 *format = VK_FORMAT_EAC_R11_UNORM_BLOCK; 49 *format = VK_FORMAT_EAC_R11_UNORM_BLOCK;
47 break; 50 break;
48 case kASTC_12x12_GrPixelConfig: 51 case kASTC_12x12_GrPixelConfig:
49 *format = VK_FORMAT_ASTC_12x12_UNORM_BLOCK; 52 *format = VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
50 break; 53 break;
51 case kRGBA_float_GrPixelConfig: 54 case kRGBA_float_GrPixelConfig:
52 *format = VK_FORMAT_R32G32B32A32_SFLOAT; 55 *format = VK_FORMAT_R32G32B32A32_SFLOAT;
53 break; 56 break;
54 case kRGBA_half_GrPixelConfig: 57 case kRGBA_half_GrPixelConfig:
55 *format = VK_FORMAT_R16G16B16A16_SFLOAT; 58 *format = VK_FORMAT_R16G16B16A16_SFLOAT;
56 break; 59 break;
57 case kAlpha_half_GrPixelConfig: 60 case kAlpha_half_GrPixelConfig:
58 *format = VK_FORMAT_R16_SFLOAT; 61 *format = VK_FORMAT_R16_SFLOAT;
59 break; 62 break;
60 default: 63 default:
61 return false; 64 return false;
62 } 65 }
63 return true; 66 return true;
64 } 67 }
65 68
69 bool GrVkFormatToPixelConfig(VkFormat format, GrPixelConfig* config) {
70 GrPixelConfig dontCare;
71 if (!config) {
72 config = &dontCare;
73 }
74
75 switch (format) {
76 case VK_FORMAT_R8G8B8A8_UNORM:
77 *config = kRGBA_8888_GrPixelConfig;
78 break;
79 case VK_FORMAT_B8G8R8A8_UNORM:
80 *config = kBGRA_8888_GrPixelConfig;
81 break;
82 case VK_FORMAT_R8G8B8A8_SRGB:
83 *config = kSRGBA_8888_GrPixelConfig;
84 break;
85 case VK_FORMAT_B8G8R8A8_SRGB:
86 *config = kSBGRA_8888_GrPixelConfig;
87 break;
88 case VK_FORMAT_R5G6B5_UNORM_PACK16:
89 *config = kRGB_565_GrPixelConfig;
90 break;
91 case VK_FORMAT_R4G4B4A4_UNORM_PACK16:
92 *config = kRGBA_4444_GrPixelConfig;
93 break;
94 case VK_FORMAT_R8_UNORM:
95 *config = kAlpha_8_GrPixelConfig;
96 break;
97 case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
98 *config = kETC1_GrPixelConfig;
99 break;
100 case VK_FORMAT_EAC_R11_UNORM_BLOCK:
101 *config = kR11_EAC_GrPixelConfig;
102 break;
103 case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
104 *config = kASTC_12x12_GrPixelConfig;
105 break;
106 case VK_FORMAT_R32G32B32A32_SFLOAT:
107 *config = kRGBA_float_GrPixelConfig;
108 break;
109 case VK_FORMAT_R16G16B16A16_SFLOAT:
110 *config = kRGBA_half_GrPixelConfig;
111 break;
112 case VK_FORMAT_R16_SFLOAT:
113 *config = kAlpha_half_GrPixelConfig;
114 break;
115 default:
116 return false;
117 }
118 return true;
119 }
120
66 bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSam ples) { 121 bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSam ples) {
67 switch (samples) { 122 switch (samples) {
68 case 0: // fall through 123 case 0: // fall through
69 case 1: 124 case 1:
70 *vkSamples = VK_SAMPLE_COUNT_1_BIT; 125 *vkSamples = VK_SAMPLE_COUNT_1_BIT;
71 return true; 126 return true;
72 case 2: 127 case 2:
73 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 128 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
74 return true; 129 return true;
75 case 4: 130 case 4:
76 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 131 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
77 return true; 132 return true;
78 case 8: 133 case 8:
79 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 134 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
80 return true; 135 return true;
81 case 16: 136 case 16:
82 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 137 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
83 return true; 138 return true;
84 case 32: 139 case 32:
85 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 140 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
86 return true; 141 return true;
87 case 64: 142 case 64:
88 *vkSamples = VK_SAMPLE_COUNT_2_BIT; 143 *vkSamples = VK_SAMPLE_COUNT_2_BIT;
89 return true; 144 return true;
90 default: 145 default:
91 return false; 146 return false;
92 } 147 }
93 } 148 }
OLDNEW
« gyp/vulkanviewer.gyp ('K') | « src/gpu/vk/GrVkUtil.h ('k') | tools/vulkan/Application.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698