The issue appears to be in at least two functions
For both VdpOutputSurfaceRenderOutputSurface and VdpOutputSurfaceRenderBitmapSurface
According to NVIDIA's documentation:
"source_surface The source surface for the compositing operation. The surface is treated as having four components: red, green, blue and alpha. Any missing components are treated as 1.0. For example, for an A8 VdpBitmapSurface, alpha will come from the surface but red, green and blue will be treated as 1.0. If source_surface is NULL, all components will be treated as 1.0. Note that destination_surface and source_surface must have been allocated via the same VdpDevice."
The key point being: "If source_surface is NULL, all components will be treated as 1.0"
However, mesa's vdpau immediately returns an error if the VdpBitmapSurface is invalid.
NULL provided as a parameter, be it a video surface or a bitmap surface usually have a specific meaning, and doesn't always signify an error
Created attachment 104577 [details] [review]
The attached patch should fix the issue, please test.
I've just pushed the fix upstream.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct.