summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common/logging/backend.cpp5
-rw-r--r--src/core/CMakeLists.txt4
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp34
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h36
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_vic.cpp34
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_vic.h36
-rw-r--r--src/core/hle/service/nvdrv/nvdrv.cpp4
-rw-r--r--src/video_core/gpu.cpp1
-rw-r--r--src/video_core/gpu.h1
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.cpp5
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.h80
11 files changed, 200 insertions, 40 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index e80784c3c..1323f8d0f 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -302,13 +302,14 @@ Backend* GetBackend(std::string_view backend_name) {
302void FmtLogMessageImpl(Class log_class, Level log_level, const char* filename, 302void FmtLogMessageImpl(Class log_class, Level log_level, const char* filename,
303 unsigned int line_num, const char* function, const char* format, 303 unsigned int line_num, const char* function, const char* format,
304 const fmt::format_args& args) { 304 const fmt::format_args& args) {
305 auto filter = Impl::Instance().GetGlobalFilter(); 305 auto& instance = Impl::Instance();
306 const auto& filter = instance.GetGlobalFilter();
306 if (!filter.CheckMessage(log_class, log_level)) 307 if (!filter.CheckMessage(log_class, log_level))
307 return; 308 return;
308 309
309 Entry entry = 310 Entry entry =
310 CreateEntry(log_class, log_level, filename, line_num, function, fmt::vformat(format, args)); 311 CreateEntry(log_class, log_level, filename, line_num, function, fmt::vformat(format, args));
311 312
312 Impl::Instance().PushEntry(std::move(entry)); 313 instance.PushEntry(std::move(entry));
313} 314}
314} // namespace Log 315} // namespace Log
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index cceb1564b..0b0ae5ccc 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -249,6 +249,10 @@ add_library(core STATIC
249 hle/service/nvdrv/devices/nvhost_gpu.h 249 hle/service/nvdrv/devices/nvhost_gpu.h
250 hle/service/nvdrv/devices/nvhost_nvdec.cpp 250 hle/service/nvdrv/devices/nvhost_nvdec.cpp
251 hle/service/nvdrv/devices/nvhost_nvdec.h 251 hle/service/nvdrv/devices/nvhost_nvdec.h
252 hle/service/nvdrv/devices/nvhost_nvjpg.cpp
253 hle/service/nvdrv/devices/nvhost_nvjpg.h
254 hle/service/nvdrv/devices/nvhost_vic.cpp
255 hle/service/nvdrv/devices/nvhost_vic.h
252 hle/service/nvdrv/devices/nvmap.cpp 256 hle/service/nvdrv/devices/nvmap.cpp
253 hle/service/nvdrv/devices/nvmap.h 257 hle/service/nvdrv/devices/nvmap.h
254 hle/service/nvdrv/interface.cpp 258 hle/service/nvdrv/interface.cpp
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp
new file mode 100644
index 000000000..51f01077b
--- /dev/null
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp
@@ -0,0 +1,34 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include <cstring>
6
7#include "common/assert.h"
8#include "common/logging/log.h"
9#include "core/hle/service/nvdrv/devices/nvhost_nvjpg.h"
10
11namespace Service::Nvidia::Devices {
12
13u32 nvhost_nvjpg::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) {
14 LOG_DEBUG(Service_NVDRV, "called, command=0x{:08X}, input_size=0x{:X}, output_size=0x{:X}",
15 command.raw, input.size(), output.size());
16
17 switch (static_cast<IoctlCommand>(command.raw)) {
18 case IoctlCommand::IocSetNVMAPfdCommand:
19 return SetNVMAPfd(input, output);
20 }
21
22 UNIMPLEMENTED_MSG("Unimplemented ioctl");
23 return 0;
24}
25
26u32 nvhost_nvjpg::SetNVMAPfd(const std::vector<u8>& input, std::vector<u8>& output) {
27 IoctlSetNvmapFD params{};
28 std::memcpy(&params, input.data(), input.size());
29 LOG_DEBUG(Service_NVDRV, "called, fd={}", params.nvmap_fd);
30 nvmap_fd = params.nvmap_fd;
31 return 0;
32}
33
34} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h
new file mode 100644
index 000000000..2b0eb43ee
--- /dev/null
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h
@@ -0,0 +1,36 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include <vector>
8#include "common/common_types.h"
9#include "common/swap.h"
10#include "core/hle/service/nvdrv/devices/nvdevice.h"
11
12namespace Service::Nvidia::Devices {
13
14class nvhost_nvjpg final : public nvdevice {
15public:
16 nvhost_nvjpg() = default;
17 ~nvhost_nvjpg() override = default;
18
19 u32 ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) override;
20
21private:
22 enum class IoctlCommand : u32_le {
23 IocSetNVMAPfdCommand = 0x40044801,
24 };
25
26 struct IoctlSetNvmapFD {
27 u32_le nvmap_fd;
28 };
29 static_assert(sizeof(IoctlSetNvmapFD) == 4, "IoctlSetNvmapFD is incorrect size");
30
31 u32_le nvmap_fd{};
32
33 u32 SetNVMAPfd(const std::vector<u8>& input, std::vector<u8>& output);
34};
35
36} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp b/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp
new file mode 100644
index 000000000..fcb488d50
--- /dev/null
+++ b/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp
@@ -0,0 +1,34 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include <cstring>
6
7#include "common/assert.h"
8#include "common/logging/log.h"
9#include "core/hle/service/nvdrv/devices/nvhost_vic.h"
10
11namespace Service::Nvidia::Devices {
12
13u32 nvhost_vic::ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) {
14 LOG_DEBUG(Service_NVDRV, "called, command=0x{:08X}, input_size=0x{:X}, output_size=0x{:X}",
15 command.raw, input.size(), output.size());
16
17 switch (static_cast<IoctlCommand>(command.raw)) {
18 case IoctlCommand::IocSetNVMAPfdCommand:
19 return SetNVMAPfd(input, output);
20 }
21
22 UNIMPLEMENTED_MSG("Unimplemented ioctl");
23 return 0;
24}
25
26u32 nvhost_vic::SetNVMAPfd(const std::vector<u8>& input, std::vector<u8>& output) {
27 IoctlSetNvmapFD params{};
28 std::memcpy(&params, input.data(), input.size());
29 LOG_DEBUG(Service_NVDRV, "called, fd={}", params.nvmap_fd);
30 nvmap_fd = params.nvmap_fd;
31 return 0;
32}
33
34} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_vic.h b/src/core/hle/service/nvdrv/devices/nvhost_vic.h
new file mode 100644
index 000000000..c7d681e52
--- /dev/null
+++ b/src/core/hle/service/nvdrv/devices/nvhost_vic.h
@@ -0,0 +1,36 @@
1// Copyright 2018 yuzu emulator team
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include <vector>
8#include "common/common_types.h"
9#include "common/swap.h"
10#include "core/hle/service/nvdrv/devices/nvdevice.h"
11
12namespace Service::Nvidia::Devices {
13
14class nvhost_vic final : public nvdevice {
15public:
16 nvhost_vic() = default;
17 ~nvhost_vic() override = default;
18
19 u32 ioctl(Ioctl command, const std::vector<u8>& input, std::vector<u8>& output) override;
20
21private:
22 enum class IoctlCommand : u32_le {
23 IocSetNVMAPfdCommand = 0x40044801,
24 };
25
26 struct IoctlSetNvmapFD {
27 u32_le nvmap_fd;
28 };
29 static_assert(sizeof(IoctlSetNvmapFD) == 4, "IoctlSetNvmapFD is incorrect size");
30
31 u32_le nvmap_fd{};
32
33 u32 SetNVMAPfd(const std::vector<u8>& input, std::vector<u8>& output);
34};
35
36} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/nvdrv/nvdrv.cpp b/src/core/hle/service/nvdrv/nvdrv.cpp
index 427f4b574..2de39822f 100644
--- a/src/core/hle/service/nvdrv/nvdrv.cpp
+++ b/src/core/hle/service/nvdrv/nvdrv.cpp
@@ -12,6 +12,8 @@
12#include "core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h" 12#include "core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h"
13#include "core/hle/service/nvdrv/devices/nvhost_gpu.h" 13#include "core/hle/service/nvdrv/devices/nvhost_gpu.h"
14#include "core/hle/service/nvdrv/devices/nvhost_nvdec.h" 14#include "core/hle/service/nvdrv/devices/nvhost_nvdec.h"
15#include "core/hle/service/nvdrv/devices/nvhost_nvjpg.h"
16#include "core/hle/service/nvdrv/devices/nvhost_vic.h"
15#include "core/hle/service/nvdrv/devices/nvmap.h" 17#include "core/hle/service/nvdrv/devices/nvmap.h"
16#include "core/hle/service/nvdrv/interface.h" 18#include "core/hle/service/nvdrv/interface.h"
17#include "core/hle/service/nvdrv/nvdrv.h" 19#include "core/hle/service/nvdrv/nvdrv.h"
@@ -39,6 +41,8 @@ Module::Module() {
39 devices["/dev/nvdisp_disp0"] = std::make_shared<Devices::nvdisp_disp0>(nvmap_dev); 41 devices["/dev/nvdisp_disp0"] = std::make_shared<Devices::nvdisp_disp0>(nvmap_dev);
40 devices["/dev/nvhost-ctrl"] = std::make_shared<Devices::nvhost_ctrl>(); 42 devices["/dev/nvhost-ctrl"] = std::make_shared<Devices::nvhost_ctrl>();
41 devices["/dev/nvhost-nvdec"] = std::make_shared<Devices::nvhost_nvdec>(); 43 devices["/dev/nvhost-nvdec"] = std::make_shared<Devices::nvhost_nvdec>();
44 devices["/dev/nvhost-nvjpg"] = std::make_shared<Devices::nvhost_nvjpg>();
45 devices["/dev/nvhost-vic"] = std::make_shared<Devices::nvhost_vic>();
42} 46}
43 47
44u32 Module::Open(const std::string& device_name) { 48u32 Module::Open(const std::string& device_name) {
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index c9f6b82b7..5a593c1f7 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -47,6 +47,7 @@ u32 RenderTargetBytesPerPixel(RenderTargetFormat format) {
47 case RenderTargetFormat::RGBA32_UINT: 47 case RenderTargetFormat::RGBA32_UINT:
48 return 16; 48 return 16;
49 case RenderTargetFormat::RGBA16_UINT: 49 case RenderTargetFormat::RGBA16_UINT:
50 case RenderTargetFormat::RGBA16_UNORM:
50 case RenderTargetFormat::RGBA16_FLOAT: 51 case RenderTargetFormat::RGBA16_FLOAT:
51 case RenderTargetFormat::RG32_FLOAT: 52 case RenderTargetFormat::RG32_FLOAT:
52 case RenderTargetFormat::RG32_UINT: 53 case RenderTargetFormat::RG32_UINT:
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h
index 8a90a3a66..97dcccb92 100644
--- a/src/video_core/gpu.h
+++ b/src/video_core/gpu.h
@@ -20,6 +20,7 @@ enum class RenderTargetFormat : u32 {
20 NONE = 0x0, 20 NONE = 0x0,
21 RGBA32_FLOAT = 0xC0, 21 RGBA32_FLOAT = 0xC0,
22 RGBA32_UINT = 0xC2, 22 RGBA32_UINT = 0xC2,
23 RGBA16_UNORM = 0xC6,
23 RGBA16_UINT = 0xC9, 24 RGBA16_UINT = 0xC9,
24 RGBA16_FLOAT = 0xCA, 25 RGBA16_FLOAT = 0xCA,
25 RG32_FLOAT = 0xCB, 26 RG32_FLOAT = 0xCB,
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
index 4b48ab8e2..5d58ebd4f 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp
@@ -101,6 +101,7 @@ static constexpr std::array<FormatTuple, SurfaceParams::MaxPixelFormat> tex_form
101 {GL_R8, GL_RED, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // R8 101 {GL_R8, GL_RED, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // R8
102 {GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, ComponentType::UInt, false}, // R8UI 102 {GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, ComponentType::UInt, false}, // R8UI
103 {GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT, ComponentType::Float, false}, // RGBA16F 103 {GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT, ComponentType::Float, false}, // RGBA16F
104 {GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT, ComponentType::UNorm, false}, // RGBA16U
104 {GL_RGBA16UI, GL_RGBA, GL_UNSIGNED_SHORT, ComponentType::UInt, false}, // RGBA16UI 105 {GL_RGBA16UI, GL_RGBA, GL_UNSIGNED_SHORT, ComponentType::UInt, false}, // RGBA16UI
105 {GL_R11F_G11F_B10F, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, ComponentType::Float, 106 {GL_R11F_G11F_B10F, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, ComponentType::Float,
106 false}, // R11FG11FB10F 107 false}, // R11FG11FB10F
@@ -115,7 +116,7 @@ static constexpr std::array<FormatTuple, SurfaceParams::MaxPixelFormat> tex_form
115 {GL_COMPRESSED_RG_RGTC2, GL_RG, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm, 116 {GL_COMPRESSED_RG_RGTC2, GL_RG, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
116 true}, // DXN2UNORM 117 true}, // DXN2UNORM
117 {GL_COMPRESSED_SIGNED_RG_RGTC2, GL_RG, GL_INT, ComponentType::SNorm, true}, // DXN2SNORM 118 {GL_COMPRESSED_SIGNED_RG_RGTC2, GL_RG, GL_INT, ComponentType::SNorm, true}, // DXN2SNORM
118 {GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, GL_RGB, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm, 119 {GL_COMPRESSED_RGBA_BPTC_UNORM_ARB, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8, ComponentType::UNorm,
119 true}, // BC7U 120 true}, // BC7U
120 {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4 121 {GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // ASTC_2D_4X4
121 {GL_RG8, GL_RG, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // G8R8 122 {GL_RG8, GL_RG, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // G8R8
@@ -247,6 +248,7 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
247 MortonCopy<true, PixelFormat::R8>, 248 MortonCopy<true, PixelFormat::R8>,
248 MortonCopy<true, PixelFormat::R8UI>, 249 MortonCopy<true, PixelFormat::R8UI>,
249 MortonCopy<true, PixelFormat::RGBA16F>, 250 MortonCopy<true, PixelFormat::RGBA16F>,
251 MortonCopy<true, PixelFormat::RGBA16U>,
250 MortonCopy<true, PixelFormat::RGBA16UI>, 252 MortonCopy<true, PixelFormat::RGBA16UI>,
251 MortonCopy<true, PixelFormat::R11FG11FB10F>, 253 MortonCopy<true, PixelFormat::R11FG11FB10F>,
252 MortonCopy<true, PixelFormat::RGBA32UI>, 254 MortonCopy<true, PixelFormat::RGBA32UI>,
@@ -299,6 +301,7 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
299 MortonCopy<false, PixelFormat::R8>, 301 MortonCopy<false, PixelFormat::R8>,
300 MortonCopy<false, PixelFormat::R8UI>, 302 MortonCopy<false, PixelFormat::R8UI>,
301 MortonCopy<false, PixelFormat::RGBA16F>, 303 MortonCopy<false, PixelFormat::RGBA16F>,
304 MortonCopy<false, PixelFormat::RGBA16U>,
302 MortonCopy<false, PixelFormat::RGBA16UI>, 305 MortonCopy<false, PixelFormat::RGBA16UI>,
303 MortonCopy<false, PixelFormat::R11FG11FB10F>, 306 MortonCopy<false, PixelFormat::R11FG11FB10F>,
304 MortonCopy<false, PixelFormat::RGBA32UI>, 307 MortonCopy<false, PixelFormat::RGBA32UI>,
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h
index 630b40e77..36a41522b 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h
@@ -31,47 +31,48 @@ struct SurfaceParams {
31 R8 = 5, 31 R8 = 5,
32 R8UI = 6, 32 R8UI = 6,
33 RGBA16F = 7, 33 RGBA16F = 7,
34 RGBA16UI = 8, 34 RGBA16U = 8,
35 R11FG11FB10F = 9, 35 RGBA16UI = 9,
36 RGBA32UI = 10, 36 R11FG11FB10F = 10,
37 DXT1 = 11, 37 RGBA32UI = 11,
38 DXT23 = 12, 38 DXT1 = 12,
39 DXT45 = 13, 39 DXT23 = 13,
40 DXN1 = 14, // This is also known as BC4 40 DXT45 = 14,
41 DXN2UNORM = 15, 41 DXN1 = 15, // This is also known as BC4
42 DXN2SNORM = 16, 42 DXN2UNORM = 16,
43 BC7U = 17, 43 DXN2SNORM = 17,
44 ASTC_2D_4X4 = 18, 44 BC7U = 18,
45 G8R8 = 19, 45 ASTC_2D_4X4 = 19,
46 BGRA8 = 20, 46 G8R8 = 20,
47 RGBA32F = 21, 47 BGRA8 = 21,
48 RG32F = 22, 48 RGBA32F = 22,
49 R32F = 23, 49 RG32F = 23,
50 R16F = 24, 50 R32F = 24,
51 R16UNORM = 25, 51 R16F = 25,
52 R16S = 26, 52 R16UNORM = 26,
53 R16UI = 27, 53 R16S = 27,
54 R16I = 28, 54 R16UI = 28,
55 RG16 = 29, 55 R16I = 29,
56 RG16F = 30, 56 RG16 = 30,
57 RG16UI = 31, 57 RG16F = 31,
58 RG16I = 32, 58 RG16UI = 32,
59 RG16S = 33, 59 RG16I = 33,
60 RGB32F = 34, 60 RG16S = 34,
61 SRGBA8 = 35, 61 RGB32F = 35,
62 RG8U = 36, 62 SRGBA8 = 36,
63 RG8S = 37, 63 RG8U = 37,
64 RG32UI = 38, 64 RG8S = 38,
65 R32UI = 39, 65 RG32UI = 39,
66 R32UI = 40,
66 67
67 MaxColorFormat, 68 MaxColorFormat,
68 69
69 // DepthStencil formats 70 // DepthStencil formats
70 Z24S8 = 40, 71 Z24S8 = 41,
71 S8Z24 = 41, 72 S8Z24 = 42,
72 Z32F = 42, 73 Z32F = 43,
73 Z16 = 43, 74 Z16 = 44,
74 Z32FS8 = 44, 75 Z32FS8 = 45,
75 76
76 MaxDepthStencilFormat, 77 MaxDepthStencilFormat,
77 78
@@ -117,6 +118,7 @@ struct SurfaceParams {
117 1, // R8 118 1, // R8
118 1, // R8UI 119 1, // R8UI
119 1, // RGBA16F 120 1, // RGBA16F
121 1, // RGBA16U
120 1, // RGBA16UI 122 1, // RGBA16UI
121 1, // R11FG11FB10F 123 1, // R11FG11FB10F
122 1, // RGBA32UI 124 1, // RGBA32UI
@@ -173,6 +175,7 @@ struct SurfaceParams {
173 8, // R8 175 8, // R8
174 8, // R8UI 176 8, // R8UI
175 64, // RGBA16F 177 64, // RGBA16F
178 64, // RGBA16U
176 64, // RGBA16UI 179 64, // RGBA16UI
177 32, // R11FG11FB10F 180 32, // R11FG11FB10F
178 128, // RGBA32UI 181 128, // RGBA32UI
@@ -253,6 +256,8 @@ struct SurfaceParams {
253 return PixelFormat::A2B10G10R10; 256 return PixelFormat::A2B10G10R10;
254 case Tegra::RenderTargetFormat::RGBA16_FLOAT: 257 case Tegra::RenderTargetFormat::RGBA16_FLOAT:
255 return PixelFormat::RGBA16F; 258 return PixelFormat::RGBA16F;
259 case Tegra::RenderTargetFormat::RGBA16_UNORM:
260 return PixelFormat::RGBA16U;
256 case Tegra::RenderTargetFormat::RGBA16_UINT: 261 case Tegra::RenderTargetFormat::RGBA16_UINT:
257 return PixelFormat::RGBA16UI; 262 return PixelFormat::RGBA16UI;
258 case Tegra::RenderTargetFormat::RGBA32_FLOAT: 263 case Tegra::RenderTargetFormat::RGBA32_FLOAT:
@@ -469,6 +474,7 @@ struct SurfaceParams {
469 case Tegra::RenderTargetFormat::R16_UNORM: 474 case Tegra::RenderTargetFormat::R16_UNORM:
470 case Tegra::RenderTargetFormat::B5G6R5_UNORM: 475 case Tegra::RenderTargetFormat::B5G6R5_UNORM:
471 case Tegra::RenderTargetFormat::RG8_UNORM: 476 case Tegra::RenderTargetFormat::RG8_UNORM:
477 case Tegra::RenderTargetFormat::RGBA16_UNORM:
472 return ComponentType::UNorm; 478 return ComponentType::UNorm;
473 case Tegra::RenderTargetFormat::RGBA8_SNORM: 479 case Tegra::RenderTargetFormat::RGBA8_SNORM:
474 case Tegra::RenderTargetFormat::RG16_SNORM: 480 case Tegra::RenderTargetFormat::RG16_SNORM: