GPU: Query UnrestrictedBufferTextureCopyPitchSupported to avoid D3D12 realignment copies

(cherry picked from commit 742a6fd092)
This commit is contained in:
Caleb Cornett
2026-01-31 14:50:11 -05:00
committed by Sam Lantinga
parent 1a278bb511
commit de5e0f1784
2 changed files with 52 additions and 22 deletions

View File

@@ -1398,11 +1398,12 @@ typedef struct SDL_GPUViewport
* SDL_DownloadFromGPUTexture are used as default values respectively and data
* is considered to be tightly packed.
*
* **WARNING**: Direct3D 12 requires texture data row pitch to be 256 byte
* aligned, and offsets to be aligned to 512 bytes. If they are not, SDL will
* make a temporary copy of the data that is properly aligned, but this adds
* overhead to the transfer process. Apps can avoid this by aligning their
* data appropriately, or using a different GPU backend than Direct3D 12.
* **WARNING**: On some older/integrated hardware, Direct3D 12 requires texture
* data row pitch to be 256 byte aligned, and offsets to be aligned to 512 bytes.
* If they are not, SDL will make a temporary copy of the data that is properly
* aligned, but this adds overhead to the transfer process. Apps can avoid this
* by aligning their data appropriately, or using a different GPU backend than
* Direct3D 12.
*
* \since This struct is available since SDL 3.2.0.
*