Condividi tramite


Aggiornamenti per IddCx versioni 1.10 e successive

Questo articolo descrive gli aggiornamenti eseguiti in IddCx versione 1.10. Un singolo driver di visualizzazione indiretto (IDD) binario compilato in IddCx 1.10 può essere eseguito in Windows 10, versione 1803 e successive usando i controlli di runtime per verificare se le modifiche DDI in IddCx 1.10 sono disponibili nel sistema. Per altre informazioni, vedere Compilazione di un driver WDF per più versioni di Windows.

Le modifiche di IddCx 1.10 rientrano nelle categorie seguenti:

  • Aggiornare la versione iddCxGetVersion (console e remota). Per un elenco completo delle informazioni sulla versione correlate a IddCx, vedere Versioni di IddCx.
  • Aggiungere il supporto HDR10 (intervallo dinamico elevato) e SDR (intervallo dinamico standard) wide color gamut (WCG) a display indiretti.

Versione aggiornata di IddCxGetVersion

Il valore restituito da IddCxGetVersion è stato aggiornato ma differisce a seconda del sistema operativo:

  • La versione della piattaforma Windows 11 versione 24H2 restituisce 0x1A80 (IDDCX_VERSION_GERMANIUM).
  • L'aggiornamento di settembre di Windows 11 versione 22H2 restituisce 0x1A00 (IDDCX_VERSION_SV3).

Questo controllo delle versioni è significativo per i driver remoti in cui il comportamento del sistema operativo è leggermente diverso.

Supporto della gamma di colori HDR e SDR

Per alcune informazioni introduttive sul colore in Windows, tra cui SDR WCG, vedi DirectX con colore avanzato sui display HDR e SDR.

Supporto DDI e sistema operativo dei driver

Se possibile, le DDI esistenti sono state estese per consentire a un driver di segnalare il supporto per:

  • HDR10
  • SDR WCG
  • Ricezione di dati che descrivono i fotogrammi HDR inviati a un IDD

Sono state aggiunte varianti più recenti di DDI esistenti quando non è stato possibile estendere le DDI esistenti. Nella maggior parte dei casi, queste modifiche sono applicabili sia ai driver console che ai driver remoti, ma vengono definiti anche alcuni dettagli specifici dei driver remoti.

La versione 1.10 e i driver successivi che supportano HDR devono usare le varianti DDI più recenti. I driver o i driver meno recenti che non supportano HDR possono continuare a usare le funzioni esistenti. Una panoramica delle modifiche è disponibile nelle sezioni successive a questa.

La tabella seguente elenca le DDI implementate dal driver aggiunte in IddCx 1.10 e assegna un nome all'equivalente precedente, se presente. Il sistema operativo potrebbe chiamare queste funzioni se il driver li segnala, anche per le schede che non provano a supportare HDR.

Funzioni del driver che il sistema operativo chiama per schede HDR Funzione equivalente precedente
EVT_IDD_CX_ADAPTER_QUERY_TARGET_INFO N/D
EVT_IDD_CX_MONITOR_SET_DEFAULT_HDR_METADATA* N/D
EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION2** EVT_IDD_CX_PARSE_MONITOR_DESCRIPTION
EVT_IDD_CX_MONITOR_QUERY_TARGET_MODES2 EVT_IDD_CX_MONITOR_QUERY_TARGET_MODES
EVT_IDD_CX_ADAPTER_COMMIT_MODES2 EVT_IDD_CX_ADAPTER_COMMIT_MODES

*: La funzione non viene chiamata per i driver remoti.

**: la funzione potrebbe non essere chiamata per i driver remoti a seconda dei flag dell'adattatore impostati dal driver.

La tabella seguente elenca le funzioni implementate dal sistema operativo aggiunte in IddCx 1.10 e assegna un nome a qualsiasi equivalente precedente. Un driver versione 1.10 può chiamare le varianti più recenti dopo aver determinato che queste funzioni sono disponibili nel sistema operativo in cui è in esecuzione il driver.

Le funzioni più recenti che un driver deve chiamare per le schede HDR Equivalente precedente
IddCxSwapChainReleaseAndAcquireBuffer2 IddCxSwapChainReleaseAndAcquireBuffer/IddCxSwapChainReleaseAndAcquireSystemBuffer
IddCxMonitorQueryHardwareCursor3 IddCxMonitorQueryHardwareCursor2 o IddCxMonitorQueryHardwareCursor
IddCxAdapterDisplayConfigUpdate2* IddCxAdapterDisplayConfigUpdate*
IddCxMonitorUpdateModes2 IddCxMonitorUpdateModes

*: solo per l'uso da parte di driver remoti.

Supporto HDR dell'adattatore di report

La versione 1.10 e i driver precedenti devono impostare il flag di IDDCX_ADAPTER_FLAGS_CAN_PROCESS_FP16 aggiunto a IDDCX_ADAPTER_FLAGS per segnalare il supporto per le superfici FP16. Le superfici FP16 possono essere usate per HDR10 o solo SDR WCG. L'impostazione di questo flag implica che un driver esegue tutte le operazioni necessarie per abilitare HDR10 o SDR WCG, tra cui:

Funzionalità HDR di destinazione per la creazione di report

Se un driver desidera abilitare HDR per una scheda, deve fornire informazioni aggiuntive su ogni connettore di destinazione tramite la relativa funzione di EVT_IDD_CX_ADAPTER_QUERY_TARGET_INFO . Le informazioni specifiche del connettore di destinazione sono necessarie perché solo alcune delle destinazioni disponibili potrebbero supportare alcuni aspetti di HDR.

Metadati HDR

Quando il driver fornisce un descrittore di monitoraggio contenente metadati HDR, il sistema operativo chiama EVT_IDD_CX_MONITOR_SET_DEFAULT_HDR_METADATA per assegnare i metadati HDR predefiniti al driver. Il driver deve mantenere questi dati predefiniti e usarli quando si inviano frame di informazioni HDR10 (SMPTE ST.2086) al monitor. Quando un driver chiama IddCxSwapChainReleaseAndAcquireBuffer2, il sistema operativo fornisce anche informazioni sui metadati HDR. Se questi metadati indicano che l'impostazione predefinita deve essere usata, fa riferimento ai dati predefiniti archiviati.

Quando viene impostata una modalità HDR, il sistema operativo invia lo stato dei metadati HDR con ogni fotogramma. Questi metadati indicano al driver quali metadati HDR usare tramite la struttura di IDDCX_METADATA2 introdotta. I metadati sono un nuovo blocco di metadati o un'indicazione che il driver deve usare i metadati predefiniti forniti in precedenza dal sistema operativo o gli stessi metadati del frame precedente.

Nota: i metadati HDR non sono resi disponibili per i driver remoti perché tutti i metadati HDR10 devono provenire dal sottosistema di visualizzazione sul client.

Modalità HDR per la creazione di report

Quando una visualizzazione è connessa a una destinazione, il sistema operativo esegue una query sul driver per le modalità di monitoraggio e destinazione attualmente supportate. Per annunciare correttamente le funzionalità HDR, sono necessarie informazioni aggiuntive per ognuna di queste modalità, quindi un driver HDR deve esporre le DDI seguenti introdotte nella versione 1.10:

Queste modalità estese indicano le possibili profondità dei bit e i formati di superficie che possono essere usati. Un driver può anche aggiornare un elenco di modalità di destinazione chiamando IddCxMonitorUpdateModes2.

Il sistema operativo deduce le variazioni delle modalità per HDR e WCG SDR in base alle informazioni restituite dal callback del driver EVT_IDD_CX_ADAPTER_QUERY_TARGET_INFO prima che vengano segnalate le modalità.

Il sistema operativo convalida le modalità per provare a rilevare le modalità ripetute che devono essere combinate e segnalate come modalità singola. Ad esempio, una destinazione che supporta 1080p a 60 Hz in 8 bit e 10 bit per canale deve essere segnalata come modalità singola. Tuttavia, se la destinazione supporta queste modalità, ma richiedono quantità diverse di larghezza di banda, è comunque possibile che queste modalità vengano segnalate separatamente.

Tipo gamma aggiunto

La EVT_IDD_CX_MONITOR_SET_GAMMA_RAMP DDI esistente è stata estesa in modo che il sistema operativo possa fornire la trasformazione della matrice 3x4 necessaria per supportare i display HDR ai driver che annunciano il supporto HDR.

Livello bianco SDR

I dati dei pixel del cursore del mouse sono sempre SDR. Quando un monitor è impostato in modalità HDR, il livello bianco SDR deve essere applicato ai cursori del mouse. IddCx v.10 offre questa funzionalità in due posizioni:

  • È stato aggiunto ai metadati per fotogrammi ricevuti da un driver quando si chiama IddCxSwapChainReleaseAndAcquireBuffer2.
  • Fa anche parte della funzione IddCxMonitorQueryHardwareCursor3 introdotta in modo che un driver possa eseguire il rendering degli aggiornamenti del cursore a livello di bianco corretto senza dover ricevere un nuovo frame. Il livello bianco SDR predefinito è 80 nit.

Spazio colori superficie

Anche se il driver ha segnalato lo spazio colore come parte delle informazioni sulla modalità, il sistema operativo segnala lo spazio di colore effettivo usato da un frame specifico nella struttura IDDCX_METADATA2 introdotta.

HDR con driver remoti

Se possibile, il comportamento del sistema operativo e del driver deve essere lo stesso per un driver remoto come con un driver della console. Le eccezioni sono le seguenti:

  • I metadati HDR non vengono forniti ai driver remoti. È previsto che il sistema client fornisca questi metadati in base alla visualizzazione fisicamente connessa. Non è significativo usare i metadati determinati dal server.
  • La trasformazione matrice di colori 3x4 non viene inviata. Anche in questo caso, è previsto che un driver remoto usi i dati equivalenti dal sistema client.
  • I driver remoti possono fornire i dati di colorimetria e il livello bianco SDR da usare nel server.
  • Le modalità di monitoraggio sono facoltative anche per i driver remoti. Se un driver remoto imposta il flag di adattatore IDDCX_ADAPTER_FLAGS_ALL_TARGET_MODES_MONITOR_COMPATIBLE , il sistema operativo non chiederà le modalità di monitoraggio e usa solo le modalità di destinazione. Questa funzionalità consente a un driver di specificare modalità insolite senza dover segnalare la modalità di monitoraggio equivalente; Ad esempio, in base alle dimensioni di una finestra client anziché a una dimensione del monitor.

Supporto di un driver 1.10 in esecuzione di livello inferiore

I driver versione 1.10 eseguiti nelle versioni precedenti di Windows devono eseguire diversi passaggi per garantire la compatibilità. In particolare, i driver devono:

Esempio di come usare IDD_IS_FIELD_AVAILABLE :

    if (IDD_IS_FIELD_AVAILABLE(IDD_CX_CLIENT_CONFIG, EvtIddCxParseMonitorDescription2))
    {
        IddCxClientConfig.EvtIddCxParseMonitorDescription2 = ParseMonitorDescription2;
    }

Per altre informazioni, vedere Compilazione di driver IddCx 1.4.