为了能在Windows平台上更好运行OpenGL,微软不断改进 Mesa 中的 Gallium3D Direct3D 12。在 Mesa D3D12最新代码中,对 Windows 平台的最大改进是实现OpenGL着色器存储缓冲区对象(SSBOs)。
SSBOs用于在GLSL中存储和检索数据,同时比Uniform Buffer Objects更通用。该功能是由OpenGL 4.3 规定的ARB_shader_storage_buffer_object 扩展定义的。
Mesa D3D12代码现在仍然只完全支持 OpenGL 3.3,还有许多扩展需要在所有的 OpenGL 4.x 版本中解决,但至少SSBO现在已经到位了,这是向前迈出的另一个实际步骤。作为这项功能的一部分,除了 SPIR-V 之外,DXIL代码也进行了修改,以便与GL NIR一起工作。
这项工作是微软为使OpenGL(以及 OpenCL)在 Direct3D 12 上工作而做出的努力的一部分,以便在缺乏本地OpenGL/OpenCL驱动支持的Windows上,以及在WSL下使用。在这个合并请求中的更多细节,周一被纳入了Mesa 22.0。
【来源:cnBeta.COM】