anchor.diff:                              | GLSLSampler t -> GLSLType.Sampler t
                       | _ -> failwithf "[GLSL] bad intrinsic type: %A" a
   
  -            | CType.CPointer(_,e) -> GLSLType.DynamicArray (ofCType e)
  +            | CType.CPointer(_,e) -> GLSLType.DynamicArray (ofCType e, -1)
   
   
   module LayoutStd140 =
  
positive.code:                 | GLSLType.Array(len, elem,_) -> sprintf "%s[%d]" (toString elem) len
                  | GLSLType.Image img -> imageName img
                  | GLSLType.Sampler sam -> samplerName sam
                  | GLSLType.DynamicArray(elem) -> sprintf "%s[]" (toString elem) 
                      
  
      [<AutoOpen>]
  
negative.code: 
                  GLSLType.Struct(name, newFields, offset), largestAlign, offset
                  
              | GLSLType.DynamicArray(e,_) ->
                  let (e,align,s) = layout e
                  let s =
                      if s % 16 = 0 then s
                      else s + 16 - (s % 16)
  
                  GLSLType.DynamicArray(e, s), 16, 0
  
              | GLSLType.Image i ->
                  GLSLType.Image i, 1, 0
                  
              | GLSLType.Sampler s ->
                  GLSLType.Sampler s, 1, 0
  
      let applyLayout (ub : GLSLUniformBuffer) : GLSLUniformBuffer =
          let mutable offset = 0
  