diff --git a/MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp b/MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp index be1f5030..cc76beaf 100644 --- a/MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/Renderer/VertexInputStateFactory.cpp @@ -147,34 +147,66 @@ namespace MobileGL::MG_Backend::DirectVulkan { } case DataType::Int16: switch (size) { - case 1: return normalized ? VK_FORMAT_R16_SNORM : (isInteger ? VK_FORMAT_R16_SINT : VK_FORMAT_UNDEFINED); - case 2: return normalized ? VK_FORMAT_R16G16_SNORM : (isInteger ? VK_FORMAT_R16G16_SINT : VK_FORMAT_UNDEFINED); - case 3: return VK_FORMAT_UNDEFINED; - case 4: return normalized ? VK_FORMAT_R16G16B16A16_SNORM : (isInteger ? VK_FORMAT_R16G16B16A16_SINT : VK_FORMAT_UNDEFINED); + case 1: + return isInteger ? VK_FORMAT_R16_SINT + : (normalized ? VK_FORMAT_R16_SNORM : VK_FORMAT_R16_SSCALED); + case 2: + return isInteger ? VK_FORMAT_R16G16_SINT + : (normalized ? VK_FORMAT_R16G16_SNORM : VK_FORMAT_R16G16_SSCALED); + case 3: + return isInteger ? VK_FORMAT_R16G16B16_SINT + : (normalized ? VK_FORMAT_R16G16B16_SNORM : VK_FORMAT_R16G16B16_SSCALED); + case 4: + return isInteger ? VK_FORMAT_R16G16B16A16_SINT + : (normalized ? VK_FORMAT_R16G16B16A16_SNORM : VK_FORMAT_R16G16B16A16_SSCALED); default: return VK_FORMAT_UNDEFINED; } case DataType::Uint16: switch (size) { - case 1: return normalized ? VK_FORMAT_R16_UNORM : (isInteger ? VK_FORMAT_R16_UINT : VK_FORMAT_UNDEFINED); - case 2: return normalized ? VK_FORMAT_R16G16_UNORM : (isInteger ? VK_FORMAT_R16G16_UINT : VK_FORMAT_UNDEFINED); - case 3: return VK_FORMAT_UNDEFINED; - case 4: return normalized ? VK_FORMAT_R16G16B16A16_UNORM : (isInteger ? VK_FORMAT_R16G16B16A16_UINT : VK_FORMAT_UNDEFINED); + case 1: + return isInteger ? VK_FORMAT_R16_UINT + : (normalized ? VK_FORMAT_R16_UNORM : VK_FORMAT_R16_USCALED); + case 2: + return isInteger ? VK_FORMAT_R16G16_UINT + : (normalized ? VK_FORMAT_R16G16_UNORM : VK_FORMAT_R16G16_USCALED); + case 3: + return isInteger ? VK_FORMAT_R16G16B16_UINT + : (normalized ? VK_FORMAT_R16G16B16_UNORM : VK_FORMAT_R16G16B16_USCALED); + case 4: + return isInteger ? VK_FORMAT_R16G16B16A16_UINT + : (normalized ? VK_FORMAT_R16G16B16A16_UNORM : VK_FORMAT_R16G16B16A16_USCALED); default: return VK_FORMAT_UNDEFINED; } case DataType::Int8: switch (size) { - case 1: return normalized ? VK_FORMAT_R8_SNORM : (isInteger ? VK_FORMAT_R8_SINT : VK_FORMAT_UNDEFINED); - case 2: return normalized ? VK_FORMAT_R8G8_SNORM : (isInteger ? VK_FORMAT_R8G8_SINT : VK_FORMAT_UNDEFINED); - case 3: return VK_FORMAT_UNDEFINED; - case 4: return normalized ? VK_FORMAT_R8G8B8A8_SNORM : (isInteger ? VK_FORMAT_R8G8B8A8_SINT : VK_FORMAT_UNDEFINED); + case 1: + return isInteger ? VK_FORMAT_R8_SINT + : (normalized ? VK_FORMAT_R8_SNORM : VK_FORMAT_R8_SSCALED); + case 2: + return isInteger ? VK_FORMAT_R8G8_SINT + : (normalized ? VK_FORMAT_R8G8_SNORM : VK_FORMAT_R8G8_SSCALED); + case 3: + return isInteger ? VK_FORMAT_R8G8B8_SINT + : (normalized ? VK_FORMAT_R8G8B8_SNORM : VK_FORMAT_R8G8B8_SSCALED); + case 4: + return isInteger ? VK_FORMAT_R8G8B8A8_SINT + : (normalized ? VK_FORMAT_R8G8B8A8_SNORM : VK_FORMAT_R8G8B8A8_SSCALED); default: return VK_FORMAT_UNDEFINED; } case DataType::Uint8: switch (size) { - case 1: return normalized ? VK_FORMAT_R8_UNORM : (isInteger ? VK_FORMAT_R8_UINT : VK_FORMAT_UNDEFINED); - case 2: return normalized ? VK_FORMAT_R8G8_UNORM : (isInteger ? VK_FORMAT_R8G8_UINT : VK_FORMAT_UNDEFINED); - case 3: return VK_FORMAT_UNDEFINED; - case 4: return normalized ? VK_FORMAT_R8G8B8A8_UNORM : (isInteger ? VK_FORMAT_R8G8B8A8_UINT : VK_FORMAT_UNDEFINED); + case 1: + return isInteger ? VK_FORMAT_R8_UINT + : (normalized ? VK_FORMAT_R8_UNORM : VK_FORMAT_R8_USCALED); + case 2: + return isInteger ? VK_FORMAT_R8G8_UINT + : (normalized ? VK_FORMAT_R8G8_UNORM : VK_FORMAT_R8G8_USCALED); + case 3: + return isInteger ? VK_FORMAT_R8G8B8_UINT + : (normalized ? VK_FORMAT_R8G8B8_UNORM : VK_FORMAT_R8G8B8_USCALED); + case 4: + return isInteger ? VK_FORMAT_R8G8B8A8_UINT + : (normalized ? VK_FORMAT_R8G8B8A8_UNORM : VK_FORMAT_R8G8B8A8_USCALED); default: return VK_FORMAT_UNDEFINED; } default: