다음을 통해 공유


PFND3D11DDI_DESTROYUNORDEREDACCESSVIEW 콜백 함수(d3d10umddi.h)

순서가 지정되지 않은 액세스 보기를 삭제합니다.

구문

PFND3D11DDI_DESTROYUNORDEREDACCESSVIEW Pfnd3d11ddiDestroyunorderedaccessview;

void Pfnd3d11ddiDestroyunorderedaccessview(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D11DDI_HUNORDEREDACCESSVIEW unnamedParam2
)
{...}

매개 변수

unnamedParam1

hDevice [in]

디스플레이 디바이스(그래픽 컨텍스트)에 대한 핸들입니다.

unnamedParam2

hUnorderedAccessView [in]

순서가 지정되지 않은 액세스 뷰를 삭제하기 위한 드라이버의 개인 데이터에 대한 핸들입니다. Microsoft Direct3D 런타임은 순서가 지정되지 않은 액세스 보기에 대해 이전에 할당한 메모리 영역을 해제합니다. 따라서 드라이버는 더 이상 이 메모리 영역에 액세스할 수 없습니다.

반환 값

없음

설명

드라이버는 pfnSetErrorCb 콜백 함수를 사용하여 오류 코드를 설정할 수 있습니다.

드라이버는 D3DDDIERR_DEVICEREMOVED 제외하고 오류가 발생하지 않아야 합니다. 따라서 드라이버가 pfnSetErrorCb 함수에 대한 호출에서 D3DDDIERR_DEVICEREMOVED 제외하고 오류를 전달하는 경우 Direct3D 런타임은 오류가 중요하다고 결정합니다. 디바이스가 제거되더라도 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 필요가 없습니다. 그러나 디바이스 제거가 DestroyUnorderedAccessView 의 작업을 방해하는 경우(일반적으로 발생하지 않아야 하는) 드라이버는 D3DDDIERR_DEVICEREMOVED 반환할 수 있습니다.

참고 즉각적인 컨텍스트 및 디바이스가 파괴되거나 지연된 컨텍스트가 파괴되는 동안 Windows 7은 CS UAV(컴퓨팅 셰이더 순서가 지정되지 않은 액세스 뷰) 바인딩 지점을 지우지 않습니다. 결과적으로 드라이버는 UAV 핸들이 여전히 컨텍스트에 바인딩되어 런타임에서 제공하는 일반적인 보장을 위반하는 것을 볼 수 있습니다. 드라이버는 다음 단계를 수행하여 이 문제를 해결할 수 있습니다.

  • 각각 명령 목록의 끝을 표시하므로 AbandonCommandList 또는 CreateCommandList 메서드를 사용합니다.
  • 혼합 상태, 래스터라이저 상태 및 깊이/스텐실 상태 중 하나가 NULL로 설정되어 있는지 확인하여 CS UAV 바인딩 지점의 바인딩 해제를 추론합니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 DestroyUnorderedAccessView는 Windows 7 운영 체제부터 지원됩니다.
대상 플랫폼 데스크톱
머리글 d3d10umddi.h(D3d10umddi.h 포함)

추가 정보

AbandonCommandList

CreateCommandList

CreateUnorderedAccessView

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb