Dela via


Concurrency::d irect3d namespace functions (AMP)

Krav

rubrik: amp.h

namnområde: Samtidighet

magmuskler

Returnerar argumentets absoluta värde.

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

Parametrar

_X
Heltalsvärde

Returvärde

Returnerar argumentets absoluta värde.

klämma

Beräknar värdet för det första angivna argumentet som är fastklämt till ett intervall som definieras av de andra och tredje angivna argumenten.

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

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

Parametrar

_X
Värdet som ska spännas fast.

_Min
Fastspänningsområdets nedre gräns.

_Max
Fastspänningsintervallets övre gräns.

Returvärde

Det klämda värdet för _X.

countbits

Räknar antalet angivna bitar i _X.

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

Parametrar

_X
Osignerat heltalsvärde

Returvärde

Returnerar antalet angivna bitar i _X.

create_accelerator_view

Skapar ett accelerator_view objekt från en pekare till ett Direct3D-enhetsgränssnitt.

Syntax

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);

Parametrar

_Accelerator
Den accelerator som den nya accelerator_view ska skapas på.

_D3D_device
Pekaren till Direct3D-enhetsgränssnittet.

_Disable_timeout
En boolesk parameter som anger om tidsgränsen ska inaktiveras för den nyligen skapade accelerator_view. Detta motsvarar flaggan D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT för att skapa Direct3D-enheter och används för att ange om operativsystemet ska tillåta arbetsbelastningar som tar mer än 2 sekunder att köra utan att återställa enheten enligt mekanismen för identifiering och återställning av Tidsgräns för Windows. Användning av den här flaggan rekommenderas om du behöver utföra tidskrävande uppgifter på accelerator_view.

_Qmode
Den queuing_mode som ska användas för den nyligen skapade accelerator_view. Den här parametern har standardvärdet queuing_mode_automatic.

Returvärde

Det accelerator_view objekt som skapats från det skickade Direct3D-enhetsgränssnittet.

Anmärkningar

Den här funktionen skapar ett nytt accelerator_view-objekt från en befintlig pekare till ett Direct3D-enhetsgränssnitt. Om funktionsanropet lyckas ökas referensantalet för parametern med hjälp av ett AddRef-anrop till gränssnittet. Du kan släppa objektet på ett säkert sätt när det inte längre krävs i DirectX-koden. Om metodanropet misslyckas utlöses en runtime_exception.

Det accelerator_view objekt som du skapar med hjälp av den här funktionen är trådsäkert. Du måste synkronisera samtidig användning av accelerator_view-objektet. Osynkroniserad samtidig användning av accelerator_view-objektet och det råa ID3D11Enhetsgränssnittet orsakar odefinierat beteende.

C++ AMP-körningen innehåller detaljerad felinformation i felsökningsläge med hjälp av D3D-felsökningsskiktet om du använder flaggan D3D11_CREATE_DEVICE_DEBUG.

d3d_access_lock

Skaffa ett lås på en accelerator_view för att på ett säkert sätt utföra D3D-åtgärder på resurser som delas med accelerator_view. De accelerator_view och alla C++ AMP-resurser som är associerade med den här accelerator_view internt ta det här låset när du utför åtgärder och blockeras medan en annan tråd innehåller D3D-åtkomstlåset. Det här låset är icke-rekursivt: Det är odefinierat beteende att anropa den här funktionen från en tråd som redan innehåller låset. Det är odefinierat beteende att utföra åtgärder på accelerator_view eller någon datacontainer som är associerad med accelerator_view från tråden som innehåller D3D-åtkomstlåset. Se även scoped_d3d_access_lock, en RAII-klass för ett omfångsbaserat D3D-åtkomstlås.

void __cdecl d3d_access_lock(accelerator_view& _Av);

Parametrar

_Av
Accelerator_view att låsa.

d3d_access_try_lock

Försök att hämta D3D-åtkomstlåset på en accelerator_view utan att blockera.

bool __cdecl d3d_access_try_lock(accelerator_view& _Av);

Parametrar

_Av
Accelerator_view att låsa.

Returvärde

sant om låset har hämtats eller falskt om det för närvarande innehas av en annan tråd.

d3d_access_unlock

Släpp D3D-åtkomstlåset på den angivna accelerator_view. Om den anropande tråden inte håller låset på accelerator_view är resultatet odefinierat.

void __cdecl d3d_access_unlock(accelerator_view& _Av);

Parametrar

_Av
Den accelerator_view som låset ska släppas för.

firstbithigh

Hämtar platsen för den första angivna biten i _X, som börjar med den högsta biten och går mot den lägsta biten.

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

Parametrar

_X
Heltalsvärde

Returvärde

Platsen för den första set-biten.

firstbitlow

Hämtar platsen för den första set-biten i _X, som börjar med den lägsta biten och arbetar mot den högsta ordningen.

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

Parametrar

_X
Heltalsvärde

Returvärde

Returnerar platsen för den första angivna biten.

get_buffer

Hämta Direct3D-buffertgränssnittet som ligger bakom den angivna matrisen.

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

Parametrar

value_type
Typ av element i matrisen.

_Rank
Matrisens rangordning.

_Array
En matris på en Direct3D-accelerator_view som det underliggande Direct3D-buffertgränssnittet returneras för.

Returvärde

IUnknown-gränssnittspekaren som motsvarar Direct3D-bufferten som ligger bakom matrisen.

get_device

Hämta D3D-enhetsgränssnittet som ligger till grund för en accelerator_view.

IUnknown* get_device(const accelerator_view Av);

Parametrar

Av
D3D-accelerator_view som det underliggande D3D-enhetsgränssnittet returneras för.

Returvärde

Den IUnknown gränssnittspekaren för den D3D-enhet som ligger bakom accelerator_view.

imax

Fastställ det maximala numeriska värdet för argumenten.

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

Parametrar

_X
Heltalsvärde

_Y
Heltalsvärde

Returvärde

Returnera det maximala numeriska värdet för argumenten.

imin

Fastställ det minsta numeriska värdet för argumenten.

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

Parametrar

_X
Heltalsvärde

_Y
Heltalsvärde

Returvärde

Returnera det minsta numeriska värdet för argumenten.

is_timeout_disabled

Returnerar en boolesk flagga som anger om tidsgränsen är inaktiverad för den angivna accelerator_view. Detta motsvarar flaggan D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT för att skapa Direct3D-enheter.

bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);

Parametrar

_Accelerator_view
Den accelerator_view som tidsgränsen inaktiverades för ska efterfrågas.

Returvärde

En boolesk flagga som anger om tidsgränsen är inaktiverad för den angivna accelerator_view.

vansinnig

Beräknar produkten för det första och andra angivna argumentet och lägger sedan till det tredje angivna argumentet.

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);

Parametrar

_X
Det första angivna argumentet.

_Y
Det andra angivna argumentet.

_Z
Det tredje angivna argumentet.

Returvärde

Resultatet av _X * _Y + _Z.

make_array

Skapa en matris från en Direct3D-buffertgränssnittspekare.

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

Parametrar

value_type
Elementtypen för matrisen som ska skapas.

_Rank
Rangordningen för matrisen som ska skapas.

_Extent
En omfattning som beskriver matrisaggregatets form.

_Rv
En D3D-acceleratorvy där matrisen ska skapas.

_D3D_buffer
IUnknown-gränssnittspekaren för D3D-bufferten som du vill skapa matrisen från.

Returvärde

En matris som skapats med den angivna Direct3D-bufferten.

buller

Genererar ett slumpmässigt värde med hjälp av Perlin-brusalgoritmen.

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

Parametrar

_X
Flyttalsvärde som perlinbrus ska genereras från.

Returvärde

Returnerar värdet perlinbrus inom ett intervall mellan -1 och 1.

Radianer

Konverterar _X från grader till radianer.

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

Parametrar

_X
Flyttalsvärde

Returvärde

Returnerar _X konverteras från grader till radianer.

Rcp

Beräknar reciprocal för det angivna argumentet med hjälp av en snabb uppskattning.

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

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

Parametrar

_X
Värdet som reciprocal ska beräknas för.

Returvärde

Reciprocal för det angivna argumentet.

reversebits

Ändrar ordningen på bitarna i _X.

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

Parametrar

_X
Osignerat heltalsvärde

Returvärde

Returnerar värdet med bitordningen omvänd i _X.

mätta

Klämmor _X inom intervallet 0 till 1.

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

Parametrar

_X
Flyttalsvärde

Returvärde

Returnerar _X inom intervallet 0 till 1.

tecken

Avgör tecknet för det angivna argumentet.

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

Parametrar

_X
Heltalsvärde

Returvärde

Argumentets tecken.

smoothstep

Returnerar en jämn Hermite-interpolation mellan 0 och 1, om _X är inom intervallet [_Min, _Max].

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

Parametrar

_Min
Flyttalsvärde

_Max
Flyttalsvärde

_X
Flyttalsvärde

Returvärde

Returnerar 0 om _X är mindre än _Min. 1 om _X är större än _Max; Annars är ett värde mellan 0 och 1 om _X ligger inom intervallet [_Min, _Max].

steg

Jämför två värden och returnerar 0 eller 1 baserat på vilket värde som är större.

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

Parametrar

_Y
Flyttalsvärde

_X
Flyttalsvärde

Returvärde

Returnerar 1 om _X är större än eller lika med _Y; annars 0.

umax

Fastställ det maximala numeriska värdet för argumenten.

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

Parametrar

_X
Heltalsvärde

_Y
Heltalsvärde

Returvärde

Returnera det maximala numeriska värdet för argumenten.

umin

Fastställ det minsta numeriska värdet för argumenten.

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

Parametrar

_X
Heltalsvärde

_Y
Heltalsvärde

Returvärde

Returnera det minsta numeriska värdet för argumenten.

Se även

Concurrency::d irect3d Namespace