This is a bit sketchy in terms of implementation, with some rough edges, but for the most part IT WORKS.
That is to say, I get an obvious 3D output when using the "testdisplay" program from intel-gpu-tools with the "-3" parameter and outputting to a 3D-capable HDMI display. Rough edges include: the criteria for when to enable 3D mode selection, and the inconsistent support for setting InfoFrames on HDMI outputs. Signed-off-by: Alastair Bridgewater <alastair.bridgewa...@gmail.com> --- drivers/gpu/drm/nouveau/nouveau_connector.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 947c200..11b4977 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -547,6 +547,16 @@ nouveau_connector_set_encoder(struct drm_connector *connector, DRM_MODE_SUBCONNECTOR_DVID : DRM_MODE_SUBCONNECTOR_DVIA); } + + if (nv_encoder->dcb->type == DCB_OUTPUT_TMDS) { + /* Can we just ask for the drm connector type? */ + /* + * FIXME: Does this also kick in for DVI or DP->DVI + * connectors? It shouldn't. + */ + /* FIXME: Should only allow when we can set InfoFrames */ + connector->stereo_allowed = true; + } } static enum drm_connector_status @@ -1044,6 +1054,9 @@ nouveau_connector_mode_valid(struct drm_connector *connector, return MODE_BAD; } + if ((mode->flags & DRM_MODE_FLAG_3D_MASK) == DRM_MODE_FLAG_3D_FRAME_PACKING) + clock *= 2; + if (clock < min_clock) return MODE_CLOCK_LOW; -- 2.10.2 _______________________________________________ Nouveau mailing list Nouveau@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/nouveau