2017-10-20 6 views
1

Vulkanでシェーダーモジュールを作成するときに、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; 

誰もこの機能を使用したことがありますか?ありがとうございます

答えて

2

私はそれをやり直していましたが、これは現時点では公式glslcまたはglslangValidatorを使用してこれが可能ではないと思います。

注意GLSLはmainの機能を必要としているため、autorsは役に立たない可能性があります。

glslc outrightは、関連するパラメータがHLSLに対してのみ機能することを示しています。

glslangValidatorはあまり明確ではありませんが、関連するパラメータはGLSLを使用するときは無視されます(書き込み時)。

更新日: relevant GitHub Issueがあります。そして、この機能がサポートされました。したがって、次のSDKリリースを待つか、masterからコンパイラをビルドする必要があります。

は確かにそれはで動作するバージョンをテスト:非 main機能はGLSLで使用されている場合、コンパイラはエラーを記録し

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

が、とにかく動作しているようです:

glslangValidator.exe -V -H -e mymain --source-entrypoint sourcemain -o hello.spv hello.vert 
関連する問題