[Fix] (MG_Backend/DirectVulkan/VertexInputStateFactory): don't use SSCALED formats

This commit is contained in:
2026-04-26 19:43:27 +08:00
parent 4a3a44924a
commit af58e2c7b4
@@ -148,65 +148,49 @@ namespace MobileGL::MG_Backend::DirectVulkan {
case DataType::Int16: case DataType::Int16:
switch (size) { switch (size) {
case 1: case 1:
return isInteger ? VK_FORMAT_R16_SINT return isInteger ? VK_FORMAT_R16_SINT : VK_FORMAT_R16_SNORM;
: (normalized ? VK_FORMAT_R16_SNORM : VK_FORMAT_R16_SSCALED);
case 2: case 2:
return isInteger ? VK_FORMAT_R16G16_SINT return isInteger ? VK_FORMAT_R16G16_SINT : VK_FORMAT_R16G16_SNORM;
: (normalized ? VK_FORMAT_R16G16_SNORM : VK_FORMAT_R16G16_SSCALED);
case 3: case 3:
return isInteger ? VK_FORMAT_R16G16B16_SINT return isInteger ? VK_FORMAT_R16G16B16_SINT : VK_FORMAT_R16G16B16_SNORM;
: (normalized ? VK_FORMAT_R16G16B16_SNORM : VK_FORMAT_R16G16B16_SSCALED);
case 4: case 4:
return isInteger ? VK_FORMAT_R16G16B16A16_SINT return isInteger ? VK_FORMAT_R16G16B16A16_SINT : VK_FORMAT_R16G16B16A16_SNORM;
: (normalized ? VK_FORMAT_R16G16B16A16_SNORM : VK_FORMAT_R16G16B16A16_SSCALED);
default: return VK_FORMAT_UNDEFINED; default: return VK_FORMAT_UNDEFINED;
} }
case DataType::Uint16: case DataType::Uint16:
switch (size) { switch (size) {
case 1: case 1:
return isInteger ? VK_FORMAT_R16_UINT return isInteger ? VK_FORMAT_R16_UINT : VK_FORMAT_R16_UNORM;
: (normalized ? VK_FORMAT_R16_UNORM : VK_FORMAT_R16_USCALED);
case 2: case 2:
return isInteger ? VK_FORMAT_R16G16_UINT return isInteger ? VK_FORMAT_R16G16_UINT : VK_FORMAT_R16G16_UNORM;
: (normalized ? VK_FORMAT_R16G16_UNORM : VK_FORMAT_R16G16_USCALED);
case 3: case 3:
return isInteger ? VK_FORMAT_R16G16B16_UINT return isInteger ? VK_FORMAT_R16G16B16_UINT : VK_FORMAT_R16G16B16_UNORM;
: (normalized ? VK_FORMAT_R16G16B16_UNORM : VK_FORMAT_R16G16B16_USCALED);
case 4: case 4:
return isInteger ? VK_FORMAT_R16G16B16A16_UINT return isInteger ? VK_FORMAT_R16G16B16A16_UINT : VK_FORMAT_R16G16B16A16_UNORM;
: (normalized ? VK_FORMAT_R16G16B16A16_UNORM : VK_FORMAT_R16G16B16A16_USCALED);
default: return VK_FORMAT_UNDEFINED; default: return VK_FORMAT_UNDEFINED;
} }
case DataType::Int8: case DataType::Int8:
switch (size) { switch (size) {
case 1: case 1:
return isInteger ? VK_FORMAT_R8_SINT return isInteger ? VK_FORMAT_R8_SINT : VK_FORMAT_R8_SNORM;
: (normalized ? VK_FORMAT_R8_SNORM : VK_FORMAT_R8_SSCALED);
case 2: case 2:
return isInteger ? VK_FORMAT_R8G8_SINT return isInteger ? VK_FORMAT_R8G8_SINT : VK_FORMAT_R8G8_SNORM;
: (normalized ? VK_FORMAT_R8G8_SNORM : VK_FORMAT_R8G8_SSCALED);
case 3: case 3:
return isInteger ? VK_FORMAT_R8G8B8_SINT return isInteger ? VK_FORMAT_R8G8B8_SINT : VK_FORMAT_R8G8B8_SNORM;
: (normalized ? VK_FORMAT_R8G8B8_SNORM : VK_FORMAT_R8G8B8_SSCALED);
case 4: case 4:
return isInteger ? VK_FORMAT_R8G8B8A8_SINT return isInteger ? VK_FORMAT_R8G8B8A8_SINT : VK_FORMAT_R8G8B8A8_SNORM;
: (normalized ? VK_FORMAT_R8G8B8A8_SNORM : VK_FORMAT_R8G8B8A8_SSCALED);
default: return VK_FORMAT_UNDEFINED; default: return VK_FORMAT_UNDEFINED;
} }
case DataType::Uint8: case DataType::Uint8:
switch (size) { switch (size) {
case 1: case 1:
return isInteger ? VK_FORMAT_R8_UINT return isInteger ? VK_FORMAT_R8_UINT : VK_FORMAT_R8_UNORM;
: (normalized ? VK_FORMAT_R8_UNORM : VK_FORMAT_R8_USCALED);
case 2: case 2:
return isInteger ? VK_FORMAT_R8G8_UINT return isInteger ? VK_FORMAT_R8G8_UINT : VK_FORMAT_R8G8_UNORM;
: (normalized ? VK_FORMAT_R8G8_UNORM : VK_FORMAT_R8G8_USCALED);
case 3: case 3:
return isInteger ? VK_FORMAT_R8G8B8_UINT return isInteger ? VK_FORMAT_R8G8B8_UINT : VK_FORMAT_R8G8B8_UNORM;
: (normalized ? VK_FORMAT_R8G8B8_UNORM : VK_FORMAT_R8G8B8_USCALED);
case 4: case 4:
return isInteger ? VK_FORMAT_R8G8B8A8_UINT return isInteger ? VK_FORMAT_R8G8B8A8_UINT : VK_FORMAT_R8G8B8A8_UNORM;
: (normalized ? VK_FORMAT_R8G8B8A8_UNORM : VK_FORMAT_R8G8B8A8_USCALED);
default: return VK_FORMAT_UNDEFINED; default: return VK_FORMAT_UNDEFINED;
} }
default: default: