Comments (2)
I think what is happening here is that as a result of 6916486, if VK_LAYER_fossilize_GetDeviceProcAddr()
somehow sees layer->getTable()->GetDeviceProcAddr == VK_LAYER_fossilize_GetDeviceProcAddr
, it will call into itself until it runs out of stack space.
Perhaps GetDeviceProcAddr
needs to be exempt from the check added in 6916486, so that if pName
is "vkGetDeviceProcAddr"
, it short-circuits to returning VK_LAYER_fossilize_GetDeviceProcAddr
immediately? (As though interceptCoreDeviceCommand
had been called first, as it was before 6916486 - but it would likely be easier done as a special-case.)
It's entirely possible that one of the other layers involved is doing something wrong, and libstrangle certainly has other issues - but its GetDeviceProcAddr
implementation seems to be heavily based on Mesa's overlay, which I would hope is doing the fallback dance correctly. It seems to me that infinite recursion is never going to be the correct answer, so it would probably be more robust if Fossilize avoids the recursion for GetDeviceProcAddr
, even if the crash is not actually Fossilize's fault.
from fossilize.
If layer->getTable()->GetDeviceProcAddr
is fossilize's own vkGetDeviceProcAddr you have bug somewhere, and I'm pretty sure it's not in fossilize since all it does to get that point is call down the layer chain. Your hypothesis that this is caused by pName being "vkGetDeviceProcAddr"
also makes little sense. The last function before VK_LAYER_fossilize_GetDeviceProcAddr
in your stack trace is loader_init_device_dispatch_table
, which never calls vkGetDeviceProcAddr
with "vkGetDeviceProcAddr"
.
As a total blind guess you could try replacing https://github.com/ValveSoftware/Fossilize/blob/master/layer/dispatch_helper.cpp#L31 with table->GetDeviceProcAddr = gpa
.
It would also help to know in which order the layers get loaded.
from fossilize.
Related Issues (20)
- Steam seems to never finish shader pre-compiling in the background for A Hat in Time HOT 8
- default log level in journalctl
- Compiling Vulkan shaders with less than 50% of free memory leads to OOM situation and system freeze HOT 4
- CPU instability when compiling shaders. HOT 15
- Build of -m32 fossilize terminating with errors
- Launching Steam immediately caused `fossilize_replay` to consume all available memory HOT 9
- fossilize_replay causing OOM (but only in Deep Rock Galatic) HOT 4
- [steam] fossilize_replay stops processes and fails to resume them HOT 4
- Use after free when compiling GPL pipelines HOT 2
- Setting fossilize environment for steam games HOT 2
- 100 GB shadercache folder
- Extremely long Vulkan Shaders processing just with Nvidia GPU HOT 2
- Fossilize_replay vulkan bug, arch proton
- `fossilize-disasm --target isa` crash
- Launching Steam freezes my system because of fossilize_replay taking whole memory HOT 1
- Why is this CPU bound? HOT 1
- Missing cstdint include HOT 2
- Why is fossilize always running? HOT 2
- Please make fossilize_replay ramp in a performant way HOT 6
- Support `VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT`/`1000068000` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fossilize.