anchor.diff:                                stage-pairs
                                 post
                                 aggregate-public-uniforms
  -                              uniform-assigners))
  +                              uniform-assigners
  +                              state-tag))
           ;;
           ;; generate the code that actually renders
           ,(def-dispatch-func ctx name init-func-name
                               primitive uniform-assigners
                               aggregate-public-uniforms
                               (find :static context)
  -                            state-var is-compute)
  +                            state-var state-tag is-compute)
           ;;
           ;; generate the function that recompiles this pipeline
  -        ,(gen-recompile-func name stage-pairs post context state-var)
  +        ,(gen-recompile-func name stage-pairs post context)
           ;;
           ;; off to the races! Note that we upload the spec at compile
           ;; time (using eval-when)
  
positive.code:                            stage-pairs
                             post
                             aggregate-public-uniforms
                             uniform-assigners)
    (let ((uniform-names (mapcar #'first aggregate-public-uniforms)))
      (multiple-value-bind (upload-forms int-arr-size uint-arr-size)
          (generate-uniform-upload-forms uniform-assigners)
  
negative.code:                                       compiled-stages)))
                     (setf (pipeline-state-has-fragment-stage state)
                           (not (null frag))))
                   (setf (pipeline-state-diff-tag state)
                         ,state-tag)
                   new-prog-ids)))
           (%post-init ,post)))))
  
  