summaryrefslogtreecommitdiff
path: root/src/video_core/morton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/morton.cpp')
-rw-r--r--src/video_core/morton.cpp298
1 files changed, 149 insertions, 149 deletions
diff --git a/src/video_core/morton.cpp b/src/video_core/morton.cpp
index 0c3c9f12d..9da9fb4ff 100644
--- a/src/video_core/morton.cpp
+++ b/src/video_core/morton.cpp
@@ -41,168 +41,168 @@ static void MortonCopy(u32 stride, u32 block_height, u32 height, u32 block_depth
41} 41}
42 42
43static constexpr ConversionArray morton_to_linear_fns = { 43static constexpr ConversionArray morton_to_linear_fns = {
44 MortonCopy<true, PixelFormat::ABGR8U>, 44 MortonCopy<true, PixelFormat::A8B8G8R8_UNORM>,
45 MortonCopy<true, PixelFormat::ABGR8S>, 45 MortonCopy<true, PixelFormat::A8B8G8R8_SNORM>,
46 MortonCopy<true, PixelFormat::ABGR8I>, 46 MortonCopy<true, PixelFormat::A8B8G8R8_SINT>,
47 MortonCopy<true, PixelFormat::ABGR8UI>, 47 MortonCopy<true, PixelFormat::A8B8G8R8_UINT>,
48 MortonCopy<true, PixelFormat::B5G6R5U>, 48 MortonCopy<true, PixelFormat::R5G6B5_UNORM>,
49 MortonCopy<true, PixelFormat::R5G6B5U>, 49 MortonCopy<true, PixelFormat::B5G6R5_UNORM>,
50 MortonCopy<true, PixelFormat::B5G5R5A1U>, 50 MortonCopy<true, PixelFormat::A1R5G5B5_UNORM>,
51 MortonCopy<true, PixelFormat::A2B10G10R10U>, 51 MortonCopy<true, PixelFormat::A2B10G10R10_UNORM>,
52 MortonCopy<true, PixelFormat::A2B10G10R10UI>, 52 MortonCopy<true, PixelFormat::A2B10G10R10_UINT>,
53 MortonCopy<true, PixelFormat::A1B5G5R5U>, 53 MortonCopy<true, PixelFormat::A1B5G5R5_UNORM>,
54 MortonCopy<true, PixelFormat::R8U>, 54 MortonCopy<true, PixelFormat::R8_UNORM>,
55 MortonCopy<true, PixelFormat::R8S>, 55 MortonCopy<true, PixelFormat::R8_SNORM>,
56 MortonCopy<true, PixelFormat::R8I>, 56 MortonCopy<true, PixelFormat::R8_SINT>,
57 MortonCopy<true, PixelFormat::R8UI>, 57 MortonCopy<true, PixelFormat::R8_UINT>,
58 MortonCopy<true, PixelFormat::RGBA16F>, 58 MortonCopy<true, PixelFormat::R16G16B16A16_FLOAT>,
59 MortonCopy<true, PixelFormat::RGBA16U>, 59 MortonCopy<true, PixelFormat::R16G16B16A16_UNORM>,
60 MortonCopy<true, PixelFormat::RGBA16S>, 60 MortonCopy<true, PixelFormat::R16G16B16A16_SNORM>,
61 MortonCopy<true, PixelFormat::RGBA16I>, 61 MortonCopy<true, PixelFormat::R16G16B16A16_SINT>,
62 MortonCopy<true, PixelFormat::RGBA16UI>, 62 MortonCopy<true, PixelFormat::R16G16B16A16_UINT>,
63 MortonCopy<true, PixelFormat::R11FG11FB10F>, 63 MortonCopy<true, PixelFormat::B10G11R11_FLOAT>,
64 MortonCopy<true, PixelFormat::RGBA32UI>, 64 MortonCopy<true, PixelFormat::R32G32B32A32_UINT>,
65 MortonCopy<true, PixelFormat::DXT1>, 65 MortonCopy<true, PixelFormat::BC1_RGBA_UNORM>,
66 MortonCopy<true, PixelFormat::DXT23>, 66 MortonCopy<true, PixelFormat::BC2_UNORM>,
67 MortonCopy<true, PixelFormat::DXT45>, 67 MortonCopy<true, PixelFormat::BC3_UNORM>,
68 MortonCopy<true, PixelFormat::DXN1UNORM>, 68 MortonCopy<true, PixelFormat::BC4_UNORM>,
69 MortonCopy<true, PixelFormat::DXN1SNORM>, 69 MortonCopy<true, PixelFormat::BC4_SNORM>,
70 MortonCopy<true, PixelFormat::DXN2UNORM>, 70 MortonCopy<true, PixelFormat::BC5_UNORM>,
71 MortonCopy<true, PixelFormat::DXN2SNORM>, 71 MortonCopy<true, PixelFormat::BC5_SNORM>,
72 MortonCopy<true, PixelFormat::BC7U>, 72 MortonCopy<true, PixelFormat::BC7_UNORM>,
73 MortonCopy<true, PixelFormat::BC6H_UF16>, 73 MortonCopy<true, PixelFormat::BC6H_UFLOAT>,
74 MortonCopy<true, PixelFormat::BC6H_SF16>, 74 MortonCopy<true, PixelFormat::BC6H_SFLOAT>,
75 MortonCopy<true, PixelFormat::ASTC_2D_4X4>, 75 MortonCopy<true, PixelFormat::ASTC_2D_4X4_UNORM>,
76 MortonCopy<true, PixelFormat::BGRA8>, 76 MortonCopy<true, PixelFormat::B8G8R8A8_UNORM>,
77 MortonCopy<true, PixelFormat::RGBA32F>, 77 MortonCopy<true, PixelFormat::R32G32B32A32_FLOAT>,
78 MortonCopy<true, PixelFormat::RGBA32I>, 78 MortonCopy<true, PixelFormat::R32G32B32A32_SINT>,
79 MortonCopy<true, PixelFormat::RG32F>, 79 MortonCopy<true, PixelFormat::R32G32_FLOAT>,
80 MortonCopy<true, PixelFormat::RG32I>, 80 MortonCopy<true, PixelFormat::R32G32_SINT>,
81 MortonCopy<true, PixelFormat::R32F>, 81 MortonCopy<true, PixelFormat::R32_FLOAT>,
82 MortonCopy<true, PixelFormat::R16F>, 82 MortonCopy<true, PixelFormat::R16_FLOAT>,
83 MortonCopy<true, PixelFormat::R16U>, 83 MortonCopy<true, PixelFormat::R16_UNORM>,
84 MortonCopy<true, PixelFormat::R16S>, 84 MortonCopy<true, PixelFormat::R16_SNORM>,
85 MortonCopy<true, PixelFormat::R16UI>, 85 MortonCopy<true, PixelFormat::R16_UINT>,
86 MortonCopy<true, PixelFormat::R16I>, 86 MortonCopy<true, PixelFormat::R16_SINT>,
87 MortonCopy<true, PixelFormat::RG16>, 87 MortonCopy<true, PixelFormat::R16G16_UNORM>,
88 MortonCopy<true, PixelFormat::RG16F>, 88 MortonCopy<true, PixelFormat::R16G16_FLOAT>,
89 MortonCopy<true, PixelFormat::RG16UI>, 89 MortonCopy<true, PixelFormat::R16G16_UINT>,
90 MortonCopy<true, PixelFormat::RG16I>, 90 MortonCopy<true, PixelFormat::R16G16_SINT>,
91 MortonCopy<true, PixelFormat::RG16S>, 91 MortonCopy<true, PixelFormat::R16G16_SNORM>,
92 MortonCopy<true, PixelFormat::RGB32F>, 92 MortonCopy<true, PixelFormat::R32G32B32_FLOAT>,
93 MortonCopy<true, PixelFormat::RGBA8_SRGB>, 93 MortonCopy<true, PixelFormat::A8B8G8R8_SRGB>,
94 MortonCopy<true, PixelFormat::RG8U>, 94 MortonCopy<true, PixelFormat::R8G8_UNORM>,
95 MortonCopy<true, PixelFormat::RG8S>, 95 MortonCopy<true, PixelFormat::R8G8_SNORM>,
96 MortonCopy<true, PixelFormat::RG8I>, 96 MortonCopy<true, PixelFormat::R8G8_SINT>,
97 MortonCopy<true, PixelFormat::RG8UI>, 97 MortonCopy<true, PixelFormat::R8G8_UINT>,
98 MortonCopy<true, PixelFormat::RG32UI>, 98 MortonCopy<true, PixelFormat::R32G32_UINT>,
99 MortonCopy<true, PixelFormat::RGBX16F>, 99 MortonCopy<true, PixelFormat::R16G16B16X16_FLOAT>,
100 MortonCopy<true, PixelFormat::R32UI>, 100 MortonCopy<true, PixelFormat::R32_UINT>,
101 MortonCopy<true, PixelFormat::R32I>, 101 MortonCopy<true, PixelFormat::R32_SINT>,
102 MortonCopy<true, PixelFormat::ASTC_2D_8X8>, 102 MortonCopy<true, PixelFormat::ASTC_2D_8X8_UNORM>,
103 MortonCopy<true, PixelFormat::ASTC_2D_8X5>, 103 MortonCopy<true, PixelFormat::ASTC_2D_8X5_UNORM>,
104 MortonCopy<true, PixelFormat::ASTC_2D_5X4>, 104 MortonCopy<true, PixelFormat::ASTC_2D_5X4_UNORM>,
105 MortonCopy<true, PixelFormat::BGRA8_SRGB>, 105 MortonCopy<true, PixelFormat::B8G8R8A8_SRGB>,
106 MortonCopy<true, PixelFormat::DXT1_SRGB>, 106 MortonCopy<true, PixelFormat::BC1_RGBA_SRGB>,
107 MortonCopy<true, PixelFormat::DXT23_SRGB>, 107 MortonCopy<true, PixelFormat::BC2_SRGB>,
108 MortonCopy<true, PixelFormat::DXT45_SRGB>, 108 MortonCopy<true, PixelFormat::BC3_SRGB>,
109 MortonCopy<true, PixelFormat::BC7U_SRGB>, 109 MortonCopy<true, PixelFormat::BC7_SRGB>,
110 MortonCopy<true, PixelFormat::R4G4B4A4U>, 110 MortonCopy<true, PixelFormat::A4B4G4R4_UNORM>,
111 MortonCopy<true, PixelFormat::ASTC_2D_4X4_SRGB>, 111 MortonCopy<true, PixelFormat::ASTC_2D_4X4_SRGB>,
112 MortonCopy<true, PixelFormat::ASTC_2D_8X8_SRGB>, 112 MortonCopy<true, PixelFormat::ASTC_2D_8X8_SRGB>,
113 MortonCopy<true, PixelFormat::ASTC_2D_8X5_SRGB>, 113 MortonCopy<true, PixelFormat::ASTC_2D_8X5_SRGB>,
114 MortonCopy<true, PixelFormat::ASTC_2D_5X4_SRGB>, 114 MortonCopy<true, PixelFormat::ASTC_2D_5X4_SRGB>,
115 MortonCopy<true, PixelFormat::ASTC_2D_5X5>, 115 MortonCopy<true, PixelFormat::ASTC_2D_5X5_UNORM>,
116 MortonCopy<true, PixelFormat::ASTC_2D_5X5_SRGB>, 116 MortonCopy<true, PixelFormat::ASTC_2D_5X5_SRGB>,
117 MortonCopy<true, PixelFormat::ASTC_2D_10X8>, 117 MortonCopy<true, PixelFormat::ASTC_2D_10X8_UNORM>,
118 MortonCopy<true, PixelFormat::ASTC_2D_10X8_SRGB>, 118 MortonCopy<true, PixelFormat::ASTC_2D_10X8_SRGB>,
119 MortonCopy<true, PixelFormat::ASTC_2D_6X6>, 119 MortonCopy<true, PixelFormat::ASTC_2D_6X6_UNORM>,
120 MortonCopy<true, PixelFormat::ASTC_2D_6X6_SRGB>, 120 MortonCopy<true, PixelFormat::ASTC_2D_6X6_SRGB>,
121 MortonCopy<true, PixelFormat::ASTC_2D_10X10>, 121 MortonCopy<true, PixelFormat::ASTC_2D_10X10_UNORM>,
122 MortonCopy<true, PixelFormat::ASTC_2D_10X10_SRGB>, 122 MortonCopy<true, PixelFormat::ASTC_2D_10X10_SRGB>,
123 MortonCopy<true, PixelFormat::ASTC_2D_12X12>, 123 MortonCopy<true, PixelFormat::ASTC_2D_12X12_UNORM>,
124 MortonCopy<true, PixelFormat::ASTC_2D_12X12_SRGB>, 124 MortonCopy<true, PixelFormat::ASTC_2D_12X12_SRGB>,
125 MortonCopy<true, PixelFormat::ASTC_2D_8X6>, 125 MortonCopy<true, PixelFormat::ASTC_2D_8X6_UNORM>,
126 MortonCopy<true, PixelFormat::ASTC_2D_8X6_SRGB>, 126 MortonCopy<true, PixelFormat::ASTC_2D_8X6_SRGB>,
127 MortonCopy<true, PixelFormat::ASTC_2D_6X5>, 127 MortonCopy<true, PixelFormat::ASTC_2D_6X5_UNORM>,
128 MortonCopy<true, PixelFormat::ASTC_2D_6X5_SRGB>, 128 MortonCopy<true, PixelFormat::ASTC_2D_6X5_SRGB>,
129 MortonCopy<true, PixelFormat::E5B9G9R9F>, 129 MortonCopy<true, PixelFormat::E5B9G9R9_FLOAT>,
130 MortonCopy<true, PixelFormat::Z32F>, 130 MortonCopy<true, PixelFormat::D32_FLOAT>,
131 MortonCopy<true, PixelFormat::Z16>, 131 MortonCopy<true, PixelFormat::D16_UNORM>,
132 MortonCopy<true, PixelFormat::Z24S8>, 132 MortonCopy<true, PixelFormat::D24_UNORM_S8_UINT>,
133 MortonCopy<true, PixelFormat::S8Z24>, 133 MortonCopy<true, PixelFormat::S8_UINT_D24_UNORM>,
134 MortonCopy<true, PixelFormat::Z32FS8>, 134 MortonCopy<true, PixelFormat::D32_FLOAT_S8_UINT>,
135}; 135};
136 136
137static constexpr ConversionArray linear_to_morton_fns = { 137static constexpr ConversionArray linear_to_morton_fns = {
138 MortonCopy<false, PixelFormat::ABGR8U>, 138 MortonCopy<false, PixelFormat::A8B8G8R8_UNORM>,
139 MortonCopy<false, PixelFormat::ABGR8S>, 139 MortonCopy<false, PixelFormat::A8B8G8R8_SNORM>,
140 MortonCopy<false, PixelFormat::ABGR8I>, 140 MortonCopy<false, PixelFormat::A8B8G8R8_SINT>,
141 MortonCopy<false, PixelFormat::ABGR8UI>, 141 MortonCopy<false, PixelFormat::A8B8G8R8_UINT>,
142 MortonCopy<false, PixelFormat::B5G6R5U>, 142 MortonCopy<false, PixelFormat::R5G6B5_UNORM>,
143 MortonCopy<false, PixelFormat::R5G6B5U>, 143 MortonCopy<false, PixelFormat::B5G6R5_UNORM>,
144 MortonCopy<false, PixelFormat::B5G5R5A1U>, 144 MortonCopy<false, PixelFormat::A1R5G5B5_UNORM>,
145 MortonCopy<false, PixelFormat::A2B10G10R10U>, 145 MortonCopy<false, PixelFormat::A2B10G10R10_UNORM>,
146 MortonCopy<false, PixelFormat::A2B10G10R10UI>, 146 MortonCopy<false, PixelFormat::A2B10G10R10_UINT>,
147 MortonCopy<false, PixelFormat::A1B5G5R5U>, 147 MortonCopy<false, PixelFormat::A1B5G5R5_UNORM>,
148 MortonCopy<false, PixelFormat::R8U>, 148 MortonCopy<false, PixelFormat::R8_UNORM>,
149 MortonCopy<false, PixelFormat::R8S>, 149 MortonCopy<false, PixelFormat::R8_SNORM>,
150 MortonCopy<false, PixelFormat::R8I>, 150 MortonCopy<false, PixelFormat::R8_SINT>,
151 MortonCopy<false, PixelFormat::R8UI>, 151 MortonCopy<false, PixelFormat::R8_UINT>,
152 MortonCopy<false, PixelFormat::RGBA16F>, 152 MortonCopy<false, PixelFormat::R16G16B16A16_FLOAT>,
153 MortonCopy<false, PixelFormat::RGBA16S>, 153 MortonCopy<false, PixelFormat::R16G16B16A16_SNORM>,
154 MortonCopy<false, PixelFormat::RGBA16I>, 154 MortonCopy<false, PixelFormat::R16G16B16A16_SINT>,
155 MortonCopy<false, PixelFormat::RGBA16U>, 155 MortonCopy<false, PixelFormat::R16G16B16A16_UNORM>,
156 MortonCopy<false, PixelFormat::RGBA16UI>, 156 MortonCopy<false, PixelFormat::R16G16B16A16_UINT>,
157 MortonCopy<false, PixelFormat::R11FG11FB10F>, 157 MortonCopy<false, PixelFormat::B10G11R11_FLOAT>,
158 MortonCopy<false, PixelFormat::RGBA32UI>, 158 MortonCopy<false, PixelFormat::R32G32B32A32_UINT>,
159 MortonCopy<false, PixelFormat::DXT1>, 159 MortonCopy<false, PixelFormat::BC1_RGBA_UNORM>,
160 MortonCopy<false, PixelFormat::DXT23>, 160 MortonCopy<false, PixelFormat::BC2_UNORM>,
161 MortonCopy<false, PixelFormat::DXT45>, 161 MortonCopy<false, PixelFormat::BC3_UNORM>,
162 MortonCopy<false, PixelFormat::DXN1UNORM>, 162 MortonCopy<false, PixelFormat::BC4_UNORM>,
163 MortonCopy<false, PixelFormat::DXN1SNORM>, 163 MortonCopy<false, PixelFormat::BC4_SNORM>,
164 MortonCopy<false, PixelFormat::DXN2UNORM>, 164 MortonCopy<false, PixelFormat::BC5_UNORM>,
165 MortonCopy<false, PixelFormat::DXN2SNORM>, 165 MortonCopy<false, PixelFormat::BC5_SNORM>,
166 MortonCopy<false, PixelFormat::BC7U>, 166 MortonCopy<false, PixelFormat::BC7_UNORM>,
167 MortonCopy<false, PixelFormat::BC6H_UF16>, 167 MortonCopy<false, PixelFormat::BC6H_UFLOAT>,
168 MortonCopy<false, PixelFormat::BC6H_SF16>, 168 MortonCopy<false, PixelFormat::BC6H_SFLOAT>,
169 // TODO(Subv): Swizzling ASTC formats are not supported 169 // TODO(Subv): Swizzling ASTC formats are not supported
170 nullptr, 170 nullptr,
171 MortonCopy<false, PixelFormat::BGRA8>, 171 MortonCopy<false, PixelFormat::B8G8R8A8_UNORM>,
172 MortonCopy<false, PixelFormat::RGBA32F>, 172 MortonCopy<false, PixelFormat::R32G32B32A32_FLOAT>,
173 MortonCopy<false, PixelFormat::RGBA32I>, 173 MortonCopy<false, PixelFormat::R32G32B32A32_SINT>,
174 MortonCopy<false, PixelFormat::RG32F>, 174 MortonCopy<false, PixelFormat::R32G32_FLOAT>,
175 MortonCopy<false, PixelFormat::RG32I>, 175 MortonCopy<false, PixelFormat::R32G32_SINT>,
176 MortonCopy<false, PixelFormat::R32F>, 176 MortonCopy<false, PixelFormat::R32_FLOAT>,
177 MortonCopy<false, PixelFormat::R16F>, 177 MortonCopy<false, PixelFormat::R16_FLOAT>,
178 MortonCopy<false, PixelFormat::R16U>, 178 MortonCopy<false, PixelFormat::R16_UNORM>,
179 MortonCopy<false, PixelFormat::R16S>, 179 MortonCopy<false, PixelFormat::R16_SNORM>,
180 MortonCopy<false, PixelFormat::R16UI>, 180 MortonCopy<false, PixelFormat::R16_UINT>,
181 MortonCopy<false, PixelFormat::R16I>, 181 MortonCopy<false, PixelFormat::R16_SINT>,
182 MortonCopy<false, PixelFormat::RG16>, 182 MortonCopy<false, PixelFormat::R16G16_UNORM>,
183 MortonCopy<false, PixelFormat::RG16F>, 183 MortonCopy<false, PixelFormat::R16G16_FLOAT>,
184 MortonCopy<false, PixelFormat::RG16UI>, 184 MortonCopy<false, PixelFormat::R16G16_UINT>,
185 MortonCopy<false, PixelFormat::RG16I>, 185 MortonCopy<false, PixelFormat::R16G16_SINT>,
186 MortonCopy<false, PixelFormat::RG16S>, 186 MortonCopy<false, PixelFormat::R16G16_SNORM>,
187 MortonCopy<false, PixelFormat::RGB32F>, 187 MortonCopy<false, PixelFormat::R32G32B32_FLOAT>,
188 MortonCopy<false, PixelFormat::RGBA8_SRGB>, 188 MortonCopy<false, PixelFormat::A8B8G8R8_SRGB>,
189 MortonCopy<false, PixelFormat::RG8U>, 189 MortonCopy<false, PixelFormat::R8G8_UNORM>,
190 MortonCopy<false, PixelFormat::RG8S>, 190 MortonCopy<false, PixelFormat::R8G8_SNORM>,
191 MortonCopy<false, PixelFormat::RG8I>, 191 MortonCopy<false, PixelFormat::R8G8_SINT>,
192 MortonCopy<false, PixelFormat::RG8UI>, 192 MortonCopy<false, PixelFormat::R8G8_UINT>,
193 MortonCopy<false, PixelFormat::RG32UI>, 193 MortonCopy<false, PixelFormat::R32G32_UINT>,
194 MortonCopy<false, PixelFormat::RGBX16F>, 194 MortonCopy<false, PixelFormat::R16G16B16X16_FLOAT>,
195 MortonCopy<false, PixelFormat::R32UI>, 195 MortonCopy<false, PixelFormat::R32_UINT>,
196 MortonCopy<false, PixelFormat::R32I>, 196 MortonCopy<false, PixelFormat::R32_SINT>,
197 nullptr, 197 nullptr,
198 nullptr, 198 nullptr,
199 nullptr, 199 nullptr,
200 MortonCopy<false, PixelFormat::BGRA8_SRGB>, 200 MortonCopy<false, PixelFormat::B8G8R8A8_SRGB>,
201 MortonCopy<false, PixelFormat::DXT1_SRGB>, 201 MortonCopy<false, PixelFormat::BC1_RGBA_SRGB>,
202 MortonCopy<false, PixelFormat::DXT23_SRGB>, 202 MortonCopy<false, PixelFormat::BC2_SRGB>,
203 MortonCopy<false, PixelFormat::DXT45_SRGB>, 203 MortonCopy<false, PixelFormat::BC3_SRGB>,
204 MortonCopy<false, PixelFormat::BC7U_SRGB>, 204 MortonCopy<false, PixelFormat::BC7_SRGB>,
205 MortonCopy<false, PixelFormat::R4G4B4A4U>, 205 MortonCopy<false, PixelFormat::A4B4G4R4_UNORM>,
206 nullptr, 206 nullptr,
207 nullptr, 207 nullptr,
208 nullptr, 208 nullptr,
@@ -221,12 +221,12 @@ static constexpr ConversionArray linear_to_morton_fns = {
221 nullptr, 221 nullptr,
222 nullptr, 222 nullptr,
223 nullptr, 223 nullptr,
224 MortonCopy<false, PixelFormat::E5B9G9R9F>, 224 MortonCopy<false, PixelFormat::E5B9G9R9_FLOAT>,
225 MortonCopy<false, PixelFormat::Z32F>, 225 MortonCopy<false, PixelFormat::D32_FLOAT>,
226 MortonCopy<false, PixelFormat::Z16>, 226 MortonCopy<false, PixelFormat::D16_UNORM>,
227 MortonCopy<false, PixelFormat::Z24S8>, 227 MortonCopy<false, PixelFormat::D24_UNORM_S8_UINT>,
228 MortonCopy<false, PixelFormat::S8Z24>, 228 MortonCopy<false, PixelFormat::S8_UINT_D24_UNORM>,
229 MortonCopy<false, PixelFormat::Z32FS8>, 229 MortonCopy<false, PixelFormat::D32_FLOAT_S8_UINT>,
230}; 230};
231 231
232static MortonCopyFn GetSwizzleFunction(MortonSwizzleMode mode, Surface::PixelFormat format) { 232static MortonCopyFn GetSwizzleFunction(MortonSwizzleMode mode, Surface::PixelFormat format) {