3D设备驱动程序是内核态驱动程序。DirectX运行时处理用户态API。用户态执行系统调用来执行内核态操作，需要CPU切换为内核态，这将耗费微秒级的时间来完成。在此期间，CPU不能执行任何操作。为优化性能，必须极小化CPU这种模式切换。 LinuxOpenGL驱动程序分为两部分：内核驱动与用户空间驱动。用户空间驱动把所有OpenGL命令翻译为机器码提交给GPU。为减少系统调用，用户空间驱动实现marshalling。当GPU的命令缓冲区（command buffer）装满了绘图数据，API简单地把请求绘制