| 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 |