• 版块
  • 最新
  • 标签
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠

Orillusion

0

在线

524

用户

151

主题

408

帖子

WebGPU为什么要封装三套api?

已定时 已固定 已锁定 已移动 中文社区
vulkanmetaldx12dawn
3 帖子 2 发布者 798 浏览
    • 从旧到新
    • 从新到旧
    • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • X 离线
    X 离线
    XDX
    写于 最后由 编辑
    #1

    摘录的相关介绍:WebGPU是一套基于浏览器的图形API,浏览器封装了现代图形API(Dx12、Vulkan、Metal)。

    有两个问题:
    1、为什么不像webgl那样只对Vulkan进行封装呢,是为了更好的性能吗,据我了解,Vulkan除了macos都是支持的。

    2、目前的封装是这么一种调用顺序吗:
    if(windows && supportDX12) Dx12;
    else if(mac || ios) Metal;
    else Vulkan;

    只找到一个相关的讨论,但并不怎么理解他们讨论的内容。。。[讨论地址]

    google的dawn:

    • D3D12 on Windows 10
    • Metal on macOS and iOS
    • Vulkan on Windows, Linux, ChromeOS, Android and Fuchsia
    • OpenGL as best effort where available
    1 条回复 最后回复
    0
  • shuangliuS 离线
    shuangliuS 离线
    shuangliu
    写于 最后由 shuangliu 编辑
    #2
    1. 很大程度上,WebGPU 的出现就是为了 Mac OS & IOS,WebGL 发展缓慢的一个很重要的原因就是苹果不支持,直到这两年才将WebGL的标准移植到 Metal,所以WebGPU 制定之初,就是为了满足 Metal,毕竟Mac & IOS 也占据了半壁江山
      除此之外,D3D12是目前最先进的图形API,性能也确实是最好的,所以对于支持D3D12的设备,优先使用D3D12肯定是最好的。

    2. 封装顺序你写的基本是正确的, Dawn 的官网已经说明了:
      Screen Shot 2022-05-18 at 13.43.43.png
      但这个顺序,对大部分程序来说不是运行时的选择,而会是编译时的选择,针对不同操作系统打包时,只编译其中一种就行,比如,win10就编译D3D12的部分,Mac编译 Metal, 其他系统才会编译 Vulkan。

    X 1 条回复 最后回复
    0
  • X 离线
    X 离线
    XDX
    在 中回复了 shuangliu 最后由 编辑
    #3

    @shuangliu 非常感谢!

    1 条回复 最后回复
    0

Copyright © 2023 Orillusion | Contact US

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。