Share via


Costanti D3DCOMPILE

Le costanti D3DCOMPILE specificano il modo in cui il compilatore compila il codice HLSL.

Costante Descrizione Nota
D3DCOMPILE_DEBUG
/Zi
Indirizza il compilatore all'inserimento di informazioni su file/riga/tipo/simbolo di debug nel codice di output. Vedere D3DXSHADER_DEBUG
D3DCOMPILE_SKIP_VALIDATION
/Vd
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
D3DCOMPILE_SKIP_OPTIMIZATION
/Od
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
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
/Zpr
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
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
/Zpc
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
D3DCOMPILE_PARTIAL_PRECISION
/Gpp
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
D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
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
D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
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
D3DCOMPILE_NO_PRESHADER
/Op
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
D3DCOMPILE_AVOID_FLOW_CONTROL
/Gfa
Indirizza il compilatore a non usare costrutti di controllo del flusso laddove possibile. Vedere D3DXSHADER_AVOID_FLOW_CONTROL
D3DCOMPILE_ENABLE_STRICTNESS
/Ges
Forza la compilazione strict, che potrebbe non consentire la sintassi legacy. Per impostazione predefinita, il compilatore disabilita la rigidità sulla sintassi deprecata.
D3DCOMPILE_IEEE_STRICTNESS
/Gis
Forza la compilazione strict IEEE, evitando ottimizzazioni che potrebbero interrompere le regole IEEE. Vedere D3DXSHADER_IEEE_STRICTNESS
D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
/Gec
Indica al compilatore di abilitare gli shader meno recenti per la compilazione in destinazioni 5_0. Vedere D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY
D3DCOMPILE_OPTIMIZATION_LEVEL0
/O0
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
D3DCOMPILE_OPTIMIZATION_LEVEL1
/O1
Indica al compilatore di usare il secondo livello di ottimizzazione più basso. Vedere D3DXSHADER_OPTIMIZATION_LEVEL1
D3DCOMPILE_OPTIMIZATION_LEVEL2
/O2
Indirizza il compilatore a usare il secondo livello di ottimizzazione più alto. Vedere D3DXSHADER_OPTIMIZATION_LEVEL2
D3DCOMPILE_OPTIMIZATION_LEVEL3
/O3
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
D3DCOMPILE_WARNINGS_ARE_ERRORS
/WX
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.
D3DCOMPILE_RESOURCES_MAY_ALIAS
/res_may_alias
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
D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
/enable_unbounded_descriptor_tables
Indirizza il compilatore per abilitare le tabelle del descrittore non associato. Si applica solo al modello DirectX 12/shader 5.1
D3DCOMPILE_ALL_RESOURCES_BOUND
/all_resources_bound
Indirizza il compilatore per assicurarsi che tutte le risorse siano associate. Si applica solo a DirectX 12/Shader Model 5.1
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
/Zss
Quando si generano PDB di debug, questo usa il file di origine e il file binario per l'hash.
D3DCOMPILE_DEBUG_NAME_FOR_BINARY
/Zsb
Quando si generano pdb di debug, questo usa solo il nome del file binario per l'hash.

Nota

Le D3DCOMPILE_RESOURCES_MAY_ALIAScostanti , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLESe 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
D3DCompiler.h

Vedi anche

Costanti D3DCompiler