The Sims 4 não suporta GPU em dxvk/d9vk. Como resolver?

Recentemente eu reinstalei o sistema operacional por causa de um erro que eu cometi (totalmente do lado do usuário, não do sistema mas isso não vem ao caso), então naturalmente reinstalei tudo que eu precisava para voltar a fazer as coisas. Uma delas foi instalar o Wine-staging e winetricks novamente mas não havia feito nenhuma configuração extra, com a única exceção ser o wineprefix que era de antes de reinstalar o SO.

Antes eu já não usava DXVK ou D9VK, mesmo com essa iGPU tendo suporte a Vulkan. Simplesmente porque eu não conseguia fazer os jogos pelo Wine funcionarem usando esses dois. Sem falar que o WineD3D estava com um desempenho satisfatório (exceto é claro StarCraft 2). Mas depois de reinstalar tudo, percebi que essa ultima versão do Wine-staging está instalando o dxvk e d9vk automaticamente, sendo necessário remover pelo winetricks para ter os jogos funcionando novamente. Só que eu pensei em tentar resolver o problema ao invés de evitar por completo.

O problema é o seguinte. O jogo abre mas logo mostra uma janela dizendo que essa GPU não é suportada pelo jogo, indicando uma possível má configuração da parte do dxvk ou d9vk. Observando o Wine abrir o jogo pelo Konsole, realmente existem várias exceptions por lá acontecendo, mais do que de costume.

Então a pergunta é o seguinte. Se existe, qual é a configuração que precisa ser feita com dxvk ou d9vk para que funcione, pelo menos, similarmente ao WineD3D? Podemos falar sobre ganho de performance depois. O foco seria, no momento, fazer funcionar.

Aqui está o log:

Resumo
info:  Game: TS4_x64.exe
info:  DXVK: d9vk-0.40.1-croakacola-zero
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
warn:  D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info:  Intel(R) HD Graphics 620 (KBL GT2):
info:    Driver: 20.2.4
info:    Vulkan: 1.2.145
info:    Memory Heap[0]: 
info:      Size: 5891 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0xf
info:  Process set as DPI aware
info:  Game: TS4_x64.exe
info:  DXVK: d9vk-0.40.1-croakacola-zero
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
warn:  D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info:  Intel(R) HD Graphics 620 (KBL GT2):
info:    Driver: 20.2.4
info:    Vulkan: 1.2.145
info:    Memory Heap[0]: 
info:      Size: 5891 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0xf
info:  Process set as DPI aware
info:  Adapter LUID 0: 0:3f6
info:  Game: TS4_x64.exe
info:  DXVK: d9vk-0.40.1-croakacola-zero
info:  Built-in extension providers:
info:    Win32 WSI
info:    OpenVR
warn:  OpenVR: Failed to locate module
info:  Enabled instance extensions:
info:    VK_KHR_get_physical_device_properties2
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
warn:  D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info:  Intel(R) HD Graphics 620 (KBL GT2):
info:    Driver: 20.2.4
info:    Vulkan: 1.2.145
info:    Memory Heap[0]: 
info:      Size: 5891 MiB
info:      Flags: 0x1
info:      Memory Type[0]: Property Flags = 0xf
info:  Process set as DPI aware
info:  Device properties:
info:    Device name:     : Intel(R) HD Graphics 620 (KBL GT2)
info:    Driver version   : 20.2.4
info:  Enabled device extensions:
info:    VK_EXT_depth_clip_enable
info:    VK_EXT_host_query_reset
info:    VK_EXT_shader_demote_to_helper_invocation
info:    VK_EXT_shader_stencil_export
info:    VK_EXT_shader_viewport_index_layer
info:    VK_EXT_transform_feedback
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_create_renderpass2
info:    VK_KHR_dedicated_allocation
info:    VK_KHR_depth_stencil_resolve
info:    VK_KHR_descriptor_update_template
info:    VK_KHR_draw_indirect_count
info:    VK_KHR_driver_properties
info:    VK_KHR_get_memory_requirements2
info:    VK_KHR_image_format_list
info:    VK_KHR_maintenance1
info:    VK_KHR_maintenance2
info:    VK_KHR_sampler_mirror_clamp_to_edge
info:    VK_KHR_shader_draw_parameters
info:    VK_KHR_swapchain
info:  Device features:
info:    robustBufferAccess                     : 1
info:    fullDrawIndexUint32                    : 1
info:    imageCubeArray                         : 1
info:    independentBlend                       : 1
info:    geometryShader                         : 1
info:    tessellationShader                     : 0
info:    sampleRateShading                      : 1
info:    dualSrcBlend                           : 0
info:    logicOp                                : 0
info:    multiDrawIndirect                      : 0
info:    drawIndirectFirstInstance              : 0
info:    depthClamp                             : 1
info:    depthBiasClamp                         : 1
info:    fillModeNonSolid                       : 1
info:    depthBounds                            : 0
info:    multiViewport                          : 1
info:    samplerAnisotropy                      : 1
info:    textureCompressionBC                   : 1
info:    occlusionQueryPrecise                  : 1
info:    pipelineStatisticsQuery                : 1
info:    vertexPipelineStoresAndAtomics         : 1
info:    fragmentStoresAndAtomics               : 0
info:    shaderImageGatherExtended              : 0
info:    shaderStorageImageExtendedFormats      : 1
info:    shaderStorageImageReadWithoutFormat    : 0
info:    shaderStorageImageWriteWithoutFormat   : 1
info:    shaderClipDistance                     : 1
info:    shaderCullDistance                     : 1
info:    shaderFloat64                          : 0
info:    shaderInt64                            : 0
info:    variableMultisampleRate                : 0
info:  VK_EXT_conditional_rendering
info:    conditionalRendering                   : 0
info:  VK_EXT_depth_clip_enable
info:    depthClipEnable                        : 1
info:  VK_EXT_host_query_reset
info:    hostQueryReset                         : 1
info:  VK_EXT_memory_priority
info:    memoryPriority                         : 0
info:  VK_EXT_shader_demote_to_helper_invocation
info:    shaderDemoteToHelperInvocation         : 1
info:  VK_EXT_transform_feedback
info:    transformFeedback                      : 0
info:    geometryStreams                        : 0
info:  VK_EXT_vertex_attribute_divisor
info:    vertexAttributeInstanceRateDivisor     : 1
info:    vertexAttributeInstanceRateZeroDivisor : 1
info:  Queue families:
info:    Graphics : 0
info:    Transfer : 0
warn:  DXVK: State cache version not supported
warn:  DXVK: Creating new state cache file
info:  DXVK: Using 2 compiler threads
info:  D3D9DeviceEx::ResetSwapChain:
info:    Requested Presentation Parameters
info:      - Width:              16
info:      - Height:             16
info:      - Format:             D3D9Format::A8R8G8B8
info:      - Auto Depth Stencil: false
info:                  ^ Format: D3D9Format::D24S8
info:      - Windowed:           true
err:   Failed to create surface
err:   D3D9DeviceEx::ResetSwapChain: failed to create implicit swapchain

Mais uma coisa. É preferível que a solução seja aplicada nesse mesmo wineprefix. Estou evitando usar “facilitadores” como PlayOnLinux e Lutris. Penso que é uma boa coisa se eu aprender como resolver coisas assim ao invés de usar soluções já prontas. Se fosse apenas para me livrar do problema, eu simplesmente permaneceria com WineD3D, OpenGL e pronto.

1 curtida

Te falar, os script do pol e tudo bash, vc nao sabe interpretar bash? Vc poderia estudar o que o script do pol faz para saber o que tem que fazer.

O script do Play on Linux enforça uso de um Wine extremamente desatualizado e que nem é compatível com D9VK então é praticamente inútil. E os do Lutris não fazem muita coisa para configurar o D9VK. O que ele faz, eu já tentei. Como eu havia dito anteriormente, eu permaneceria no WineD3D mas o problema não é com o jogo não funcionar mas sim com o d9vk e dxvk que não estão configurados, dando o caso do Sims 4 acusar da GPU não ser compatível.

Então não utiliza o dxvk eu, esses prefixo num e um que é separado so para rodar um programa. Eu crio 1 prefixo para cada programa.

Esse não é o ponto desse tópico, de evitar usar o dxvk mas sim resolver o problema de não funcionar. Criar vários prefixos para cada programa é um uso desnecessário de espaço em armazenamento que poderia ser poupado.

Mas eu vou acabar marcando essa mensagem aqui como solução porque eu encontrei a causa do problema. A solução que encontrei é não usar o Winetricks para instalar o dxvk e d9vk. Melhor usar o script de instalação que está no github do dxvk. Aparentemente resolveu para mim.

Que bom ☆(char)