Condividi tramite


Funzioni dello spazio dei nomi Concurrency::direct3d (AMP)

Requisiti

Intestazione: spazio dei nomi amp.h : concorrenza

abs

Restituisce il valore assoluto dell'argomento

inline int abs(int _X) restrict(amp);

Parametri

_X
Valore intero

Valore restituito

Restituisce il valore assoluto dell'argomento.

morsetto

Calcola il valore del primo argomento specificato bloccato su un intervallo definito dal secondo e dal terzo argomento specificato.

inline float clamp(
    float _X,
    float _Min,
    float _Max) restrict(amp);

inline int clamp(
    int _X,
    int _Min,
    int _Max) restrict(amp);

Parametri

_X
Valore da bloccare

_Min
Limite inferiore dell'intervallo di bloccaggio.

_Max
Limite superiore dell'intervallo di bloccaggio.

Valore restituito

Valore bloccato di _X.

countbit

Conta il numero di bit impostati in _X

inline unsigned int countbits(unsigned int _X) restrict(amp);

Parametri

_X
Valore intero senza segno

Valore restituito

Restituisce il numero di bit impostati in _X

create_accelerator_view

Crea un oggetto accelerator_view da un puntatore a un'interfaccia del dispositivo Direct3D.

Sintassi

accelerator_view create_accelerator_view(
    IUnknown * _D3D_device
    queuing_mode _Qmode = queuing_mode_automatic);

accelerator_view create_accelerator_view(
    accelerator& _Accelerator,
    bool _Disable_timeout
    queuing_mode _Qmode = queuing_mode_automatic);

Parametri

_Acceleratore
Acceleratore in cui creare il nuovo accelerator_view.

_D3D_device
Puntatore all'interfaccia del dispositivo Direct3D.

_Disable_timeout
Parametro booleano che specifica se il timeout deve essere disabilitato per il accelerator_view appena creato. Corrisponde al flag di D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT per la creazione del dispositivo Direct3D e viene usato per indicare se il sistema operativo deve consentire l'esecuzione dei carichi di lavoro che richiedono più di 2 secondi senza reimpostare il dispositivo in base al meccanismo di rilevamento e ripristino del timeout di Windows. L'uso di questo flag è consigliato se è necessario eseguire attività dispendiose in termini di tempo nel accelerator_view.

_Qmode
Queuing_mode da utilizzare per il accelerator_view appena creato. Questo parametro ha un valore predefinito di queuing_mode_automatic.

Valore restituito

Oggetto accelerator_view creato dall'interfaccia del dispositivo Direct3D passata.

Osservazioni:

Questa funzione crea un nuovo accelerator_view oggetto da un puntatore esistente a un'interfaccia del dispositivo Direct3D. Se la chiamata di funzione ha esito positivo, il conteggio dei riferimenti del parametro viene incrementato tramite una AddRef chiamata all'interfaccia. È possibile rilasciare in modo sicuro l'oggetto quando non è più necessario nel codice DirectX. Se la chiamata al metodo ha esito negativo, viene generata una runtime_exception .

L'oggetto accelerator_view creato tramite questa funzione è thread-safe. È necessario sincronizzare l'utilizzo simultaneo dell'oggetto accelerator_view . L'utilizzo simultaneo non sincronizzato dell'oggetto e dell'interfaccia accelerator_view ID3D11Device non elaborato causa un comportamento non definito.

Il runtime C++ AMP fornisce informazioni dettagliate sull'errore in modalità di debug usando il livello debug D3D se si usa il D3D11_CREATE_DEVICE_DEBUG flag .

d3d_access_lock

Acquisire un blocco su un accelerator_view allo scopo di eseguire operazioni D3D in modo sicuro sulle risorse condivise con il accelerator_view. Le accelerator_view e tutte le risorse C++ AMP associate a questo accelerator_view accettano internamente questo blocco durante l'esecuzione di operazioni e bloccano mentre un altro thread contiene il blocco di accesso D3D. Questo blocco non è ricorsivo: è un comportamento non definito per chiamare questa funzione da un thread che contiene già il blocco. È un comportamento non definito per eseguire operazioni sul accelerator_view o su qualsiasi contenitore di dati associato al accelerator_view dal thread che contiene il blocco di accesso D3D. Vedere anche scoped_d3d_access_lock, una classe in stile RAII per un blocco di accesso D3D basato sull'ambito.

void __cdecl d3d_access_lock(accelerator_view& _Av);

Parametri

_Av
Accelerator_view da bloccare.

d3d_access_try_lock

Tentare di acquisire il blocco di accesso D3D in un accelerator_view senza bloccare.

bool __cdecl d3d_access_try_lock(accelerator_view& _Av);

Parametri

_Av
Accelerator_view da bloccare.

Valore restituito

true se il blocco è stato acquisito o false se è attualmente mantenuto da un altro thread.

d3d_access_unlock

Rilasciare il blocco di accesso D3D sul accelerator_view specificato. Se il thread chiamante non contiene il blocco sul accelerator_view i risultati non sono definiti.

void __cdecl d3d_access_unlock(accelerator_view& _Av);

Parametri

_Av
Il accelerator_view per il quale deve essere rilasciato il blocco.

firstbithigh

Ottiene la posizione del primo bit impostato in _X, a partire dal bit più alto e spostandosi verso il bit più basso.

inline int firstbithigh(int _X) restrict(amp);

Parametri

_X
Valore intero

Valore restituito

Posizione del primo bit impostato

firstbitlow

Ottiene la posizione del primo bit impostato in _X, a partire dal bit più basso e lavorando verso il bit più alto.

inline int firstbitlow(int _X) restrict(amp);

Parametri

_X
Valore intero

Valore restituito

Restituisce La posizione del primo bit set

get_buffer

Ottenere l'interfaccia del buffer Direct3D sottostante la matrice specificata.

template<
    typename value_type,
    int _Rank
>
IUnknown *get_buffer(
    const array<value_type, _Rank>& _Array)  ;

Parametri

value_type
Tipo di elementi nella matrice.

_Rango
Classificazione della matrice.

_Array
Matrice in un accelerator_view Direct3D per cui viene restituita l'interfaccia del buffer Direct3D sottostante.

Valore restituito

Puntatore dell'interfaccia IUnknown corrispondente al buffer Direct3D sottostante la matrice.

get_device

Ottenere l'interfaccia del dispositivo D3D sottostante un accelerator_view.

IUnknown* get_device(const accelerator_view Av);

Parametri

Av
L'accelerator_view D3D per cui viene restituita l'interfaccia del dispositivo D3D sottostante.

Valore restituito

Puntatore IUnknown dell'interfaccia del dispositivo D3D sottostante il accelerator_view.

imax

Determinare il valore numerico massimo degli argomenti

inline int imax(
    int _X,
    int _Y) restrict(amp);

Parametri

_X
Valore intero

_Y
Valore intero

Valore restituito

Restituisce il valore numerico massimo degli argomenti

imin

Determinare il valore numerico minimo degli argomenti

inline int imin(
    int _X,
    int _Y) restrict(amp);

Parametri

_X
Valore intero

_Y
Valore intero

Valore restituito

Restituisce il valore numerico minimo degli argomenti

is_timeout_disabled

Restituisce un flag booleano che indica se il timeout è disabilitato per il accelerator_view specificato. Corrisponde al flag di D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT per la creazione del dispositivo Direct3D.

bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);

Parametri

_Accelerator_view
Il accelerator_view per cui deve essere eseguita una query sull'impostazione di timeout disabilitato.

Valore restituito

Flag booleano che indica se il timeout è disabilitato per il accelerator_view specificato.

mad

Calcola il prodotto del primo e del secondo argomento specificato, quindi aggiunge il terzo argomento specificato.

inline float mad(
    float _X,
    float _Y,
    float _Z) restrict(amp);

inline double mad(
    double _X,
    double _Y,
    double _Z) restrict(amp);

inline int mad(
    int _X,
    int _Y,
    int _Z) restrict(amp);

inline unsigned int mad(
    unsigned int _X,
    unsigned int _Y,
    unsigned int _Z) restrict(amp);

Parametri

_X
Primo argomento specificato.

_Y
Secondo argomento specificato.

_Z
Terzo argomento specificato.

Valore restituito

Risultato di _X * _Y + _Z.

make_array

Creare una matrice da un puntatore all'interfaccia del buffer Direct3D.

template<
    typename value_type,
    int _Rank
>
array<value_type, _Rank> make_array(
    const extent<_Rank>& _Extent,
    const Concurrency::accelerator_view& _Rv,
    IUnknown* _D3D_buffer)  ;

Parametri

value_type
Tipo di elemento della matrice da creare.

_Rango
Classificazione della matrice da creare.

_Misura
Extent che descrive la forma dell'aggregazione della matrice.

_Rv
Visualizzazione dell'acceleratore D3D su cui creare la matrice.

_D3D_buffer
Puntatore dell'interfaccia IUnknown del buffer D3D da cui creare la matrice.

Valore restituito

Matrice creata usando il buffer Direct3D fornito.

rumore

Genera un valore casuale usando l'algoritmo di disturbo Perlin

inline float noise(float _X) restrict(amp);

Parametri

_X
Valore a virgola mobile da cui generare rumore perlin

Valore restituito

Restituisce il valore del rumore Perlin compreso in un intervallo compreso tra -1 e 1

Radianti

Converte _X da gradi a radianti

inline float radians(float _X) restrict(amp);

Parametri

_X
Valore a virgola mobile

Valore restituito

Restituisce _X convertito da gradi a radianti

rcp

Calcola il reciproco dell'argomento specificato usando un'approssimazione rapida.

inline float rcp(float _X) restrict(amp);

inline double rcp(double _X) restrict(amp);

Parametri

_X
Valore per il quale calcolare il reciproco.

Valore restituito

Reciproco dell'argomento specificato.

reversebit

Inverte l'ordine dei bit in _X

inline unsigned int reversebits(unsigned int _X) restrict(amp);

Parametri

_X
Valore intero senza segno

Valore restituito

Restituisce il valore con l'ordine di bit invertito in _X

saturare

Le morse _X compreso nell'intervallo compreso tra 0 e 1

inline float saturate(float _X) restrict(amp);

Parametri

_X
Valore a virgola mobile

Valore restituito

Restituisce _X bloccato compreso nell'intervallo compreso tra 0 e 1

sign

Determina il segno dell'argomento specificato.

inline int sign(int _X) restrict(amp);

Parametri

_X
Valore intero

Valore restituito

Segno dell'argomento.

smussato

Restituisce un'interpolazione di emite uniforme compresa tra 0 e 1, se _X è compreso nell'intervallo [_Min, _Max].

inline float smoothstep(
    float _Min,
    float _Max,
    float _X) restrict(amp);

Parametri

_Min
Valore a virgola mobile

_Max
Valore a virgola mobile

_X
Valore a virgola mobile

Valore restituito

Restituisce 0 se _X è minore di _Min; 1 se _X è maggiore di _Max; in caso contrario, un valore compreso tra 0 e 1 se _X è compreso nell'intervallo [_Min, _Max]

step

Confronta due valori, restituendo 0 o 1 in base al valore maggiore

inline float step(
    float _Y,
    float _X) restrict(amp);

Parametri

_Y
Valore a virgola mobile

_X
Valore a virgola mobile

Valore restituito

Restituisce 1 se il _X è maggiore o uguale a _Y; in caso contrario, 0

umax

Determinare il valore numerico massimo degli argomenti

inline unsigned int umax(
    unsigned int _X,
    unsigned int _Y) restrict(amp);

Parametri

_X
Valore intero

_Y
Valore intero

Valore restituito

Restituisce il valore numerico massimo degli argomenti

umin

Determinare il valore numerico minimo degli argomenti

inline unsigned int umin(
    unsigned int _X,
    unsigned int _Y) restrict(amp);

Parametri

_X
Valore intero

_Y
Valore intero

Valore restituito

Restituisce il valore numerico minimo degli argomenti

Vedi anche

Spazio dei nomi Concurrency::direct3d