다음을 통해 공유


Concurrency::direct3d 네임스페이스 함수(AMP)

요구 사항

헤더: amp.h 네임스페이스: 동시성

abs

인수의 절대값을 반환합니다.

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

매개 변수

_X
정수 값

Return Value

인수의 절대값을 반환합니다.

clamp

두 번째 및 세 번째 지정된 인수로 정의된 범위로 고정된 첫 번째 지정된 인수의 값을 계산합니다.

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

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

매개 변수

_X
고정할 값입니다.

_분
클램핑 범위의 하한입니다.

_최대
클램핑 범위의 상한입니다.

Return Value

의 고정된 값입니다 _X.

countbits

_X 설정된 비트 수를 계산합니다.

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

매개 변수

_X
부호 없는 정수 값

Return Value

_X 설정된 비트 수를 반환합니다.

create_accelerator_view

Direct3D 디바이스 인터페이스에 대한 포인터에서 accelerator_view 개체를 만듭니다.

구문

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

매개 변수

_가속기
새 accelerator_view 만들 가속기입니다.

_D3D_device
Direct3D 디바이스 인터페이스에 대한 포인터입니다.

_Disable_timeout
새로 만든 accelerator_view 시간 제한을 사용하지 않도록 설정할지 여부를 지정하는 부울 매개 변수입니다. 이는 Direct3D 디바이스를 만들기 위한 D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT 플래그에 해당하며, 운영 체제에서 Windows 시간 제한 검색 및 복구 메커니즘에 따라 디바이스를 다시 설정하지 않고 2초 이상 걸리는 워크로드를 실행할 수 있도록 허용해야 하는지 여부를 나타내는 데 사용됩니다. accelerator_view 시간이 많이 걸리는 작업을 수행해야 하는 경우 이 플래그를 사용하는 것이 좋습니다.

_Qmode
새로 만든 accelerator_view 사용할 queuing_mode. 이 매개 변수의 기본값은 .입니다 queuing_mode_automatic.

Return Value

accelerator_view 전달된 Direct3D 디바이스 인터페이스에서 만든 개체입니다.

설명

이 함수는 기존 포인터에서 Direct3D 디바이스 인터페이스에 대한 새 accelerator_view 개체를 만듭니다. 함수 호출이 성공하면 인터페이스 호출을 통해 매개 변수의 AddRef 참조 수가 증가합니다. DirectX 코드에서 더 이상 필요하지 않은 경우 개체를 안전하게 해제할 수 있습니다. 메서드 호출이 실패 하면 runtime_exception throw됩니다.

accelerator_view 함수를 사용하여 만드는 개체는 스레드로부터 안전합니다. 개체의 accelerator_view 동시 사용을 동기화해야 합니다. 개체와 원시 ID3D11Device 인터페이스의 accelerator_view 비동기화 동시 사용으로 인해 정의되지 않은 동작이 발생합니다.

C++ AMP 런타임은 플래그를 사용하는 경우 D3D 디버그 계층을 사용하여 디버그 모드에서 D3D11_CREATE_DEVICE_DEBUG 자세한 오류 정보를 제공합니다.

d3d_access_lock

accelerator_view 공유된 리소스에서 D3D 작업을 안전하게 수행하기 위해 accelerator_view 잠금을 획득합니다. 이 accelerator_view 연결된 accelerator_view 및 모든 C++ AMP 리소스는 작업을 수행할 때 내부적으로 이 잠금을 사용하고 다른 스레드가 D3D 액세스 잠금을 보유하는 동안 차단됩니다. 이 잠금은 재귀적이지 않습니다. 이미 잠금을 보유하고 있는 스레드에서 이 함수를 호출하는 것은 정의되지 않은 동작입니다. accelerator_view 또는 D3D 액세스 잠금을 보유하는 스레드의 accelerator_view 연결된 데이터 컨테이너에 대한 작업을 수행하는 것은 정의되지 않은 동작입니다. 범위 기반 D3D 액세스 잠금에 대한 RAII 스타일 클래스인 scoped_d3d_access_lock 참조하세요.

void __cdecl d3d_access_lock(accelerator_view& _Av);

매개 변수

_Av
잠글 accelerator_view.

d3d_access_try_lock

차단 없이 accelerator_view D3D 액세스 잠금을 획득하려고 시도합니다.

bool __cdecl d3d_access_try_lock(accelerator_view& _Av);

매개 변수

_Av
잠글 accelerator_view.

Return Value

잠금을 획득한 경우 true이고, 현재 다른 스레드에서 잠금을 보유하고 있는 경우 false입니다.

d3d_access_unlock

지정된 accelerator_view D3D 액세스 잠금을 해제합니다. 호출 스레드가 accelerator_view 잠금을 유지하지 않으면 결과가 정의되지 않습니다.

void __cdecl d3d_access_unlock(accelerator_view& _Av);

매개 변수

_Av
잠금을 해제할 accelerator_view.

firstbithigh

_X 첫 번째 집합 비트의 위치를 가져오며, 가장 높은 순서 비트에서 시작하여 가장 낮은 순서 비트로 이동합니다.

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

매개 변수

_X
정수 값

Return Value

첫 번째 집합 비트의 위치

firstbitlow

_X 첫 번째 집합 비트의 위치를 가져오며, 가장 낮은 순서 비트에서 시작하여 가장 높은 순서의 비트로 작업합니다.

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

매개 변수

_X
정수 값

Return Value

첫 번째 집합 비트의 위치를 반환합니다.

get_buffer

지정된 배열의 기본이 되는 Direct3D 버퍼 인터페이스를 가져옵니다.

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

매개 변수

value_type
배열 요소의 형식입니다.

_Rank
배열의 순위입니다.

_Array
기본 Direct3D 버퍼 인터페이스가 반환되는 Direct3D accelerator_view 배열입니다.

Return Value

배열의 기본이 되는 Direct3D 버퍼에 해당하는 IUnknown 인터페이스 포인터입니다.

get_device

accelerator_view 기본 D3D 디바이스 인터페이스를 가져옵니다.

IUnknown* get_device(const accelerator_view Av);

매개 변수

Av
기본 D3D 디바이스 인터페이스가 반환되는 D3D accelerator_view.

반환 값

IUnknown accelerator_view 기본 D3D 디바이스의 인터페이스 포인터입니다.

아이 맥스

인수의 최대 숫자 값 결정

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

매개 변수

_X
정수 값

_Y
정수 값

Return Value

인수의 최대 숫자 값을 반환합니다.

imin

인수의 최소 숫자 값 결정

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

매개 변수

_X
정수 값

_Y
정수 값

Return Value

인수의 최소 숫자 값을 반환합니다.

is_timeout_disabled

지정된 accelerator_view 시간 제한을 사용하지 않도록 설정했는지 여부를 나타내는 부울 플래그를 반환합니다. Direct3D 디바이스를 만들기 위한 D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT 플래그에 해당합니다.

bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);

매개 변수

_Accelerator_view
시간 제한 사용 안 함 설정을 쿼리할 accelerator_view.

Return Value

지정된 accelerator_view 대해 시간 제한이 비활성화되었는지 여부를 나타내는 부울 플래그입니다.

mad

지정한 첫 번째 인수와 두 번째 인수의 곱을 계산한 다음, 지정된 세 번째 인수를 추가합니다.

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

매개 변수

_X
지정한 첫 번째 인수입니다.

_Y
지정된 두 번째 인수입니다.

_Z
지정된 세 번째 인수입니다.

Return Value

_X * _Y + _Z의 결과입니다.

make_array

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

매개 변수

value_type
만들 배열의 요소 형식입니다.

_Rank
만들 배열의 순위입니다.

_범위
배열 집계의 모양을 설명하는 익스텐트입니다.

_Rv
배열을 만들 D3D 가속기 뷰입니다.

_D3D_buffer
배열을 만들 D3D 버퍼의 IUnknown 인터페이스 포인터입니다.

Return Value

제공된 Direct3D 버퍼를 사용하여 만든 배열입니다.

노이즈

Perlin 노이즈 알고리즘을 사용하여 임의의 값을 생성합니다.

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

매개 변수

_X
Perlin 노이즈를 생성하는 부동 소수점 값

Return Value

-1과 1 사이의 범위 내에서 Perlin 노이즈 값을 반환합니다.

radians

_X 도에서 라디안으로 변환합니다.

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

매개 변수

_X
부동 소수점 값

Return Value

각도에서 라디안으로 변환한 _X를 반환합니다.

rcp

빠른 근사치를 사용하여 지정된 인수의 상호 계산합니다.

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

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

매개 변수

_X
상호 계산할 값입니다.

Return Value

지정된 인수의 역수입니다.

reversebits

_X 비트의 순서를 반대로 바뀝니다.

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

매개 변수

_X
부호 없는 정수 값

Return Value

_X의 반대로 바뀐 비트 순서 값을 반환합니다.

saturate

0에서 1까지의 범위 내에서 _X 클램프

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

매개 변수

_X
부동 소수점 값

Return Value

0 - 1의 범위 내로 제한된 _X를 반환합니다.

sign

지정된 인수의 부호를 결정합니다.

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

매개 변수

_X
정수 값

Return Value

인수의 부호입니다.

smoothstep

_X [_Min, _Max] 범위에 있는 경우 0에서 1 사이의 부드러운 Hermite 보간을 반환합니다.

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

매개 변수

_분
부동 소수점 값

_최대
부동 소수점 값

_X
부동 소수점 값

Return Value

_X가 _Min보다 작은 경우 0을, _X가 _Max보다 큰 경우 1을 반환합니다. 그렇지 않으면, _X가 [_Min, _Max] 범위에 있는 경우 0과 1 사이의 값입니다.

step

값이 더 큰 값을 기준으로 0 또는 1을 반환하는 두 값을 비교합니다.

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

매개 변수

_Y
부동 소수점 값

_X
부동 소수점 값

Return Value

_X가 _Y보다 큰 경우 1을 반환합니다. 그렇지 않으면, 0을 반환합니다.

umax

인수의 최대 숫자 값 결정

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

매개 변수

_X
정수 값

_Y
정수 값

Return Value

인수의 최대 숫자 값을 반환합니다.

umin

인수의 최소 숫자 값 결정

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

매개 변수

_X
정수 값

_Y
정수 값

Return Value

인수의 최소 숫자 값을 반환합니다.

참고 항목

Concurrency::direct3d 네임스페이스