Wolfenstein II support?
oscarbg opened this issue · 10 comments
Hi,
I have Wolfenstein II support running via wine staging OK using 2 patches from:
https://bugs.winehq.org/show_bug.cgi?id=43935
one is Vulkan related add support for vkGetPhysicalDeviceProperties2KHR (from the VK_KHR_get_physical_device_properties2 extension) is not implemented.
So I compiled your branch to see if doesn't need any Vulkan patches..
compiled code and installed Vulkan 1.0.65 SDK (also tested with 1.0.51 SDK)..
from simple cube.exe vulkaninfo.exe demos seems installation is OK..
so running Wolfenstein II with your branch doesn't work:
GUI window log:
Application Info
App : Wolfenstein II The New Colossus - 1.0.2
Engine : idTech - 6.5.0
Instance Extensions
+ VK_KHR_surface
+ VK_KHR_win32_surface
Device Extensions
+ VK_AMD_rasterization_order
Device Extensions
+ VK_KHR_swapchain
Vulkan Device Info:
Vendor : AMD
GPU : AMD RADV VEGA
VRAM : 7888 MiB
Driver : 17.3.99
VK API : 1.0.57
Initializing Vulkan subsystem
FATAL ERROR: Could not initialize vkGetPhysicalDeviceSurfaceSupportKHR function pointer
TIMER: idRenderSystemLocal::Init() took 72.0840 ms
Dumped console text to C:\users\ivan\SAVE~YWG\MachineGames\Wolfenstein II The New Colossus\base\ErrorLog_12-04-2017__03-56-15pm.txt.
console log:
fixme:vulkan:wine_vk_instance_convert_create_info Application requested a linked structure of type 47
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceDisplayPropertiesKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceDisplayPlanePropertiesKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayPlaneSupportedDisplaysKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayModePropertiesKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDisplayModeKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDisplayPlaneCapabilitiesKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDisplayPlaneSurfaceKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateSharedSwapchainsKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceFeatures2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceProperties2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceFormatProperties2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceImageFormatProperties2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceQueueFamilyProperties2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceMemoryProperties2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSparseImageFormatProperties2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalBufferPropertiesKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalSemaphorePropertiesKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalFencePropertiesKHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceCapabilities2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceFormats2KHR'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkCreateDebugReportCallbackEXT'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDestroyDebugReportCallbackEXT'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugReportMessageEXT'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugMarkerSetObjectTagEXT'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkDebugMarkerSetObjectNameEXT'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceExternalImageFormatPropertiesNV'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetDeviceGroupSurfacePresentModesKHX'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDevicePresentRectanglesKHX'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkEnumeratePhysicalDeviceGroupsKHX'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkReleaseDisplayEXT'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceSurfaceCapabilities2EXT'
fixme:vulkan:wine_vkGetInstanceProcAddr Unsupported device or instance function: 'vkGetPhysicalDeviceMultisamplePropertiesEXT'
WARNING: radv is not a conformant vulkan implementation, testing use only.
Hi Oscar,
Thanks for testing the vulkan support. I'm currently reworking some of the surface code and afterwards can easily add this extension. I'm surprised though that the game is complaining about 'vkGetPhysicalDeviceSurfaceSupportKHR'. Unless the game is just printing the wrong message, which is common for games.
Probably around the weekend is when I will push some of my changes. I will let you know when they are ready.
Thanks,
Roderick
thanks..
will try early next week then and post results..
It took a bit longer than expected, but I needed to make a lot of massive changes to the code base to clean up many things (memory leaks, moved more calls to winex11, improved 32-bit support..) and went through may rebases.
In any case latest master (download it again as I did a force push) should support 'VK_KHR_get_physical_device_properties2'. However it doesn't seem to be enough for Wolfenstein just yet. I keep getting the same error even though the surface extension is there. It must be complaining about something else, but I'm not sure yet what. Please give it a try as maybe you have more luck.
I have the game starting now. It needs a few more tricky fixes and some hacks. Need to figure out how to add these changes properly.
While the game starts and I see some of the logos, the screen is black with just a mouse cursor afterwards.
The debug output (WINEDEBUG=+vulkan) can't easily get captured due to steam, but basically the game is trying to load "vkGetPhysicalDeviceSurfaceSupportKHR" through vkGetDeviceProcAddr. This is really wrong as physical device is a child of instance and should only load through vkGetInstanceProcAddr. Just allowing it from within vkGetDeviceProcAddr gets it to start.
@roderickc
black screen should be solved using patch from:
https://bugs.winehq.org/show_bug.cgi?id=43935
download patch from this bug "ntdll: Return STATUS_PENDING from NtReadFileScatter on success or EOF"
or also better from Wine 3.0 latest rc's include
"commit f87a2f0
Author: Andrew Eikum aeikum@codeweavers.com
Date: Wed Dec 6 15:08:00 2017 -0600
ntdll: Don't require full-page reads in NtReadFileScatter"
this patch which fixes it also..
hope you can test if finally all works with either one of these patches..
will test soon..
thanks..
Thanks for letting me know of those patches. I will probably rebase my work on top of 3.0 later today and give it a try. For now I may add the wolfenstein ii hacks as well. I will let you know when the changes are up.
You are right it gets to the menu now. I can start a game. It starts a cut scene when I pick difficulty and a save slot. Though after that the screen is black, but there is audio. I need to try again.
In any cases I pushed the wolfenstein hacks and all the code is now based on wine 3.0. Let me know how things work for you.
After further testing the game seems to work fine. The cut scenes are just sensitive to turning black I guess if you minimize the window by accident. I had issues skipping the cutscenes, probably because I'm on Wayland, but when in game I can play now.
The issue is now resolved in a correct way in master.