Konstanta D3DCOMPILE

Konstanta D3DCOMPILE menentukan bagaimana pengkompilasi mengkompilasi kode HLSL.

Terus-menerus Deskripsi Catatan
D3DCOMPILE_DEBUG
/Zi
Mengarahkan pengkompilasi untuk menyisipkan informasi file debug/baris/jenis/simbol ke dalam kode output. Lihat D3DXSHADER_DEBUG
D3DCOMPILE_SKIP_VALIDATION
/Vd
Mengarahkan kompilator untuk tidak memvalidasi kode yang dihasilkan terhadap kemampuan dan batasan yang diketahui. Kami menyarankan agar Anda menggunakan konstanta ini hanya dengan shader yang telah berhasil dikompilasi di masa lalu. DirectX selalu memvalidasi shader sebelum mengaturnya ke perangkat. Lihat D3DXSHADER_SKIPVALIDATION
D3DCOMPILE_SKIP_OPTIMIZATION
/Od
Mengarahkan pengkompilasi untuk melewati langkah-langkah pengoptimalan selama pembuatan kode. Kami menyarankan agar Anda mengatur konstanta ini hanya untuk tujuan debug. Lihat D3DXSHADER_SKIPOPTIMIZATION
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
/Zpr
Mengarahkan pengkompilasi untuk mengemas matriks dalam urutan besar baris pada input dan output dari shader. Lihat D3DXSHADER_PACKMATRIX_ROWMAJOR
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
/Zpc
Mengarahkan pengkompilasi untuk mengemas matriks dalam urutan kolom-utama pada input dan output dari shader. Jenis pengemasan ini umumnya lebih efisien karena serangkaian produk titik kemudian dapat melakukan perkalian vektor-matriks. Lihat D3DXSHADER_PACKMATRIX_COLUMNMAJOR
D3DCOMPILE_PARTIAL_PRECISION
/Gpp
Mengarahkan kompilator untuk melakukan semua komputasi dengan presisi parsial. Jika Anda mengatur konstanta ini, kode yang dikompilasi mungkin berjalan lebih cepat pada beberapa perangkat keras. Lihat D3DXSHADER_PARTIALPRECISION
D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
Mengarahkan kompilator untuk mengkompilasi shader vertex untuk profil shader tertinggi berikutnya. Konstanta ini mengaktifkan penelusuran kesalahan dan pengoptimalan. Bendera ini hanya berlaku untuk Direct3D 9. Lihat D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT
D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
Mengarahkan pengkompilasi untuk mengkompilasi shader piksel untuk profil shader tertinggi berikutnya. Konstanta ini juga menonaktifkan penelusuran kesalahan dan pengoptimalan. Bendera ini hanya berlaku untuk Direct3D 9. Lihat D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT
D3DCOMPILE_NO_PRESHADER
/Op
Mengarahkan kompilator untuk menonaktifkan Preshaders. Jika Anda mengatur konstanta ini, pengkompilasi tidak mengeluarkan ekspresi statis untuk evaluasi. Bendera ini hanya berlaku untuk Direct3D 9 warisan dan Direct3D 10 Effects (FX). Lihat D3DXSHADER_NO_PRESHADER
D3DCOMPILE_AVOID_FLOW_CONTROL
/Gfa
Mengarahkan kompilator untuk tidak menggunakan konstruksi kontrol aliran jika memungkinkan. Lihat D3DXSHADER_AVOID_FLOW_CONTROL
D3DCOMPILE_ENABLE_STRICTNESS
/Ges
Memaksa kompilasi ketat, yang mungkin tidak memungkinkan sintaksis warisan. Secara default, pengkompilasi menonaktifkan ketegasan pada sintaks yang tidak digunakan lagi.
D3DCOMPILE_IEEE_STRICTNESS
/Gis
Memaksa kompilasi ketat IEEE yang menghindari pengoptimalan yang dapat melanggar aturan IEEE. Lihat D3DXSHADER_IEEE_STRICTNESS
D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
/Gec
Mengarahkan pengkompilasi untuk mengaktifkan shader yang lebih lama untuk dikompilasi ke target 5_0. Lihat D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY
D3DCOMPILE_OPTIMIZATION_LEVEL0
/O0
Mengarahkan kompilator untuk menggunakan tingkat pengoptimalan terendah. Jika Anda mengatur konstanta ini, pengkompilasi mungkin menghasilkan kode yang lebih lambat tetapi menghasilkan kode dengan lebih cepat. Atur konstanta ini saat Anda mengembangkan shader secara berulang. Lihat D3DXSHADER_OPTIMIZATION_LEVEL0
D3DCOMPILE_OPTIMIZATION_LEVEL1
/O1
Mengarahkan kompilator untuk menggunakan tingkat pengoptimalan terendah kedua. Lihat D3DXSHADER_OPTIMIZATION_LEVEL1
D3DCOMPILE_OPTIMIZATION_LEVEL2
/O2
Mengarahkan kompilator untuk menggunakan tingkat pengoptimalan tertinggi kedua. Lihat D3DXSHADER_OPTIMIZATION_LEVEL2
D3DCOMPILE_OPTIMIZATION_LEVEL3
/O3
Mengarahkan kompilator untuk menggunakan tingkat pengoptimalan tertinggi. Jika Anda mengatur konstanta ini, pengkompilasi menghasilkan kode terbaik tetapi mungkin membutuhkan waktu yang jauh lebih lama untuk melakukannya. Atur konstanta ini untuk build akhir aplikasi ketika performa adalah faktor yang paling penting. Lihat D3DXSHADER_OPTIMIZATION_LEVEL3
D3DCOMPILE_WARNINGS_ARE_ERRORS
/WX
Mengarahkan pengkompilasi untuk memperlakukan semua peringatan sebagai kesalahan ketika mengkompilasi kode shader. Kami menyarankan agar Anda menggunakan konstanta ini untuk kode shader baru, sehingga Anda dapat menyelesaikan semua peringatan dan menurunkan jumlah cacat kode yang sulit ditemukan.
D3DCOMPILE_RESOURCES_MAY_ALIAS
/res_may_alias
Mengarahkan kompilator untuk mengasumsikan bahwa tampilan akses yang tidak diurutkan (UAV) dan tampilan sumber daya shader (SRV) mungkin alias untuk cs_5_0. Hanya berlaku untuk DirectX 12 / Shader Model 5.1
D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
/enable_unbounded_descriptor_tables
Mengarahkan pengkompilasi untuk mengaktifkan tabel deskriptor yang tidak terikat. Hanya berlaku untuk DirectX 12 / Shader Model 5.1
D3DCOMPILE_ALL_RESOURCES_BOUND
/all_resources_bound
Mengarahkan pengkompilasi untuk memastikan semua sumber daya terikat. Hanya berlaku untuk DirectX 12 / Shader Model 5.1
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
/Zss
Saat menghasilkan PDB debug, ini memanfaatkan file sumber dan biner untuk hash.
D3DCOMPILE_DEBUG_NAME_FOR_BINARY
/Zsb
Saat menghasilkan PDB debug, ini menggunakan nama file biner hanya untuk hash.

Catatan

Konstanta D3DCOMPILE_RESOURCES_MAY_ALIASpengkompilasi , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES, dan D3DCOMPILE_ALL_RESOURCES_BOUND baru dimulai dengan D3dcompiler_47.dll yang dikirim dengan SDK Windows 8.1 atau yang lebih baru.

Catatan

Konstanta D3DCOMPILE_DEBUG_NAME_FOR_SOURCE pengkompilasi dan D3DCOMPILE_DEBUG_NAME_FOR_BINARY baru dimulai dengan D3dcompiler_47.dll yang dikirim dengan SDK Pembaruan Windows 10 Fall Creator (versi 16299) atau yang lebih baru. Lihat posting blog ini.

Catatan

Untuk DirectX 12, Model Shader 5.1, API D3DCompile, dan FXC semuanya tidak digunakan lagi. Gunakan Shader Model 6 melalui DXIL sebagai gantinya. Lihat GitHub.

Persyaratan

Persyaratan Nilai
Header
D3DCompiler.h

Lihat juga

Konstanta D3DCompiler