ID3D11DeviceContext2::CopyTiles 메서드(d3d11_2.h)
타일을 버퍼에서 바둑판형 리소스로 복사하거나 그 반대로 복사합니다.
구문
void CopyTiles(
[in] ID3D11Resource *pTiledResource,
[in] const D3D11_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate,
[in] const D3D11_TILE_REGION_SIZE *pTileRegionSize,
[in] ID3D11Buffer *pBuffer,
[in] UINT64 BufferStartOffsetInBytes,
[in] UINT Flags
);
매개 변수
[in] pTiledResource
형식: ID3D11Resource*
타일형 리소스에 대한 포인터입니다.
[in] pTileRegionStartCoordinate
형식: const D3D11_TILED_RESOURCE_COORDINATE*
타일형 리소스의 시작 좌표를 설명하는 D3D11_TILED_RESOURCE_COORDINATE 구조체에 대한 포인터입니다.
[in] pTileRegionSize
형식: const D3D11_TILE_REGION_SIZE*
타일 영역의 크기를 설명하는 D3D11_TILE_REGION_SIZE 구조체에 대한 포인터입니다.
[in] pBuffer
형식: ID3D11Buffer*
기본, 동적 또는 스테이징 버퍼를 나타내는 ID3D11Buffer 에 대한 포인터입니다.
[in] BufferStartOffsetInBytes
형식: UINT64
작업을 시작하기 위해 pBuffer 의 버퍼에 대한 오프셋(바이트)입니다.
[in] Flags
형식: UINT
비트 OR 연산을 사용하여 결합되고 타일을 복사하는 방법을 식별하는 D3D11_TILE_COPY_FLAG 형식화된 값의 조합입니다.
반환 값
없음
설명
CopyTiles 는 매핑되지 않은 영역에 쓰기 작업을 삭제하고 매핑되지 않은 영역의 읽기 작업을 처리합니다(매핑되지 않은 영역 읽기 및 쓰기가 잘못된 Tier_1 타일형 리소스 제외).
대상 리소스의 여러 위치가 동일한 타일 메모리에 매핑되기 때문에 복사 작업에 동일한 메모리 위치에 여러 번 쓰는 작업이 필요한 경우 다중 매핑된 타일에 대한 결과 쓰기 작업은 비결정적이고 반복 불가능합니다. 즉, 타일 메모리에 대한 액세스는 하드웨어가 복사 작업을 실행하는 순서에 관계없이 발생합니다.
복사 작업과 관련된 타일에는 압축된 mipmap이 포함된 타일 또는 복사 작업의 결과가 정의되지 않은 타일을 포함할 수 없습니다. 하드웨어가 압축된 mips를 구성하는 하나 이상의 타일로 압축된 mipmap과 데이터를 전송하려면 표준(즉, 타일이 아닌) 복사 및 업데이트 API(예: ID3D11DeviceContext1::CopySubresourceRegion1 및 ID3D11DeviceContext1::UpdateSubresource1) 또는 ID3D11DeviceContext::GenerateMips 를 전체 Mipmap 체인에 사용해야 합니다.
복사 작업의 타일이 아닌 버퍼 리소스 쪽에 있는 타일의 메모리 레이아웃은 64KB 타일 내의 메모리에서 선형이며, 하드웨어 및 드라이버는 타일 리소스로 전송할 때 적절하게 타일당 스위즐 및 deswizzle을 수행합니다. MSAA(다중 샘플 앤티앨리어싱) 표면의 경우 하드웨어와 드라이버는 다음 픽셀로 이동하기 전에 각 픽셀의 샘플을 샘플 인덱스 순서로 트래버스합니다. 타일 너비가 픽셀 단위의 배수가 아닌 너비가 있는 표면의 경우 오른쪽에 부분적으로 채워진 타일의 경우 행 아래로 이동하는 피치 및 보폭은 타일이 가득 차면 타일에 맞는 숫자 픽셀의 전체 크기(바이트)입니다. 따라서 메모리의 각 픽셀 행 사이에 간격이 있을 수 있습니다. 타일보다 작은 Mipmap은 선형 레이아웃에 함께 압축되지 않으므로 메모리 공간이 낭비되는 것처럼 보일 수 있지만, 언급했듯이 CopyTiles 또는 ID3D11DeviceContext2::UpdateTiles 를 사용하여 하드웨어가 함께 압축하는 mipmap에 복사할 수 없습니다. 일반 복사 및 업데이트 API( 예: ID3D11DeviceContext1::CopySubresourceRegion1 및 ID3D11DeviceContext1::UpdateSubresource1)를 사용하여 작은 Mipmap을 개별적으로 복사할 수 있습니다. 일반 복사 API(예: ID3D11DeviceContext1::CopySubresourceRegion1)의 경우 선형 메모리는 타일식 리소스와 동일해야 합니다. ID3D11DeviceContext1::CopySubresourceRegion1은 버퍼 리소스에서 instance 대한 Texture2D로 복사할 수 없습니다.
타일형 리소스에 대한 자세한 내용은 타일형 리소스를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 R2 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d3d11_2.h |
라이브러리 | D3D11.lib |