diff --git a/tools/shaderc/shaderc_metal.cpp b/tools/shaderc/shaderc_metal.cpp index 744e3e366..a4ed0337e 100644 --- a/tools/shaderc/shaderc_metal.cpp +++ b/tools/shaderc/shaderc_metal.cpp @@ -638,6 +638,17 @@ namespace bgfx { namespace metal } std::string source = msl.compile(); + + // fix https://github.com/bkaradzic/bgfx/issues/2822 + // insert struct member which declares point size, defaulted to 1 + if (_options.shaderType == 'v'){ + auto findName = "xlatMtlMain_out\n{"; + auto pos = source.find(findName); + if (pos != std::string::npos){ + pos += strlen(findName); + source.insert(pos, "\n\tfloat bgfx_metal_pointSize [[point_size]] = 1;"); + } + } if ('c' == _options.shaderType) {