|
|
@ -22,6 +22,7 @@ |
|
|
#include "common/common_funcs.h" |
|
|
#include "common/common_funcs.h" |
|
|
#include "common/common_types.h" |
|
|
#include "common/common_types.h" |
|
|
#include "common/math_util.h" |
|
|
#include "common/math_util.h" |
|
|
|
|
|
#include "video_core/gpu.h" |
|
|
#include "video_core/renderer_opengl/gl_resource_manager.h" |
|
|
#include "video_core/renderer_opengl/gl_resource_manager.h" |
|
|
|
|
|
|
|
|
struct CachedSurface; |
|
|
struct CachedSurface; |
|
|
@ -115,6 +116,15 @@ struct SurfaceParams { |
|
|
return GetFormatBpp(pixel_format); |
|
|
return GetFormatBpp(pixel_format); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static PixelFormat PixelFormatFromGPUPixelFormat(Tegra::FramebufferConfig::PixelFormat format) { |
|
|
|
|
|
switch (format) { |
|
|
|
|
|
case Tegra::FramebufferConfig::PixelFormat::ABGR8: |
|
|
|
|
|
return PixelFormat::RGBA8; |
|
|
|
|
|
default: |
|
|
|
|
|
UNREACHABLE(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
static bool CheckFormatsBlittable(PixelFormat pixel_format_a, PixelFormat pixel_format_b) { |
|
|
static bool CheckFormatsBlittable(PixelFormat pixel_format_a, PixelFormat pixel_format_b) { |
|
|
SurfaceType a_type = GetFormatType(pixel_format_a); |
|
|
SurfaceType a_type = GetFormatType(pixel_format_a); |
|
|
SurfaceType b_type = GetFormatType(pixel_format_b); |
|
|
SurfaceType b_type = GetFormatType(pixel_format_b); |
|
|
@ -257,7 +267,7 @@ struct CachedSurface : SurfaceParams { |
|
|
std::unique_ptr<u8[]> gl_buffer; |
|
|
std::unique_ptr<u8[]> gl_buffer; |
|
|
size_t gl_buffer_size = 0; |
|
|
size_t gl_buffer_size = 0; |
|
|
|
|
|
|
|
|
// Read/Write data in 3DS memory to/from gl_buffer |
|
|
|
|
|
|
|
|
// Read/Write data in Switch memory to/from gl_buffer |
|
|
void LoadGLBuffer(VAddr load_start, VAddr load_end); |
|
|
void LoadGLBuffer(VAddr load_start, VAddr load_end); |
|
|
void FlushGLBuffer(VAddr flush_start, VAddr flush_end); |
|
|
void FlushGLBuffer(VAddr flush_start, VAddr flush_end); |
|
|
|
|
|
|
|
|
|