
GetCMask do ColorDecompressUtility.hlsli do MiniEngines.


Tabela 1: A dependência entre a profundidade de bits do formato de cor, o modo de swizzling e os modos de posicionamento de sub-blocos de Cmask (consulte a figura 3) para buffers de cores sem MSAA no XBOX Series X|S. Os modos de swizzling são definidos por
XG_SWIZZLE_MODE na biblioteca XG.
Tabela 2: A dependência entre a profundidade de bits do formato de cor, o modo de microblocos e os modos de posicionamento de sub-blocos de Cmask (consulte a figura 3) para buffers de cores sem MSAA no XBOX One e no XBOX Series X|S. Os modos de microblocos correspondem aos sufixos de
XG_TILE_MODE na biblioteca XG. Por exemplo, os modos de bloco XG_TILE_MODE_*_THIN usam microblocos THIN. Os microblocos ROTATED não estão em uso, mas são mostrados nesta tabela para fins de completude.
As variantes de posicionamento de sub-blocos dentro de um bloco de Cmask para buffers de cores com MSAA habilitado são mostradas na figura 4. No XBOX Series X|S, CMM1 é a única opção possível, independentemente da largura de bits do formato de cor subjacente e do modo de swizzling (é sempre SW_*_R quando o MSAA está ativado). No XBOX One e no XBOX Series X|S, ambas as variantes são possíveis, mas CMM0 só é usado com microblocos ROTATED e formatos de cor com largura de bits inferior a 64 bits por pixel. Como o driver não usa microblocos ROTATED, é muito improvável encontrar esse layout.

PSOverlay do exemplo CMaskDecode, que interpreta o nibble de Cmask.
