diff options
| author | 2019-12-13 02:43:59 -0300 | |
|---|---|---|
| committer | 2019-12-13 03:12:28 -0300 | |
| commit | f27b21077d37db0c7e75584a4de5970b9ba3641f (patch) | |
| tree | 591d1bfbaa8ad5b2fd05af9510793a7e2c15f89b /src | |
| parent | maxwell_to_vk: Implement more primitive topologies (diff) | |
| download | yuzu-f27b21077d37db0c7e75584a4de5970b9ba3641f.tar.gz yuzu-f27b21077d37db0c7e75584a4de5970b9ba3641f.tar.xz yuzu-f27b21077d37db0c7e75584a4de5970b9ba3641f.zip | |
maxwell_to_vk: Implement more vertex formats
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/maxwell_to_vk.cpp | 88 |
1 files changed, 81 insertions, 7 deletions
diff --git a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp index 65b9a8cf7..122b88e2e 100644 --- a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp +++ b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp | |||
| @@ -250,37 +250,111 @@ vk::PrimitiveTopology PrimitiveTopology([[maybe_unused]] const VKDevice& device, | |||
| 250 | vk::Format VertexFormat(Maxwell::VertexAttribute::Type type, Maxwell::VertexAttribute::Size size) { | 250 | vk::Format VertexFormat(Maxwell::VertexAttribute::Type type, Maxwell::VertexAttribute::Size size) { |
| 251 | switch (type) { | 251 | switch (type) { |
| 252 | case Maxwell::VertexAttribute::Type::SignedNorm: | 252 | case Maxwell::VertexAttribute::Type::SignedNorm: |
| 253 | switch (size) { | ||
| 254 | case Maxwell::VertexAttribute::Size::Size_8: | ||
| 255 | return vk::Format::eR8Snorm; | ||
| 256 | case Maxwell::VertexAttribute::Size::Size_8_8: | ||
| 257 | return vk::Format::eR8G8Snorm; | ||
| 258 | case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||
| 259 | return vk::Format::eR8G8B8Snorm; | ||
| 260 | case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | ||
| 261 | return vk::Format::eR8G8B8A8Snorm; | ||
| 262 | case Maxwell::VertexAttribute::Size::Size_16: | ||
| 263 | return vk::Format::eR16Snorm; | ||
| 264 | case Maxwell::VertexAttribute::Size::Size_16_16: | ||
| 265 | return vk::Format::eR16G16Snorm; | ||
| 266 | case Maxwell::VertexAttribute::Size::Size_16_16_16: | ||
| 267 | return vk::Format::eR16G16B16Snorm; | ||
| 268 | case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||
| 269 | return vk::Format::eR16G16B16A16Snorm; | ||
| 270 | case Maxwell::VertexAttribute::Size::Size_10_10_10_2: | ||
| 271 | return vk::Format::eA2B10G10R10SnormPack32; | ||
| 272 | default: | ||
| 273 | break; | ||
| 274 | } | ||
| 253 | break; | 275 | break; |
| 254 | case Maxwell::VertexAttribute::Type::UnsignedNorm: | 276 | case Maxwell::VertexAttribute::Type::UnsignedNorm: |
| 255 | switch (size) { | 277 | switch (size) { |
| 278 | case Maxwell::VertexAttribute::Size::Size_8: | ||
| 279 | return vk::Format::eR8Unorm; | ||
| 280 | case Maxwell::VertexAttribute::Size::Size_8_8: | ||
| 281 | return vk::Format::eR8G8Unorm; | ||
| 282 | case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||
| 283 | return vk::Format::eR8G8B8Unorm; | ||
| 256 | case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | 284 | case Maxwell::VertexAttribute::Size::Size_8_8_8_8: |
| 257 | return vk::Format::eR8G8B8A8Unorm; | 285 | return vk::Format::eR8G8B8A8Unorm; |
| 286 | case Maxwell::VertexAttribute::Size::Size_16: | ||
| 287 | return vk::Format::eR16Unorm; | ||
| 288 | case Maxwell::VertexAttribute::Size::Size_16_16: | ||
| 289 | return vk::Format::eR16G16Unorm; | ||
| 290 | case Maxwell::VertexAttribute::Size::Size_16_16_16: | ||
| 291 | return vk::Format::eR16G16B16Unorm; | ||
| 292 | case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||
| 293 | return vk::Format::eR16G16B16A16Unorm; | ||
| 258 | default: | 294 | default: |
| 259 | break; | 295 | break; |
| 260 | } | 296 | } |
| 261 | break; | 297 | break; |
| 262 | case Maxwell::VertexAttribute::Type::SignedInt: | 298 | case Maxwell::VertexAttribute::Type::SignedInt: |
| 263 | break; | 299 | switch (size) { |
| 300 | case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||
| 301 | return vk::Format::eR16G16B16A16Sint; | ||
| 302 | case Maxwell::VertexAttribute::Size::Size_8: | ||
| 303 | return vk::Format::eR8Sint; | ||
| 304 | case Maxwell::VertexAttribute::Size::Size_8_8: | ||
| 305 | return vk::Format::eR8G8Sint; | ||
| 306 | case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||
| 307 | return vk::Format::eR8G8B8Sint; | ||
| 308 | case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | ||
| 309 | return vk::Format::eR8G8B8A8Sint; | ||
| 310 | case Maxwell::VertexAttribute::Size::Size_32: | ||
| 311 | return vk::Format::eR32Sint; | ||
| 312 | default: | ||
| 313 | break; | ||
| 314 | } | ||
| 264 | case Maxwell::VertexAttribute::Type::UnsignedInt: | 315 | case Maxwell::VertexAttribute::Type::UnsignedInt: |
| 265 | switch (size) { | 316 | switch (size) { |
| 317 | case Maxwell::VertexAttribute::Size::Size_8: | ||
| 318 | return vk::Format::eR8Uint; | ||
| 319 | case Maxwell::VertexAttribute::Size::Size_8_8: | ||
| 320 | return vk::Format::eR8G8Uint; | ||
| 321 | case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||
| 322 | return vk::Format::eR8G8B8Uint; | ||
| 323 | case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | ||
| 324 | return vk::Format::eR8G8B8A8Uint; | ||
| 266 | case Maxwell::VertexAttribute::Size::Size_32: | 325 | case Maxwell::VertexAttribute::Size::Size_32: |
| 267 | return vk::Format::eR32Uint; | 326 | return vk::Format::eR32Uint; |
| 268 | default: | 327 | default: |
| 269 | break; | 328 | break; |
| 270 | } | 329 | } |
| 271 | case Maxwell::VertexAttribute::Type::UnsignedScaled: | 330 | case Maxwell::VertexAttribute::Type::UnsignedScaled: |
| 331 | switch (size) { | ||
| 332 | case Maxwell::VertexAttribute::Size::Size_8_8: | ||
| 333 | return vk::Format::eR8G8Uscaled; | ||
| 334 | default: | ||
| 335 | break; | ||
| 336 | } | ||
| 337 | break; | ||
| 272 | case Maxwell::VertexAttribute::Type::SignedScaled: | 338 | case Maxwell::VertexAttribute::Type::SignedScaled: |
| 273 | break; | 339 | break; |
| 274 | case Maxwell::VertexAttribute::Type::Float: | 340 | case Maxwell::VertexAttribute::Type::Float: |
| 275 | switch (size) { | 341 | switch (size) { |
| 276 | case Maxwell::VertexAttribute::Size::Size_32_32_32_32: | ||
| 277 | return vk::Format::eR32G32B32A32Sfloat; | ||
| 278 | case Maxwell::VertexAttribute::Size::Size_32_32_32: | ||
| 279 | return vk::Format::eR32G32B32Sfloat; | ||
| 280 | case Maxwell::VertexAttribute::Size::Size_32_32: | ||
| 281 | return vk::Format::eR32G32Sfloat; | ||
| 282 | case Maxwell::VertexAttribute::Size::Size_32: | 342 | case Maxwell::VertexAttribute::Size::Size_32: |
| 283 | return vk::Format::eR32Sfloat; | 343 | return vk::Format::eR32Sfloat; |
| 344 | case Maxwell::VertexAttribute::Size::Size_32_32: | ||
| 345 | return vk::Format::eR32G32Sfloat; | ||
| 346 | case Maxwell::VertexAttribute::Size::Size_32_32_32: | ||
| 347 | return vk::Format::eR32G32B32Sfloat; | ||
| 348 | case Maxwell::VertexAttribute::Size::Size_32_32_32_32: | ||
| 349 | return vk::Format::eR32G32B32A32Sfloat; | ||
| 350 | case Maxwell::VertexAttribute::Size::Size_16: | ||
| 351 | return vk::Format::eR16Sfloat; | ||
| 352 | case Maxwell::VertexAttribute::Size::Size_16_16: | ||
| 353 | return vk::Format::eR16G16Sfloat; | ||
| 354 | case Maxwell::VertexAttribute::Size::Size_16_16_16: | ||
| 355 | return vk::Format::eR16G16B16Sfloat; | ||
| 356 | case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||
| 357 | return vk::Format::eR16G16B16A16Sfloat; | ||
| 284 | default: | 358 | default: |
| 285 | break; | 359 | break; |
| 286 | } | 360 | } |