图形卡制造商(如AMD)是否能够为MacOS制作支持更高版本OpenGL的图形驱动程序?
不行。 "驱动程序"是由操作系统用于与某些硬件通信的代码。 操作系统定义了与某些类型的驱动程序交互的方式,并且那些类型的硬件制造商提供了实现操作系统定义的驱动程序API的实现。
在涉及到与硬件进行交互时,用户空间代码可以与驱动程序交互,但只能按照操作系统允许的程度进行交互。
当您在MacOS上与OpenGL交流时,首先,您正在与MacOS交流。 您的OpenGL函数调用进入操作系统。 然后,操作系统将该GL函数调用转换为由图形驱动程序制造商实现的内部API,然后操作系统进行调用。 任何结果都会从这些内部驱动程序API进行转换,然后转发回您。
您永远不会直接与图形驱动程序交谈; MacOS始终作为中介人坐在您之间。 MacOS上的图形驱动程序不包含OpenGL实现; MacOS本身具有实现,但其某个部分由图形驱动程序提供。
这就是为什么在MacOS上,实现支持的扩展列表缺少很多供应商特定的扩展名。 如果查看Windows或Linux的OpenGL实现,AMD和NVIDIA支持大量扩展名。 这些在MacOS上不存在,因为MacOS控制可用的扩展名。
它不必这样做; 它可以允许驱动程序公开任何它想要的内容,在其他平台上也是如此。 但是这些都是由那些平台作出的特定选择; 它们不必以这种方式进行,而苹果公司没有这样做。
因此,如果MacOS不再包含OpenGL实现......那么它就不再具有OpenGL实现。 您无法与该内部驱动程序API交流,因为它属于操作系统,并且不允许您访问它。
并且图形卡制造商无法插入后门或其他东西,以允许您访问驱动程序,因为操作系统始终处于控制状态。 操作系统拥有硬件接口。 如果供应商尝试创建一些钩子来绕过操作系统,我相信苹果公司会对这些驱动程序发表非常不愉快的言论。