Skip to content
Snippets Groups Projects
  • LoopDawg's avatar
    HLSL: Allow stream output Append() method after entry point. · 1326b8c7
    LoopDawg authored
    Append() method is special: unlike most outputs, it does not copy
    some temporary data to a symbol in the entry point epilogue, but
    rather uses an emit builtin after each write to the output stream.
    
    This had been handled by remembering the special output symbol for
    the stream as it was declared in the shader entry point before
    symbol sanitization.  However the prior code was too simple and
    only handled cases where the Append() method happened after the
    entry point, so that the output symbol had been seen.
    
    This PR adds a patching step so that the Append()s may appear in
    any order WRT the entry point.  They are patched in an epilogue,
    whereupon it is guaranteed in a well formed shader that we have
    seen the appropriate declaration.
    
    Fixes #1217.
    1326b8c7