@@ -37,29 +37,182 @@ MF_INLINE u32 FindMemoryType(VkPhysicalDevice device, uint32_t typeFilter, VkMem
3737
3838MF_INLINE u32 VulkanFormatBytesPerPixel (VkFormat format ) {
3939 switch (format ) {
40- case VK_FORMAT_D32_SFLOAT : return 4 ;
41- case VK_FORMAT_D24_UNORM_S8_UINT : return 4 ;
42- case VK_FORMAT_R8G8B8_SINT :
40+ case VK_FORMAT_R8_UNORM :
41+ case VK_FORMAT_R8_SNORM :
42+ case VK_FORMAT_R8_USCALED :
43+ case VK_FORMAT_R8_SSCALED :
44+ case VK_FORMAT_R8_UINT :
45+ case VK_FORMAT_R8_SINT :
46+ case VK_FORMAT_R8_SRGB :
47+ case VK_FORMAT_S8_UINT :
48+ return 1 ;
49+
50+ case VK_FORMAT_R16_UNORM :
51+ case VK_FORMAT_R16_SNORM :
52+ case VK_FORMAT_R16_USCALED :
53+ case VK_FORMAT_R16_SSCALED :
54+ case VK_FORMAT_R16_UINT :
55+ case VK_FORMAT_R16_SINT :
56+ case VK_FORMAT_R16_SFLOAT :
57+ case VK_FORMAT_D16_UNORM :
58+ return 2 ;
59+
60+ case VK_FORMAT_R8G8_UNORM :
61+ case VK_FORMAT_R8G8_SNORM :
62+ case VK_FORMAT_R8G8_USCALED :
63+ case VK_FORMAT_R8G8_SSCALED :
64+ case VK_FORMAT_R8G8_UINT :
65+ case VK_FORMAT_R8G8_SINT :
66+ case VK_FORMAT_R8G8_SRGB :
67+ return 2 ;
68+
69+ case VK_FORMAT_R8G8B8_UNORM :
4370 case VK_FORMAT_R8G8B8_SNORM :
44- case VK_FORMAT_R8G8B8_SRGB :
71+ case VK_FORMAT_R8G8B8_USCALED :
72+ case VK_FORMAT_R8G8B8_SSCALED :
4573 case VK_FORMAT_R8G8B8_UINT :
46- case VK_FORMAT_R8G8B8_UNORM :
47- case VK_FORMAT_R8G8B8_USCALED : return 3 ;
48- case VK_FORMAT_R8G8B8A8_SINT :
74+ case VK_FORMAT_R8G8B8_SINT :
75+ case VK_FORMAT_R8G8B8_SRGB :
76+
77+ case VK_FORMAT_B8G8R8_UNORM :
78+ case VK_FORMAT_B8G8R8_SNORM :
79+ case VK_FORMAT_B8G8R8_USCALED :
80+ case VK_FORMAT_B8G8R8_SSCALED :
81+ case VK_FORMAT_B8G8R8_UINT :
82+ case VK_FORMAT_B8G8R8_SINT :
83+ case VK_FORMAT_B8G8R8_SRGB :
84+ return 3 ;
85+
86+ case VK_FORMAT_R8G8B8A8_UNORM :
4987 case VK_FORMAT_R8G8B8A8_SNORM :
50- case VK_FORMAT_R8G8B8A8_SRGB :
88+ case VK_FORMAT_R8G8B8A8_USCALED :
5189 case VK_FORMAT_R8G8B8A8_SSCALED :
5290 case VK_FORMAT_R8G8B8A8_UINT :
53- case VK_FORMAT_R8G8B8A8_UNORM :
54- case VK_FORMAT_R8G8B8A8_USCALED : return 4 ;
55- case VK_FORMAT_R16G16B16A16_SFLOAT : return 8 ;
56- case VK_FORMAT_R32G32B32A32_SFLOAT : return 16 ;
91+ case VK_FORMAT_R8G8B8A8_SINT :
92+ case VK_FORMAT_R8G8B8A8_SRGB :
93+
94+ case VK_FORMAT_B8G8R8A8_UNORM :
95+ case VK_FORMAT_B8G8R8A8_SNORM :
96+ case VK_FORMAT_B8G8R8A8_USCALED :
97+ case VK_FORMAT_B8G8R8A8_SSCALED :
98+ case VK_FORMAT_B8G8R8A8_UINT :
99+ case VK_FORMAT_B8G8R8A8_SINT :
100+ case VK_FORMAT_B8G8R8A8_SRGB :
101+
102+ case VK_FORMAT_A8B8G8R8_UNORM_PACK32 :
103+ case VK_FORMAT_A8B8G8R8_SNORM_PACK32 :
104+ case VK_FORMAT_A8B8G8R8_USCALED_PACK32 :
105+ case VK_FORMAT_A8B8G8R8_SSCALED_PACK32 :
106+ case VK_FORMAT_A8B8G8R8_UINT_PACK32 :
107+ case VK_FORMAT_A8B8G8R8_SINT_PACK32 :
108+ case VK_FORMAT_A8B8G8R8_SRGB_PACK32 :
109+
110+ case VK_FORMAT_A2R10G10B10_UNORM_PACK32 :
111+ case VK_FORMAT_A2R10G10B10_SNORM_PACK32 :
112+ case VK_FORMAT_A2R10G10B10_USCALED_PACK32 :
113+ case VK_FORMAT_A2R10G10B10_SSCALED_PACK32 :
114+ case VK_FORMAT_A2R10G10B10_UINT_PACK32 :
115+ case VK_FORMAT_A2R10G10B10_SINT_PACK32 :
116+
117+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32 :
118+ case VK_FORMAT_A2B10G10R10_SNORM_PACK32 :
119+ case VK_FORMAT_A2B10G10R10_USCALED_PACK32 :
120+ case VK_FORMAT_A2B10G10R10_SSCALED_PACK32 :
121+ case VK_FORMAT_A2B10G10R10_UINT_PACK32 :
122+ case VK_FORMAT_A2B10G10R10_SINT_PACK32 :
123+
124+ case VK_FORMAT_X8_D24_UNORM_PACK32 :
125+ case VK_FORMAT_D24_UNORM_S8_UINT :
126+ case VK_FORMAT_D32_SFLOAT :
127+ return 4 ;
128+
129+ case VK_FORMAT_R16G16_UNORM :
130+ case VK_FORMAT_R16G16_SNORM :
131+ case VK_FORMAT_R16G16_USCALED :
132+ case VK_FORMAT_R16G16_SSCALED :
133+ case VK_FORMAT_R16G16_UINT :
134+ case VK_FORMAT_R16G16_SINT :
135+ case VK_FORMAT_R16G16_SFLOAT :
136+ return 4 ;
137+
138+ case VK_FORMAT_R16G16B16_UNORM :
139+ case VK_FORMAT_R16G16B16_SNORM :
140+ case VK_FORMAT_R16G16B16_USCALED :
141+ case VK_FORMAT_R16G16B16_SSCALED :
142+ case VK_FORMAT_R16G16B16_UINT :
143+ case VK_FORMAT_R16G16B16_SINT :
144+ case VK_FORMAT_R16G16B16_SFLOAT :
145+ return 6 ;
146+
147+ case VK_FORMAT_R16G16B16A16_UNORM :
148+ case VK_FORMAT_R16G16B16A16_SNORM :
149+ case VK_FORMAT_R16G16B16A16_USCALED :
150+ case VK_FORMAT_R16G16B16A16_SSCALED :
151+ case VK_FORMAT_R16G16B16A16_UINT :
152+ case VK_FORMAT_R16G16B16A16_SINT :
153+ case VK_FORMAT_R16G16B16A16_SFLOAT :
154+ return 8 ;
155+
156+ case VK_FORMAT_R32_UINT :
157+ case VK_FORMAT_R32_SINT :
158+ case VK_FORMAT_R32_SFLOAT :
159+ return 4 ;
160+
161+ case VK_FORMAT_R32G32_UINT :
162+ case VK_FORMAT_R32G32_SINT :
163+ case VK_FORMAT_R32G32_SFLOAT :
164+ return 8 ;
165+
166+ case VK_FORMAT_R32G32B32_UINT :
167+ case VK_FORMAT_R32G32B32_SINT :
168+ case VK_FORMAT_R32G32B32_SFLOAT :
169+ return 12 ;
170+
171+ case VK_FORMAT_R32G32B32A32_UINT :
172+ case VK_FORMAT_R32G32B32A32_SINT :
173+ case VK_FORMAT_R32G32B32A32_SFLOAT :
174+ return 16 ;
175+
176+ case VK_FORMAT_R64_UINT :
177+ case VK_FORMAT_R64_SINT :
178+ case VK_FORMAT_R64_SFLOAT :
179+ return 8 ;
180+
181+ case VK_FORMAT_R64G64_UINT :
182+ case VK_FORMAT_R64G64_SINT :
183+ case VK_FORMAT_R64G64_SFLOAT :
184+ return 16 ;
185+
186+ case VK_FORMAT_R64G64B64_UINT :
187+ case VK_FORMAT_R64G64B64_SINT :
188+ case VK_FORMAT_R64G64B64_SFLOAT :
189+ return 24 ;
190+
191+ case VK_FORMAT_R64G64B64A64_UINT :
192+ case VK_FORMAT_R64G64B64A64_SINT :
193+ case VK_FORMAT_R64G64B64A64_SFLOAT :
194+ return 32 ;
195+
196+ case VK_FORMAT_B4G4R4A4_UNORM_PACK16 :
197+ case VK_FORMAT_R4G4B4A4_UNORM_PACK16 :
198+ case VK_FORMAT_R5G6B5_UNORM_PACK16 :
199+ case VK_FORMAT_B5G6R5_UNORM_PACK16 :
200+ case VK_FORMAT_R5G5B5A1_UNORM_PACK16 :
201+ case VK_FORMAT_B5G5R5A1_UNORM_PACK16 :
202+ case VK_FORMAT_A1R5G5B5_UNORM_PACK16 :
203+ return 2 ;
204+
205+ case VK_FORMAT_B10G11R11_UFLOAT_PACK32 :
206+ case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 :
207+ return 4 ;
208+
209+ case VK_FORMAT_D32_SFLOAT_S8_UINT :
210+ return 8 ;
57211 default :
58212 MF_FATAL_ABORT (mfGetLogger (), "(From the vulkan backend) The format provided isn't supported or is invalid! VkFormat is %s" , string_VkFormat (format ));
59213 }
60214}
61215
62-
63216MF_INLINE MFSamples verifySamples (MFSamples samples ) {
64217 switch (samples ) {
65218 case MF_SAMPLE_COUNT_1 :
0 commit comments