nvoverlaysink fails to display NV12 from standard memory on R31.1

Running R31.1 on Xavier, I notice that although nvoverlaysink shows no format restriction:

gst-inspect-1.0 nvoverlaysink
...
Pad Templates:
  SINK template: 'sink'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
      video/x-raw
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
              framerate: [ 0/1, 2147483647/1 ]
...

using NV12 from standard (CPU) memory has weird display and leads to error messages:

gst-launch-1.0 videotestsrc is-live=true ! 'video/x-raw, format=NV12' ! nvoverlaysink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
NVMAP_IOC_WRITE failed: Invalid argument
NVMAP_IOC_WRITE failed: Invalid argument
NVMAP_IOC_WRITE failed: Invalid argument
NVMAP_IOC_WRITE failed: Invalid argument
...

It seems it works with I420 from CPU memory, and both I420 and NV12 from NVMM memory.
Is this known ?

Hi HoneyP,
nvoverlaysink is designed to mainly render ‘video/x-raw(memory:NVMM)’ out, so for ‘video/x-raw,format=NV12’, we suggest use nvvidconv to convert CPU buffers(video/x-raw) into NVMM buffers.