1
1
Fork 0
forked from suyu/suyu

gl_rasterizer_cache: Cleanup some PixelFormat names and logging.

This commit is contained in:
bunnei 2018-08-14 23:11:27 -04:00
parent 3aad82b1a3
commit b1148d269d
2 changed files with 71 additions and 41 deletions

View file

@ -94,11 +94,11 @@ struct FormatTuple {
static constexpr std::array<FormatTuple, SurfaceParams::MaxPixelFormat> tex_format_tuples = {{ static constexpr std::array<FormatTuple, SurfaceParams::MaxPixelFormat> tex_format_tuples = {{
{GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, ComponentType::UNorm, false}, // ABGR8U {GL_RGBA8, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, ComponentType::UNorm, false}, // ABGR8U
{GL_RGBA8, GL_RGBA, GL_BYTE, ComponentType::SNorm, false}, // ABGR8S {GL_RGBA8, GL_RGBA, GL_BYTE, ComponentType::SNorm, false}, // ABGR8S
{GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5_REV, ComponentType::UNorm, false}, // B5G6R5 {GL_RGB, GL_RGB, GL_UNSIGNED_SHORT_5_6_5_REV, ComponentType::UNorm, false}, // B5G6R5U
{GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, ComponentType::UNorm, {GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV, ComponentType::UNorm,
false}, // A2B10G10R10 false}, // A2B10G10R10U
{GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV, ComponentType::UNorm, false}, // A1B5G5R5 {GL_RGB5_A1, GL_RGBA, GL_UNSIGNED_SHORT_1_5_5_5_REV, ComponentType::UNorm, false}, // A1B5G5R5U
{GL_R8, GL_RED, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // R8 {GL_R8, GL_RED, GL_UNSIGNED_BYTE, ComponentType::UNorm, false}, // R8U
{GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, ComponentType::UInt, false}, // R8UI {GL_R8UI, GL_RED_INTEGER, GL_UNSIGNED_BYTE, ComponentType::UInt, false}, // R8UI
{GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT, ComponentType::Float, false}, // RGBA16F {GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT, ComponentType::Float, false}, // RGBA16F
{GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT, ComponentType::UNorm, false}, // RGBA16U {GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT, ComponentType::UNorm, false}, // RGBA16U
@ -126,7 +126,7 @@ static constexpr std::array<FormatTuple, SurfaceParams::MaxPixelFormat> tex_form
{GL_RG32F, GL_RG, GL_FLOAT, ComponentType::Float, false}, // RG32F {GL_RG32F, GL_RG, GL_FLOAT, ComponentType::Float, false}, // RG32F
{GL_R32F, GL_RED, GL_FLOAT, ComponentType::Float, false}, // R32F {GL_R32F, GL_RED, GL_FLOAT, ComponentType::Float, false}, // R32F
{GL_R16F, GL_RED, GL_HALF_FLOAT, ComponentType::Float, false}, // R16F {GL_R16F, GL_RED, GL_HALF_FLOAT, ComponentType::Float, false}, // R16F
{GL_R16, GL_RED, GL_UNSIGNED_SHORT, ComponentType::UNorm, false}, // R16UNORM {GL_R16, GL_RED, GL_UNSIGNED_SHORT, ComponentType::UNorm, false}, // R16U
{GL_R16_SNORM, GL_RED, GL_SHORT, ComponentType::SNorm, false}, // R16S {GL_R16_SNORM, GL_RED, GL_SHORT, ComponentType::SNorm, false}, // R16S
{GL_R16UI, GL_RED_INTEGER, GL_UNSIGNED_SHORT, ComponentType::UInt, false}, // R16UI {GL_R16UI, GL_RED_INTEGER, GL_UNSIGNED_SHORT, ComponentType::UInt, false}, // R16UI
{GL_R16I, GL_RED_INTEGER, GL_SHORT, ComponentType::SInt, false}, // R16I {GL_R16I, GL_RED_INTEGER, GL_SHORT, ComponentType::SInt, false}, // R16I
@ -243,10 +243,10 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
// clang-format off // clang-format off
MortonCopy<true, PixelFormat::ABGR8U>, MortonCopy<true, PixelFormat::ABGR8U>,
MortonCopy<true, PixelFormat::ABGR8S>, MortonCopy<true, PixelFormat::ABGR8S>,
MortonCopy<true, PixelFormat::B5G6R5>, MortonCopy<true, PixelFormat::B5G6R5U>,
MortonCopy<true, PixelFormat::A2B10G10R10>, MortonCopy<true, PixelFormat::A2B10G10R10U>,
MortonCopy<true, PixelFormat::A1B5G5R5>, MortonCopy<true, PixelFormat::A1B5G5R5U>,
MortonCopy<true, PixelFormat::R8>, MortonCopy<true, PixelFormat::R8U>,
MortonCopy<true, PixelFormat::R8UI>, MortonCopy<true, PixelFormat::R8UI>,
MortonCopy<true, PixelFormat::RGBA16F>, MortonCopy<true, PixelFormat::RGBA16F>,
MortonCopy<true, PixelFormat::RGBA16U>, MortonCopy<true, PixelFormat::RGBA16U>,
@ -268,7 +268,7 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
MortonCopy<true, PixelFormat::RG32F>, MortonCopy<true, PixelFormat::RG32F>,
MortonCopy<true, PixelFormat::R32F>, MortonCopy<true, PixelFormat::R32F>,
MortonCopy<true, PixelFormat::R16F>, MortonCopy<true, PixelFormat::R16F>,
MortonCopy<true, PixelFormat::R16UNORM>, MortonCopy<true, PixelFormat::R16U>,
MortonCopy<true, PixelFormat::R16S>, MortonCopy<true, PixelFormat::R16S>,
MortonCopy<true, PixelFormat::R16UI>, MortonCopy<true, PixelFormat::R16UI>,
MortonCopy<true, PixelFormat::R16I>, MortonCopy<true, PixelFormat::R16I>,
@ -297,10 +297,10 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
// clang-format off // clang-format off
MortonCopy<false, PixelFormat::ABGR8U>, MortonCopy<false, PixelFormat::ABGR8U>,
MortonCopy<false, PixelFormat::ABGR8S>, MortonCopy<false, PixelFormat::ABGR8S>,
MortonCopy<false, PixelFormat::B5G6R5>, MortonCopy<false, PixelFormat::B5G6R5U>,
MortonCopy<false, PixelFormat::A2B10G10R10>, MortonCopy<false, PixelFormat::A2B10G10R10U>,
MortonCopy<false, PixelFormat::A1B5G5R5>, MortonCopy<false, PixelFormat::A1B5G5R5U>,
MortonCopy<false, PixelFormat::R8>, MortonCopy<false, PixelFormat::R8U>,
MortonCopy<false, PixelFormat::R8UI>, MortonCopy<false, PixelFormat::R8UI>,
MortonCopy<false, PixelFormat::RGBA16F>, MortonCopy<false, PixelFormat::RGBA16F>,
MortonCopy<false, PixelFormat::RGBA16U>, MortonCopy<false, PixelFormat::RGBA16U>,
@ -324,7 +324,7 @@ static constexpr std::array<void (*)(u32, u32, u32, std::vector<u8>&, Tegra::GPU
MortonCopy<false, PixelFormat::RG32F>, MortonCopy<false, PixelFormat::RG32F>,
MortonCopy<false, PixelFormat::R32F>, MortonCopy<false, PixelFormat::R32F>,
MortonCopy<false, PixelFormat::R16F>, MortonCopy<false, PixelFormat::R16F>,
MortonCopy<false, PixelFormat::R16UNORM>, MortonCopy<false, PixelFormat::R16U>,
MortonCopy<false, PixelFormat::R16S>, MortonCopy<false, PixelFormat::R16S>,
MortonCopy<false, PixelFormat::R16UI>, MortonCopy<false, PixelFormat::R16UI>,
MortonCopy<false, PixelFormat::R16I>, MortonCopy<false, PixelFormat::R16I>,

View file

@ -25,10 +25,10 @@ struct SurfaceParams {
enum class PixelFormat { enum class PixelFormat {
ABGR8U = 0, ABGR8U = 0,
ABGR8S = 1, ABGR8S = 1,
B5G6R5 = 2, B5G6R5U = 2,
A2B10G10R10 = 3, A2B10G10R10U = 3,
A1B5G5R5 = 4, A1B5G5R5U = 4,
R8 = 5, R8U = 5,
R8UI = 6, R8UI = 6,
RGBA16F = 7, RGBA16F = 7,
RGBA16U = 8, RGBA16U = 8,
@ -50,7 +50,7 @@ struct SurfaceParams {
RG32F = 24, RG32F = 24,
R32F = 25, R32F = 25,
R16F = 26, R16F = 26,
R16UNORM = 27, R16U = 27,
R16S = 28, R16S = 28,
R16UI = 29, R16UI = 29,
R16I = 30, R16I = 30,
@ -113,10 +113,10 @@ struct SurfaceParams {
constexpr std::array<u32, MaxPixelFormat> compression_factor_table = {{ constexpr std::array<u32, MaxPixelFormat> compression_factor_table = {{
1, // ABGR8U 1, // ABGR8U
1, // ABGR8S 1, // ABGR8S
1, // B5G6R5 1, // B5G6R5U
1, // A2B10G10R10 1, // A2B10G10R10U
1, // A1B5G5R5 1, // A1B5G5R5U
1, // R8 1, // R8U
1, // R8UI 1, // R8UI
1, // RGBA16F 1, // RGBA16F
1, // RGBA16U 1, // RGBA16U
@ -138,7 +138,7 @@ struct SurfaceParams {
1, // RG32F 1, // RG32F
1, // R32F 1, // R32F
1, // R16F 1, // R16F
1, // R16UNORM 1, // R16U
1, // R16S 1, // R16S
1, // R16UI 1, // R16UI
1, // R16I 1, // R16I
@ -171,10 +171,10 @@ struct SurfaceParams {
constexpr std::array<u32, MaxPixelFormat> bpp_table = {{ constexpr std::array<u32, MaxPixelFormat> bpp_table = {{
32, // ABGR8U 32, // ABGR8U
32, // ABGR8S 32, // ABGR8S
16, // B5G6R5 16, // B5G6R5U
32, // A2B10G10R10 32, // A2B10G10R10U
16, // A1B5G5R5 16, // A1B5G5R5U
8, // R8 8, // R8U
8, // R8UI 8, // R8UI
64, // RGBA16F 64, // RGBA16F
64, // RGBA16U 64, // RGBA16U
@ -196,7 +196,7 @@ struct SurfaceParams {
64, // RG32F 64, // RG32F
32, // R32F 32, // R32F
16, // R16F 16, // R16F
16, // R16UNORM 16, // R16U
16, // R16S 16, // R16S
16, // R16UI 16, // R16UI
16, // R16I 16, // R16I
@ -256,7 +256,7 @@ struct SurfaceParams {
case Tegra::RenderTargetFormat::BGRA8_UNORM: case Tegra::RenderTargetFormat::BGRA8_UNORM:
return PixelFormat::BGRA8; return PixelFormat::BGRA8;
case Tegra::RenderTargetFormat::RGB10_A2_UNORM: case Tegra::RenderTargetFormat::RGB10_A2_UNORM:
return PixelFormat::A2B10G10R10; return PixelFormat::A2B10G10R10U;
case Tegra::RenderTargetFormat::RGBA16_FLOAT: case Tegra::RenderTargetFormat::RGBA16_FLOAT:
return PixelFormat::RGBA16F; return PixelFormat::RGBA16F;
case Tegra::RenderTargetFormat::RGBA16_UNORM: case Tegra::RenderTargetFormat::RGBA16_UNORM:
@ -270,11 +270,11 @@ struct SurfaceParams {
case Tegra::RenderTargetFormat::R11G11B10_FLOAT: case Tegra::RenderTargetFormat::R11G11B10_FLOAT:
return PixelFormat::R11FG11FB10F; return PixelFormat::R11FG11FB10F;
case Tegra::RenderTargetFormat::B5G6R5_UNORM: case Tegra::RenderTargetFormat::B5G6R5_UNORM:
return PixelFormat::B5G6R5; return PixelFormat::B5G6R5U;
case Tegra::RenderTargetFormat::RGBA32_UINT: case Tegra::RenderTargetFormat::RGBA32_UINT:
return PixelFormat::RGBA32UI; return PixelFormat::RGBA32UI;
case Tegra::RenderTargetFormat::R8_UNORM: case Tegra::RenderTargetFormat::R8_UNORM:
return PixelFormat::R8; return PixelFormat::R8U;
case Tegra::RenderTargetFormat::R8_UINT: case Tegra::RenderTargetFormat::R8_UINT:
return PixelFormat::R8UI; return PixelFormat::R8UI;
case Tegra::RenderTargetFormat::RG16_FLOAT: case Tegra::RenderTargetFormat::RG16_FLOAT:
@ -294,7 +294,7 @@ struct SurfaceParams {
case Tegra::RenderTargetFormat::R16_FLOAT: case Tegra::RenderTargetFormat::R16_FLOAT:
return PixelFormat::R16F; return PixelFormat::R16F;
case Tegra::RenderTargetFormat::R16_UNORM: case Tegra::RenderTargetFormat::R16_UNORM:
return PixelFormat::R16UNORM; return PixelFormat::R16U;
case Tegra::RenderTargetFormat::R16_SNORM: case Tegra::RenderTargetFormat::R16_SNORM:
return PixelFormat::R16S; return PixelFormat::R16S;
case Tegra::RenderTargetFormat::R16_UINT: case Tegra::RenderTargetFormat::R16_UINT:
@ -328,15 +328,33 @@ struct SurfaceParams {
static_cast<u32>(component_type)); static_cast<u32>(component_type));
UNREACHABLE(); UNREACHABLE();
case Tegra::Texture::TextureFormat::B5G6R5: case Tegra::Texture::TextureFormat::B5G6R5:
return PixelFormat::B5G6R5; switch (component_type) {
case Tegra::Texture::ComponentType::UNORM:
return PixelFormat::B5G6R5U;
}
LOG_CRITICAL(HW_GPU, "Unimplemented component_type={}",
static_cast<u32>(component_type));
UNREACHABLE();
case Tegra::Texture::TextureFormat::A2B10G10R10: case Tegra::Texture::TextureFormat::A2B10G10R10:
return PixelFormat::A2B10G10R10; switch (component_type) {
case Tegra::Texture::ComponentType::UNORM:
return PixelFormat::A2B10G10R10U;
}
LOG_CRITICAL(HW_GPU, "Unimplemented component_type={}",
static_cast<u32>(component_type));
UNREACHABLE();
case Tegra::Texture::TextureFormat::A1B5G5R5: case Tegra::Texture::TextureFormat::A1B5G5R5:
return PixelFormat::A1B5G5R5; switch (component_type) {
case Tegra::Texture::ComponentType::UNORM:
return PixelFormat::A1B5G5R5U;
}
LOG_CRITICAL(HW_GPU, "Unimplemented component_type={}",
static_cast<u32>(component_type));
UNREACHABLE();
case Tegra::Texture::TextureFormat::R8: case Tegra::Texture::TextureFormat::R8:
switch (component_type) { switch (component_type) {
case Tegra::Texture::ComponentType::UNORM: case Tegra::Texture::ComponentType::UNORM:
return PixelFormat::R8; return PixelFormat::R8U;
case Tegra::Texture::ComponentType::UINT: case Tegra::Texture::ComponentType::UINT:
return PixelFormat::R8UI; return PixelFormat::R8UI;
} }
@ -356,7 +374,13 @@ struct SurfaceParams {
case Tegra::Texture::TextureFormat::R16_G16_B16_A16: case Tegra::Texture::TextureFormat::R16_G16_B16_A16:
return PixelFormat::RGBA16F; return PixelFormat::RGBA16F;
case Tegra::Texture::TextureFormat::BF10GF11RF11: case Tegra::Texture::TextureFormat::BF10GF11RF11:
return PixelFormat::R11FG11FB10F; switch (component_type) {
case Tegra::Texture::ComponentType::FLOAT:
return PixelFormat::R11FG11FB10F;
}
LOG_CRITICAL(HW_GPU, "Unimplemented component_type={}",
static_cast<u32>(component_type));
UNREACHABLE();
case Tegra::Texture::TextureFormat::R32_G32_B32_A32: case Tegra::Texture::TextureFormat::R32_G32_B32_A32:
switch (component_type) { switch (component_type) {
case Tegra::Texture::ComponentType::FLOAT: case Tegra::Texture::ComponentType::FLOAT:
@ -378,13 +402,19 @@ struct SurfaceParams {
static_cast<u32>(component_type)); static_cast<u32>(component_type));
UNREACHABLE(); UNREACHABLE();
case Tegra::Texture::TextureFormat::R32_G32_B32: case Tegra::Texture::TextureFormat::R32_G32_B32:
return PixelFormat::RGB32F; switch (component_type) {
case Tegra::Texture::ComponentType::FLOAT:
return PixelFormat::RGB32F;
}
LOG_CRITICAL(HW_GPU, "Unimplemented component_type={}",
static_cast<u32>(component_type));
UNREACHABLE();
case Tegra::Texture::TextureFormat::R16: case Tegra::Texture::TextureFormat::R16:
switch (component_type) { switch (component_type) {
case Tegra::Texture::ComponentType::FLOAT: case Tegra::Texture::ComponentType::FLOAT:
return PixelFormat::R16F; return PixelFormat::R16F;
case Tegra::Texture::ComponentType::UNORM: case Tegra::Texture::ComponentType::UNORM:
return PixelFormat::R16UNORM; return PixelFormat::R16U;
case Tegra::Texture::ComponentType::SNORM: case Tegra::Texture::ComponentType::SNORM:
return PixelFormat::R16S; return PixelFormat::R16S;
case Tegra::Texture::ComponentType::UINT: case Tegra::Texture::ComponentType::UINT: