rust wgpu计算直接写入到表面纹理视图

kr98yfug  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(104)

我对使用gpu apis比较陌生,甚至比wgpu还新,想把计算着色器画到一个表面上搞得乱七八糟。然而,似乎这不是直接允许的?
在运行时试图从表面创建一个绑定到纹理视图时,一个错误声明STORAGE BINDING位是必需的,然而,在表面配置期间不允许定义该位。我也尝试让着色器将纹理作为常规纹理而不是存储纹理接受,但这会带来绑定无效的错误。
有没有一个好的方法可以直接写入表面纹理,或者有必要创建一个单独的存储纹理?引擎盖下的渲染管道不直接写入表面的纹理视图吗?如果是一个单独的纹理(我猜是这样),有没有一个最好的方法可以遵循?

41zrol4v

41zrol4v1#

计算着色器无法直接写入表面纹理,这是片段着色器的职责。
由于交换链使用双缓冲或多缓冲技术,因此表面纹理逐帧变化;另外,表面纹理的用法是RENDER_ATTACHMENT,这意味着它只能用于RenderPass的color_attachments;
计算着色器只能输出Storaga BufferStorage Texture,这两种类型的数据可以通过绑定到片段着色器来使用。

相关问题