> ## 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.

# XG_MIPLEVEL_LAYOUT (XBOX Series 主機)

> XG_MIPLEVEL_LAYOUT (XBOX Series 主機) — 描述紋理硬體配置中的單一 mip 層級。Direct3D 12 圖形 (請參閱 xg_miplevel_layout_xs)

描述紋理硬體配置中的單一 mip 層級。請注意，對於具有 mip 層級的陣列紋理，其中部分成員僅指第一個配量內 mip 的屬性。

## 語法

```cpp theme={null}
typedef struct XG_MIPLEVEL_LAYOUT {  
    UINT64 SizeBytes;  
    UINT64 OffsetBytes;  
    UINT64 Slice2DSizeBytes;  
    UINT32 PitchPixels;  
    UINT32 PitchBytes;  
    UINT32 AlignmentBytes;  
    UINT32 PaddedWidthElements;  
    UINT32 PaddedHeightElements;  
    UINT32 PaddedDepthOrArraySize;  
    UINT32 WidthElements;  
    UINT32 HeightElements;  
    UINT32 WidthPixels;  
    UINT32 HeightPixels;  
    UINT32 DepthOrArraySize;  
    UINT32 SampleCount;  
    XG_SWIZZLE_MODE SwizzleMode;  
    UINT64 BankRotationAddressBitMask;  
    UINT64 BankRotationBytesPerSlice;  
    UINT32 SliceDepthElements;  
    UINT32 IsMipTail;  
    UINT32 MipTailOffsetElementsX : 11;
    UINT32 MipTailOffsetElementsY : 11;
    UINT32 MipTailOffsetElementsZ : 10;    
} XG_MIPLEVEL_LAYOUT  
```

### 成員

*SizeBytes*\
類型：UINT64

此 mip 層級的大小 (以位元組為單位)。對於具有多個配量的陣列紋理，SizeBytes 只會反映此 mip 層級在單一配量中的大小。對於體積紋理，SizeBytes 會反映此 mip 層級所有「深度配量」的累計大小，但它們在記憶體中可能不連續。

*OffsetBytes*\
類型：UINT64

OffsetBytes 會反映此 mip 層級在第一個陣列配量中的位移。若要計算此 mip 層級在配量 1-n 中的位移，請將 OffsetBytes 加上平面配置的 SliceSizeBytes 乘以配量索引的值。

*Slice2DSizeBytes*\
類型：UINT64

對於 2D (陣列) 紋理，Slice2DSizeBytes 等同於 SizeBytes；對於 3D 紋理，則為一個深度配量的大小。

*PitchPixels*\
類型：UINT32

此 mip 層級的間距 (以像素為單位)。

*PitchBytes*\
類型：UINT32

此 mip 層級的間距 (以位元組為單位)。

*AlignmentBytes*\
類型：UINT32

此 mip 層級的對齊 (以位元組為單位)。對於標準 mip 層級，這等於 Swizzle 模式區塊大小；對於封裝 mip 尾端的 mip 層級，則為 256 個位元組。

*PaddedWidthElements*\
類型：UINT32

mip 層級填補後的寬度 (以元素為單位)。請注意，對於某些格式，一個元素的寬度和/或高度可能超過一個像素。

*PaddedHeightElements*\
類型：UINT32

mip 層級填補後的高度 (以元素為單位)。

*PaddedDepthOrArraySize*\
類型：UINT32

mip 層級填補後的深度或陣列大小。

*WidthElements*\
類型：UINT32

mip 層級的寬度 (以元素為單位)。

*HeightElements*\
類型：UINT32

mip 層級的高度 (以元素為單位)。

*WidthPixels*\
類型：UINT32

mip 層級的寬度 (以像素為單位)。

*HeightPixels*\
類型：UINT32

mip 層級的高度 (以像素為單位)。

*DepthOrArraySize*\
類型：UINT32

mip 層級的深度或陣列大小。

*SampleCount*\
類型：UINT32

取樣數目。

*SwizzleMode*\
類型：[XG\_SWIZZLE\_MODE](/zh-TW/reference/graphics/xg_xs/enums/xg_swizzle_mode)

mip 層級的 Swizzle 模式。

*BankRotationAddressBitMask*\
類型：UINT64

對應於紋理基底位址中可套用記憶庫輪替之位置的位元遮罩。如果不支援記憶庫輪替，此值將為 0。

*BankRotationBytesPerSlice*\
類型：UINT64

當記憶庫輪替的陣列紋理資源繫結為轉譯目標時，套用至每個配量基底位址的記憶庫輪替位元組數。

*SliceDepthElements*\
類型：UINT32

對於體積紋理，這是體積配量的深度 (以元素為單位)。體積紋理 mip 層級可能由多個體積配量組成。

*IsMipTail*\
類型：UINT32

如果此 mip 層級不是封裝 mip 尾端的一部分，則為零。如果此 mip 層級是封裝 mip 尾端的一部分，則為一。

*MipTailOffsetElementsX*\
類型：UINT32

如果此 mip 層級是 mip 尾端，則描述 mip 影像位置在 mip 尾端區塊內的 x 位移。

*MipTailOffsetElementsY*\
類型：UINT32

如果此 mip 層級是 mip 尾端，則描述 mip 影像位置在 mip 尾端區塊內的 y 位移。

*MipTailOffsetElementsZ*\
類型：UINT32

如果此 mip 層級是 mip 尾端，則描述 mip 影像位置在 mip 尾端區塊內的 z 位移。

## 備註

### 體積紋理 Mip 層級

請注意，對於體積紋理，每個 mip 層級在記憶體中可能不連續。

若要判斷體積 mip 層級所佔用的記憶體範圍，請使用下列以 DepthSliceIndex 為索引的公式。mip 層級的深度配量數目為 MipLayout.DepthOrArraySize 除以 MipLayout.SliceDepthElements。

深度配量的起始位移：PlaneLayout.SliceSizeBytes \* DepthSliceIndex + MipLayout.OffsetBytes

深度配量的結束位移：StartOffset + MipLayout.Slice2DSizeBytes \* MipLayout.SliceDepthElements

上述計算適用於所有非尾端 mip。由於尾端 mip 會封裝至單一區塊中，其範圍會交錯，無法個別定址。如果您將這些計算套用至尾端 mip，所有此類層級都會得到相同的起始和結束位移。

## 需求

**標頭:** xg\_xs.h\
**支援的平台**: XBOX Series 主機

## 另請參閱

[XBOX Series X|S 的紋理配置與並排](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/graphics/scarlett-tex-layouts)

[xg\_xs](/zh-TW/reference/graphics/xg_xs/xg_xs_members)


## Related topics

- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [D3D12_ELEMENTS_LAYOUT (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/enums/d3d12_elements_layout_public.md)
- [XBOX GDK 主機開發的 NDA 主題索引](/zh-TW/nda/nda-overview.md)
- [D3D12_TEXTURE_BARRIER (XBOX Series 主機)](/zh-TW/reference/graphics/d3d12/structs/d3d12_texture_barrier_public.md)
- [GameInputKeyboardLayoutCallback](/zh-TW/reference/input/gameinput/functions/gameinputkeyboardlayoutcallback.md)
