Estados separam sincronização, visibilidade, entrada, parada e perda de sessão. Veja como evitar travamentos e desperdício de GPU.
Resposta direta
O OpenXR define oito estados de ciclo de vida para uma sessão, de IDLE a EXITING. Em SYNCHRONIZED, a aplicação mantém o frame loop mas pode evitar renderização pesada; em VISIBLE, continua renderizando sem receber input XR; em FOCUSED, também recebe entrada. STOPPING pede encerramento do loop e xrEndSession, enquanto LOSS_PENDING exige destruir a sessão e, se apropriado, recriar sistema e recursos gráficos.
Visível não significa interativo
Um pop-up do sistema pode manter a cena visível e retirar foco. A aplicação deve pausar ações e ocultar avatares de input inativo sem apagar a cena.
Sincronizado permite economizar GPU
O frame loop continua, mas shouldRender pode indicar que camadas não precisam ser enviadas. Trabalho pesado nesse estado disputa recursos sem benefício visual.
STOPPING é uma ordem de protocolo
Ignorar o evento e seguir renderizando pode bloquear transições. Saia do loop e encerre a sessão na sequência esperada.
Perda de sessão pede reconstrução controlada
Conexão de display perdida torna handles inutilizáveis. Recursos dependentes do sistema devem ser destruídos e recriados, sem prometer retomada invisível.
Leitura Nexus
Modele cada estado explicitamente, registre transições e teste suspensão, modal, retirada do headset, troca de app e perda de hardware em todo runtime suportado.
Perguntas frequentes
Quando o aplicativo recebe input XR?
No estado FOCUSED; VISIBLE mostra a cena, mas não torna as ações elegíveis para entrada.
Devo parar o frame loop em SYNCHRONIZED?
Não. Ele deve continuar sincronizado, evitando trabalho pesado quando não for necessário renderizar.
LOSS_PENDING pode ser recuperado?
A aplicação pode destruir a sessão, consultar um novo sistema e recriar recursos, se o contexto permitir.
Guias essenciais para aprofundar a decisão
Esta análise editorial foi produzida pela Nexus a partir das fontes oficiais abaixo, consultadas em 24 de outubro de 2026. O texto é original e interpreta implicações práticas para empresas.
- Khronos — XrSessionState: estados, semântica, frame loop, foco, parada e recuperação.
- Khronos — OpenXR Specification: contrato normativo do runtime, sessões, eventos e renderização.
Data informada pela fonte principal: OpenXR 1.1.65 consultado em 24 de outubro de 2026; análise de padrão técnico.

