Same here on Linux. And I don't have an Intel GPU.
Edit: I don't use Steam.
Last edited by Nomys#7614 on Sep 1, 2024, 7:09:19 AM
|
Posted byNomys#7614on Aug 31, 2024, 6:08:00 PM
|
Ok so it was the nvidia driver who was behaving funny, downgrading or going for a newer version did the trick.
|
Posted byNomys#7614on Sep 1, 2024, 11:57:23 AM
|
I'm still getting this issue on AMD drivers ... RIPED my HC chars :(
|
Posted byProthos901#7218on Sep 19, 2024, 2:45:50 AM
|
"
Okay... so I decided to track down what exactly is missing in intel's vulkan.
The answer is shaderStorageImageReadWithoutFormat.
'vulkaninfo' reports it as a 'false' and PoE requests it, resulting in 'VK_ERROR_FEATURE_NOT_PRESENT' upon 'vkCreateDevice'.
Now the WTF part begins: PoE with Vulkan Intel graphics seems to run fine when tricked to think that the feature shaderStorageImageReadWithoutFormat is supported!
I wrote a basic wrapper for the 'vkCreateDevice' function that just takes down the bit requesting this feature.
LD_PRELOAD'ing a .so with the wrapper makes PoE just run...
I can't tell if there is a case/place where this would crash the game, but the basic gameplay just works.
Have a source here (one obviously needs a C++ compiler and vulkan dev headers to compile it):
"
#include <vulkan/vulkan.h>
#include <dlfcn.h>
#include <cstdio>
/*
Compile as:
g++ -fPIC --shared vulkan_intel_poe_override.cpp -lvulkan -o vulkan_intel_poe_override.so
Run wine as:
LD_PRELOAD=vulkan_intel_poe_override.so wine C:/Program\ Files\ \(x86\)/Grinding\ Gear\ Games/Path\ of\ Exile/PathOfExile.exe
Or just export that LD_PRELOAD as:
LD_PRELOAD=`readlink -e vulkan_intel_poe_override.so`
and then run wine in the same shell.
*/
// handle to the original vkCreateDevice function
auto vkCreateDevice_orig = (decltype(&vkCreateDevice)) dlsym(RTLD_NEXT, "vkCreateDevice");
extern "C" {
// the function that replaces the original vkCreateDevice
VkResult vkCreateDevice(
VkPhysicalDevice physicalDevice,
const VkDeviceCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkDevice* pDevice){
printf("\nvkCreateDevice hack for running PoE on Intel graphics\n\n");
// POE needs:
// shaderStorageImageReadWithoutFormat: true <-- this one is FALSE on Intel
VkDeviceCreateInfo i = *pCreateInfo;
VkPhysicalDeviceFeatures f = *i.pEnabledFeatures;
f.shaderStorageImageReadWithoutFormat = false;
i.pEnabledFeatures=&f;
return vkCreateDevice_orig(physicalDevice, &i, pAllocator, pDevice);
}
}//extern "C"
I put a pre-built binary (for those too lazy to compile it themselves and lucky enough to have system libraries compatible with mine) here: https://jprofesorek.mooo.com/pub/vulkan_intel_poe_override.so
Bro could you reach to POE devs themselves to make a built in fix for this, this is crazy, this is a big issue
|
Posted bylelfz#2512on Nov 23, 2024, 10:51:58 AM
|
I managed to fix the issue for me, and can use Vulkan again. :)
My fix is a bit random, i am not sure if it really helps others - but maybe, and therefore i post it.
My setup is Pop OS 22.04 (its based on Ubuntu, so might apply there too), on a laptop with dedicated nvidia gpu, and integrated intel gpu. Integrated gpu does most of the rendering, nvidia just gets used for poe and similar stuff.
I am using steam to play.
What i did: I installed the package "dxvk", including its dependencies "dxvk-wine32-development" and "dxvk-wine32-development:i386".
It was a complete shot in the blue, which i didnt not expect to really work. But i was really surprised to see that dxvk is not installed, so i figured why not.
And now im very, very happily enjoying vulkan renderer again, which is a crazy fps increase. :)
|
Posted byCassla#4068on Nov 25, 2024, 5:43:11 PM
|
I may be late, but I found another workaround (I did not read it in the upper posts here)
Set "renderer_type=opengl" instead of "renderer_type=vulkan" in production_Config.ini file.
|
Posted byPaliPalo#4622on Dec 9, 2024, 10:04:53 AM
|
test
|
Posted byspielero#7690on Jan 4, 2025, 9:28:37 PM
|