On 2019-10-08 2:15 p.m., Julien Isorce 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. >
I haven't had time to repro this issue. Can you post a picture of this problem somewhere? Ideally with a bug description at https://gitlab.freedesktop.org/drm/amd/issues > 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). I've been hesitant about this patch since it changes driver policy which is not something I like to do without very good reason and understanding all the implications. That said, treating an DP-HDMI adapter like a native HDMI connection rather than DP is not unreasonable. I'm still curious, though, why this is required at all. As mentioned above a picture of the problem (ideally showing the monitors side-by-side) would help. Harry > 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 <hwent...@amd.com > <mailto:hwent...@amd.com>> 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.iso...@gmail.com <mailto:julien.iso...@gmail.com> > > <mailto:julien.iso...@gmail.com <mailto:julien.iso...@gmail.com>>> > 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 <jiso...@oblong.com > <mailto:jiso...@oblong.com> > > <mailto:jiso...@oblong.com <mailto:jiso...@oblong.com>>> > > --- > > 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@lists.freedesktop.org <mailto:amd-gfx@lists.freedesktop.org> > > https://lists.freedesktop.org/mailman/listinfo/amd-gfx > > > _______________________________________________ amd-gfx mailing list amd-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/amd-gfx