possíveis problemas e soluções

o darktable detectará erros de tempo de execução OpenCL automaticamente. Ao detectar um erro, ele irá reprocessar tudo na CPU. Embora isso retarde o processamento, não deve afetar o resultado final.

Pode haver vários motivos para o OpenCL falhar durante a fase de inicialização. OpenCL depende dos requisitos de hardware e da presença de certos drivers e bibliotecas. Além disso, todos eles devem se ajustar em termos de fabricante, modelo e número de revisão. Se algo não couber (por exemplo, seu driver gráfico – carregado como um módulo do kernel – não corresponde à versão de seu libOpenCL.so), o suporte a OpenCL provavelmente não estará disponível.

Neste caso, a melhor coisa a fazer é iniciar o darktable de um console com darktable -d opencl.

Isso fornecerá saída de depuração adicional sobre a inicialização e o uso do OpenCL. Primeiro, se você encontrar uma linha que começa com [opencl_init] FINALMENTE ... que deve dizer se o suporte OpenCL está disponível para você ou não. Se a inicialização falhou, procure nas mensagens acima algo como não pôde ser detectado ounão pôde ser criado. Verifique se há uma dica sobre onde ele falhou.

Aqui estão alguns casos que foram observados no passado:

  • o darktable afirma que nenhuma placa gráfica compatível com OpenCL foi detectada ou que a memória disponível em sua GPU está muito baixa e o dispositivo foi descartado. Nesse caso, você pode precisar comprar uma nova placa se realmente quiser o suporte OpenCL.

  • o darktable encontra seu libOpenCL.so, mas informa que não conseguiu obter uma plataforma. Os drivers NVIDIA geralmente fornecem o código de erro -1001 neste caso. Isso acontece porque libOpenCL.so é apenas uma biblioteca wrapper. Para o trabalho real, outras bibliotecas específicas do fornecedor precisam ser carregadas. Isso falhou por algum motivo. Existe uma estrutura de arquivos em /etc/OpenCL em seu sistema quelibOpenCL.so consulta para encontrar essas bibliotecas. Veja se consegue encontrar algo suspeito ali e tente consertar. Freqüentemente, as bibliotecas necessárias não podem ser encontradas pelo carregador dinâmico de seu sistema. Fornecer nomes de caminhos completos pode ajudar.

  • o darktable afirma que não foi possível criar um contexto. Isso geralmente indica uma incompatibilidade de versão entre o driver gráfico carregado e o libOpenCL. Verifique se você sobrou módulos do kernel ou bibliotecas gráficas de uma instalação mais antiga e tome as medidas adequadas. Em caso de dúvida, execute uma reinstalação limpa do driver gráfico. Às vezes, imediatamente após uma atualização de driver, o driver de kernel carregado não corresponde às bibliotecas recém-instaladas. Neste caso reinicie o seu sistema antes de tentar novamente.

  • o darktable trava durante a inicialização. Isso pode acontecer se a configuração do OpenCL estiver completamente corrompida ou se o driver/biblioteca contiver um bug grave. Se você não puder consertar, você ainda pode usar o darktable com a opção --disable-opencl, que irá pular toda a etapa de inicialização do OpenCL.

  • O darktable falha ao compilar seus arquivos de código-fonte OpenCL em tempo de execução. Nesse caso, você verá várias mensagens de erro parecidas com erros típicos do compilador. Isso pode indicar uma incompatibilidade entre a implementação do OpenCL e a interpretação do padrão pelo darktable. Nesse caso, por favor relate o problema em github e nós tentaremos ajudá-lo. Relate também se você notar diferenças significativas entre o processamento de CPU e GPU de uma imagem.

Algumas implementações do OpenCL na CPU também existem, vindo como drivers fornecidos pela INTEL ou AMD. Observamos que eles não fornecem nenhum ganho de velocidade em comparação com nosso código de CPU otimizado para as mãos. Portanto, o darktable simplesmente descarta esses dispositivos por padrão. Este comportamento pode ser alterado definindo a variável de configuração opencl_use_cpu_devices (em$HOME/.config/darktablerc) para TRUE.

Translations