> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 取樣器意見反應 GPU 硬體設計

> 取樣器意見反應 GPU 硬體設計

XBOX Series X|S GPU 包含兩項實作取樣器意見反應的自訂設計硬體功能。第一項功能是取樣器意見反應本身，這是一種新的紋理取樣操作模式，會查詢紋理取樣模式，然後將其寫出到特殊的「意見反應對應」資源。意見反應對應資源可在兩種不同的表示法之間選擇，每種表示法都具有適用於不同使用案例的獨特屬性。第二項功能是一種新的紋理篩選模式，專為篩選「MinMip 對應」而設計，用於實作紋理各區域的最小細節層級 (LOD) 限制。這種新的篩選模式旨在解決現有「MIN 縮減」篩選模式在視覺上的缺點。

### 取樣器意見反應查詢與寫入

取樣器意見反應查詢與寫入作業的高層次概觀如下。

1. 紋理取樣作業由場景紋理的著色器資源檢視與取樣器狀態、輸入的 UV(W) 座標，以及透過內插計算的 UV(W) 梯度所定義。若是在非像素著色器階段中進行紋理取樣，則會提供 mip 層級索引而非梯度。
2. 紋理定址硬體會計算紋理取樣模式，其中包含一或多個樣本，每個樣本都包含絕對紋理座標與 mip 層級索引。
3. 每個紋理樣本的絕對座標都會轉換為相對於意見反應對應的絕對座標。
4. 紋理樣本集會以兩種方式之一合併在一起。
5. 合併後的紋理樣本集會使用不可部分完成 (atomic) 語意寫入意見反應對應。

硬體支援兩種不同的意見反應對應表示法。每種表示法都定義了前述座標轉換、合併與寫入步驟 (步驟 3-5) 的具體作業。

意見反應對應可視為與計算取樣模式所針對的紋理「配對」。意見反應對應通常比配對的紋理小得多，而且其大小必須是配對紋理維度的 2 的乘冪分數。換句話說，意見反應對應的維度必須等於配對紋理某個 mip 層級的計算維度，無論該 mip 層級是否存在於配對紋理中。

**圖 1. MinMip 意見反應對應表示法**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/sf-minlod-feedback.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=7167b45fcebdae096ac23624762f1df2" alt="代表 MinMip 意見反應對應的圖表" width="2775" height="1857" data-path="images/gdk/features/graphics/sf-minlod-feedback.png" />

MinMip 意見反應對應 (如圖 1 所示) 定義為與紋理配對的無 mip 紋理。它與配對紋理具有相同的資源維度，例如，具有 mipmap 之陣列紋理的 MinMip 意見反應對應是具有一個 mip 的陣列紋理。具有 mipmap 之體積紋理的 MinMip 意見反應對應是具有一個 mip 的體積紋理。MinMip 意見反應對應中的每個紋素都是一個數值，代表在該區域內配對紋理中取樣到的最大 (值最低) mip 層級。MinMip 意見反應對應紋素使用 8 位元元素格式，編碼為 5.3 不帶正負號定點值。一個 MinMip 意見反應對應紋素的區域大小是配對紋理維度的 2 的乘冪分數。通常，區域大小會選擇為配對紋理中一個 64 KB 圖格的維度或其小倍數。

當取樣器意見反應硬體作業寫入 MinMip 意見反應對應時，會使用不可部分完成的 MIN 作業執行寫入。若要收集準確的意見反應，必須在寫入意見反應之前，將所有 MinMip 意見反應對應紋素初始化為很大的初始值 (31.875，編碼為 0xFF)。

**圖 2. MipRegionUsed 意見反應對應表示法**

<img src="https://mintlify.s3.us-west-1.amazonaws.com/microsoft-4404708b/images/gdk/features/graphics/sf-tile-feedback.png" alt="代表 MipRegionUsed 意見反應對應的圖表" />

MipRegionUsed 意見反應對應 (如圖 2 所示) 定義為與紋理配對的具 mip 紋理。它與配對紋理具有相同的資源維度，例如，具有 mipmap 之陣列紋理的 MipRegionUsed 意見反應對應是具有 mipmap 的陣列紋理。具有 mipmap 之體積紋理的 MipRegionUsed 意見反應對應是具有 mipmap 的體積紋理。MipRegionUsed 意見反應對應中的每個紋素都是一組旗標，表示在該區域內配對紋理中的該位置是否被取樣。MipRegionUsed 意見反應對應紋素使用 8 位元元素格式，並在每個元素中記錄取樣旗標。一個 MipRegionUsed 意見反應對應紋素的區域大小是配對紋理維度的 2 的乘冪分數。

當取樣器意見反應硬體作業寫入 MipRegionUsed 意見反應對應時，會使用不可部分完成的 OR 作業對取樣旗標執行寫入。若要收集準確的意見反應，必須在寫入意見反應之前，將所有 MipRegionUsed 意見反應對應紋素初始化為零。

<a id="IDhwProgFeedback" />

#### 意見反應對應的硬體程式設計

GPU 中的著色器引擎實作了數十種影像取樣指令的變體，每種變體都包含或排除各種選項，例如使用者指定的梯度與 LOD 限制。取樣器意見反應原本會成為所有這些現有作業的另一種變體。然而，取樣器意見反應並非將著色器作業碼的數量加倍，而是使用一種經過特殊編碼、稱為\_連結資源\_的影像描述元來啟動。當紋理定址 (TA) 硬體看到輸入影像描述元中的連結資源狀態時，就會選取取樣器意見反應路徑，而非標準紋理取樣路徑。

連結資源描述元是透過下列步驟建構的。

1. 根據配對紋理的規格建構 (或複製) 影像描述元，包括配對紋理的資源類型 (例如 1D、2D、2D 陣列與 3D) 以及 UVW 維度、mip 與切片計數等。
2. 透過設定旗標，並在個別欄位中選取連結資源類型 (MinMip 意見反應或 MipRegionUsed 意見反應)，將描述元標示為連結資源。
3. 意見反應對應維度儲存在一個欄位中。它會編碼為基底維度的 2 的乘冪分數。U 維度與 V 或 W 維度使用個別的分數。
4. 對於 MinMip 意見反應對應，最大 mip 層級設定為 0 以移除 mip 鏈。

XBOX Series X|S GPU 的意見反應對應還具有下列在影像描述元中設定的屬性。

1. MinMip 與 MipRegionUsed 意見反應對應的影像格式都是 R8\_UINT。XBOX Series X|S GPU 能夠對位元組值執行不可部分完成的作業，而以往的 GPU 通常僅限於 32 位元的不可部分完成作業。取樣器意見反應硬體對 MinMip 意見反應對應使用 5.3 不帶正負號定點編碼。
2. 驅動程式會為意見反應對應選取 SW\_256B\_S swizzle 模式，因為它的對齊限制最小，最適合像意見反應對應這樣的小型紋理。

透過使用連結資源描述元設計，取樣器意見反應可以使用所有現有的影像取樣著色器作業碼，而不需修改。此外，使用此編碼時，只需要一個影像描述元即可參考兩個不同的紋理 (配對紋理與意見反應對應紋理)，進而降低著色器中的暫存器壓力。

#### 取樣器意見反應硬體限制

取樣器意見反應具有下列硬體限制。

1. 不支援非零的整數紋素位移
2. 不支援多重取樣消除鋸齒 (MSAA) 紋理 2D 影像
3. 不支援未正規化的座標
4. 不支援 Gather 取樣作業

### MinMip 對應篩選

取樣器意見反應串流 (SFS) 引進了「MinMip 對應」的概念，為圖格紋理提供各區域的最小 LOD 限制，讓場景轉譯期間從該紋理取樣時，可以限制在常駐的圖格集內。MinMip 對應中的每個元素都代表圖格紋理中 UV 空間的一個區域，其值代表在整個區域中完全常駐的最大 mip 層級的 LOD 索引。

從圖格資源取樣時，MinMip 對應 (如圖 3 所示) 會用作相依紋理擷取的一部分。系統會使用 MinMip 對應篩選器與紋理 UV(W) 座標對 MinMip 對應取樣，產生篩選後的結果：這些 UV(W) 座標的 MinMip 限制值。接著會使用紋理取樣方法的每像素限制形式，以 MinMip 限制值從圖格紋理取樣。

**圖 3. MinMip 對應表示法** <img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/sf-minlod.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=2eae845aa16e417eaa7457c2461d57ca" alt="代表 MinMip 對應的圖表" width="843" height="677" data-path="images/gdk/features/graphics/sf-minlod.png" />

#### 硬體篩選器設計

XBOX Series X|S GPU 包含一個新的修改版雙線性篩選器，專為篩選 MinMip 對應而設計，用以取代 Direct3D 11 圖格資源所引進的「MIN 縮減」篩選器。這個新篩選器加入了 MIN 作業，可將相鄰紋素之間的雙線性轉換移入值較小之紋素的區域。此外，篩選器具有可設定的斜率與位移，可調整篩選器的視覺外觀。

> 未來版本將在本節中新增更多詳細資料。

#### MinMip 對應篩選的硬體程式設計

MinMip 篩選器是透過結合 MinMip 對應的修改版影像描述元，以及包含篩選器斜率與位移值的修改版取樣器狀態，來程式設計到硬體中。

修改版影像描述元是一種「連結資源」影像描述元，其建構方式與先前在[意見反應對應的硬體程式設計](#IDhwProgFeedback)一節中詳述的 MinMip 意見反應對應影像描述元類似。描述元必須以圖格紋理維度建構，而 MinMip 對應維度則指定為圖格紋理維度的 2 的乘冪分數。

取樣器狀態包含新的欄位，用於指定 U 與 V 兩個方向的 MinMip 篩選器斜率與位移值。對於體積 MinMip 對應篩選，取樣器描述元中的 U 斜率/位移會同時用於 U 與 V 方向，而取樣器描述元中的 V 斜率/位移則用於 W 方向。

篩選器的斜率可從下列 8 個值中選取：2.5、3、4、5、8、16、32、64。

篩選器的位移可從下列 6 個值中選取：1/4、1/8、1/16、1/32、1/64、1/128。

斜率會提高篩選器的視覺銳利度。值越高，外觀越銳利。位移值會將篩選器的端點移離 MinMip 對應中相鄰元素之間的邊界。

篩選器位移用於確保對 MinMip 對應取樣時使用的四樣本篩選器核心，不會包含跨越紋素邊界、可能代表非常駐 mip 層級的值。位移值應使用公式 1/(2^(MaxLOD - MinLOD + 1)) 來選擇，其中 MaxLOD 與 MinLOD 代表 MinMip 對應中跨越紋素邊界時預期的最大 LOD 值差異。例如，如果 MinMip 對應包含值 5.0 以代表 mip 層級 5 的常駐狀態，而值 5 旁邊可能會出現值 0.0，則位移值應選擇為 (1/(2^(5 - 0 + 1)))，也就是 1/64。

## 另請參閱

[取樣器意見反應 Direct3D 12 API 預覽](/zh-TW/build/core-features/graphics/newfeatures/sfs/sf-api-design)

[為何使用取樣器意見反應](/zh-TW/build/core-features/graphics/newfeatures/sfs/why-sf)

[取樣器意見反應概觀 (預覽)](/zh-TW/build/core-features/graphics/newfeatures/sfs/sf-overview)


## Related topics

- [認證逐步指南](/zh-TW/publishing/game-publishing/concepts/certification/certification-guide.md)
- [XBOX 遊戲的 XBOX 需求](/zh-TW/publishing/certification/xbox-requirements.md)
- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
- [XR-067 維護最近一起玩過的互動](/zh-TW/publishing/certification/xr/xr-067.md)
- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
