Skip to main content
Agenda um evento para ser sinalizado uma ou mais vezes dentro de um quadro.

Sintaxe

Parâmetros

Type   _In_
Tipo: D3D12XBOX_FRAME_EVENT_TYPE
Tipo de evento a ser agendado. IntervalOffsetInMicroseconds   _In_
Tipo: UINT
Deslocamento de tempo no qual o evento especificado deve ser agendado; o deslocamento é especificado em microssegundos a partir do início do intervalo de quadro. Deslocamentos agendados são compatíveis somente com eventos que os suportam, como o evento de origem. pAncillarySignalList   _In_opt_
Tipo: D3D12XBOX_SCHEDULE_FRAME_OBJECT_LIST*
Lista opcional de até sete (7) eventos auxiliares a serem sinalizados sempre que o evento de quadro agendado ocorrer. Flags   _In_
Tipo: D3D12XBOX_SCHEDULE_FRAME_EVENT_FLAGS
Sinalizadores usados para fornecer controle adicional sobre o evento agendado. D3D12XBOX_SCHEDULE_FRAME_EVENT_FLAG_DISABLE_SIGNAL pode ser usado para desabilitar um sinal agendado anteriormente para tipos diferentes da origem, que, uma vez estabelecida, nunca pode ser desabilitada.

Valor retornado

Tipo: HRESULT Código de êxito ou de erro HRESULT. Retorna E_INVALIDARG para tipos de evento, deslocamentos de intervalo, listas de sinais e valores de sinalizador inválidos. Retorna E_INVALIDARG se um intervalo de quadro não tiver sido estabelecido antes da tentativa de agendar um evento.

Comentários

O método WaitFrameEventX pode ser usado para bloquear ou sondar um evento de quadro agendado. Os eventos devem ser reagendados com uma nova chamada a ScheduleFrameEventX sempre que o intervalo ou o período de quadro for alterado por meio de uma chamada a SetFrameIntervalX. O evento de origem do quadro é agendado para fornecer um controle refinado sobre o horário de início de um quadro e, assim, permitir a minimização da latência do pipeline. O sistema tenta sincronizar a amostragem de firmware da entrada do gamepad com o horário de origem do quadro estabelecido, de forma que os dados de entrada sejam adquiridos bem a tempo do início do quadro. Ao consultar a entrada imediatamente após a sinalização do evento de origem, o aplicativo obterá as informações de estímulo mais atualizadas nas quais a renderização do quadro será baseada. O atraso entre a entrada do usuário e a exibição será minimizado se um deslocamento de origem do quadro for selecionado o mais próximo possível do momento do VBlank de exibição de destino. O tempo de CPU e o tempo de GPU necessários para produzir um quadro (assim como o grau de sobreposição em pipeline) variam ao longo do tempo de vida do aplicativo. Em resposta aos comentários das estatísticas de quadro, atualizações no agendamento do deslocamento da origem do quadro são feitas com frequência para preservar uma latência mínima. Use continuamente o método GetFrameStatisticsX para monitorar a duração do quadro desde o sinal de origem até o momento da gravação final nos recursos de troca do quadro e sua apresentação. Depois disso, agende o evento de origem com atualizações em seu deslocamento para que os recursos de troca sejam concluídos e apresentados o mais próximo possível do VBlank de exibição de destino, com alguma margem para proteger contra picos na duração do quadro. O objetivo geral é agendar o horário de deslocamento da origem para que seja igual a PeriodInIntervals x LengthInMicroseconds do intervalo de quadro - measured_frame_duration - margin_for_variance. O evento de origem utiliza internamente a interrupção de vline para realizar seu agendamento baseado em deslocamento de intervalo; portanto, a granularidade depende da resolução de exibição atual. Além da origem do quadro, eventos adicionais podem ser agendados para acompanhar ocorrências de VBlank e inversão. Diferentemente da origem, no entanto, esses eventos são agendados como meras notificações, sem controle direto sobre o tempo. Também diferentemente da origem, os eventos de VBlank e de inversão podem ser sinalizados várias vezes por intervalo de quadro. A primeira chamada para agendar um evento de quadro é aplicada imediatamente. Atualizações subsequentes nos eventos agendados, incluindo a desabilitação, são colocadas em pipeline com a apresentação, de forma que as alterações feitas dentro de um intervalo sejam aplicadas quando o próximo quadro apresentado for invertido para a tela.

Requisitos

Cabeçalho: d3d12_x.h Biblioteca: d3d12_x.lib Plataformas com suporte: família XBOX One

Confira também

ID3D12Device
Last modified on October 6, 2026