Concurrency::direct3d-Namespace-Funktionen (AMP)
Anforderungen
Header: amp.h-Namespace: Parallelität
abs
Gibt den absoluten Wert des Arguments zurück.
inline int abs(int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert
Rückgabewert
Gibt den absoluten Wert des Arguments zurück.
clamp
Berechnet den Wert des angegebenen ersten Arguments, das an einen Bereich gebunden ist, der vom zweiten und dritten angegebenen Argument definiert wird.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Parameter
_X
Der zu bindende Wert
_Min
Die untere Grenze des gebundenen Bereichs.
_Max
Die obere Grenze des gebundenen Bereichs.
Rückgabewert
Der gebundene Wert von _X
.
countbits
Zählt die Anzahl der festgelegten Bits in _X
inline unsigned int countbits(unsigned int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert ohne Vorzeichen
Rückgabewert
Gibt die Anzahl der festgelegten Bits in _X
create_accelerator_view
Erstellt ein accelerator_view -Objekt von einem Zeiger auf eine Direct3D-Geräteschnittstelle.
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);
Parameter
_Beschleuniger
Die Zugriffstaste, auf der das neue accelerator_view-Objekt erstellt werden soll.
_D3D_device
Der Zeiger auf die Schnittstelle eines Direct3D-Geräts.
_Disable_timeout
Ein boolescher Parameter, der angibt, ob das Timeout für das neu erstellte accelerator_view-Objekt deaktiviert werden sollte. Dies entspricht dem D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT-Flag für die Erstellung von Direct3D-Geräten und wird verwendet, um anzugeben, ob das Betriebssystem Arbeitslasten zulässt, deren Ausführung mehr als 2 Sekunden dauert, ohne das Gerät über den Windows-TDR-Mechanismus (Timeout Detection and Recovery) zurückzusetzen. Die Verwendung dieses Flags wird empfohlen, wenn Sie zeitintensive Aufgaben im accelerator_view-Objekt ausführen müssen.
_Qmode
Die queuing_mode , die für die neu erstellte accelerator_view verwendet werden soll. Der Standardwert dieses Parameters ist queuing_mode_automatic
.
Rückgabewert
Das accelerator_view
-Objekt, das über die übergebene Direct3D-Geräteschnittstelle erstellt wurde.
Hinweise
Diese Funktion erstellt ein neues accelerator_view
-Objekt von einem vorhandenen Zeiger auf eine Direct3D-Geräteschnittstelle. Wenn der Funktionsaufruf folgt, wird der Verweiszähler des Parameters mit einem AddRef
-Aufruf der Schnittstelle erhöht. Sie können das Objekt sicher freigeben, wenn es im DirectX-Code nicht mehr benötigt wird. Wenn der Methodenaufruf fehlschlägt, wird ein runtime_exception ausgelöst.
Das accelerator_view
-Objekt, das Sie mit dieser Funktion erstellen, ist threadsicher. Sie müssen die gleichzeitige Verwendung des accelerator_view
-Objekts synchronisieren. Die unsynchronisierte gleichzeitige Verwendung des accelerator_view
-Objekts und die unformatierte ID3D11Device-Schnittstelle verursachen ein nicht definiertes Verhalten.
Die C++-AMP-Laufzeit stellt detaillierte Fehlerinformationen im Debugmodus mithilfe der D3D-Debugebene bereit, wenn Sie das D3D11_CREATE_DEVICE_DEBUG
-Flag verwenden.
d3d_access_lock
Ruft eine Sperre für eine "accelerator_view" ab, um D3D-Vorgänge in Ressourcen, die gemeinsam mit der "accelerator_view" genutzt werden, sicher ausführen zu können. Die "accelerator_view" und alle C++ AMP-Ressourcen, die dieser "accelerator_view" intern zugeordnet sind, werden gesperrt, wenn Vorgänge ausgeführt werden, und blockieren, während ein anderer Thread die D3D-Zugriffssperre inne hat. Diese Sperre ist nicht rekursiv: Es ist nicht definiertes Verhalten, diese Funktion von einem Thread aufzurufen, der bereits die Sperre besitzt. Es ist nicht definiertes Verhalten, Vorgänge für die "accelerator_view" oder Datencontainer auszuführen, die der "accelerator_view" vom Thread zugeordnet sind, der die D3D-Zugriffssperre besitzt. Siehe auch: "scoped_d3d_access_lock", eine RAII-Formatklasse für eine bereichsbasierte D3D-Zugriffssperre.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Parameter
_Av
Die zu sperrende "accelerator_view".
d3d_access_try_lock
Versuch, ohne Blockierung die D3D-Zugriffssperre für eine accelerator_view abzurufen.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Parameter
_Av
Die zu sperrende "accelerator_view".
Rückgabewert
"true", wenn die Sperre abgerufen wurde, oder "false", wenn sie durch einen anderen Thread verwendet wird.
d3d_access_unlock
Gibt die D3D-Zugriffssperre für die angegebene accelerator_view frei. Wenn der aufrufende Thread nicht die Sperre für "accelerator_view" hat, sind die Ergebnisse nicht definiert.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parameter
_Av
Die „accelerator_view“, für die die Sperre aufgehoben werden soll.
firstbithigh
Ruft den Speicherort des ersten festgelegten Bits in _X ab, beginnend mit dem höchsten Bit und arbeitet sich weiter bis zum niedrigsten Bit.
inline int firstbithigh(int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert
Rückgabewert
Der Speicherort des ersten festgelegten Bits
firstbitlow
Ruft den Speicherort des ersten festgelegten Bits in _X ab, beginnend mit dem niederwertigsten Bit und arbeitet sich weiter bis zum höchsten Bit.
inline int firstbitlow(int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert
Rückgabewert
Gibt den Speicherort des ersten festgelegten Bits zurück
get_buffer
Rufen Sie die Direct3D-Pufferschnittstelle ab, die dem angegebenen Array zugrunde liegt.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array) ;
Parameter
value_type
Der Typ der Elemente im Array.
_Rank
Der Rang des Arrays.
_Array
Ein Array auf einem Direct3D-accelerator_view_Objekt, für das die zugrunde liegende Direct3D-Pufferschnittstelle zurückgegeben wird.
Rückgabewert
Der IUnknown-Schnittstellenzeiger entspricht dem Direct3D-Puffer, der dem Array zugrunde liegt.
get_device
Rufen Sie die D3D-Geräteschnittstelle ab, die einem accelerator_view zugrunde liegt.
IUnknown* get_device(const accelerator_view Av);
Parameter
Av
Die D3D-accelerator_view, für die die zugrunde liegende D3D-Geräteschnittstelle zurückgegeben wird.
Rückgabewert
Der IUnknown
Schnittstellenzeiger des D3D-Geräts, das dem accelerator_view zugrunde liegt.
imax
Festlegung des höchsten numerischen Werts der Argumente
inline int imax(
int _X,
int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Rückgabe des höchsten numerischen Werts der Argumente
imin
Festlegung des niedrigsten numerischen Werts der Argumente
inline int imin(
int _X,
int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Rückgabe des niedrigsten numerischen Werts der Argumente
is_timeout_disabled
Gibt ein boolesches Flag zurück, das angibt, ob Timeout für die angegebene "accelerator_view" deaktiviert ist. Dies entspricht dem D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT-Flag für Direct3D-Geräteerstellung.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Parameter
_Accelerator_view
Die "accelerator_view", für die die deaktivierte Timeouteinstellung, abgefragt werden soll.
Rückgabewert
Ein boolesches Flag, das angibt, ob Timeout für die angegebene "accelerator_view" deaktiviert ist.
mad
Berechnet das Produkt des ersten und zweiten angegebenen Arguments und fügt dann das dritte angegebene Argument hinzu.
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);
Parameter
_X
Das erste angegebene Argument.
_Y
Das zweite angegebene Argument.
_Z
Das dritte angegebene Argument.
Rückgabewert
Das Ergebnis von _X
* _Y
+ _Z
.
make_array
Erstellt ein Array aus dem Schnittstellenzeiger eines Direct3D-Puffers.
template<
typename value_type,
int _Rank
>
array<value_type, _Rank> make_array(
const extent<_Rank>& _Extent,
const Concurrency::accelerator_view& _Rv,
IUnknown* _D3D_buffer) ;
Parameter
value_type
Der Elementtyp des zu erstellenden Arrays.
_Rank
Der Rang des zu erstellenden Arrays.
_Umfang
Ein Wertebereich, der die Form des Arrayaggregats beschreibt.
_Wohnmobil
Eine D3D-Zugriffstastenansicht, in der das Array erstellt werden soll.
_D3D_buffer
IUnknown-Schnittstellenzeiger des D3D-Puffers zum Erstellen des Arrays.
Rückgabewert
Ein mithilfe des angegebenen Direct3D-Puffers erstelltes Array.
noise
Generiert einen Zufallswert mithilfe des Perlin-Rauschalgorithmus
inline float noise(float _X) restrict(amp);
Parameter
_X
Gleitkommawert, aus dem Perlin-Rauschen generiert werden sollen
Rückgabewert
Gibt den Perlin-Rauschwert innerhalb eines Bereichs zwischen -1 und 1 zurück.
radians
Konvertiert _X von Grad in Bogenmaß
inline float radians(float _X) restrict(amp);
Parameter
_X
Gleitkommawert
Rückgabewert
Gibt _X von Grad in Bogenmaß konvertiert zurück.
rcp
Berechnet den Kehrwert des angegebenen Arguments mithilfe einer schnellen Näherung.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Parameter
_X
Der Wert, für den der Kehrwert berechnet werden soll.
Rückgabewert
Der Kehrwert des angegebenen Arguments.
reversebits
Kehrt die Reihenfolge der Bits in _X um
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert ohne Vorzeichen
Rückgabewert
Gibt den Wert zurück, bei dem die Bitreihenfolge in _X umgekehrt wurde.
saturate
Bindet _X im Bereich zwischen 0 und 1
inline float saturate(float _X) restrict(amp);
Parameter
_X
Gleitkommawert
Rückgabewert
Gibt _X innerhalb des Bereichs von 0 bis 1 geklemmt zurück.
sign
Bestimmt das Vorzeichen des angegebenen Arguments.
inline int sign(int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert
Rückgabewert
Das Vorzeichen des Arguments.
smoothstep
Gibt eine glatte Hermite-Interpolation zwischen 0 und 1 zurück, wenn _X im Bereich [_Min, _Max] liegt.
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Parameter
_Min
Gleitkommawert
_Max
Gleitkommawert
_X
Gleitkommawert
Rückgabewert
Gibt 0 zurück, wenn _X kleiner als _Min ist; 1, wenn _X größer als _Max ist; andernfalls ein Wert zwischen 0 und 1, wenn _X sich im Bereich [_Min, _Max] befindet.
step
Vergleicht zwei Werte und gibt, je nachdem welcher Wert größer ist, 0 oder 1 zurück
inline float step(
float _Y,
float _X) restrict(amp);
Parameter
_Y
Gleitkommawert
_X
Gleitkommawert
Rückgabewert
Gibt 1 zurück, wenn die _X größer oder gleich _Y ist; andernfalls 0
umax
Festlegung des höchsten numerischen Werts der Argumente
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Rückgabe des höchsten numerischen Werts der Argumente
umin
Festlegung des niedrigsten numerischen Werts der Argumente
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Rückgabe des niedrigsten numerischen Werts der Argumente