D3D12_STATE_OBJECT_FLAGS 열거형(d3d12.h)
상태 개체에 대한 제약 조건을 지정합니다. D3D12_STATE_OBJECT_CONFIG 구조체에서 이 열거형의 값을 사용합니다.
Syntax
typedef enum D3D12_STATE_OBJECT_FLAGS {
D3D12_STATE_OBJECT_FLAG_NONE = 0,
D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1,
D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2,
D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS
} ;
상수
D3D12_STATE_OBJECT_FLAG_NONE 값: 0 상태 개체 제약 조건이 없습니다. |
D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS 값: 0x1 이 플래그는 컬렉션 형식의 상태 개체에만 적용됩니다. 그렇지 않으면 이 플래그가 무시됩니다. 이 컬렉션의 내보내기는 RTPSO(광선 추적 파이프라인 상태 개체)와 같이 컬렉션이 포함된 상태 개체에 포함될 때 해결해야 하는 확인되지 않은 참조(종속성)를 가질 수 있습니다. 여기에는 외부 하위 개체(예: 루트 서명)를 로컬 내보내기로 연결하는 외부 정의 하위 개체 연결에 따라 달라집니다. 이 플래그가 없는 경우 이 컬렉션의 모든 내보내기는 로컬로 정의되는 필요한 하위 개체 연결을 포함하여 해당 종속성을 완전히 로컬로 확인해야 합니다. 고급 구현/드라이버에는 컬렉션의 코드를 컴파일하기에 충분한 정보가 있으며 컴파일되지 않은 코드( D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS 플래그가 설정되지 않은 경우)를 유지할 필요가 없으므로 컬렉션이 포함된 상태 개체(예: RTPSO)에서 사용될 때 드라이버에서 최소한의 작업을 수행해야 합니다. 이상적으로 최대 "저렴한"링크. |
D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS 값: 0x2 이 플래그는 컬렉션 형식의 상태 개체에만 적용됩니다. 그렇지 않으면 이 플래그가 무시됩니다. 이 컬렉션이 다른 상태 개체(예: RTPSO)에 포함된 경우 포함하는 상태 개체의 나머지 부분에 있는 셰이더/함수는 이 컬렉션의 내보내기(예: 호출)에 의존할 수 있습니다. 이 플래그(기본값)가 없는 경우 이 컬렉션의 내보내기는 상태 개체를 포함하는 다른 부분(예: RTPSO)에서 직접 참조할 수 없습니다. 이렇게 하면 드라이버가 모든 코드를 함께 컴파일하는 일부 외부 함수에서 호출될 수 있는 오프 기회에 컬렉션에 컴파일되지 않은 코드를 유지할 필요가 없으므로 컬렉션의 메모리 공간을 약간 줄일 수 있습니다. 즉, 이 컬렉션의 코드에 대해 필요한 하위 개체 연결이 모두 로컬로 정의되지 않은 경우 드라이버는 아직 셰이더 코드를 컴파일하지 못할 수 있으며 여전히 컴파일되지 않은 코드를 유지해야 할 수 있습니다. 외부 하위 개체를 로컬 내보내기 에 연결하는 외부로 정의된 하위 개체 연결은 로컬 정의에 대한 외부 종속성으로 계산되지 않으므로 이 플래그의 존재 또는 부재는 연결 허용 여부에 영향을 주지 않습니다. 반면에 현재 컬렉션이 로컬 정의 하위 개체에 대한 하위 개체 연결을 외부 내보내기(예: 셰이더)로 정의하는 경우 로컬 정의에 대한 외부 종속성으로 계산되며 이 플래그를 설정해야 합니다. 이 플래그의 존재 여부와 관계없이 컬렉션의 셰이더 진입점(예: 적중 그룹 또는 셰이더 누락)은 포함된 상태 개체(예: RTPSO)에 대한 진입점으로 표시됩니다(예: RTPSO). RTPSO의 경우 레이트레이싱을 위해 셰이더 테이블에서 내보낸 진입점을 사용할 수 있습니다. |
요구 사항
요구 사항 | 값 |
---|---|
헤더 | d3d12.h |