dcl_indexRange (sm4 - asm)

Menyatakan rentang register yang akan diakses oleh indeks (bilangan bulat yang dihitung dalam shader).

dcl_indexRange minRegisterM, maxRegisterN
Item Deskripsi
minRegisterM
[in] Register pertama untuk mengakses berdasarkan indeks.
  • minRegister adalah v untuk register input vertex atau pixel shader, atau o untuk register output vertex shader.
  • M adalah bilangan bulat yang menunjukkan nomor register.
maxRegisterN
[in] Daftar terakhir untuk mengakses menurut indeks. Formulir yang sama dengan minRegister kecuali N adalah nomor register.

Pembatasan berikut berlaku untuk semua register:

  • Register min dan maks harus berjenis sama dan memiliki masker komponen yang sama (jika masker dinyatakan).
  • Register mungkin memiliki beberapa rentang indeks, selama tidak tumpang tindih.
  • Nomor register min harus kurang dari nomor register maks.
  • Register indeks tidak boleh berisi nilai sistem.
  • Mengindeks register di luar deklarasi indeks maks menghasilkan hasil yang tidak terdefinisi.

Register input shader pixel harus menggunakan mode interpolasi yang sama; register output piksel shader tidak dapat diindeks.

Register input shader geometri memiliki dua dimensi (sumbu puncak, sumbu atribut); rentang indeks hanya berlaku untuk sumbu atribut karena sumbu puncak selalu dapat diindeks sepenuhnya.

Instruksi ini berlaku untuk tahap shader berikut:

Vertex Shader Shader Geometri Piksel Bayangan
x x x

Instruksi ini disertakan untuk membantu dalam men-debug shader dalam perakitan; Anda tidak dapat menulis shader dalam bahasa assembly menggunakan Shader Model 4.

Contoh

Berikut adalah contohnya.

dcl_indexRange v1, v3
dcl_indexRange v4, v9

Minimum Shader Model

Fungsi ini didukung dalam model shader berikut.

Shader Model Didukung
Model Shader 5 ya
Model Shader 4.1 ya
Model Shader 4 ya
Shader Model 3 (DirectX HLSL) tidak
Shader Model 2 (DirectX HLSL) tidak
Shader Model 1 (DirectX HLSL) tidak

Shader Model 4 Assembly (DirectX HLSL)