#usda 1.0
(
    doc ="""Generated from node description file OgnGpuInteropGpuToCpuCopy.ogn
Contains templates for node types found in that file."""
)

def OmniGraph "TestGraph"
{
    token evaluator:type = "push"
    int2 fileFormatVersion = (1, 3)
    token flatCacheBacking = "Shared"
    token pipelineStage = "pipelineStageSimulation"

    def OmniGraphNode "Template_omni_graph_examples_cpp_GpuInteropGpuToCpuCopy" (
        docs="""Generates a new AOV representing a CPU copy of a GPU buffer"""
    )
    {
        token node:type = "omni.graph.examples.cpp.GpuInteropGpuToCpuCopy"
        int node:typeVersion = 1

        # 3 attributes
        custom string inputs:aovGpu = "" (
            docs="""Name of AOV to copy from GPU to CPU"""
        )
        custom uint64 inputs:gpu = 0 (
            docs="""Pointer to shared context containing gpu foundations"""
        )
        custom uint64 inputs:rp = 0 (
            docs="""Pointer to render product for this view"""
        )

        # 3 attributes
        custom string outputs:aovCpu = "" (
            docs="""Name of AOV representing CPU buffer of GPU resource"""
        )
        custom uint64 outputs:gpu (
            docs="""Pointer to shared context containing gpu foundations"""
        )
        custom uint64 outputs:rp (
            docs="""Pointer to render product for this view"""
        )
    }
}
