From a6a73d8892684596791aca34a337a07477078284 Mon Sep 17 00:00:00 2001
From: greggameplayer <gregoire.hage@gmail.com>
Date: Fri, 11 Jan 2019 21:15:30 +0100
Subject: [PATCH] Implement BGRA8 framebuffer format

---
 src/video_core/gpu.cpp     | 1 +
 src/video_core/gpu.h       | 1 +
 src/video_core/surface.cpp | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index d3d32a359..07d4ad9f7 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -18,6 +18,7 @@ namespace Tegra {
 u32 FramebufferConfig::BytesPerPixel(PixelFormat format) {
     switch (format) {
     case PixelFormat::ABGR8:
+    case PixelFormat::BGRA8:
         return 4;
     default:
         return 4;
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h
index fb8975811..19b62dc7e 100644
--- a/src/video_core/gpu.h
+++ b/src/video_core/gpu.h
@@ -80,6 +80,7 @@ class DebugContext;
 struct FramebufferConfig {
     enum class PixelFormat : u32 {
         ABGR8 = 1,
+        BGRA8 = 5,
     };
 
     /**
diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp
index 2f6612a35..044ba116a 100644
--- a/src/video_core/surface.cpp
+++ b/src/video_core/surface.cpp
@@ -426,6 +426,8 @@ PixelFormat PixelFormatFromGPUPixelFormat(Tegra::FramebufferConfig::PixelFormat
     switch (format) {
     case Tegra::FramebufferConfig::PixelFormat::ABGR8:
         return PixelFormat::ABGR8U;
+    case Tegra::FramebufferConfig::PixelFormat::BGRA8:
+        return PixelFormat::BGRA8;
     default:
         LOG_CRITICAL(HW_GPU, "Unimplemented format={}", static_cast<u32>(format));
         UNREACHABLE();