aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/host1x/vic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/host1x/vic.cpp')
-rw-r--r--src/video_core/host1x/vic.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/video_core/host1x/vic.cpp b/src/video_core/host1x/vic.cpp
index 101ac497fb..94c12ff533 100644
--- a/src/video_core/host1x/vic.cpp
+++ b/src/video_core/host1x/vic.cpp
@@ -1018,10 +1018,17 @@ void Vic::WriteABGR(const OutputSurfaceConfig& output_surface_config, VideoPixel
for (size_t y = 0; y < surface_height; ++y) {
auto const src = y * surface_stride, dst = y * out_luma_stride;
for (size_t x = 0; x < surface_width; ++x) {
- out[dst + x * 4 + 0] = u8(inp[src + x].r >> 2);
- out[dst + x * 4 + 1] = u8(inp[src + x].g >> 2);
- out[dst + x * 4 + 2] = u8(inp[src + x].b >> 2);
- out[dst + x * 4 + 3] = u8(inp[src + x].a >> 2);
+ if(format == VideoPixelFormat::A8R8G8B8) {
+ out[dst + x * 4 + 0] = u8(inp[src + x].b >> 2);
+ out[dst + x * 4 + 1] = u8(inp[src + x].g >> 2);
+ out[dst + x * 4 + 2] = u8(inp[src + x].r >> 2);
+ out[dst + x * 4 + 3] = u8(inp[src + x].a >> 2);
+ } else {
+ out[dst + x * 4 + 0] = u8(inp[src + x].r >> 2);
+ out[dst + x * 4 + 1] = u8(inp[src + x].g >> 2);
+ out[dst + x * 4 + 2] = u8(inp[src + x].b >> 2);
+ out[dst + x * 4 + 3] = u8(inp[src + x].a >> 2);
+ }
}
}
}