Re: [PATCH] drm/amd/display: Use pixel encoding 444 for dongle usb-c to hdmi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Gentle ping ?

Thx
Julien

On Fri, Oct 11, 2019 at 12:31 PM Julien Isorce <julien.isorce@xxxxxxxxx> wrote:
Hi Harry,

Do you need more information ?

Thx
Julien

On Tue, Oct 8, 2019 at 11:15 AM Julien Isorce <julien.isorce@xxxxxxxxx> wrote:
Hi Harry,

I can reproduce on LG, Samsung and NEC monitors.

"Have you checked whether the driver picks RGB or YCBCR420 without your
patch?" -> it was selecting RGB .

For example on https://commons.wikimedia.org/wiki/File:Gray_scale.jpg , the second band from the left, will be entirely pinkish.
Since the issue also happens without dongle, so with a direct cable from the miniDP from the graphic card to DisplayPort on the screen I think there is more serious issue with RGB output in amdgpu. But it is not easy to reproduce, you should try on above image.

In any case, the goal with the patch is just to get the same output when using 2 screens at the same time, one connected to hdmi output of the graphic card and one connected  to usb-c to graphic card (hdmi cable with dongle). So prior this patch, the first one would use YCbCr 444 and the second would use RGB.
After this patch, both will use YCbCr 444 (both are hdmi).
The patch does not change the case for miniDP to DisplayPort, the driver will still use RGB. Because maybe the RGB issue is also specific to that graphic card which
is VEGA"M". So that is why the patch only tries to match hdmi cases together, whether it is direct connection or through usb-c.

-
Julien



On Tue, Oct 8, 2019 at 10:44 AM Harry Wentland <hwentlan@xxxxxxx> wrote:
Hi Julien,

curious which monitor you're using.

Have you checked whether the driver picks RGB or YCBCR420 without your
patch?

I'm not sure I understand how the pinkish color issue looks. Do you see
a pinkish color at the transition from grey to another color? Or is the
entire grey area pinkish?

Thanks,
Harry

On 2019-10-08 12:06 p.m., Julien Isorce wrote:
> Hi,
>
> Gentle ping ?
>
> Thx
> Julien
>
> On Tue, Oct 1, 2019 at 3:21 PM Julien Isorce <julien.isorce@xxxxxxxxx
> <mailto:julien.isorce@xxxxxxxxx>> wrote:
>
>     Fix pinkish color issue around grey areas. This also happens
>     when not using any dongle so directly with a usb-c to Display
>     Port cable. Meaning there is something wrong when using pixel
>     encoding RGB with amd driver in the general case. In the meantime
>     just use the same pixel encoding as when using HDMI without dongle.
>     This way users will see the same thing on 2 identical screens when
>     one is connected with hdmi-to-hdmi and the other is connected with
>     usb-c-to-hdmi.
>
>     Signed-off-by: Julien Isorce <jisorce@xxxxxxxxxx
>     <mailto:jisorce@xxxxxxxxxx>>
>     ---
>      drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 +++++
>      1 file changed, 5 insertions(+)
>
>     diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>     b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>     index d3f404f097eb..8139dcc0bfba 100644
>     --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>     +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>     @@ -3313,6 +3313,7 @@ static void
>     fill_stream_properties_from_drm_display_mode(
>      {
>             struct dc_crtc_timing *timing_out = &stream->timing;
>             const struct drm_display_info *info = &connector->display_info;
>     +       const struct dc_link *link = stream->sink->link;
>
>             memset(timing_out, 0, sizeof(struct dc_crtc_timing));
>
>     @@ -3327,6 +3328,10 @@ static void
>     fill_stream_properties_from_drm_display_mode(
>             else if ((connector->display_info.color_formats &
>     DRM_COLOR_FORMAT_YCRCB444)
>                             && stream->signal == SIGNAL_TYPE_HDMI_TYPE_A)
>                     timing_out->pixel_encoding = PIXEL_ENCODING_YCBCR444;
>     +       else if ((connector->display_info.color_formats &
>     DRM_COLOR_FORMAT_YCRCB444)
>     +                       && stream->sink->sink_signal ==
>     SIGNAL_TYPE_DISPLAY_PORT
>     +                       && link->dpcd_caps.dongle_type ==
>     DISPLAY_DONGLE_DP_HDMI_CONVERTER)
>     +               timing_out->pixel_encoding = PIXEL_ENCODING_YCBCR444;
>             else
>                     timing_out->pixel_encoding = PIXEL_ENCODING_RGB;
>
>     --
>     2.17.1
>
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux