https://github.com/shader-slang/slang
Raw File
Tip revision: f88e1299b7715190ce82f3f4473f0d0eeaa2000e authored by Yong He on 23 May 2023, 22:19:27 UTC
Add API for querying total compile time. (#2898)
Tip revision: f88e129
slang-ir-witness-table-wrapper.h
// slang-ir-witness-table-wrapper.h
#pragma once

namespace Slang
{
    struct SharedGenericsLoweringContext;

    /// This pass generates wrapper functions for witness table function entries.
    ///
    /// Enabled for generation of dynamic dispatch code only.
    ///
    /// Functions that are used to satisfy interface requirement have concrete
    /// type signatures for `this` and `associatedtype` parameters/return values.
    /// However, when they are called from a witness table, the callee only have a
    /// raw pointer for this arguments, since the conrete type is not known to the
    /// callee. Therefore, we need to generate wrappers for each member function
    /// callable through a witness table, so that the wrapper functions take general void*
    /// pointer for arguments whose type is unknown at call sites, and convert them
    /// to concrete types and calls the actual implementation.
    void generateWitnessTableWrapperFunctions(
        SharedGenericsLoweringContext* sharedContext);

}
back to top