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; |
| 211 default: |
| 212 break; |
| 213 } |
| 214 if (linearFormat) { |
| 215 *linearFormat = linearFmt; |
| 216 } |
| 217 return (linearFmt != format); |
| 218 } |
| 219 |
121 bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSam
ples) { | 220 bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSam
ples) { |
122 switch (samples) { | 221 switch (samples) { |
123 case 0: // fall through | 222 case 0: // fall through |
124 case 1: | 223 case 1: |
125 *vkSamples = VK_SAMPLE_COUNT_1_BIT; | 224 *vkSamples = VK_SAMPLE_COUNT_1_BIT; |
126 return true; | 225 return true; |
127 case 2: | 226 case 2: |
128 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 227 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
129 return true; | 228 return true; |
130 case 4: | 229 case 4: |
131 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 230 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
132 return true; | 231 return true; |
133 case 8: | 232 case 8: |
134 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 233 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
135 return true; | 234 return true; |
136 case 16: | 235 case 16: |
137 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 236 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
138 return true; | 237 return true; |
139 case 32: | 238 case 32: |
140 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 239 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
141 return true; | 240 return true; |
142 case 64: | 241 case 64: |
143 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | 242 *vkSamples = VK_SAMPLE_COUNT_2_BIT; |
144 return true; | 243 return true; |
145 default: | 244 default: |
146 return false; | 245 return false; |
147 } | 246 } |
148 } | 247 } |
OLD | NEW |