Glsl 在vulkan中使用main旁边的不同入口点
我知道在Vulkan中创建着色器模块时,可以使用Glsl 在vulkan中使用main旁边的不同入口点,glsl,vulkan,Glsl,Vulkan,我知道在Vulkan中创建着色器模块时,可以使用pName在VkPipelineShaderStageCreateInfo>中指定入口点 但是,我无法在glsl/spv文件中使用除“main”之外的另一个入口点 typedef struct VkPipelineShaderStageCreateInfo { VkStructureType sType; const void* pNext; VkP
pName
在VkPipelineShaderStageCreateInfo>中指定入口点
但是,我无法在glsl/spv文件中使用除“main”之外的另一个入口点
typedef struct VkPipelineShaderStageCreateInfo {
VkStructureType sType;
const void* pNext;
VkPipelineShaderStageCreateFlags flags;
VkShaderStageFlagBits stage;
VkShaderModule module;
const char* pName;
const VkSpecializationInfo* pSpecializationInfo;
} VkPipelineShaderStageCreateInfo;
有没有人使用过这个功能,可以给我举个例子?谢谢你我以前一直在尝试,我相信目前使用官方的glslc
或glslagvalidator
是不可能的
注:GLSL强制要求使用main
函数,因此autors可能会发现它没有用
glslc
明确表示相关参数仅适用于HLSL
glslagvalidator
不太清楚,但在使用GLSL时(在编写本文时)会忽略相关参数
更新:
有一个问题。这项功能得到了支持。因此,您必须等待下一个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