Expand Minimize

D3DDDI_SYNCHRONIZATIONOBJECTINFO2 structure

[Some information relates to pre-released product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.]

The D3DDDI_SYNCHRONIZATIONOBJECTINFO2 structure contains information about a second-generation synchronization object.

Syntax


typedef struct _D3DDDI_SYNCHRONIZATIONOBJECTINFO2 {
  D3DDDI_SYNCHRONIZATIONOBJECT_TYPE  Type;
  D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS Flags;
  union {
    struct {
      BOOL InitialState;
    } SynchronizationMutex;
    struct {
      UINT MaxCount;
      UINT InitialCount;
    } Semaphore;
    struct {
      UINT64 FenceValue;
    } Fence;
    struct {
      HANDLE Event;
    } CPUNotification;
#if ((DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WDDM2_0) || \
     (D3D_UMD_INTERFACE_VERSION >= D3D_UMD_INTERFACE_VERSION_WDDM2_0))
    struct {
      UINT64                 InitialFenceValue;
      VOID                   *FenceValueCPUVirtualAddress;
      D3DGPU_VIRTUAL_ADDRESS FenceValueGPUVirtualAddress;
      UINT                   EngineAffinity;
    } MonitoredFence;
#endif 
    struct {
      UINT64 Reserved[8];
    } Reserved;
  };
  D3DKMT_HANDLE                      SharedHandle;
} D3DDDI_SYNCHRONIZATIONOBJECTINFO2;

Members

Type

[in] A value of type D3DDDI_SYNCHRONIZATIONOBJECT_TYPE that indicates the type of synchronization object.

Flags

[in] A D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS structure that specifies, in bit-field flags, attributes of the synchronization object.

SynchronizationMutex

A structure that contains information about a synchronization mutex. If the Type member is equal to D3DDDI_SYNCHRONIZATION_MUTEX, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a SynchronizationMutex structure, which contains the following member:

InitialState

A Boolean value that indicates whether the synchronization mutex is initially owned by an object. A value of TRUE indicates that the mutex is owned; FALSE indicates that the mutex is not owned.

Semaphore

A structure that contains information about a semaphore. If the Type member is equal to D3DDDI_SEMAPHORE, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a Semaphore structure, which contains the following members:

MaxCount

The maximum number of events that an object can be waiting for.

InitialCount

The initial number of events that an object is waiting for.

Fence

A structure that contains information about a fence. If the Type member is equal to D3DDDI_FENCE, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a Fence structure, which contains the following member:

FenceValue

A 64-bit value that specifies the initial fence value.

CPUNotification

A structure that contains information about a CPU notification. If the Type member is equal to D3DDDI_CPU_NOTIFICATION, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a CPUNotification structure, which contains the following member:

Event

The handle to the CPU notification event.

MonitoredFence

A structure that contains information about a monitored fence. If the Type member is equal to D3DDDI_MONITORED_FENCE, the union in D3DDDI_SYNCHRONIZATIONOBJECTINFO2 holds a MonitoredFence structure.

Supported starting with Windows 10 Insider Preview.

InitialFenceValue

[in] A 64-bit value that specifies the initial fence value.

Supported starting with Windows 10 Insider Preview.

FenceValueCPUVirtualAddress

[out] A read-only mapping of the fence value for the CPU. This is a user mode address readable from the process that created the monitored fence object. For 32 bit platforms that support 64 bit atomic reads via methods such as InterlockedCompareExchange64(pointer,0,0), the mapping will be made read-write instead of read-only to avoid an access violation during the interlocked operation. Depending on the value of No64BitAtomics cap, this address points to either a 32 bit or a 64 bit underlying value.

Supported starting with Windows 10 Insider Preview.

FenceValueGPUVirtualAddress

[out] A read-write mapping of the fence value for the GPU. A driver can signal a new fence value by inserting a GPU write command for this address into a command buffer, and the DirectX graphics kernel will unblock waiters for this fence object value. Depending on the value of No64BitAtomics cap, this address points to either a 32 bit or a 64 bit underlying value.

Supported starting with Windows 10 Insider Preview.

EngineAffinity

[in] A bit field, where each bit position (starting from zero) defines a physical adapter index in an link display adapter (LDA) link where the GPU virtual address will be committed. Zero means that the GPU virtual address will be committed to all physical adapters.

Supported starting with Windows 10 Insider Preview.

Reserved

A structure that is reserved for future use. This structure contains the following member:

Reserved

An array of 64-bit values that are reserved for future use.

SharedHandle

[out] A handle to the shared synchronization object if a shared handle currently exists. The shared handle is returned from the call to the D3DKMTCreateSynchronizationObject2 function.

Requirements

Version

D3DDDI_SYNCHRONIZATIONOBJECTINFO2 is supported beginning with the Windows 7 operating system.

Header

D3dukmdt.h (include D3dumddi.h or D3dkmddi.h)

See also

D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS
D3DDDI_SYNCHRONIZATIONOBJECT_TYPE
D3DKMT_CREATESYNCHRONIZATIONOBJECT2
D3DKMTCreateSynchronizationObject2

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft