intel/vpl-gpu-rt

[Bug]: [Composition] Blur occurs with tiled composition on TGL-U

james-tang17 opened this issue · 7 comments

Which component impacted?

Video Processing

Is it regression? Good in old configuration?

No, this issue exist a long time

What happened?

Target platform: TGL-U 6305e, i7-1165G7
Target OS: Ubuntu 20.04+
libva 2.14.0
media-driver 22.3.1
gmmlib 22.1.2
onevpl_gpu 22.3.2
onevpl 2022.0.3

The target application is NVR, for composition, there are 3 requirements:

Performance (especially with many input streams such as 64 input streams)
Scaling quality (AVS algorithm accepted, bi-linear is not good enough)
Scaling quality consistence
Additionally, there are some rules:

Due to workload requirements, VDBOX+SFC can’t be used.
For best performance in non-full screen composition, tiled composition is used
To avoid destination Y coordinate alignment caused GPU hang issue on TGL-U GT1, AVS sampler is disabled (EU bi-linear used). intel/media-driver#1499
By disabling VDBOX+SFC and enabling tile composition, we saw blur issue in 2x2 layout composition
image

image

video 2 and video 3 has blur there.
below is the par file we used to reproduce this issue with sample_multi_transcode
-i::h264 chn_0_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 0 -vpp_comp_dst_y 0 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25 -vpp_comp_tile_id 0 -i::h265 chn_1_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 800 -vpp_comp_dst_y 0 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25 -vpp_comp_tile_id 0 -i::h265 chn_1_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 0 -vpp_comp_dst_y 434 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25 -vpp_comp_tile_id 0 -i::h265 chn_1_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 800 -vpp_comp_dst_y 434 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25 -vpp_comp_tile_id 0 -vpp_comp_only 4 -vpp_comp_num_tiles 1 -w 1920 -h 1080 -async 4 -threads 2 -join -hw -i::source -ext_allocator -fps 25 -ec::nv12 -rdrm

For all blur case, below is the par file
-i::h264 chn_0_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 0 -vpp_comp_dst_y 0 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25-i::h265 chn_1_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 800 -vpp_comp_dst_y 0 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25-i::h265 chn_1_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 0 -vpp_comp_dst_y 434 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25-i::h265 chn_1_video.dat -join -hw -async 4 -o::sink -vpp_comp_dst_x 800 -vpp_comp_dst_y 434 -vpp_comp_dst_w 800 -vpp_comp_dst_h 434 -ext_allocator -fps 25-vpp_comp_only 4 -w 1920 -h 1080 -async 4 -threads 2 -join -hw -i::source -ext_allocator -fps 25 -ec::nv12 -rdrm

The question is why there is blur in video 2 and video 3 when tiled composition enabled.

What's the usage scenario when you are seeing the problem?

Others

What impacted?

The question is why there is blur in video 2 and video 3 when tiled composition enabled.

Debug Information

Suppose the video 2/3 using bi-linear as scaling algorithm.

Do you want to contribute a patch to fix the issue?

None

Auto Created VSMGWL-72141 for further analysis.

  1. About configuration 1, why VDBOX+SFC yes? Composition is not supported on SFC. It is confusing.
  2. Which configuration is related to the picture listed in the description? configuration 2?
  3. What's the size of the source input? upscaling or down scaling?
  4. Could you give the steps to reproduce this issue? (input files, APP, command, etc.) Or maybe you can share the environment.
  1. on TGL-U, suppose VDBOX + SFC is still supported
  2. yes, configuration 2
  3. 1080p
  4. yes, let me share my environment next week

Could you help get the driver log of configure2 when the issue reproduced?

expected, bilinear was selected, not AVS.

on TGLU-gt1, while targetYoffset > 0, AVS was disabled.

Because a limit on TGLU-gt1, that when the Y-coordinate is a multiple of 2, it will hit gpu hang.
So while targetYoffset > 0, AVS was disabled, and bilinear selected.
Here blur is just quality drop compared with AVS. output is right and no corruption. The result is expected.

Since the result is expected, close it.