【问题标题】:How to use a huge array in HLSL (error X4505)如何在 HLSL 中使用巨大的数组(错误 X4505)
【发布时间】:2015-06-09 12:47:23
【问题描述】:

当我尝试编译时出现错误:

X4505:临时寄存器和可索引临时寄存器的总和超出限制 4096 个。

但是我的 shader 确实可以在 FX Composer 中工作。

它崩溃的原因可能是因为我使用了一个非常大的数组,因为我正在使用行进立方体。

const static int edgeTable[256] = ...
const static int triTable[256][16] = ...

我应该如何使用这些数组? (D11)

【问题讨论】:

标签: arrays directx shader hlsl


【解决方案1】:

https://msdn.microsoft.com/en-us/library/windows/desktop/ff476898(v=vs.85).aspx#Shader_Constant_Buffer

每个着色器阶段最多允许 15 个着色器常量缓冲区;每个缓冲区最多可容纳 4096 个常量。

【讨论】:

  • 所以? 如何在 HLSL 中使用大数组(错误 X4505)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-15
相关资源
最近更新 更多