Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Requerimentos
Cabeçalho: amp.h
Namespace: simultaneidade
ABS
Retorna o valor absoluto do argumento.
inline int abs(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
Retorna o valor absoluto do argumento.
braçadeira
Calcula o valor do primeiro argumento especificado fixado a um intervalo definido pelo segundo e terceiro argumentos especificados.
inline float clamp(
float _X,
float _Min,
float _Max) restrict(amp);
inline int clamp(
int _X,
int _Min,
int _Max) restrict(amp);
Parâmetros
_X
O valor a ser fixado.
_Min
O limite inferior da faixa de fixação.
_Max
O limite superior da faixa de fixação.
Valor de retorno
O valor fixo de _X.
countbits
Conta o número de bits definidos em _X.
inline unsigned int countbits(unsigned int _X) restrict(amp);
Parâmetros
_X
Valor inteiro não assinado
Valor de retorno
Retorna o número de bits definidos em _X.
create_accelerator_view
Cria um objeto accelerator_view de um ponteiro para uma interface de dispositivo Direct3D.
Sintaxe
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);
Parâmetros
_Accelerator
O acelerador no qual o novo accelerator_view deve ser criado.
_D3D_device
O ponteiro para a interface do dispositivo Direct3D.
_Disable_timeout
Um parâmetro booleano que especifica se o tempo limite deve ser desabilitado para o accelerator_view recém-criado. Isso corresponde ao sinalizador D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT para a criação de dispositivos Direct3D e é usado para indicar se o sistema operacional deve permitir cargas de trabalho que levam mais de 2 segundos para serem executadas sem redefinir o dispositivo de acordo com o mecanismo de deteção e recuperação de tempo limite do Windows. O uso desse sinalizador é recomendado se você precisar executar tarefas demoradas no accelerator_view.
_Qmode
O queuing_mode a ser usado para o accelerator_view recém-criado. Este parâmetro tem um valor padrão de queuing_mode_automatic.
Valor de retorno
O objeto accelerator_view criado a partir da interface de dispositivo Direct3D passada.
Comentários
Esta função cria um novo objeto accelerator_view de um ponteiro existente para uma interface de dispositivo Direct3D. Se a chamada de função for bem-sucedida, a contagem de referência do parâmetro será incrementada por meio de uma chamada AddRef para a interface. Você pode liberar o objeto com segurança quando ele não for mais necessário no código DirectX. Se a chamada de método falhar, uma runtime_exception será lançada.
O objeto accelerator_view que você cria usando essa função é thread safe. Você deve sincronizar o uso simultâneo do objeto accelerator_view. O uso simultâneo não sincronizado do objeto accelerator_view e da interface ID3D11Device bruta causa um comportamento indefinido.
O tempo de execução do C++ AMP fornece informações detalhadas de erro no modo de depuração usando a camada de depuração D3D se você usar o sinalizador D3D11_CREATE_DEVICE_DEBUG.
d3d_access_lock
Adquira um bloqueio em um accelerator_view com a finalidade de executar com segurança operações D3D em recursos compartilhados com o accelerator_view. O accelerator_view e todos os recursos de AMP C++ associados a esse accelerator_view usam internamente esse bloqueio ao executar operações e bloquearão enquanto outro thread mantém o bloqueio de acesso D3D. Esse bloqueio não é recursivo: é um comportamento indefinido chamar essa função de um thread que já contém o bloqueio. É um comportamento indefinido executar operações no accelerator_view ou em qualquer contêiner de dados associado ao accelerator_view do thread que contém o bloqueio de acesso D3D. Consulte também scoped_d3d_access_lock, uma classe no estilo RAII para um bloqueio de acesso D3D baseado em escopo.
void __cdecl d3d_access_lock(accelerator_view& _Av);
Parâmetros
_Av
O accelerator_view bloquear.
d3d_access_try_lock
Tente adquirir o bloqueio de acesso D3D em um accelerator_view sem bloquear.
bool __cdecl d3d_access_try_lock(accelerator_view& _Av);
Parâmetros
_Av
O accelerator_view bloquear.
Valor de retorno
true se o bloqueio foi adquirido, ou false se estiver atualmente mantido por outro thread.
d3d_access_unlock
Solte o bloqueio de acesso D3D no accelerator_view fornecido. Se o thread de chamada não mantiver o bloqueio no accelerator_view os resultados serão indefinidos.
void __cdecl d3d_access_unlock(accelerator_view& _Av);
Parâmetros
_Av
O accelerator_view para o qual o cadeado deve ser liberado.
PrimeiroBitHigh
Obtém a localização do primeiro bit definido em _X, começando com o bit de ordem mais alta e movendo-se para o bit de ordem mais baixa.
inline int firstbithigh(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
A localização do primeiro bit definido.
PrimeiroBitlow
Obtém a localização do primeiro bit definido em _X, começando com o bit de ordem mais baixa e trabalhando em direção ao bit de ordem mais alta.
inline int firstbitlow(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
Devolve A localização do primeiro bit definido.
get_buffer
Obtenha a interface de buffer Direct3D subjacente à matriz especificada.
template<
typename value_type,
int _Rank
>
IUnknown *get_buffer(
const array<value_type, _Rank>& _Array);
Parâmetros
value_type
O tipo de elementos na matriz.
_Rank
A classificação da matriz.
_Array
Uma matriz em um accelerator_view Direct3D para o qual a interface de buffer Direct3D subjacente é retornada.
Valor de retorno
O ponteiro de interface IUnknown correspondente ao buffer Direct3D subjacente à matriz.
get_device
Obtenha a interface de dispositivo D3D subjacente a um accelerator_view.
IUnknown* get_device(const accelerator_view Av);
Parâmetros
Av
O accelerator_view D3D para o qual a interface do dispositivo D3D subjacente é retornada.
Valor de retorno
O ponteiro de interface IUnknown do dispositivo D3D subjacente ao accelerator_view.
IMAX
Determine o valor numérico máximo dos argumentos.
inline int imax(
int _X,
int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retornar o valor numérico máximo dos argumentos.
Imin
Determine o valor numérico mínimo dos argumentos.
inline int imin(
int _X,
int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retorna o valor numérico mínimo dos argumentos.
is_timeout_disabled
Retorna um sinalizador booleano indicando se o tempo limite está desabilitado para o accelerator_view especificado. Isso corresponde ao sinalizador D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT para a criação de dispositivos Direct3D.
bool __cdecl is_timeout_disabled(const accelerator_view& _Accelerator_view);
Parâmetros
_Accelerator_view
O accelerator_view para o qual a configuração de tempo limite desativado deve ser consultada.
Valor de retorno
Um sinalizador booleano que indica se o tempo limite está desativado para o accelerator_view especificado.
louco
Calcula o produto do primeiro e segundo argumento especificado e, em seguida, adiciona o terceiro argumento especificado.
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);
Parâmetros
_X
O primeiro argumento especificado.
_Y
O segundo argumento especificado.
_Z
O terceiro argumento especificado.
Valor de retorno
O resultado de _X * _Y + _Z.
make_array
Crie uma matriz a partir de um ponteiro de interface de buffer 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);
Parâmetros
value_type
O tipo de elemento da matriz a ser criada.
_Rank
A classificação da matriz a ser criada.
_Extent
Uma extensão que descreve a forma da matriz agregada.
_Rv
Uma visualização do acelerador D3D na qual a matriz deve ser criada.
_D3D_buffer
IUnknown ponteiro de interface do buffer D3D para criar a matriz.
Valor de retorno
Uma matriz criada usando o buffer Direct3D fornecido.
ruído
Gera um valor aleatório usando o algoritmo de ruído Perlin.
inline float noise(float _X) restrict(amp);
Parâmetros
_X
Valor de vírgula flutuante a partir do qual gerar ruído Perlin.
Valor de retorno
Devolve o valor de ruído Perlin dentro de um intervalo entre -1 e 1.
radianos
Converte _X de graus em radianos.
inline float radians(float _X) restrict(amp);
Parâmetros
_X
Valor de vírgula flutuante
Valor de retorno
Os retornos _X convertidos de graus para radianos.
PCR
Calcula a recíproca do argumento especificado usando uma aproximação rápida.
inline float rcp(float _X) restrict(amp);
inline double rcp(double _X) restrict(amp);
Parâmetros
_X
O valor para o qual calcular a recíproca.
Valor de retorno
A recíproca do argumento especificado.
Reversebits
Inverte a ordem dos bits em _X.
inline unsigned int reversebits(unsigned int _X) restrict(amp);
Parâmetros
_X
Valor inteiro não assinado
Valor de retorno
Devolve o valor com a ordem de bits invertida em _X.
saturado
As braçadeiras _X dentro do intervalo de 0 a 1.
inline float saturate(float _X) restrict(amp);
Parâmetros
_X
Valor de vírgula flutuante
Valor de retorno
Devolve _X fixado dentro do intervalo de 0 a 1.
sinal
Determina o sinal do argumento especificado.
inline int sign(int _X) restrict(amp);
Parâmetros
_X
Valor inteiro
Valor de retorno
O sinal do argumento.
passo suave
Devolve uma interpolação Hermite suave entre 0 e 1, se _X estiver no intervalo [_Min, _Max].
inline float smoothstep(
float _Min,
float _Max,
float _X) restrict(amp);
Parâmetros
_Min
Valor de vírgula flutuante
_Max
Valor de vírgula flutuante
_X
Valor de vírgula flutuante
Valor de retorno
Devolve 0 se _X for inferior a _Min; 1 se _X for superior a _Max; caso contrário, um valor entre 0 e 1 se _X estiver no intervalo [_Min, _Max].
passo a passo
Compara dois valores, retornando 0 ou 1 com base em qual valor é maior.
inline float step(
float _Y,
float _X) restrict(amp);
Parâmetros
_Y
Valor de vírgula flutuante
_X
Valor de vírgula flutuante
Valor de retorno
Devolve 1 se o _X for igual ou superior a _Y; caso contrário, 0.
UMAX
Determine o valor numérico máximo dos argumentos.
inline unsigned int umax(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retornar o valor numérico máximo dos argumentos.
Umin
Determine o valor numérico mínimo dos argumentos.
inline unsigned int umin(
unsigned int _X,
unsigned int _Y) restrict(amp);
Parâmetros
_X
Valor inteiro
_Y
Valor inteiro
Valor de retorno
Retorna o valor numérico mínimo dos argumentos.