在vulkan的主要旁边使用不同的入口点

时间:2017-10-20 18:19:30

标签: glsl vulkan

我知道在Vulkan中创建着色器模块时,您可以使用VkPipelineShaderStageCreateInfopName中指定入口点。

然而,我还没有能够使用另一个切入点,但主要的'在我的glsl / spv文件中。

typedef struct VkPipelineShaderStageCreateInfo {
  VkStructureType                     sType;
  const void*                         pNext;
  VkPipelineShaderStageCreateFlags    flags;
  VkShaderStageFlagBits               stage;
  VkShaderModule                      module;
  const char*                         pName;
  const VkSpecializationInfo*         pSpecializationInfo;
} VkPipelineShaderStageCreateInfo;

有没有人使用过这个功能,可以举个例子吗?谢谢

1 个答案:

答案 0 :(得分:2)

我正在尝试某种方式,我认为目前无法使用官方glslcglslangValidator

注意GLSL要求main函数,因此autors可能发现它没用。

glslc直接说相关参数仅适用于HLSL。

glslangValidator不太清楚,但在使用GLSL时,相关参数(在编写时)被忽略。

更新: 有一个relevant GitHub Issue。并且支持此功能。因此,您必须等待下一个SDK版本,或者从master构建编译器。

确实测试它适用的版本:

glslangValidator.exe -V -H -e mymain --source-entrypoint main -o hello.spv hello.vert

如果在GLSL中使用非main函数,编译器会记录错误,但它似乎仍然有效:

glslangValidator.exe -V -H -e mymain --source-entrypoint sourcemain -o hello.spv hello.vert