ID3D12GraphicsCommandList1::AtomicCopyBufferUINT64 메서드(d3d12.h)
선택적 종속 리소스와 함께 UINT64 형식의 기본 데이터 요소를 한 리소스에서 다른 리소스로 원자적으로 복사합니다.
이러한 '종속 리소스'는 해당 리소스를 찾기 위해 기본 데이터 요소에 의존하기 때문에 이름이 너무 높습니다. 일반적으로 키 요소는 하나 이상의 종속 리소스를 간접적으로 참조하는 주소, 인덱스 또는 기타 핸들입니다.
이 함수는 UINT64(64비트) 형식의 기본 데이터 요소를 지원합니다. 이 함수의 다른 버전인 AtomicCopyBufferUINT는 UINT(32비트) 형식의 기본 데이터 요소를 지원합니다.
구문
void AtomicCopyBufferUINT64(
[in] ID3D12Resource *pDstBuffer,
UINT64 DstOffset,
[in] ID3D12Resource *pSrcBuffer,
UINT64 SrcOffset,
UINT Dependencies,
[in] ID3D12Resource * const *ppDependentResources,
[in] const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges
);
매개 변수
[in] pDstBuffer
형식: ID3D12Resource*
SAL: In
UINT64 기본 데이터 요소가 복사되는 리소스입니다.
DstOffset
형식: UINT64
주 데이터 요소가 복사되는 위치를 바이트 단위로 지정하는 대상 리소스 버퍼의 오프셋입니다. 리소스 버퍼의 기본 주소와 결합된 이 오프셋은 UINT64 값에 맞게 자연스럽게 정렬되는 메모리 주소를 생성해야 합니다.
[in] pSrcBuffer
형식: ID3D12Resource*
SAL: In
UINT64 기본 데이터 요소가 복사되는 리소스입니다. 이 데이터는 일반적으로 셰이더 코드가 대기 시간에 중요한 정보의 최신 버전을 찾는 데 사용할 수 있는 주소, 인덱스 또는 기타 핸들입니다.
SrcOffset
형식: UINT64
기본 데이터 요소가 복사되는 위치를 바이트 단위로 지정하는 원본 리소스 버퍼의 오프셋입니다. 리소스 버퍼의 기본 주소와 결합된 이 오프셋은 UINT64 값에 맞게 자연스럽게 정렬되는 메모리 주소를 생성해야 합니다.
Dependencies
형식: UINT
종속 리소스의 수입니다.
[in] ppDependentResources
형식: ID3D12Resource*
SAL: In_reads(Dependencies)
데이터 페이로드의 종속 요소를 포함하는 리소스의 배열입니다.
[in] pDependentSubresourceRanges
형식: const D3D12_SUBRESOURCE_RANGE_UINT64*
SAL: In_reads(Dependencies)
데이터 페이로드의 종속 요소를 지정하는 하위 리소스 범위의 배열입니다. 이러한 요소는 기본 데이터 요소 자체가 원자성으로 복사되기 전에 완전히 업데이트됩니다. 이렇게 하면 전체 작업이 논리적으로 원자성입니다. 즉, 기본 데이터 요소는 불완전한 데이터 페이로드를 참조하지 않습니다.
반환 값
없음
설명
이 메서드는 일반적으로 일반적인 렌더링 파이프라인 대기 시간이 사용자 환경에 해를 끼칠 수 있는 리소스를 업데이트하는 데 사용됩니다. 예를 들어 애플리케이션은 최신 사용자 입력(예: 헤드 탑재 디스플레이의 센서)에서 보기 매트릭스를 계산하고 이 함수를 사용하여 이미 GPU에 디스패치된 명령 목록에서 이 매트릭스를 업데이트하고 활성화하여 입력과 렌더링 간의 인식 대기 시간을 줄일 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d12.h |
라이브러리 | D3d12.lib |
DLL | D3d12.dll |