#gamedev #abstraction-layer #newport #game-engine #engine #game #thread-safe

nightly newport_gpu

Newport引擎的线程安全渲染抽象层

2个不稳定版本

0.2.0 2021年7月18日
0.0.1 2021年3月31日

#11#newport

Download history 15/week @ 2024-03-11 12/week @ 2024-03-18 21/week @ 2024-03-25 72/week @ 2024-04-01 11/week @ 2024-04-08 8/week @ 2024-04-15 10/week @ 2024-04-22 6/week @ 2024-04-29 16/week @ 2024-05-06 12/week @ 2024-05-13 15/week @ 2024-05-20 14/week @ 2024-05-27 9/week @ 2024-06-03 15/week @ 2024-06-10 9/week @ 2024-06-17 17/week @ 2024-06-24

51 每月下载量
6 个库(5 直接)中使用

Apache-2.0

19MB
7K SLoC

包含(Windows DLL,19MB)bin/dxcompiler.dll

此库是GPU的HAL。目前只有Vulkan后端可用。设计和架构最初是在阅读http://alextardif.com/RenderingAbstractionLayers.html后构思的

警告

此包仍处于非常早期阶段。API目前非常不稳定。如果您不打算处理未知的未来更改,则不建议使用此包。

目标

  • 抽象层应尽可能轻量。应尽可能隐藏API层特定概念

  • 抽象层应尽可能简单。不可避免会有一些代码复杂性,但它们应该是罕见的。如果用户花太多时间调试才能到达他们的调用核心,那么我们就失败了

  • 抽象层应易于维护和扩展。希望上述要点有助于实现这一目标

需求

  • 创建多个设备以允许多个GPU工作
  • 创建、上传和销毁资源(缓冲区、纹理、着色器、管线等)
  • 从多个通道收集、提交和等待命令工作,以多核兼容的方式
  • 自动设备内存管理

依赖关系

~8MB
~180K SLoC