小编hid*_*bit的帖子

为什么在vulkan.h中,不可调度的对象总是被定义为64位?

看着vulkan.hi看到这个:

#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || .....
    #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
#else
    #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
#endif
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么64位?对我来说,总是使用ifdef的第一个案例似乎更合理

c vulkan

5
推荐指数
1
解决办法
645
查看次数

模板传递写入颜色缓冲区?

我一直在研究LunarG样本中的drawubpasses样本(文件:API-Samples/drawnubpasses/drawnubpasses.cpp).

在此示例中,调用第一个vkCmdDraw()时的活动子传递没有颜色附件,只有深度/模板附件.使用的片段着色器确实有一个输出变量.

阅读规范并没有帮助我理解这种用法​​是否"安全",或者驱动程序如何处理它.

vulkan

5
推荐指数
1
解决办法
278
查看次数

描述符绑定和绑定编号

我对规范中使用的关于VkDescriptorSetLayoutBinding结构描述的描述符绑定的语言有点困惑。该绑定元素

是此条目的绑定号,对应着色器阶段中相同绑定号的资源。

如 14.5.3 所述

使用sDescriptorSet修饰和bBinding修饰标识的变量表示此变量与在pSetLayouts [ s ] 中指定的具有等于b绑定相关联VkDescriptorSetLayoutBindingVkPipelineLayoutCreateInfo

因此,如果我正确地得到了这一点,那么描述的描述符绑定VkDescriptorSetLayoutBinding必须为该集中的每个活动资源变量都有一个条目。每个描述符绑定引用哪个资源变量由绑定变量和每个变量的绑定修饰决定。

到现在为止还挺好。令人困惑的部分是调用vkUpdateDescriptorSets. 结构VkWriteDescriptorSet具有元素dstBindng,其中

是该集合中的描述符绑定。

我很困惑dstBindng的值是否必须与在变量资源中用作装饰的绑定号相同,还是应该用作VkDescriptorSetLayoutBinding数组内的索引。

vulkan

5
推荐指数
1
解决办法
1295
查看次数

标签 统计

vulkan ×3

c ×1