You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
structShaderProgramDesc
{
// TODO: Tess doesn't like this but doesn't know what to do about it// The linking style of this program.
LinkingStyle linkingStyle = LinkingStyle::SingleProgram;
// The global scope or a Slang composite component that represents the entire program.
slang::IComponentType* slangGlobalScope;
// An array of Slang entry points. The size of the array must be `slangEntryPointCount`.// Each element must define only 1 Slang EntryPoint.
slang::IComponentType** slangEntryPoints = nullptr;
// Number of separate entry point components in the `slangEntryPoints` array to link in.// If set to 0, then `slangGlobalScope` must contain Slang EntryPoint components.// If not 0, then `slangGlobalScope` must not contain any EntryPoint components.
GfxCount slangEntryPointCount = 0;
};
The linkingSyle allows to select between two styles for linking and we have the following use cases:
SingleProgram
a) we can pass a fully linked program in slangGlobalScope that potentially contains multiple entry-points
b) we can pass a global scope + entry point components and let the program be composed
SeparateEntryPointCompilation
c) we pass a global scope + multiple entry points that may contain specializations (type conformances)
Case (b) seems obsolete as we can achieve the same by just passing in a fully composed/linked program.
Case (c) is important for raytracing pipelines.
Is there a better design for handling these use cases?
The text was updated successfully, but these errors were encountered:
We currently have this descriptor:
The
linkingSyle
allows to select between two styles for linking and we have the following use cases:SingleProgram
slangGlobalScope
that potentially contains multiple entry-pointsSeparateEntryPointCompilation
Case (b) seems obsolete as we can achieve the same by just passing in a fully composed/linked program.
Case (c) is important for raytracing pipelines.
Is there a better design for handling these use cases?
The text was updated successfully, but these errors were encountered: