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.
Die folgenden Funktionen sind im Concurrency::direct3d Namespace (AMP) definiert:
Anforderungen
Kopfzeile: amp.h
Namespace: Gleichzeitigkeit
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.
Klemme
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 Spannbereichs.
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_Ansicht
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
Der Beschleuniger, in dem 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.
Bemerkungen
Diese Funktion erstellt ein neues accelerator_view-Objekt von einem vorhandenen Zeiger auf eine Direct3D-Geräteschnittstelle. Wenn der Funktionsaufruf erfolgreich ist, wird der Verweiszähler des Parameters durch einen 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
Erwirbt eine Sperre für eine "accelerator_view", um D3D-Vorgänge sicher ausführen zu können bei Ressourcen, die mit der "accelerator_view" freigegeben sind. Die "accelerator_view" und alle damit verbundenen C++ AMP-Ressourcen nehmen intern diese Sperre während der Ausführung von Vorgängen an und blockieren, solange ein anderer Thread die D3D-Zugriffssperre innehat. 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 "accelerator_view", die gesperrt werden soll.
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 "accelerator_view", die gesperrt werden soll.
Rückgabewert
"true", wenn die Sperre erworben wurde, oder "false", wenn sie derzeit von einem anderen Thread gehalten wird.
d3d_access_unlock
Gibt die D3D-Zugriffssperre für die angegebene accelerator_view frei. Wenn der aufrufende Thread den Lock auf "accelerator_view" nicht besitzt, sind die Ergebnisse undefiniert.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parameter
_Av
Die „accelerator_view“, für die die Verriegelung 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 gesetzten Bits.
firstbitlow
Ruft die Position des ersten gesetzten Bits in _X ab, beginnend mit dem niederwertigsten Bit und arbeitet sich zum höchstwertigen Bit vor.
inline int firstbitlow(int _X) restrict(amp);
Parameter
_X
Ganzzahliger Wert
Rückgabewert
Gibt die Stelle des ersten gesetzten 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
Werttyp
Der Typ der Elemente im Array.
_Rank
Der Rang des Arrays.
_Array
Ein Array auf einem Direct3D-accelerator_view, für das die zugrunde liegende Direct3D-Pufferschnittstelle abgerufen 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
Das D3D-accelerator_view, für das 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 Kennzeichen zurück, das angibt, ob das 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
_Beschleuniger_Ansicht
Die "accelerator_view", für die die deaktivierte Timeout-Einstellung abgefragt werden soll.
Rückgabewert
Ein boolesches Flag, das angibt, ob das Timeout für die angegebene Accelerator-Ansicht deaktiviert ist.
verrückt
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
Ein Array aus einem Direct3D-Pufferschnittstellenzeiger erstellen.
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
Werttyp
Der Elementtyp des zu erstellenden Arrays.
_Rank
Der Rang des zu erstellenden Arrays.
_Umfang
Ein Wertebereich, der die Form des Arrayaggregats beschreibt.
_Reisemobil
Eine D3D-Beschleunigungsansicht, in der das Array erstellt werden soll.
_D3D_buffer
IUnknown-Schnittstellenzeiger des D3D-Puffers, um das Array zu erstellen.
Rückgabewert
Ein mithilfe des angegebenen Direct3D-Puffers erstelltes Array.
Rauschen
Generiert einen Zufallswert mithilfe des Perlin-Rausch-Algorithmus.
inline float noise(float _X) restrict(amp);
Parameter
_X
Ein Gleitkommawert, aus dem Perlin-Rauschen generiert werden soll.
Rückgabewert
Gibt den Perlin-Rauschwert innerhalb eines Bereichs zwischen -1 und 1 zurück.
Bogenmaß
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ß umgewandelt 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 _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.
sättigen
Beschränkt _X auf den Bereich von 0 bis 1.
inline float saturate(float _X) restrict(amp);
Parameter
_X
Gleitkommawert
Rückgabewert
Gibt _X auf den Bereich von 0 bis 1 begrenzt 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.
Schritt
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.