Batas Berlapis Kontrol Aliran

Instruksi kontrol aliran shader vertex memiliki dua batasan khusus. Kedalaman berlapis membatasi jumlah instruksi yang dapat dipanggil di dalam satu sama lain. Selain itu, setiap instruksi memiliki jumlah slot instruksi yang berlaku terhadap jumlah maksimum instruksi yang dapat didukung shader.

Catatan

Saat Anda menggunakan profil shader *_4_0_level_9_x HLSL, Anda secara implisit menggunakan profil Shader Model 2.x untuk mendukung perangkat keras berkemampuan Direct3D 9. Profil Shader Model 2.x mendukung perilaku kontrol alur yang lebih terbatas daripada profil Model Shader 4.x dan yang lebih baru.

 

Jumlah Kedalaman per Instruksi untuk vs_2_0

Setiap instruksi dihitung terhadap satu atau beberapa batas kedalaman bersarang. Tabel ini memperlihatkan jumlah kedalaman yang ditambahkan atau dikurangi setiap instruksi dari kedalaman yang ada:

Instruksi Bersarang statis Bersarang dinamis loop/rep nesting panggilan bersarang Jumlah aliran statis
jika bool - vs 0 0 0 0 1
if_comp - vs n/a n/a n/a n/a n/a
if pred - vs n/a n/a n/a n/a n/a
else - vs 0 0 0 0 1(jika bool - vs saja)
endif - vs -1 0 0 0 0
rep - vs 0 0 1 0 1
endrep - vs 0 0 -1 0 0
perulangan - vs 0 0 1 0 1
endloop - vs 0 0 -1 0 0
break - vs n/a n/a n/a n/a n/a
break_comp - vs n/a n/a n/a n/a n/a
breakp - vs n/a n/a n/a n/a n/a
panggilan - vs 0 0 0 1 1
bool callnz - vs 0 0 0 1 1
callnz pred - vs n/a n/a n/a n/a n/a
ret - vs 0 0 0 -1 0
setp_comp - vs n/a n/a n/a n/a n/a

 

Kedalaman Berlapis

Kedalaman berlapis menentukan berapa banyak instruksi yang dapat dipanggil di dalam satu sama lain. Setiap jenis instruksi memiliki satu atau beberapa batas bersarang:

Jenis Instruksi Maksimum
Bersarang statis Hanya dibatasi oleh jumlah alur statis
Bersarang dinamis n/a
loop/rep nesting 1
panggilan bersarang 1
Jumlah aliran statis 16

 

Jumlah Kedalaman per Instruksi untuk vs_2_x

Setiap instruksi dihitung terhadap satu atau beberapa batas kedalaman bersarang. Tabel ini memperlihatkan jumlah kedalaman yang ditambahkan atau dikurangi setiap instruksi dari kedalaman yang ada:

Instruksi Bersarang statis Bersarang dinamis loop/rep nesting panggilan bersarang Jumlah aliran statis
jika bool - vs 1 0 0 0 1
if_comp - vs 0 1 0 0 0
if pred - vs 0 1 0 0 0
else - vs 0 0 0 0 1(jika bool - vs saja)
endif - vs -1(jika bool - vs) -1(jika pred - vs atau if_comp - vs) 0 0 0
rep - vs 0 0 1 0 1
endrep - vs 0 0 -1 0 0
perulangan - vs 0 0 1 0 1
endloop - vs 0 0 -1 0 0
break - vs 0 0 0 0 0
break_comp - vs 0 1, -1 0 0 0
breakp - vs 0 0 0 0 0
panggilan - vs 0 0 0 1 1
callnz bool - vs 0 0 0 1 1
callnz pred - vs 0 1 0 1 0
ret - vs 0 -1 (callnz pred - vs) 0 -1 0
setp_comp - vs 0 0 0 0 0

 

Kedalaman Berlapis

Kedalaman berlapis menentukan berapa banyak instruksi yang dapat dipanggil di dalam satu sama lain. Setiap jenis instruksi memiliki satu atau beberapa batas bersarang:

Jenis Instruksi Maksimum
Bersarang statis Hanya dibatasi oleh jumlah aliran statis
Bersarang dinamis 0 atau 24, lihat D3DCAPS9. VS20Caps.DynamicFlowControlDepth
perulangan/rep bersarang 1 hingga 4, lihat D3DCAPS9. VS20Caps.StaticFlowControlDepth
panggilan bersarang 1 hingga 4, lihat D3DCAPS9. VS20Caps.StaticFlowControlDepth (terlepas dari batas perulangan/rep)
Jumlah aliran statis 16

 

Jumlah Kedalaman per Instruksi untuk vs_2_sw

Setiap instruksi dihitung terhadap satu atau beberapa batas kedalaman bersarang. Tabel ini memperlihatkan jumlah kedalaman yang ditambahkan atau dikurangi setiap instruksi dari kedalaman yang ada:

Instruksi Bersarang statis Bersarang dinamis perulangan/rep bersarang panggilan bersarang Jumlah aliran statis
jika bool - vs 1 0 0 0 n/a
if_comp - vs 0 1 0 0 n/a
if pred - vs 0 1 0 0 n/a
else - vs 0 0 0 0 n/a
endif - vs -1(jika bool - vs) -1(jika pred - vs atau if_comp - vs) 0 0 n/a
rep - vs 0 0 1 0 n/a
endrep - vs 0 0 -1 0 n/a
perulangan - vs 0 0 1 0 n/a
endloop - vs 0 0 -1 0 n/a
break - vs 0 0 0 0 n/a
break_comp - vs 0 1, -1 0 0 n/a
breakp - vs 0 0 0 0 n/a
panggilan - vs 0 0 0 1 n/a
callnz bool - vs 0 0 0 1 n/a
callnz pred - vs 0 1 0 1 n/a
ret - vs 0 -1 (callnz pred - vs) 0 -1 n/a
setp_comp - vs 0 0 0 0 n/a

 

Kedalaman Berlapis

Kedalaman berlapis menentukan berapa banyak instruksi yang dapat dipanggil di dalam satu sama lain. Setiap jenis instruksi memiliki satu atau beberapa batas bersarang:

Jenis Instruksi Maksimum
Bersarang statis 24
Bersarang dinamis 24
perulangan/rep bersarang 4
panggilan bersarang 4
Jumlah aliran statis Tanpa batasan

 

Jumlah Kedalaman per Instruksi untuk vs_3_0

Setiap instruksi dihitung terhadap satu atau beberapa batas kedalaman bersarang. Tabel ini memperlihatkan jumlah kedalaman yang ditambahkan atau dikurangi setiap instruksi dari kedalaman yang ada:

Instruksi Bersarang statis Bersarang dinamis perulangan/rep bersarang panggilan bersarang Jumlah aliran statis
jika bool - vs 1 0 0 0 n/a
if_comp - vs 0 1 0 0 n/a
if pred - vs 0 1 0 0 n/a
else - vs 0 0 0 0 n/a
endif - vs -1(jika bool - vs) -1(jika pred - vs atau if_comp - vs) 0 0 n/a
rep - vs 0 0 1 0 n/a
endrep - vs 0 0 -1 0 n/a
perulangan - vs 0 0 1 0 n/a
endloop - vs 0 0 -1 0 n/a
break - vs 0 0 0 0 n/a
break_comp - vs 0 1, -1 0 0 n/a
breakp - vs 0 0 0 0 n/a
panggilan - vs 0 0 0 1 n/a
bool callnz - vs 0 0 0 1 n/a
callnz pred - vs 0 1 0 1 n/a
ret - vs 0 -1 (callnz pred - vs) 0 -1 n/a
setp_comp - vs 0 0 0 0 n/a

 

Kedalaman Berlapis

Kedalaman berlapis menentukan berapa banyak instruksi yang dapat dipanggil di dalam satu sama lain. Setiap jenis instruksi memiliki satu atau beberapa batas bersarang:

Jenis Instruksi Maksimum
Bersarang statis 24
Bersarang dinamis 24
loop/rep nesting 4
panggilan bersarang 4
Jumlah aliran statis Tanpa batasan

 

Jumlah Kedalaman per Instruksi untuk vs_3_sw

Setiap instruksi dihitung terhadap satu atau beberapa batas kedalaman bersarang. Tabel ini memperlihatkan jumlah kedalaman yang ditambahkan atau dikurangi setiap instruksi dari kedalaman yang ada:

Instruksi Bersarang statis Bersarang dinamis loop/rep nesting panggilan bersarang Jumlah aliran statis
jika bool - vs 1 0 0 0 n/a
if_comp - vs 0 1 0 0 n/a
if pred - vs 0 1 0 0 n/a
else - vs 0 0 0 0 n/a
endif - vs -1(jika bool - vs) -1(jika pred - vs atau if_comp - vs) 0 0 n/a
rep - vs 0 0 1 0 n/a
endrep - vs 0 0 -1 0 n/a
perulangan - vs 0 0 1 0 n/a
endloop - vs 0 0 -1 0 n/a
break - vs 0 0 0 0 n/a
break_comp - vs 0 1, -1 0 0 n/a
breakp - vs 0 0 0 0 n/a
panggilan - vs 0 0 0 1 n/a
bool callnz - vs 0 0 0 1 n/a
callnz pred - vs 0 1 0 1 n/a
ret - vs 0 -1 (callnz pred - vs) 0 -1 n/a
setp_comp - vs 0 0 0 0 n/a

 

Kedalaman Berlapis

Kedalaman berlapis menentukan berapa banyak instruksi yang dapat dipanggil di dalam satu sama lain. Setiap jenis instruksi memiliki satu atau beberapa batas bersarang:

Jenis Instruksi Maksimum
Bersarang statis 24
Bersarang dinamis 24
loop/rep nesting 4
panggilan bersarang 4
Jumlah aliran statis Tanpa batasan

 

Instruksi Vertex Shader