Mesa D3D12最新代码中已添加对SSBOs的支持
为了能在 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。