Costanti D3DCOMPILE
Le costanti D3DCOMPILE specificano il modo in cui il compilatore compila il codice HLSL.
Costante | Descrizione | Nota |
---|---|---|
|
Indirizza il compilatore all'inserimento di informazioni su file/riga/tipo/simbolo di debug nel codice di output. | Vedere D3DXSHADER_DEBUG |
|
Indirizza il compilatore a non convalidare il codice generato in base a funzionalità e vincoli noti. È consigliabile usare questa costante solo con shader compilati correttamente in passato. DirectX convalida sempre gli shader prima di impostarli su un dispositivo. | Vedere D3DXSHADER_SKIPVALIDATION |
|
Indica al compilatore di ignorare i passaggi di ottimizzazione durante la generazione del codice. È consigliabile impostare questa costante solo a scopo di debug. | Vedere D3DXSHADER_SKIPOPTIMIZATION |
|
Indirizza il compilatore a comprimere le matrici nell'ordine principale delle righe in base all'input e all'output dello shader. | Vedere D3DXSHADER_PACKMATRIX_ROWMAJOR |
|
Indirizza il compilatore a comprimere le matrici nell'ordine principale della colonna in base all'input e all'output dello shader. Questo tipo di imballaggio è in genere più efficiente perché una serie di prodotti dot-products può quindi eseguire la moltiplicazione vettoriale.this type of packing is generalmente more efficient because a series of dot-products can then perform vector-matrix multiplication. | Vedere D3DXSHADER_PACKMATRIX_COLUMNMAJOR |
|
Indirizza il compilatore a eseguire tutti i calcoli con precisione parziale. Se si imposta questa costante, il codice compilato potrebbe essere eseguito più velocemente in alcuni hardware. | Vedere D3DXSHADER_PARTIALPRECISION |
|
Indirizza il compilatore a compilare un vertex shader per il profilo dello shader più alto successivo. Questa costante attiva il debug e le ottimizzazioni. | Questo flag è applicabile solo a Direct3D 9. Vedere D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT |
|
Indirizza il compilatore a compilare un pixel shader per il profilo shader più alto successivo. Questa costante attiva anche il debug e le ottimizzazioni. | Questo flag è applicabile solo a Direct3D 9. Vedere D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT |
|
Indirizza il compilatore a disabilitare Preshaders. Se si imposta questa costante, il compilatore non estrae l'espressione statica per la valutazione. | Questo flag era applicabile solo a Direct3D 9 legacy e Direct3D 10 Effects (FX). Vedere D3DXSHADER_NO_PRESHADER |
|
Indirizza il compilatore a non usare costrutti di controllo del flusso laddove possibile. | Vedere D3DXSHADER_AVOID_FLOW_CONTROL |
|
Forza la compilazione strict, che potrebbe non consentire la sintassi legacy. Per impostazione predefinita, il compilatore disabilita la rigidità sulla sintassi deprecata. | |
|
Forza la compilazione strict IEEE, evitando ottimizzazioni che potrebbero interrompere le regole IEEE. | Vedere D3DXSHADER_IEEE_STRICTNESS |
|
Indica al compilatore di abilitare gli shader meno recenti per la compilazione in destinazioni 5_0. | Vedere D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY |
|
Indica al compilatore di usare il livello di ottimizzazione più basso. Se si imposta questa costante, il compilatore potrebbe produrre codice più lento, ma produce il codice più rapidamente. Impostare questa costante quando si sviluppa lo shader in modo iterativo. | Vedere D3DXSHADER_OPTIMIZATION_LEVEL0 |
|
Indica al compilatore di usare il secondo livello di ottimizzazione più basso. | Vedere D3DXSHADER_OPTIMIZATION_LEVEL1 |
|
Indirizza il compilatore a usare il secondo livello di ottimizzazione più alto. | Vedere D3DXSHADER_OPTIMIZATION_LEVEL2 |
|
Indirizza il compilatore a usare il livello di ottimizzazione più elevato. Se si imposta questa costante, il compilatore produce il codice migliore possibile, ma potrebbe richiedere molto più tempo. Impostare questa costante per le compilazioni finali di un'applicazione quando le prestazioni sono il fattore più importante. | Vedere D3DXSHADER_OPTIMIZATION_LEVEL3 |
|
Indirizza il compilatore a considerare tutti gli avvisi come errori quando compila il codice dello shader. È consigliabile usare questa costante per il nuovo codice shader, in modo da poter risolvere tutti gli avvisi e ridurre il numero di errori di codice difficili da trovare. | |
|
Indica al compilatore di presupporre che le viste di accesso non ordinate (UAV) e le viste delle risorse shader (SRV) possano eseguire l'alias per cs_5_0. | Si applica solo al modello DirectX 12/shader 5.1 |
|
Indirizza il compilatore per abilitare le tabelle del descrittore non associato. | Si applica solo al modello DirectX 12/shader 5.1 |
|
Indirizza il compilatore per assicurarsi che tutte le risorse siano associate. | Si applica solo a DirectX 12/Shader Model 5.1 |
|
Quando si generano PDB di debug, questo usa il file di origine e il file binario per l'hash. | |
|
Quando si generano pdb di debug, questo usa solo il nome del file binario per l'hash. |
Nota
Le D3DCOMPILE_RESOURCES_MAY_ALIAS
costanti , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
e D3DCOMPILE_ALL_RESOURCES_BOUND
del compilatore sono nuove a partire dalla D3dcompiler_47.dll fornita con l'SDK Windows 8.1 o versioni successive.
Nota
Le D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
costanti del compilatore e D3DCOMPILE_DEBUG_NAME_FOR_BINARY
sono nuove a partire dalla D3dcompiler_47.dll fornita con Windows 10 l'SDK di aggiornamento di Fall Creator (versione 16299) o successiva. Vedere questo post di blog.
Nota
Per DirectX 12, Shader Model 5.1, l'API D3DCompile e FXC sono tutti deprecati. Usare invece shader Model 6 tramite DXIL. Vedere GitHub.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|