anchor.diff:          (when (not successp)
             (sup:debug-print-line "virtio-gpu: Unable to create framebuffer resource: " error)
             (return-from virtio::virtio-gpu-register nil)))
  +      ;; TODO: Support discontigious framebuffer.
         (let* ((framebuffer-size (* width height 4))
  -             (n-framebuffer-pages (ceiling framebuffer-size sup::+4k-page-size+))
  -             (framebuffer-frames (sup::allocate-physical-pages n-framebuffer-pages)))
  -        (when (not framebuffer-frames)
  +             (framebuffer-dma-buffer (sup:make-dma-buffer framebuffer-size
  +                                                          :name gpu
  +                                                          :contiguous t
  +                                                          :errorp nil)))
  +        (when (not framebuffer-dma-buffer)
             (sup:debug-print-line "virtio-gpu: Unable to allocate framebuffer memory")
             (return-from virtio::virtio-gpu-register nil))
  -        (let ((framebuffer-phys (* framebuffer-frames sup::+4k-page-size+)))
  +        (let ((framebuffer-phys (sup:dma-buffer-physical-address framebuffer-dma-buffer)))
             (sup:debug-print-line "virtio-gpu: Framebuffer at " framebuffer-phys)
             ;; Clear framebuffer.
  -          (sys.int::%fill-words (sup::convert-to-pmap-address framebuffer-phys)
  +          (sys.int::%fill-words (sup:dma-buffer-virtual-address framebuffer-dma-buffer)
                                   0
                                   (truncate framebuffer-size 8))
             ;; Attach backing store to framebuffer resource.
  
positive.code:            #:virtio-gpu-scanout
             #:virtio-gpu-width
             #:virtio-gpu-height
             #:virtio-gpu-virgl-p
             #:virtio-gpu-virgl-data
  
  
negative.code:   scanout
    width
    height
    framebuffer
    virgl-p
    virgl-data)
  
  