diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp index 3d85e6b5..361ec945 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp @@ -86,12 +86,14 @@ namespace skyline::gpu::interconnect::maxwell3d { case engine::VertexAttribute::NumericalType::Unorm: case engine::VertexAttribute::NumericalType::Float: return Shader::AttributeType::Float; - case engine::VertexAttribute::NumericalType::Sscaled: case engine::VertexAttribute::NumericalType::Sint: return Shader::AttributeType::SignedInt; - case engine::VertexAttribute::NumericalType::Uscaled: case engine::VertexAttribute::NumericalType::Uint: return Shader::AttributeType::UnsignedInt; + case engine::VertexAttribute::NumericalType::Sscaled: + return Shader::AttributeType::SignedScaled; + case engine::VertexAttribute::NumericalType::Uscaled: + return Shader::AttributeType::UnsignedScaled; default: throw exception("Invalid numerical type: {}", static_cast(attribute.numericalType)); } @@ -331,6 +333,7 @@ namespace skyline::gpu::interconnect::maxwell3d { FORMAT_NORM_INT_SCALED_CASE(size, vkFormat); \ FORMAT_CASE(size, Float, Sfloat, vkFormat) + // No mobile support scaled formats, so pass as int and the shader compiler will convert to float for us if (numericalType == engine::VertexAttribute::NumericalType::Sscaled) numericalType = engine::VertexAttribute::NumericalType::Sint; else if (numericalType == engine::VertexAttribute::NumericalType::Uscaled)