ID3D12GraphicsCommandList::CopyTiles 메서드(d3d12.h)

버퍼에서 타일 리소스로 또는 그 반대로 타일을 복사합니다.

구문

void CopyTiles(
  [in] ID3D12Resource                        *pTiledResource,
  [in] const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
  [in] const D3D12_TILE_REGION_SIZE          *pTileRegionSize,
  [in] ID3D12Resource                        *pBuffer,
       UINT64                                BufferStartOffsetInBytes,
       D3D12_TILE_COPY_FLAGS                 Flags
);

매개 변수

[in] pTiledResource

형식: ID3D12Resource*

타일형 리소스에 대한 포인터입니다.

[in] pTileRegionStartCoordinate

형식: const D3D12_TILED_RESOURCE_COORDINATE*

타일형 리소스의 시작 좌표를 설명하는 D3D12_TILED_RESOURCE_COORDINATE 구조체에 대한 포인터입니다.

[in] pTileRegionSize

형식: const D3D12_TILE_REGION_SIZE*

타일 영역의 크기를 설명하는 D3D12_TILE_REGION_SIZE 구조체에 대한 포인터입니다.

[in] pBuffer

형식: ID3D12Resource*

기본, 동적 또는 스테이징 버퍼를 나타내는 ID3D12Resource 에 대한 포인터입니다.

BufferStartOffsetInBytes

형식: UINT64

작업을 시작하기 위해 pBuffer 의 버퍼에 대한 오프셋(바이트)입니다.

Flags

형식: D3D12_TILE_COPY_FLAGS

비트 OR 연산을 사용하여 결합되고 타일을 복사하는 방법을 식별하는 D3D12_TILE_COPY_FLAGS 형식 값의 조합입니다.

반환 값

없음

설명

CopyTiles 는 매핑되지 않은 영역에 쓰기 작업을 삭제하고 매핑되지 않은 영역에서 읽기 작업을 처리합니다(매핑되지 않은 영역 읽기 및 쓰기가 잘못된 Tier_1 타일식 리소스 제외 - D3D12_TILED_RESOURCES_TIER 참조).

대상 리소스의 여러 위치가 동일한 타일 메모리에 매핑되기 때문에 복사 작업에 동일한 메모리 위치에 여러 번 쓰는 작업이 포함되는 경우 다중 매핑된 타일에 대한 결과 쓰기 작업은 비결정적이고 반복할 수 없습니다. 즉, 타일 메모리에 대한 액세스는 하드웨어가 복사 작업을 실행하는 순서에 관계없이 발생합니다.

복사 작업과 관련된 타일에는 압축된 Mipmap이 포함된 타일이나 복사 작업의 결과가 정의되지 않은 타일이 포함될 수 없습니다. 하드웨어가 압축된 밉을 구성하는 하나 이상의 타일로 압축된 Mipmap 간 데이터를 전송하려면 CopyTextureRegion과 같은 표준(즉, 타일에 특정하지 않은) 복사 API를 사용해야 합니다.

CopyTiles 는 표준 복사 메서드와 약간 다른 패턴으로 데이터를 복사합니다.

복사 작업의 타일이 아닌 버퍼 리소스 쪽에 있는 타일의 메모리 레이아웃은 64KB 타일 내의 메모리에서 선형이며, 타일 리소스로 전송할 때 하드웨어 및 드라이버가 타일당 스위즐 및 스위즐 해제를 적절하게 합니다. MSAA(다중 샘플 앤티앨리어싱) 표면의 경우 하드웨어와 드라이버는 다음 픽셀로 이동하기 전에 각 픽셀의 샘플을 샘플 인덱스 순서로 트래버스합니다. 오른쪽에 부분적으로 채워진 타일의 경우(너비가 타일 너비의 배수가 아닌 픽셀)의 경우 행 아래로 이동하는 피치 및 보폭은 타일이 가득 차면 타일에 맞는 숫자 픽셀의 전체 크기(바이트)입니다. 따라서 메모리의 각 픽셀 행 사이에 간격이 있을 수 있습니다. 타일보다 작은 Mipmap은 선형 레이아웃에 함께 압축되지 않으므로 메모리 공간이 낭비되는 것처럼 보일 수 있지만, 언급했듯이 CopyTiles 를 사용하여 하드웨어가 함께 압축하는 밉맵에 복사할 수는 없습니다. CopyTextureRegion과 같은 제네릭 복사 API를 사용하여 작은 밉맵을 개별적으로 복사할 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d12.h
라이브러리 D3d12.lib
DLL D3d12.dll

추가 정보

ID3D12GraphicsCommandList

타일형 리소스