Поделиться через


Функции пространства имен Concurrency::direct3d (AMP)

Требования

Заголовок: пространство имен amp.h: параллелизм

abs

Возвращает абсолютное значение аргумента

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

Параметры

_X
Целое значение

Возвращаемое значение

Возвращает абсолютное значение аргумента.

Зажим

Вычисляет значение первого указанного аргумента, зажатого в диапазон, определенный вторым и третьим указанными аргументами.

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

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

Параметры

_X
Значение, которое необходимо зажать

_Мин
Нижняя граница диапазона зажимания.

_Макс
Верхняя граница диапазона зажимания.

Возвращаемое значение

Зажатое значение _X.

countbits

Подсчитывает количество битов набора в _X

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

Параметры

_X
Целое число без знака

Возвращаемое значение

Возвращает количество битов набора в _X

create_accelerator_view

Создает объект accelerator_view из указателя на интерфейс устройства Direct3D.

Синтаксис

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. Это соответствует флагу D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT для создания устройства Direct3D и используется для указания того, должна ли операционная система разрешать рабочие нагрузки, которые выполняются более 2 секунд, без сброса устройства на механизм обнаружения и восстановления времени ожидания Windows. Использование этого флага рекомендуется, если вам нужно выполнять много времени на accelerator_view.

_Qmode
Queuing_mode, который будет использоваться для только что созданного accelerator_view. Этот параметр имеет значение queuing_mode_automaticпо умолчанию.

Возвращаемое значение

Объект accelerator_view , созданный из переданного интерфейса устройства Direct3D.

Замечания

Эта функция создает новый accelerator_view объект из существующего указателя на интерфейс устройства Direct3D. Если вызов функции выполнен успешно, число ссылок параметра увеличивается с помощью AddRef вызова интерфейса. Вы можете безопасно освободить объект, если он больше не требуется в коде DirectX. Если вызов метода завершается ошибкой , возникает runtime_exception .

Объект, создаваемый accelerator_view с помощью этой функции, является потокобезопасной. Необходимо синхронизировать параллельное использование accelerator_view объекта. Несинхронизированное параллельное использование accelerator_view объекта и необработанный интерфейс ID3D11Device приводит к неопределенному поведению.

Среда выполнения C++ AMP предоставляет подробные сведения об ошибках в режиме отладки с помощью уровня отладки D3D при использовании флага D3D11_CREATE_DEVICE_DEBUG .

d3d_access_lock

Получите блокировку accelerator_view для безопасного выполнения операций D3D с ресурсами, общими с accelerator_view. Accelerator_view и все ресурсы C++ AMP, связанные с этим accelerator_view внутренне принимают эту блокировку при выполнении операций и блокируются, а другой поток содержит блокировку доступа D3D. Эта блокировка не рекурсивна. Это неопределенное поведение для вызова этой функции из потока, который уже содержит блокировку. Не определено поведение для выполнения операций с accelerator_view или любого контейнера данных, связанного с accelerator_view из потока, в котором хранится блокировка доступа D3D. См. также областьd_d3d_access_lock класс в стиле RAII для блокировки доступа на основе область D3D.

void __cdecl d3d_access_lock(accelerator_view& _Av);

Параметры

_Av
Блокировка accelerator_view.

d3d_access_try_lock

Попытайтесь получить блокировку доступа D3D на accelerator_view без блокировки.

bool __cdecl d3d_access_try_lock(accelerator_view& _Av);

Параметры

_Av
Блокировка accelerator_view.

Возвращаемое значение

Значение true, если блокировка была приобретена, или значение false, если она в настоящее время хранится другим потоком.

d3d_access_unlock

Отпустите блокировку доступа D3D для заданного accelerator_view. Если вызывающий поток не удерживает блокировку на accelerator_view результаты не определены.

void __cdecl d3d_access_unlock(accelerator_view& _Av);

Параметры

_Av
Accelerator_view, для которого должна быть освобождена блокировка.

firstbithigh

Получает расположение первого набора бита в _X, начиная с бита с наивысшим порядком и переходя к биту с наименьшим порядком.

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

Параметры

_X
Целое значение

Возвращаемое значение

Расположение первого заданного бита

firstbitlow

Возвращает расположение первого набора бита в _X, начиная с бита с наименьшим порядком и работая в направлении бита с наибольшим порядком.

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

Параметры

_X
Целое значение

Возвращаемое значение

Возвращает расположение первого бита набора

get_buffer

Получите интерфейс буфера Direct3D, базовый указанный массив.

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

Параметры

value_type
Тип элементов в массиве.

_Rank
Ранг массива.

_Array
Массив в accelerator_view Direct3D, для которого возвращается базовый интерфейс буфера Direct3D.

Возвращаемое значение

Указатель интерфейса IUnknown, соответствующий буферу Direct3D, лежащему в основе массива.

get_device

Получите интерфейс устройства D3D, базовый accelerator_view.

IUnknown* get_device(const accelerator_view Av);

Параметры

Av
Accelerator_view D3D, для которого возвращается базовый интерфейс устройства D3D.

Возвращаемое значение

IUnknown Указатель интерфейса устройства D3D, лежащего в основе accelerator_view.

Imax

Определение максимального числового значения аргументов

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

Параметры

_X
Целое значение

_Y
Целое значение

Возвращаемое значение

Возвращает максимальное числовое значение аргументов

Администратор

Определение минимального числового значения аргументов

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

Параметры

_X
Целое значение

_Y
Целое значение

Возвращаемое значение

Возвращает минимальное числовое значение аргументов

is_timeout_disabled

Возвращает логический флаг, указывающий, отключается ли время ожидания для указанного accelerator_view. Это соответствует флагу D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT для создания устройства Direct3D.

bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);

Параметры

_Accelerator_view
Accelerator_view, для которого требуется запросить параметр времени ожидания.

Возвращаемое значение

Логический флаг, указывающий, отключается ли время ожидания для указанного accelerator_view.

Сумасшедший

Вычисляет продукт первого и второго указанного аргумента, а затем добавляет третий указанный аргумент.

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
Третий указанный аргумент.

Возвращаемое значение

Результат _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
Указатель интерфейса IUnknown буфера D3D для создания массива из.

Возвращаемое значение

Массив, созданный с помощью предоставленного буфера Direct3D.

шум

Создает случайное значение с помощью алгоритма шума Perlin

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

Параметры

_X
Значение с плавающей запятой, из которого создается шум Perlin

Возвращаемое значение

Возвращает значение шума Perlin в диапазоне от -1 до 1

radians

Преобразует _X из градусов в радианы

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

Параметры

_X
Значение с плавающей запятой

Возвращаемое значение

Возвращает _X, преобразованные из градусов в радианы

rcp

Вычисляет взаимность указанного аргумента с помощью быстрого приближения.

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

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

Параметры

_X
Значение, для которого вычисляется взаимное значение.

Возвращаемое значение

Взаимное значение указанного аргумента.

обратные биты

Изменяет порядок битов в _X

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

Параметры

_X
Целое число без знака

Возвращаемое значение

Возвращает значение с обратным порядком бита в _X

Насытить

Зажимы _X в диапазоне от 0 до 1

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

Параметры

_X
Значение с плавающей запятой

Возвращаемое значение

Возвращает _X, зажатые в диапазоне от 0 до 1

sign

Определяет знак указанного аргумента.

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

Параметры

_X
Целое значение

Возвращаемое значение

Знак аргумента.

smoothstep

Возвращает гладкую интерполяцию от 0 до 1, если _X находится в диапазоне [_Min, _Max].

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

Параметры

_Мин
Значение с плавающей запятой

_Макс
Значение с плавающей запятой

_X
Значение с плавающей запятой

Возвращаемое значение

Возвращает значение 0, если _X меньше _Min; 1, если _X больше _Max; в противном случае значение от 0 до 1, если _X находится в диапазоне [_Min, _Max]

step

Сравнивает два значения, возвращая значение 0 или 1 в зависимости от того, какое значение больше

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

Параметры

_Y
Значение с плавающей запятой

_X
Значение с плавающей запятой

Возвращаемое значение

Возвращает значение 1, если _X больше или равно _Y; в противном случае — значение 0

Umax

Определение максимального числового значения аргументов

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

Параметры

_X
Целое значение

_Y
Целое значение

Возвращаемое значение

Возвращает максимальное числовое значение аргументов

Umin

Определение минимального числового значения аргументов

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

Параметры

_X
Целое значение

_Y
Целое значение

Возвращаемое значение

Возвращает минимальное числовое значение аргументов

См. также

Пространство имен Concurrency::direct3d