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

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

Issue 1970293002: Support allowSRGBInputs on Vulkan (via secondary texture views) (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « src/gpu/vk/GrVkUtil.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 }
OLDNEW
« no previous file with comments | « src/gpu/vk/GrVkUtil.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698