首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX 11:绑定着色资源视图数

DirectX 11:绑定着色资源视图数
EN

Stack Overflow用户
提问于 2014-10-13 17:48:55
回答 1查看 1.9K关注 0票数 1

我有一个用于我的着色器资源的管理系统,它自动为我的所有着色器生成HLSL头代码,如下所示:

代码语言:javascript
复制
   Texture2DArray <float4> MyTextureArray1 : register(t0)
   Texture2DArray <float4> MyTextureArray2 : register(t1)
   Texture2DArray <float4> MyTextureArray3 : register(t2)
   Texture2DArray <float4> MyTextureArray4 : register(t3)

管理系统还会在创建时自动创建和绑定所有着色器资源视图。显然,我的着色器可能使用这些纹理中的1或2个,但我总是把它们绑定在一起。有人能推测我是否最好只绑定我目前需要的SRV,并在每次绑定着色器时清除其他的SRV,还是最好在创建时绑定所有的SRV,再也不碰它们?虽然我目前没有使用资源,但我还没有找到多少文档来说明保持资源绑定的开销。

另外,在我的一些项目中,由于不同的格式、纹理尺寸和用法,我有30到40个SRV。

哪种更好些呢?

1)绑定所有128,从不更改绑定

2)在更改着色器时根据需要绑定和解除SRV

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-15 12:28:08

在DX11中,您可以创建数千个SRV。然而,您可以绑定128到每个着色阶段。只要您每个阶段不使用超过128个SRV,并且在HLSL代码中正确地索引它们,那么您就很好了。还请看一下MSDN上的Direct3D 11资源限制

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26345888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档