diff options
| author | 2018-11-06 19:05:57 +0100 | |
|---|---|---|
| committer | 2018-11-06 19:05:57 +0100 | |
| commit | d3b9599b2dd084db5b180a6b13ea0ceaec5c7587 (patch) | |
| tree | 79bcd8922cb90d06b61e07b5cc6e84e320aa3128 /src/video_core/surface.cpp | |
| parent | correct syntax (diff) | |
| parent | Merge pull request #1649 from degasus/split_resource_manager (diff) | |
| download | yuzu-d3b9599b2dd084db5b180a6b13ea0ceaec5c7587.tar.gz yuzu-d3b9599b2dd084db5b180a6b13ea0ceaec5c7587.tar.xz yuzu-d3b9599b2dd084db5b180a6b13ea0ceaec5c7587.zip | |
Merge branch 'master' into Texture2DArray
Diffstat (limited to 'src/video_core/surface.cpp')
| -rw-r--r-- | src/video_core/surface.cpp | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp index d9a97e30b..051ad3964 100644 --- a/src/video_core/surface.cpp +++ b/src/video_core/surface.cpp | |||
| @@ -19,6 +19,8 @@ SurfaceTarget SurfaceTargetFromTextureType(Tegra::Texture::TextureType texture_t | |||
| 19 | return SurfaceTarget::Texture3D; | 19 | return SurfaceTarget::Texture3D; |
| 20 | case Tegra::Texture::TextureType::TextureCubemap: | 20 | case Tegra::Texture::TextureType::TextureCubemap: |
| 21 | return SurfaceTarget::TextureCubemap; | 21 | return SurfaceTarget::TextureCubemap; |
| 22 | case Tegra::Texture::TextureType::TextureCubeArray: | ||
| 23 | return SurfaceTarget::TextureCubeArray; | ||
| 22 | case Tegra::Texture::TextureType::Texture1DArray: | 24 | case Tegra::Texture::TextureType::Texture1DArray: |
| 23 | return SurfaceTarget::Texture1DArray; | 25 | return SurfaceTarget::Texture1DArray; |
| 24 | case Tegra::Texture::TextureType::Texture2DArray: | 26 | case Tegra::Texture::TextureType::Texture2DArray: |
| @@ -39,6 +41,7 @@ bool SurfaceTargetIsLayered(SurfaceTarget target) { | |||
| 39 | case SurfaceTarget::Texture1DArray: | 41 | case SurfaceTarget::Texture1DArray: |
| 40 | case SurfaceTarget::Texture2DArray: | 42 | case SurfaceTarget::Texture2DArray: |
| 41 | case SurfaceTarget::TextureCubemap: | 43 | case SurfaceTarget::TextureCubemap: |
| 44 | case SurfaceTarget::TextureCubeArray: | ||
| 42 | return true; | 45 | return true; |
| 43 | default: | 46 | default: |
| 44 | LOG_CRITICAL(HW_GPU, "Unimplemented surface_target={}", static_cast<u32>(target)); | 47 | LOG_CRITICAL(HW_GPU, "Unimplemented surface_target={}", static_cast<u32>(target)); |
| @@ -297,6 +300,8 @@ PixelFormat PixelFormatFromTextureFormat(Tegra::Texture::TextureFormat format, | |||
| 297 | return is_srgb ? PixelFormat::ASTC_2D_4X4_SRGB : PixelFormat::ASTC_2D_4X4; | 300 | return is_srgb ? PixelFormat::ASTC_2D_4X4_SRGB : PixelFormat::ASTC_2D_4X4; |
| 298 | case Tegra::Texture::TextureFormat::ASTC_2D_5X4: | 301 | case Tegra::Texture::TextureFormat::ASTC_2D_5X4: |
| 299 | return is_srgb ? PixelFormat::ASTC_2D_5X4_SRGB : PixelFormat::ASTC_2D_5X4; | 302 | return is_srgb ? PixelFormat::ASTC_2D_5X4_SRGB : PixelFormat::ASTC_2D_5X4; |
| 303 | case Tegra::Texture::TextureFormat::ASTC_2D_5X5: | ||
| 304 | return is_srgb ? PixelFormat::ASTC_2D_5X5_SRGB : PixelFormat::ASTC_2D_5X5; | ||
| 300 | case Tegra::Texture::TextureFormat::ASTC_2D_8X8: | 305 | case Tegra::Texture::TextureFormat::ASTC_2D_8X8: |
| 301 | return is_srgb ? PixelFormat::ASTC_2D_8X8_SRGB : PixelFormat::ASTC_2D_8X8; | 306 | return is_srgb ? PixelFormat::ASTC_2D_8X8_SRGB : PixelFormat::ASTC_2D_8X8; |
| 302 | case Tegra::Texture::TextureFormat::ASTC_2D_8X5: | 307 | case Tegra::Texture::TextureFormat::ASTC_2D_8X5: |
| @@ -440,10 +445,12 @@ bool IsPixelFormatASTC(PixelFormat format) { | |||
| 440 | switch (format) { | 445 | switch (format) { |
| 441 | case PixelFormat::ASTC_2D_4X4: | 446 | case PixelFormat::ASTC_2D_4X4: |
| 442 | case PixelFormat::ASTC_2D_5X4: | 447 | case PixelFormat::ASTC_2D_5X4: |
| 448 | case PixelFormat::ASTC_2D_5X5: | ||
| 443 | case PixelFormat::ASTC_2D_8X8: | 449 | case PixelFormat::ASTC_2D_8X8: |
| 444 | case PixelFormat::ASTC_2D_8X5: | 450 | case PixelFormat::ASTC_2D_8X5: |
| 445 | case PixelFormat::ASTC_2D_4X4_SRGB: | 451 | case PixelFormat::ASTC_2D_4X4_SRGB: |
| 446 | case PixelFormat::ASTC_2D_5X4_SRGB: | 452 | case PixelFormat::ASTC_2D_5X4_SRGB: |
| 453 | case PixelFormat::ASTC_2D_5X5_SRGB: | ||
| 447 | case PixelFormat::ASTC_2D_8X8_SRGB: | 454 | case PixelFormat::ASTC_2D_8X8_SRGB: |
| 448 | case PixelFormat::ASTC_2D_8X5_SRGB: | 455 | case PixelFormat::ASTC_2D_8X5_SRGB: |
| 449 | return true; | 456 | return true; |
| @@ -453,27 +460,7 @@ bool IsPixelFormatASTC(PixelFormat format) { | |||
| 453 | } | 460 | } |
| 454 | 461 | ||
| 455 | std::pair<u32, u32> GetASTCBlockSize(PixelFormat format) { | 462 | std::pair<u32, u32> GetASTCBlockSize(PixelFormat format) { |
| 456 | switch (format) { | 463 | return {GetDefaultBlockWidth(format), GetDefaultBlockHeight(format)}; |
| 457 | case PixelFormat::ASTC_2D_4X4: | ||
| 458 | return {4, 4}; | ||
| 459 | case PixelFormat::ASTC_2D_5X4: | ||
| 460 | return {5, 4}; | ||
| 461 | case PixelFormat::ASTC_2D_8X8: | ||
| 462 | return {8, 8}; | ||
| 463 | case PixelFormat::ASTC_2D_8X5: | ||
| 464 | return {8, 5}; | ||
| 465 | case PixelFormat::ASTC_2D_4X4_SRGB: | ||
| 466 | return {4, 4}; | ||
| 467 | case PixelFormat::ASTC_2D_5X4_SRGB: | ||
| 468 | return {5, 4}; | ||
| 469 | case PixelFormat::ASTC_2D_8X8_SRGB: | ||
| 470 | return {8, 8}; | ||
| 471 | case PixelFormat::ASTC_2D_8X5_SRGB: | ||
| 472 | return {8, 5}; | ||
| 473 | default: | ||
| 474 | LOG_CRITICAL(HW_GPU, "Unhandled format: {}", static_cast<u32>(format)); | ||
| 475 | UNREACHABLE(); | ||
| 476 | } | ||
| 477 | } | 464 | } |
| 478 | 465 | ||
| 479 | bool IsFormatBCn(PixelFormat format) { | 466 | bool IsFormatBCn(PixelFormat format) { |