> ## 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_BUFFER_DESC (XBOX One 系列)

> 描述緩衝區資源。

描述緩衝區資源。

<a id="syntaxSection" />

## 語法

```cpp theme={null}
typedef struct XG_BUFFER_DESC {  
    UINT ByteWidth;
    XG_USAGE Usage;
    UINT BindFlags;
    UINT CPUAccessFlags;
    UINT MiscFlags;
    UINT StructureByteStride;
    UINT ESRAMOffsetBytes;
    UINT ESRAMUsageBytes;
} XG_BUFFER_DESC  
```

<a id="membersSection" />

### 成員

*ByteWidth*\
類型：UINT

緩衝區的大小 (以位元組為單位)。

*Usage*\
類型：[XG\_USAGE](/zh-TW/reference/graphics/xg__NR/enums/xg_usage)

指定轉譯期間預期的資源用途。

*BindFlags*\
類型：UINT

以位元 OR 運算組合的 [XG\_BIND\_FLAG](/zh-TW/reference/graphics/xg__NR/enums/xg_bind_flag) 列舉常數，用來指定緩衝區繫結至管線的方式。

*CPUAccessFlags*\
類型：UINT

以位元 OR 運算組合的 [XG\_CPU\_ACCESS\_FLAG](/zh-TW/reference/graphics/xg__NR/enums/xg_cpu_access_flag) 列舉常數，用來指定緩衝區允許的 CPU 存取類型。如果不需要 CPU 存取，此值會設為 0。

*MiscFlags*\
類型：UINT

以位元 OR 運算組合的 [XG\_RESOURCE\_MISC\_FLAG](/zh-TW/reference/graphics/xg__NR/enums/xg_resource_misc_flag) 列舉常數，用來指定緩衝區的其他選項。如果未使用其他選項，此值會設為 0。

*StructureByteStride*\
類型：UINT

對於結構化緩衝區，這是緩衝區結構中每個元素的大小 (以位元組為單位)。如果緩衝區資源不是結構化緩衝區，此值會設為 0。

對於結構化緩衝區，**StructureByteStride** 中的大小值必須符合搭配緩衝區使用之檢視的格式大小。例如，如果您使用著色器資源檢視 (SRV) 在像素著色器中讀取緩衝區，則 SRV 格式的大小必須符合 **StructureByteStride** 中的大小值。如需詳細資訊，請參閱[結構化緩衝區](https://msdn.microsoft.com/library/ff476335.aspx)。

*ESRAMOffsetBytes*\
類型：UINT

緩衝區所使用之增強型靜態隨機存取記憶體 (ESRAM) 的起始位移 (以位元組為單位)。ESRAM 是 32 MB 的專用 RAM，只能由 GPU 直接存取。您可以為緩衝區資源要求 0 到 32 MB 的 ESRAM，並以 4KB 的倍數為單位。

*ESRAMUsageBytes*\
類型：UINT

緩衝區所使用的 ESRAM 數量 (以位元組為單位)。如果此值設為 0，則會使用 **ESRAMOffsetBytes** 中指定之起始位移之後的所有剩餘 ESRAM，最多為 32 MB - **ESRAMOffsetBytes**。如果此值設為零且表面無法容納，緩衝區會使用 32 MB - **ESRAMOffsetBytes**，並溢出其餘部分。

<a id="remarksSection" />

## 備註

[XGComputeBufferLayout](/zh-TW/reference/graphics/xg__NR/functions/xgcomputebufferlayout) 函式會使用此結構來計算緩衝區資源的硬體對齊。

除了 `XG_BIND_CONSTANT_BUFFER` 以外，`XG_BIND_FLAG` 列舉中的繫結旗標都可以使用邏輯 OR 運算在 `BindFlags` 中組合。不過，您應一次只使用單一繫結旗標，讓裝置能夠最佳化資源用途。

<a id="requirementsSection" />

## 需求

**標頭：** xg.h

**程式庫：** xg\_x.lib

**支援的平台：** XBOX One 系列

<a id="seealsoSection" />

## 另請參閱

[XBOX One 的原生資源管理](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/graphics/directx/native-resource-management)\
[XG 參考](/zh-TW/reference/graphics/xg__NR/xg_members)


## Related topics

- [NDA 主題目錄 - Microsoft Learn 線上連結](/zh-TW/nda/nda-topic-directory.md)
- [NDA 토픽 디렉터리 - Microsoft Learn 라이브 링크](/ko/nda/nda-topic-directory.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr-CA/nda/nda-topic-directory.md)
- [XBOX GDK 主机开发 NDA 主题索引](/zh-CN/nda/nda-overview.md)
