mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-04 00:13:08 +00:00
video_core: Sort and group Surface Formats
This commit is contained in:
parent
4ba19a02b0
commit
89853946b0
@ -367,228 +367,289 @@ std::span<const vk::Format> GetAllFormats() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vk::Format SurfaceFormat(AmdGpu::DataFormat data_format, AmdGpu::NumberFormat num_format) {
|
vk::Format SurfaceFormat(AmdGpu::DataFormat data_format, AmdGpu::NumberFormat num_format) {
|
||||||
|
switch (data_format) {
|
||||||
if (data_format == AmdGpu::DataFormat::Format32_32_32_32 &&
|
case AmdGpu::DataFormat::Format8:
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
switch (num_format) {
|
||||||
return vk::Format::eR32G32B32A32Sfloat;
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32_32_32 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR32G32B32Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8_8_8 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR8G8B8A8Unorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8_8_8 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Srgb) {
|
|
||||||
return vk::Format::eR8G8B8A8Srgb;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32_32_32 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eR32G32B32Sfloat;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32_32 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eR32G32Sfloat;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format5_6_5 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eB5G6R5UnormPack16;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format1_5_5_5 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR5G5B5A1UnormPack16;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR8Unorm;
|
return vk::Format::eR8Unorm;
|
||||||
}
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc3 && num_format == AmdGpu::NumberFormat::Srgb) {
|
|
||||||
return vk::Format::eBc3SrgbBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc3 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eBc3UnormBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc4 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eBc4UnormBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc5 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eBc5UnormBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc5 && num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eBc5SnormBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16_16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Sint) {
|
|
||||||
return vk::Format::eR16G16B16A16Sint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16_16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Sscaled) {
|
|
||||||
return vk::Format::eR16G16B16A16Sscaled;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eR16G16Sfloat;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR16G16Unorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format2_10_10_10 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eA2B10G10R10UnormPack32;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format2_10_10_10 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eA2B10G10R10SnormPack32;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc7 && num_format == AmdGpu::NumberFormat::Srgb) {
|
|
||||||
return vk::Format::eBc7SrgbBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc1 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eBc1RgbaUnormBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8_8_8 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR8G8B8A8Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16 && num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eR16Sfloat;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32 && num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eR32Sfloat;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16_16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eR16G16B16A16Sfloat;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32 && num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR32Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32 && num_format == AmdGpu::NumberFormat::Sint) {
|
|
||||||
return vk::Format::eR32Sint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR8G8Unorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8 && num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR8G8Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8 && num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eR8G8Snorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc7 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eBc7UnormBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc2 && num_format == AmdGpu::NumberFormat::Srgb) {
|
|
||||||
return vk::Format::eBc2SrgbBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc2 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eBc2UnormBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eR16G16Snorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format10_11_11 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eB10G11R11UfloatPack32;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eR16G16Sfloat;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16_16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eR16G16B16A16Snorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32_32 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR32G32Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format4_4_4_4 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR4G4B4A4UnormPack16;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16_16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR16G16B16A16Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32_32_32_32 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR32G32B32A32Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format32_32_32_32 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Sint) {
|
|
||||||
return vk::Format::eR32G32B32A32Sint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8 && num_format == AmdGpu::NumberFormat::Sint) {
|
|
||||||
return vk::Format::eR8Sint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc1 && num_format == AmdGpu::NumberFormat::Srgb) {
|
|
||||||
return vk::Format::eBc1RgbaSrgbBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Sint) {
|
|
||||||
return vk::Format::eR16G16Sint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Sscaled) {
|
|
||||||
return vk::Format::eR16G16Sscaled;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8_8_8 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Uscaled) {
|
|
||||||
return vk::Format::eR8G8B8A8Uscaled;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR16Unorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16_16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eR16G16B16A16Unorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR16G16Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8 && num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR8Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16_16_16_16 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::SnormNz) {
|
|
||||||
return vk::Format::eR16G16B16A16Snorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8_8_8 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eR8G8B8A8Snorm;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc6 && num_format == AmdGpu::NumberFormat::Unorm) {
|
|
||||||
return vk::Format::eBc6HUfloatBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::FormatBc6 && num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eBc6HSfloatBlock;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8_8_8_8 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Sint) {
|
|
||||||
return vk::Format::eR8G8B8A8Sint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8 && num_format == AmdGpu::NumberFormat::Srgb) {
|
|
||||||
return vk::Format::eR8Srgb;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format11_11_10 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eB10G11R11UfloatPack32;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format16 && num_format == AmdGpu::NumberFormat::Uint) {
|
|
||||||
return vk::Format::eR16Uint;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format5_9_9_9 &&
|
|
||||||
num_format == AmdGpu::NumberFormat::Float) {
|
|
||||||
return vk::Format::eE5B9G9R9UfloatPack32;
|
|
||||||
}
|
|
||||||
if (data_format == AmdGpu::DataFormat::Format8 && num_format == AmdGpu::NumberFormat::Snorm) {
|
|
||||||
return vk::Format::eR8Snorm;
|
return vk::Format::eR8Snorm;
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR8Uint;
|
||||||
|
case AmdGpu::NumberFormat::Sint:
|
||||||
|
return vk::Format::eR8Sint;
|
||||||
|
case AmdGpu::NumberFormat::Srgb:
|
||||||
|
return vk::Format::eR8Srgb;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format16:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eR16Unorm;
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR16Uint;
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eR16Sfloat;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format8_8:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eR8G8Unorm;
|
||||||
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
|
return vk::Format::eR8G8Snorm;
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR8G8Uint;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format32:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR32Uint;
|
||||||
|
case AmdGpu::NumberFormat::Sint:
|
||||||
|
return vk::Format::eR32Sint;
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eR32Sfloat;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format16_16:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eR16G16Unorm;
|
||||||
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
|
return vk::Format::eR16G16Snorm;
|
||||||
|
case AmdGpu::NumberFormat::Sscaled:
|
||||||
|
return vk::Format::eR16G16Sscaled;
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR16G16Uint;
|
||||||
|
case AmdGpu::NumberFormat::Sint:
|
||||||
|
return vk::Format::eR16G16Sint;
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eR16G16Sfloat;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format10_11_11:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eB10G11R11UfloatPack32;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format11_11_10:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eB10G11R11UfloatPack32;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format10_10_10_2:
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format2_10_10_10:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eA2B10G10R10UnormPack32;
|
||||||
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
|
return vk::Format::eA2B10G10R10SnormPack32;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format8_8_8_8:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eR8G8B8A8Unorm;
|
||||||
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
|
return vk::Format::eR8G8B8A8Snorm;
|
||||||
|
case AmdGpu::NumberFormat::Uscaled:
|
||||||
|
return vk::Format::eR8G8B8A8Uscaled;
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR8G8B8A8Uint;
|
||||||
|
case AmdGpu::NumberFormat::Sint:
|
||||||
|
return vk::Format::eR8G8B8A8Sint;
|
||||||
|
case AmdGpu::NumberFormat::Srgb:
|
||||||
|
return vk::Format::eR8G8B8A8Srgb;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format32_32:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR32G32Uint;
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eR32G32Sfloat;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format16_16_16_16:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eR16G16B16A16Unorm;
|
||||||
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
|
return vk::Format::eR16G16B16A16Snorm;
|
||||||
|
case AmdGpu::NumberFormat::Sscaled:
|
||||||
|
return vk::Format::eR16G16B16A16Sscaled;
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR16G16B16A16Uint;
|
||||||
|
case AmdGpu::NumberFormat::Sint:
|
||||||
|
return vk::Format::eR16G16B16A16Sint;
|
||||||
|
case AmdGpu::NumberFormat::SnormNz:
|
||||||
|
return vk::Format::eR16G16B16A16Snorm;
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eR16G16B16A16Sfloat;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format32_32_32:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR32G32B32Uint;
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eR32G32B32Sfloat;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format32_32_32_32:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Uint:
|
||||||
|
return vk::Format::eR32G32B32A32Uint;
|
||||||
|
case AmdGpu::NumberFormat::Sint:
|
||||||
|
return vk::Format::eR32G32B32A32Sint;
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eR32G32B32A32Sfloat;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format5_6_5:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eB5G6R5UnormPack16;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format1_5_5_5:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eR5G5B5A1UnormPack16;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format5_5_5_1:
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format4_4_4_4:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eR4G4B4A4UnormPack16;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format8_24:
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format24_8:
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatX24_8_32:
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatGB_GR:
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBG_RG:
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::Format5_9_9_9:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Float:
|
||||||
|
return vk::Format::eE5B9G9R9UfloatPack32;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBc1:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eBc1RgbaUnormBlock;
|
||||||
|
case AmdGpu::NumberFormat::Srgb:
|
||||||
|
return vk::Format::eBc1RgbaSrgbBlock;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBc2:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eBc2UnormBlock;
|
||||||
|
case AmdGpu::NumberFormat::Srgb:
|
||||||
|
return vk::Format::eBc2SrgbBlock;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBc3:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eBc3UnormBlock;
|
||||||
|
case AmdGpu::NumberFormat::Srgb:
|
||||||
|
return vk::Format::eBc3SrgbBlock;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBc4:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eBc4UnormBlock;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBc5:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eBc5UnormBlock;
|
||||||
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
|
return vk::Format::eBc5SnormBlock;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBc6:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eBc6HUfloatBlock;
|
||||||
|
case AmdGpu::NumberFormat::Snorm:
|
||||||
|
return vk::Format::eBc6HSfloatBlock;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case AmdGpu::DataFormat::FormatBc7:
|
||||||
|
switch (num_format) {
|
||||||
|
case AmdGpu::NumberFormat::Unorm:
|
||||||
|
return vk::Format::eBc7UnormBlock;
|
||||||
|
case AmdGpu::NumberFormat::Srgb:
|
||||||
|
return vk::Format::eBc7SrgbBlock;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
UNREACHABLE_MSG("Unknown data_format={} and num_format={}", u32(data_format), u32(num_format));
|
UNREACHABLE_MSG("Unknown data_format={} and num_format={}", u32(data_format), u32(num_format));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user