Direct3D 11 Video Processors

ID3D11VideoContext::VideoProcessorSetOutputTargetRect method:

The target rectangle is the area within the destination surface where the output will be drawn. The target rectangle is given in pixel coordinates, relative to the destination surface. If this method is never called, or if the Enable parameter is FALSE, the video processor writes to the entire destination surface.

Okay, let us try it out deflating output rectangle “creating a margin”.

OutputPosition.SetRect(0, 0, OutputTextureDescription.Width, OutputTextureDescription.Height);
OutputPosition.DeflateRect(OutputTextureDescription.Width / 8, OutputTextureDescription.Height / 8);
pVideoContext->VideoProcessorSetOutputTargetRect(pVideoProcessor, TRUE, OutputPosition);

Ability to take care of destination rectangle, Radeon RX 570 Series vs. Intel(R) UHD Graphics 630

Why worry, maybe it is just one small bug for today? Oh, no. Forget SetOutputTargetRect, now just plain texture-to-texture with the same DXGI format. These two are produced on the same system, just different GPUs. NVIDIA GeForce GTX 1080 Ti adds a purple tint to the output when it is basically not expected to:

Ability to keep colors right, NVIDIA GeForce GTX 1080 Ti vs. Intel(R) UHD Graphics 630

This one does not even look a bug compared to mentioned above. Even though it was an “optimal quality” request Radeon’s optimal quality is not really impressing:

Text downscaling, Radeon RX 570 Series vs. Intel(R) UHD Graphics 630

Leave a Reply