anchor.diff:                              prog.PipelineLayout.Handle,
                               renderPass.Handle,
                               0u,
  -                            !!pipe,
  +                            basePipeline,
                               0
                           )
   
                       VkRaw.vkCreateGraphicsPipelines(device.Handle, VkPipelineCache.Null, 1u, pDesc, NativePtr.zero, pHandle)
                           |> check "could not create pipeline"
   
  -                    NativePtr.write pipe !!pHandle
                       return Pipeline(device, !!pHandle, Unchecked.defaultof<_>)
                   }
   
  -            { handle = pipeline.Handle; version = 666 }
  -
  -        interface INativeResourceLocation<VkPipeline> with
  -            member x.Pointer = pipe
  +            pipeline.Handle
  +    
  +        override x.Free(p : VkPipeline) =
  +            VkRaw.vkDestroyPipeline(renderPass.Device.Handle, p, NativePtr.zero)
   
       type IndirectDrawCallResource(owner : IResourceCache, key : list<obj>, indexed : bool, calls : IResourceLocation<IndirectBuffer>) =
           inherit AbstractPointerResourceWithEquality<DrawCall>(owner, key)
  
positive.code:             depthStencil.Acquire()
  
          override x.Destroy() =
              program.Release()
              inputState.Release()
              inputAssembly.Release()
  
negative.code:             colorBlendState.Release()
              depthStencil.Release()
              
  
          override x.Compute(token : AdaptiveToken) =
              let program = program.Update token
                  
              let prog = program.handle
  