lpslucasps escreveu:SpecialAgentZ, ninguém sabe os detalhes de engenharia do hardware, de fato. Até porque a engenharia de microtransistores é... complicada. Numa sala cheia de engenheiros, cada equipe só sabe o funcionamento de uma parte de um processador, porque eles são literalmente complicados demais para se entender totalmente. Mas esses detalhes são irrelevantes para a programação (a não ser que você programe em linguagem de máquina, exceto que of course you don't). Eles seriam importantes caso eu quisesse replicar o hardware (fazendo um emulador, por exemplo), mas não para programar no hardware.
Agora, de funcionamento, é como eu disse: chips não são necromicons ilegíveis. Posso não saber o percurso exato que uma solicitação ao hardware faz ou como os vários núcleos se sincronizam, mas sei que eles existem, sei o que fazem e sei o resultado de minhas requisições. Linguagens de programação, aliás, estão aí para isso: abstrair os detalhes do hardware para o programador.
Então, faço uma correção do que eu disse. Já se sabe as especificações pertinentes do hardware do Wii U. Ninguém tem uma blueprint para fabricar seu próprio Wii U autonomamente, mas ele não é nenhum mistério de development e programação, não senhor.
Não é a nível de engenharia de hardware que falo, é a nível de função, recursos e resultados que podem ser obtidos através de características únicas da plataforma, coisas que precisam ser de conhecimento de quem desenvolve. E isso só quem sabe mais ou menos é quem possui kits de desenvolvimento e documentação, e os estudam. Não está na Wikipedia, nem em fóruns, nem em sites. Vai além de specs técnicas superficiais, passa para o "o que isso faz/pode fazer". Não estamos simplesmente falando de olhar a lógica pura da GPU, até porque não estamos tentando construir um emulador.
Mas números e especificações rasas não dizem tanto, porque não estamos falando de uma GPU de placa gráfica de PC, onde podemos simplesmente comparar números e pesar a eficiência já que o set de recursos é padrão e implementado de forma similar em todas, e temos uma ou duas APIs generalistas que funcionam em ambas, e a natureza aberta permite que qualquer um explore o potencial, teste e divulgue.
Abstração existe até certo nível em plataformas fechadas, e é bem menor.
Em máquinas com propósito único, não existe o mesmo nível de abstração de uma aplicação generalista feita para N máquinas, onde você programa pensando em um escopo maior e geralmente não se importa em projetar o software para aquela máquina específica. Em plataformas fechadas de processamento limitado, precisa-se conhecer a máquina em um nivel muito maior do que em uma máquina de propósito geral como um PC.
Uma linguagem de programação de alto nivel vai abstrair o hardware e vai poupar o camarada de programar em baixo nível, vai ter facilidades, mas não vai anular a necessidade de se saber trabalhar para poupar/usar de forma ideal o hardware através do código em caso de uma aplicação feita explicitamente para uma ou poucas plataformas fechadas. Isso é básico quando tratamos de desenvolvimento em plataformas fechadas e fixas como os consoles.
Porque consoles são máquinas com características peculiares que devem ser aproveitadas, fraquezas que devem ser mitigadas, etc.
São feitas para isso, feitas pensando no aproveitamento particular de suas forças, não são máquinas de força bruta.
É a ausência deste nivel de abstração que faz com que um mesmo jogo rode mal (desempenho) em duas plataformas diferentes quando o port é simplesmente jogado sem ser feito algum tipo de adaptação pensando explicitamente na plataforma receptora. Um jogo pode ser feito pensando nas forças de um hardware X que não estão presentes no hardware Y.
Por isso não são características relevantes. E é por isso que você vê no PS3 jogos exclusivos bonitos que não devem ao Xbox, mesmo ele tendo GPU inferior ao do Xbox e CPU exótica. Houve esforço para mitigar fraquezas e aproveitar forças, aproveitando o que há para ser aproveitado.
Nem tudo em consoles acontece de forma automática e simples como em um PC de propósito geral onde o software é feito pensando em N.
Até mesmo dependendo da implementação do seu software, o peso da aplicação ou de partes da aplicação que podem ser CPU bound, Memory bound ou GPU bound, etc, precisam ser nivelados por quem desenvolve, não pelo hardware.
Bocas dizem, por exemplo, que o processador do Wii U não aloca as threads automaticamente, sendo do desenvolvedor esse trabalho de alocar a carga em cima de todo o processador. Se ele não faz isso, o aparelho sempre vai rodar com sobrecarga em uma única thread, enquanto outras partes do processador estão em ociosidade.
Outro exemplo no caso do Wii U é a disponibilidade de memória de alta velocidade em grande quantidade. Ela é acessivel tanto pela CPU quanto pela GPU, e o desenvolvedor usa como bem entender. Há de se pesar as necessidades, onde o recurso será melhor aproveitado, onde é requisitado. Com o tamanho da eDRAM do Wii U, jogos em FullHD não deveriam ser problemas em ports de geração passada, mas vemos ports que não tiram proveito disso e não rodam nem em HD. Ai entram as outras partes não pensadas para as forças e fraquezas da plataforma... são ports de baixo custo.
Não se chega lá e simplesmente joga o código e voila. Ou melhor, não deveria se fazer isso. Mas alguns fazem.
E eu posso ainda ter uma GPU de baixo poder computacional, mas com lógica especializada, fixa, usada exclusivamente para algum efeito específico, e que só serão aproveitadas se requisitadas. São mais práticas porém menos flexiveis do que a arquitetura de shaders programáveis, mas a GPU pode ter ambas as implementações juntas.
Ou em vez de jogar a carga total em cima da CPU, posso direcionar parte dela para a GPGPU para poupar a CPU para outros cálculos. Aliás, essa é uma abordagem comum das três fabricantes na oitava geração. Por isso as CPUs "de tablet" nos dois consoles mais poderosos.
Em um jogo feito para uma plataforma, saber sobre forças e fraquezas da arquitetura é essencial, e é responsabilidade da fabricante fornecer documentação adequada (coisa que a Nintendo não fez no lançamento do console) e obrigação das desenvolvedoras aprenderem sobre o aparelho (coisa que muitas não fizeram e nem estão dispostas a fazer pela baixa expectativa de retorno do investimento na plataforma).
Ele é um mistério para nós, para Wikipedia e para fóruns e desenvolvedores desinteressados. Nós aqui não sabemos bulhufas e foi esse o ponto que quis tocar no seu post. E para os desenvolvedores é um mistério apenas se eles possuem desinteresse.
Entendi seu ponto. Mas saiba que pelo baixo retorno da plataforma, poucos desenvolvedores estão interessados em remover a camada de mistério e aprender sobre a plataforma e tirar proveito do que ela oferece, optando pelo caminho barato de fazer ports diretos. Isso se reflete em ports toscos (isso quando há algum port porque ultimamente tá triste...).
E não há mágica. Se o desenvolvedor não tem interesse em cair dentro para estudar a plataforma, vai sim permanecer um mistério e o trabalho feito será porco. Não é a toa que a Shin'en anda abrindo o bico toda hora para dar dicas de aproveitamento do aparelho.
Lendo o que escrevi, acho que batemos no mesmo ponto com palavras diferentes
Abraço e obrigado pela discussão de alto nível e educada.
Sáb 20 Jan 2018, 17:41 por ExtremeZelda
» [TSADNB] Tópico sobre Assuntos Diversos no Blast
Sex 19 Jan 2018, 16:49 por ExtremeZelda
» [VENDO] NINTENDO WII U 32GB MARIO KART 8 DELUXE BUNDLE
Sáb 01 Abr 2017, 11:45 por jcvalerio
» Mario Kart 8 travou meu Wii U
Sáb 01 Abr 2017, 10:14 por quediz
» Troca Pokémon & Friend Codes - Sun/Moon & Gen 6
Sex 31 Mar 2017, 21:29 por Devilucky
» Lojinha do Tio Logan
Sex 31 Mar 2017, 09:33 por Logan
» Problema na tela de cima do 3DS.
Qui 30 Mar 2017, 13:45 por Afrojin
» Novos jogos para Wii U, Wii e DS
Ter 28 Mar 2017, 23:04 por SSBGames
» 9 jogos de Wii no arremate
Ter 28 Mar 2017, 22:30 por SSBGames
» [AJUDA] Nintendo Switch - Como comprar jogos?
Ter 28 Mar 2017, 18:07 por Fael BC
» Fan Game - Pokemon Hau Adventures
Ter 28 Mar 2017, 10:20 por wawagames
» Muro das lamentações, desabafe aqui o que lhe aflige.
Seg 27 Mar 2017, 23:47 por Shaya