OLD | NEW |
---|---|
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 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
111 break; | 111 break; |
112 case VK_FORMAT_R16_SFLOAT: | 112 case VK_FORMAT_R16_SFLOAT: |
113 *config = kAlpha_half_GrPixelConfig; | 113 *config = kAlpha_half_GrPixelConfig; |
114 break; | 114 break; |
115 default: | 115 default: |
116 return false; | 116 return false; |
117 } | 117 } |
118 return true; | 118 return true; |
119 } | 119 } |
120 | 120 |
121 bool GrVkFormatIsSRGB(VkFormat format, VkFormat* linearFormat) { | |
122 VkFormat linearFmt = format; | |
123 switch (format) { | |
124 case VK_FORMAT_R8_SRGB: | |
125 linearFmt = VK_FORMAT_R8_UNORM; | |
126 break; | |
127 case VK_FORMAT_R8G8_SRGB: | |
128 linearFmt = VK_FORMAT_R8G8_UNORM; | |
129 break; | |
130 case VK_FORMAT_R8G8B8_SRGB: | |
131 linearFmt = VK_FORMAT_R8G8B8_UNORM; | |
132 break; | |
133 case VK_FORMAT_B8G8R8_SRGB: | |
134 linearFmt = VK_FORMAT_B8G8R8_UNORM; | |
135 break; | |
136 case VK_FORMAT_R8G8B8A8_SRGB: | |
137 linearFmt = VK_FORMAT_R8G8B8A8_UNORM; | |
138 break; | |
139 case VK_FORMAT_B8G8R8A8_SRGB: | |
140 linearFmt = VK_FORMAT_B8G8R8A8_UNORM; | |
141 break; | |
142 case VK_FORMAT_A8B8G8R8_SRGB_PACK32: | |
143 linearFmt = VK_FORMAT_A8B8G8R8_UNORM_PACK32; | |
144 break; | |
145 case VK_FORMAT_BC1_RGB_SRGB_BLOCK: | |
146 linearFmt = VK_FORMAT_BC1_RGB_UNORM_BLOCK; | |
147 break; | |
148 case VK_FORMAT_BC1_RGBA_SRGB_BLOCK: | |
149 linearFmt = VK_FORMAT_BC1_RGBA_UNORM_BLOCK; | |
150 break; | |
151 case VK_FORMAT_BC2_SRGB_BLOCK: | |
152 linearFmt = VK_FORMAT_BC2_UNORM_BLOCK; | |
153 break; | |
154 case VK_FORMAT_BC3_SRGB_BLOCK: | |
155 linearFmt = VK_FORMAT_BC3_UNORM_BLOCK; | |
156 break; | |
157 case VK_FORMAT_BC7_SRGB_BLOCK: | |
158 linearFmt = VK_FORMAT_BC7_UNORM_BLOCK; | |
159 break; | |
160 case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: | |
161 linearFmt = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK; | |
162 break; | |
163 case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: | |
164 linearFmt = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK; | |
165 break; | |
166 case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: | |
167 linearFmt = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK; | |
168 break; | |
169 case VK_FORMAT_ASTC_4x4_SRGB_BLOCK: | |
170 linearFmt = VK_FORMAT_ASTC_4x4_UNORM_BLOCK; | |
171 break; | |
172 case VK_FORMAT_ASTC_5x4_SRGB_BLOCK: | |
173 linearFmt = VK_FORMAT_ASTC_5x4_UNORM_BLOCK; | |
174 break; | |
175 case VK_FORMAT_ASTC_5x5_SRGB_BLOCK: | |
176 linearFmt = VK_FORMAT_ASTC_5x5_UNORM_BLOCK; | |
177 break; | |
178 case VK_FORMAT_ASTC_6x5_SRGB_BLOCK: | |
179 linearFmt = VK_FORMAT_ASTC_6x5_UNORM_BLOCK; | |
180 break; | |
181 case VK_FORMAT_ASTC_6x6_SRGB_BLOCK: | |
182 linearFmt = VK_FORMAT_ASTC_6x6_UNORM_BLOCK; | |
183 break; | |
184 case VK_FORMAT_ASTC_8x5_SRGB_BLOCK: | |
185 linearFmt = VK_FORMAT_ASTC_8x5_UNORM_BLOCK; | |
186 break; | |
187 case VK_FORMAT_ASTC_8x6_SRGB_BLOCK: | |
188 linearFmt = VK_FORMAT_ASTC_8x6_UNORM_BLOCK; | |
189 break; | |
190 case VK_FORMAT_ASTC_8x8_SRGB_BLOCK: | |
191 linearFmt = VK_FORMAT_ASTC_8x8_UNORM_BLOCK; | |
192 break; | |
193 case VK_FORMAT_ASTC_10x5_SRGB_BLOCK: | |
194 linearFmt = VK_FORMAT_ASTC_10x5_UNORM_BLOCK; | |
195 break; | |
196 case VK_FORMAT_ASTC_10x6_SRGB_BLOCK: | |
197 linearFmt = VK_FORMAT_ASTC_10x6_UNORM_BLOCK; | |
198 break; | |
199 case VK_FORMAT_ASTC_10x8_SRGB_BLOCK: | |
200 linearFmt = VK_FORMAT_ASTC_10x8_UNORM_BLOCK; | |
201 break; | |
202 case VK_FORMAT_ASTC_10x10_SRGB_BLOCK: | |
203 linearFmt = VK_FORMAT_ASTC_10x10_UNORM_BLOCK; | |
204 break; | |
205 case VK_FORMAT_ASTC_12x10_SRGB_BLOCK: | |
206 linearFmt = VK_FORMAT_ASTC_12x10_UNORM_BLOCK; | |
207 break; | |
208 case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: | |
209 linearFmt = VK_FORMAT_ASTC_12x12_UNORM_BLOCK; | |
210 break; | |
jvanverth1
2016/05/12 17:27:36
Probably want a default case here -- I think some
| |
211 } | |
212 if (linearFormat) { | |
213 *linearFormat = linearFmt; | |
214 } | |
215 return (linearFmt != format); | |
216 } | |
217 | |
121 bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSam ples) { | 218 bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSam ples) { |
122 switch (samples) { | 219 switch (samples) { |
123 case 0: // fall through | 220 case 0: // fall through |
124 case 1: | 221 case 1: |
125 *vkSamples = VK_SAMPLE_COUNT_1_BIT; | 222 *vkSamples = VK_SAMPLE_COUNT_1_BIT; |
126 return true; | 223 return true; |
127 case 2: | 224 case 2: |
128 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 225 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
129 return true; | 226 return true; |
130 case 4: | 227 case 4: |
131 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 228 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
132 return true; | 229 return true; |
133 case 8: | 230 case 8: |
134 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 231 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
135 return true; | 232 return true; |
136 case 16: | 233 case 16: |
137 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 234 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
138 return true; | 235 return true; |
139 case 32: | 236 case 32: |
140 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 237 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
141 return true; | 238 return true; |
142 case 64: | 239 case 64: |
143 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 240 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
144 return true; | 241 return true; |
145 default: | 242 default: |
146 return false; | 243 return false; |
147 } | 244 } |
148 } | 245 } |
OLD | NEW |