Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Anforderungen
Kopfzeile: 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 wert, der eingeklemmt werden soll.
_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 _Xzurück.
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 die Position des ersten Set-Bits in _Xab, beginnend mit dem Bit der höchsten Reihenfolge und dem Wechsel zum Bit der niedrigsten Reihenfolge.
inline int firstbithigh(int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert
Rückgabewert
Die Position des ersten Set-Bits.
firstbitlow
Ruft die Position des ersten festgelegten Bits in _Xab, beginnend mit dem Bit der niedrigsten Reihenfolge und der Arbeit an dem Bit der höchsten Reihenfolge.
inline int firstbitlow(int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert
Rückgabewert
Gibt die Position des ersten Satzbits 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
Bestimmen Sie den maximalen numerischen Wert der Argumente.
inline int imax(
int _X,
int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Gibt den maximalen numerischen Wert der Argumente zurück.
imin
Bestimmen Sie den minimalen numerischen Wert der Argumente.
inline int imin(
int _X,
int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Gibt den minimalen numerischen Wert der Argumente zurück.
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
Wandelt _X von Grad in Bogenmaß um.
inline float radians(float _X) restrict(amp);
Parameter
_X
Gleitkommawert
Rückgabewert
Gibt _X von Grad in Bogenmaß konvertiert.
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 _Xum.
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert ohne Vorzeichen
Rückgabewert
Gibt den Wert mit umgekehrter Bitreihenfolge in _Xzurück.
saturate
Klemmt _X innerhalb des Bereichs von 0 bis 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 Hermit-Interpolation zwischen 0 und 1 zurück, wenn _X sich im Bereich [_Min, _Max] befindet.
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, wobei 0 oder 1 basierend darauf zurückgegeben wird, welcher Wert größer ist.
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 _Yist; andernfalls 0.
umax
Bestimmen Sie den maximalen numerischen Wert der Argumente.
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Gibt den maximalen numerischen Wert der Argumente zurück.
umin
Bestimmen Sie den minimalen numerischen Wert der Argumente.
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parameter
_X
Ganzzahliger Wert
_Y
Ganzzahliger Wert
Rückgabewert
Gibt den minimalen numerischen Wert der Argumente zurück.