summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_rasterizer_cache.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-07-23 22:56:52 +0200
committerbunnei <bunneidev@gmail.com>2018-07-24 03:22:44 +0200
commitbcc184acfa81aee7ad33d9c82f5f4496731a1d1f (patch)
treed6025ff57f156e93aad6446df0d794ed9d0058ca /src/video_core/renderer_opengl/gl_rasterizer_cache.h
parentgl_rasterizer_cache: Add missing log statements. (diff)
downloadyuzu-bcc184acfa81aee7ad33d9c82f5f4496731a1d1f.tar
yuzu-bcc184acfa81aee7ad33d9c82f5f4496731a1d1f.tar.gz
yuzu-bcc184acfa81aee7ad33d9c82f5f4496731a1d1f.tar.bz2
yuzu-bcc184acfa81aee7ad33d9c82f5f4496731a1d1f.tar.lz
yuzu-bcc184acfa81aee7ad33d9c82f5f4496731a1d1f.tar.xz
yuzu-bcc184acfa81aee7ad33d9c82f5f4496731a1d1f.tar.zst
yuzu-bcc184acfa81aee7ad33d9c82f5f4496731a1d1f.zip
Diffstat (limited to 'src/video_core/renderer_opengl/gl_rasterizer_cache.h')
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h
index fbdab58be..c0f94936e 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h
@@ -37,14 +37,15 @@ struct SurfaceParams {
BC7U = 12,
ASTC_2D_4X4 = 13,
G8R8 = 14,
+ BGRA8 = 15,
MaxColorFormat,
// DepthStencil formats
- Z24S8 = 15,
- S8Z24 = 16,
- Z32F = 17,
- Z16 = 18,
+ Z24S8 = 16,
+ S8Z24 = 17,
+ Z32F = 18,
+ Z16 = 19,
MaxDepthStencilFormat,
@@ -97,6 +98,7 @@ struct SurfaceParams {
4, // BC7U
4, // ASTC_2D_4X4
1, // G8R8
+ 1, // BGRA8
1, // Z24S8
1, // S8Z24
1, // Z32F
@@ -127,6 +129,7 @@ struct SurfaceParams {
128, // BC7U
32, // ASTC_2D_4X4
16, // G8R8
+ 32, // BGRA8
32, // Z24S8
32, // S8Z24
32, // Z32F
@@ -162,6 +165,8 @@ struct SurfaceParams {
case Tegra::RenderTargetFormat::RGBA8_UNORM:
case Tegra::RenderTargetFormat::RGBA8_SRGB:
return PixelFormat::ABGR8;
+ case Tegra::RenderTargetFormat::BGRA8_UNORM:
+ return PixelFormat::BGRA8;
case Tegra::RenderTargetFormat::RGB10_A2_UNORM:
return PixelFormat::A2B10G10R10;
case Tegra::RenderTargetFormat::RGBA16_FLOAT:
@@ -248,6 +253,10 @@ struct SurfaceParams {
return Tegra::Texture::TextureFormat::BC7U;
case PixelFormat::ASTC_2D_4X4:
return Tegra::Texture::TextureFormat::ASTC_2D_4X4;
+ case PixelFormat::BGRA8:
+ // TODO(bunnei): This is fine for unswizzling (since we just need the right component
+ // sizes), but could be a bug if we used this function in different ways.
+ return Tegra::Texture::TextureFormat::A8R8G8B8;
default:
LOG_CRITICAL(HW_GPU, "Unimplemented format={}", static_cast<u32>(format));
UNREACHABLE();
@@ -286,6 +295,7 @@ struct SurfaceParams {
switch (format) {
case Tegra::RenderTargetFormat::RGBA8_UNORM:
case Tegra::RenderTargetFormat::RGBA8_SRGB:
+ case Tegra::RenderTargetFormat::BGRA8_UNORM:
case Tegra::RenderTargetFormat::RGB10_A2_UNORM:
return ComponentType::UNorm;
case Tegra::RenderTargetFormat::RGBA16_FLOAT: