Calculadora de memória de texturas YTD

O FXServer avisa quando um arquivo de stream precisa de mais de 16 MiB de memória física. Solte um .ytd aqui para ver esse número antes de ligar o servidor, com as texturas em ordem de quanto cada uma pesa. Quem lê o arquivo é o seu navegador, e ele não é enviado para lugar nenhum.

Solte arquivos .ytd aqui

Memória de textura por tamanho e formato

Sem arquivo em mãos? Escolha um tamanho e um formato para ver quanto custa uma textura.

Como usar

  1. Solte o .ytd

    Solte um ou mais arquivos .ytd na caixa, ou escolha pelo botão. Funciona com arquivos do FiveM (legacy) e do GTA V Enhanced.

  2. Veja a memória física

    É o número que o FXServer imprime na linha "uses X MiB of physical memory". Acima de 16 MiB o servidor avisa.

  3. Ache as texturas pesadas

    A tabela vem ordenada por memória. Textura 4096 ou sem compressão costuma estar no topo.

  4. Reduza e confira de novo

    Corte a resolução pela metade ou troque para um formato comprimido, salve o .ytd e solte outra vez.

Como o número é calculado?

Todo arquivo de stream começa com um cabeçalho RSC7 de 16 bytes. Dois campos dele dizem quanta memória o arquivo precisa depois de descompactado: um para a memória virtual (dados de estrutura) e outro para a memória física (os pixels das texturas). O FXServer decodifica esses campos quando o resource inicia e compara cada um com 16, 32, 48 e 64 MiB. Esta página usa a mesma fórmula, a que está em ResourceStreamComponent.cpp.

Para listar as texturas, a página descompacta a parte de estrutura do arquivo e lê nome, tamanho, formato e número de mips de cada uma. Os pixels não são necessários, então um dicionário de 150 MiB não é problema.

Os degraus do aviso e as formas de ficar abaixo deles estão em arquivos de modelo do veículo e o aviso de asset grande demais. Os tamanhos de textura por função estão em como otimizar um veículo FiveM.

O que cada degrau do aviso significa?

Memória de um arquivoConsole do servidor
16 MiB ou menosNão aparece nada.
Acima de 16 MiBAviso em azul.
Acima de 32 MiBAviso em amarelo.
Acima de 48 MiBA linha ganha a frase "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)".
Acima de 64 MiBAviso em vermelho.

Perguntas frequentes

O que é o limite de 16 MiB do FiveM?
É o primeiro degrau de um aviso do FXServer. Um arquivo de stream que precisa de mais de 16 MiB de memória física ou virtual ganha uma linha no console do servidor. A linha fica amarela acima de 32 MiB e vermelha acima de 64 MiB, e acima de 48 MiB vem com a frase de que assets grandes demais "can and WILL lead to streaming issues". O servidor continua enviando o arquivo.
Por que a memória é maior que o arquivo no disco?
Arquivos de stream são compactados. O cabeçalho guarda o tamanho dos dados descompactados, que é o que o jogo precisa manter na memória.
Por que a soma das texturas dá menos que a memória física?
A memória é reservada em páginas de tamanho fixo, e as texturas nem sempre se encaixam sem sobra. O valor do cabeçalho é o total reservado, por isso fica acima da soma, às vezes alguns MiB. O FXServer vai pelo cabeçalho.
Lê arquivos .ytd do GTA V Enhanced?
Sim. Lê o formato legacy (versão 13 do resource) e o do Enhanced (versão 5). Rodamos em 1584 arquivos .ytd de dois servidores de teste e todos foram listados.
Posso soltar um .yft ou .ydr?
Pode, mas só aparecem os dois números do cabeçalho. A lista de texturas é para arquivos .ytd.
Meus arquivos são enviados para algum servidor?
Não. A página lê tudo no seu navegador, com JavaScript, e não manda nada para fora. Dá para abrir a página, desligar a internet e ela continua funcionando.

Guias relacionados

Outra ferramenta