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.