【问题标题】:directcompute hlsl numthreads?直接计算hlsl numthreads?
【发布时间】:2012-06-13 11:43:25
【问题描述】:

既然您已经定义了调度计算着色器时要执行的线程组,那么着色器文件中的数字表示什么?示例:[numthreads(1, 1, 1)]

【问题讨论】:

    标签: hlsl directx-10 directcompute


    【解决方案1】:

    进行了更多挖掘,根据官方定义,在调度时定义线程组,而 numthreads 语句定义线程,因此基本上可以将它们视为额外维度。例如,当我将 2,2,1 分派给具有 3,1,1 的函数时,它会生成

    enter code here
    0, 0, 0 - 0, 0, 0
    0, 0, 0 - 1, 0, 0
    0, 0, 0 - 2, 0, 0
    
    1, 0, 0 - 0, 0, 0
    1, 0, 0 - 1, 0, 0
    1, 0, 0 - 2, 0, 0
    
    0, 1, 0 - 0, 0, 0
    0, 1, 0 - 1, 0, 0
    0, 1, 0 - 2, 0, 0
    
    1, 1, 0 - 0, 0, 0
    1, 1, 0 - 1, 0, 0
    1, 1, 0 - 2, 0, 0
    

    所以 2*2*1*3*1*1 = 总共 12 个线程

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 1970-01-01
      • 2020-05-10
      • 2016-11-21
      相关资源
      最近更新 更多