anchor.diff:                  failwithf "[GL] could not get uniform: %A" uniform
        
       member x.CreateUniformBuffer(scope : Ag.Scope, layout : FShade.GLSL.GLSLUniformBuffer, u : IUniformProvider) =
  -        let manager = 
  -            uniformBufferManagers.GetOrAdd(
  -                (layout), 
  -                fun block -> 
  -                    new UniformBufferManager(ctx,block)
  -                    //new PersistentlyMappedUniformManager(ctx, s, uniformFields)
  -            )
  -
  -        manager.CreateUniformBuffer(scope, u, SymDict.empty)
  +   
  +        uniformBufferManager.CreateUniformBuffer(layout, scope, u, SymDict.empty)
    
  -
    
         
       member x.CreateIsActive(value : IMod<bool>) =
  
positive.code: 
          let key = values |> List.map (fun (_,v) -> v :> obj)
  
          viewCache.GetOrCreate(
              key,
              fun () ->
  
negative.code:     let viewCache = ResourceCache<UniformBufferView, int>(None, None)
      let rw = new ReaderWriterLockSlim()
  
      member x.CreateUniformBuffer(block : FShade.GLSL.GLSLUniformBuffer, scope : Ag.Scope, u : IUniformProvider, additional : SymbolDict<IMod>) : IResource<UniformBufferView, int> =
          let values =
              block.ubFields 
              |> List.map (fun f ->
  