The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"AMD не смог реализовать HDMI 2.1 в открытых драйверах из-за требований HDMI Forum"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Открытый драйвер AMD поддерживает Freesync на HDMI" +/
Сообщение от n00by (ok), 04-Мрт-24, 14:18 
Как пришлось решить схожую проблему с Freesync https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...

Открытый драйвер AMD поддерживает Freesync на DP и HDMI дисплеях:

/**
* amdgpu_dm_update_freesync_caps - Update Freesync capabilities
*
* @connector: Connector to query.
* @edid: EDID from monitor
*
* Amdgpu supports Freesync in DP and HDMI displays, and it is required to keep
* track of some of the display information in the internal data struct used by
* amdgpu_dm. This function checks which type of connector we need to set the
* FreeSync parameters.
*/

Вот код для HDMI https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...


    } else if (edid && sink->sink_signal == SIGNAL_TYPE_HDMI_TYPE_A) {
        i = parse_hdmi_amd_vsdb(amdgpu_dm_connector, edid, &vsdb_info);
        if (i >= 0 && vsdb_info.freesync_supported) {
            timing  = &edid->detailed_timings[i];
            data    = &timing->data.other_data;

            amdgpu_dm_connector->min_vfreq = vsdb_info.min_refresh_rate_hz;
            amdgpu_dm_connector->max_vfreq = vsdb_info.max_refresh_rate_hz;
            if (amdgpu_dm_connector->max_vfreq - amdgpu_dm_connector->min_vfreq > 10)
                freesync_capable = true;

            connector->display_info.monitor_range.min_vfreq = vsdb_info.min_refresh_rate_hz;
            connector->display_info.monitor_range.max_vfreq = vsdb_info.max_refresh_rate_hz;
        }
    }


Если копнуть глубже, то parse_hdmi_amd_vsdb() вызывает

static bool parse_edid_cea_dmub(struct amdgpu_display_manager *dm,
        u8 *edid_ext, int len,
        struct amdgpu_hdmi_vsdb_info *vsdb_info)
{
    int i;

    /* send extension block to DMCU for parsing */
    for (i = 0; i < len; i += 8) {
        /* send 8 bytes a time */
        if (!dm_edid_parser_send_cea(dm, i, len, &edid_ext[i], 8, vsdb_info))
            return false;
    }

    return vsdb_info->freesync_supported;
}


То есть код для определения параметров исполняет Display Management Control Unit (DMCU) - сопроцессор видеоконтроллера, этот код закрыт и находится в фирмвари. Таким образом требования HDMI консорциума выполняются и поддержка Freesync обеспечивается в открытом драйвере.

Проблема касается старых карт серии Polaris https://www.reddit.com/r/linux_gaming/comments/upc1lx/psa_hd.../
где у AMD нет возможности закрыть код в фирмвари, потому пользователям приходится самостоятельно патчить драйвер.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
AMD не смог реализовать HDMI 2.1 в открытых драйверах из-за требований HDMI Forum, opennews, 04-Мрт-24, 09:36  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру