D3D12에서 Texture의 Row Pitch구하기.

D3D11에선 Map()한번으로 리소스로 사용하는 메모리의 RowPitch를 얻을 수 있었는데 D3D12에선 Map()해봐야 포인터 하나 달랑 나옴.
‘SystemMemory에 잡는 리소스의 경우 Pitch가 따로 없이 Width x SierPerPixel로 딱 맞아떨어지는 것인가! 그래서 CopyResource()할때 알아서 해주는 것인가!’
라고 생각했으나 UpdateSubresources()소스 코드를 따라가보니 RowPitch를 구해서 카피하고 있다.
역시 그런 자동화 따위 있을리가 있나. 게다가 수동제어를 전면에 내세운 D3D12에서…
하여간 텍스쳐에 락걸어서 직접 써넣기를 하려면 RowPitch가 필요한데 아래처럼 구할 수 있다. 밉맵이 1장인 경우이니 밉맵이 여러장이라면 알아서 파라미터를 바꿔쓸것.
D3D12_RESOURCE_DESC Desc = pTexture->GetDesc();
D3D12_PLACED_SUBRESOURCE_FOOTPRINT descFootPrint = {};
UINT Rows = 0;
UINT64 RowSize = 0;
UINT64 TotalBytes = 0;
m_pD3DDevice->GetCopyableFootprints(&Desc,0,1,0,&descFootPrint,&Rows,&RowSize,&TotalBytes);
get_row_pitch

답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중