Risorse riquadri del volume
Le trame del volume (3D) possono essere usate come risorse riquadri, notando che la risoluzione del riquadro è tridimensionale.
Panoramica
Le risorse riquadri separano un oggetto Risorsa D3D dalla memoria di backup (le risorse in passato hanno avuto una relazione 1:1 con la memoria di backup). Ciò consente un'ampia gamma di scenari interessanti, ad esempio lo streaming nei dati della trama e la riusazione o la riduzione dell'utilizzo della memoria
Le risorse con trama 2D sono supportate in D3D11.2. D3D12 e D3D11.3 aggiungono il supporto per trame riquadri 3D.
Le dimensioni di risorsa tipiche usate nella tiling sono 4 x 4 riquadri per trame 2D e 4 x 4 x 4 riquadri per trame 3D.
Bit/pixel (1 esempio/pixel) | Dimensioni riquadro (pixel, w x x x d) |
---|---|
8 | 64x32x32 |
16 | 32x32x32 |
32 | 32x32x16 |
64 | 32x16x16 |
128 | 16x16x16 |
BC 1,4 | 128x64x16 |
BC 2,3,5,6,7 | 64x64x16 |
Si noti che i formati seguenti non sono supportati con le risorse riquadri: 96bpp formati, formati video, R1_UNORM, R8G8_B8G8_UNORM, R8R8_G8B8_UNORM.
Nei diagrammi seguenti il grigio scuro rappresenta i riquadri NULL.
- Mapping predefinito delle risorse riquadri trama 3D (mip più dettagliato)
- Mapping predefinito delle risorse riquadri trama 3D (secondo mip più dettagliato)
- Risorsa riquadri trama 3D (mip più dettagliata)
- Risorsa riquadri trama 3D (secondo mip più dettagliato)
- Risorsa riquadri trama 3D (singolo riquadro)
- Risorsa riquadri trama 3D (casella uniforme)
Mapping predefinito delle risorse riquadri trama 3D (mip più dettagliato)
Mapping predefinito delle risorse riquadri trama 3D (secondo mip più dettagliato)
Risorsa riquadri trama 3D (mip più dettagliata)
Il codice seguente configura una risorsa riquadri 3D al mip più dettagliato.
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 0;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = false;
trSize.NumTiles = 63;
Risorsa riquadri trama 3D (secondo mip più dettagliato)
Il codice seguente configura una risorsa riquadri 3D e il secondo mip più dettagliato:
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 0;
trCoord.Z = 0;
trCoord.Subresource = 1;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = false;
trSize.NumTiles = 6;
Risorsa riquadri trama 3D (singolo riquadro)
Il codice seguente configura una risorsa a riquadro singolo:
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 1;
trCoord.Y = 1;
trCoord.Z = 1;
trCoord.Subresource = 0;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;
Risorsa riquadri trama 3D (casella uniforme)
Il codice seguente configura una risorsa a riquadri Uniform Box (notare l'istruzione trSize.bUseBox = true;) :
D3D11_TILED_RESOURCE_COORDINATE trCoord;
trCoord.X = 0;
trCoord.Y = 1;
trCoord.Z = 0;
trCoord.Subresource = 0;
D3D11_TILE_REGION_SIZE trSize;
trSize.bUseBox = true;
trSize.NumTiles = 27;
trSize.Width = 3;
trSize.Height = 3;
trSize.Depth = 3;
API risorsa riquadri D3D11.3
Le stesse chiamate API vengono usate per le risorse riquadri 2D e 3D:
Enumerazioni
- D3D11_TILED_RESOURCES_TIER : determina il livello di supporto delle risorse riquadri.
- D3D11_FORMAT_SUPPORT2 : usato per testare il supporto delle risorse riquadri.
- D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG : determina il supporto delle risorse riquadri in una risorsa di campionamento multipla.
- D3D11_TILE_COPY_FLAGS : contiene flag per la copia in e da risorse riquadri swizzled e buffer lineari.
Strutture
- D3D11_TILED_RESOURCE_COORDINATE : contiene il riferimento x, y e z coordinato e subresource. Si noti che esiste una classe helper: CD3D11_TILED_RESOURCE_COORDINATE.
- D3D11_TILE_REGION_SIZE : specifica le dimensioni e il numero di riquadri dell'area riquadri.
- D3D11_TILE_SHAPE : la forma del riquadro come larghezza, altezza e profondità in texel.
- D3D11_FEATURE_DATA_D3D11_OPTIONS1: contiene il livello di risorsa riquadro supportato.
Metodi
- ID3D11Device::CheckFeatureSupport : usato per determinare quali funzionalità e a quale livello sono supportate dall'hardware corrente.
- ID3D11DeviceContext2::CopyTiles : copia i riquadri dal buffer alla risorsa riquadri o viceversa.
- ID3D11DeviceContext2::UpdateTileMappings : aggiorna i mapping delle posizioni dei riquadri nelle risorse riquadri nei percorsi di memoria in un pool di riquadri.
- ID3D11DeviceContext2::CopyTileMappings : copia i mapping da una risorsa a riquadri di origine a una risorsa riquadri di destinazione.
- ID3D11DeviceContext2::GetResourceTiling : ottiene informazioni sul modo in cui una risorsa riquadri è suddivisa in riquadri.
Argomenti correlati