GPU subdivision shaders can read out of bound when evaluating the last face. This seems to be always been the case, but Metal + Vulkan has validation to detect these mis-usages. Binary search was initialized with out of bound values so the last face could select out of bound index due to rounding. Pull Request: https://projects.blender.org/blender/blender/pulls/136242