diff options
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 35 |
1 files changed, 1 insertions, 34 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 4d6fd8b8b..df99dd521 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | |||
| @@ -532,23 +532,6 @@ static void ConvertFormatAsNeeded_LoadGLBuffer(std::vector<u8>& data, PixelForma | |||
| 532 | } | 532 | } |
| 533 | } | 533 | } |
| 534 | 534 | ||
| 535 | /** | ||
| 536 | * Helper function to perform software conversion (as needed) when flushing a buffer to Switch | ||
| 537 | * memory. This is for Maxwell pixel formats that cannot be represented as-is in OpenGL or with | ||
| 538 | * typical desktop GPUs. | ||
| 539 | */ | ||
| 540 | static void ConvertFormatAsNeeded_FlushGLBuffer(std::vector<u8>& /*data*/, PixelFormat pixel_format, | ||
| 541 | u32 /*width*/, u32 /*height*/) { | ||
| 542 | switch (pixel_format) { | ||
| 543 | case PixelFormat::ASTC_2D_4X4: | ||
| 544 | case PixelFormat::S8Z24: | ||
| 545 | LOG_CRITICAL(Render_OpenGL, "Unimplemented pixel_format={}", | ||
| 546 | static_cast<u32>(pixel_format)); | ||
| 547 | UNREACHABLE(); | ||
| 548 | break; | ||
| 549 | } | ||
| 550 | } | ||
| 551 | |||
| 552 | MICROPROFILE_DEFINE(OpenGL_SurfaceLoad, "OpenGL", "Surface Load", MP_RGB(128, 64, 192)); | 535 | MICROPROFILE_DEFINE(OpenGL_SurfaceLoad, "OpenGL", "Surface Load", MP_RGB(128, 64, 192)); |
| 553 | void CachedSurface::LoadGLBuffer() { | 536 | void CachedSurface::LoadGLBuffer() { |
| 554 | ASSERT(params.type != SurfaceType::Fill); | 537 | ASSERT(params.type != SurfaceType::Fill); |
| @@ -578,23 +561,7 @@ void CachedSurface::LoadGLBuffer() { | |||
| 578 | 561 | ||
| 579 | MICROPROFILE_DEFINE(OpenGL_SurfaceFlush, "OpenGL", "Surface Flush", MP_RGB(128, 192, 64)); | 562 | MICROPROFILE_DEFINE(OpenGL_SurfaceFlush, "OpenGL", "Surface Flush", MP_RGB(128, 192, 64)); |
| 580 | void CachedSurface::FlushGLBuffer() { | 563 | void CachedSurface::FlushGLBuffer() { |
| 581 | u8* const dst_buffer = Memory::GetPointer(params.addr); | 564 | ASSERT_MSG(false, "Unimplemented"); |
| 582 | |||
| 583 | ASSERT(dst_buffer); | ||
| 584 | ASSERT(gl_buffer.size() == | ||
| 585 | params.width * params.height * GetGLBytesPerPixel(params.pixel_format)); | ||
| 586 | |||
| 587 | MICROPROFILE_SCOPE(OpenGL_SurfaceFlush); | ||
| 588 | |||
| 589 | ConvertFormatAsNeeded_FlushGLBuffer(gl_buffer, params.pixel_format, params.width, | ||
| 590 | params.height); | ||
| 591 | |||
| 592 | if (!params.is_tiled) { | ||
| 593 | std::memcpy(dst_buffer, gl_buffer.data(), params.size_in_bytes); | ||
| 594 | } else { | ||
| 595 | gl_to_morton_fns[static_cast<size_t>(params.pixel_format)]( | ||
| 596 | params.width, params.block_height, params.height, gl_buffer, params.addr); | ||
| 597 | } | ||
| 598 | } | 565 | } |
| 599 | 566 | ||
| 600 | MICROPROFILE_DEFINE(OpenGL_TextureUL, "OpenGL", "Texture Upload", MP_RGB(128, 64, 192)); | 567 | MICROPROFILE_DEFINE(OpenGL_TextureUL, "OpenGL", "Texture Upload", MP_RGB(128, 64, 192)); |