mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
da5cefbac2
* Some distribution packages (Ubuntu at least I think) point the nvidia
vulkan ICD registration at libGL.so. Since for libGL hooking we have
to redirect dlopen("libGL.so") to ourselves, this means the vulkan
loader loads librenderdoc instead of libGL. If we don't export the VK
ICD entry points, it will fail to load that ICD.
* This solution isn't perfect - we export all three main ICD entry
points. If the real ICD doesn't export one, we will fail and cause
problems, since the loader won't fall back to older paths unless the
symbol is completely missing. For now though this is fine since the
nvidia ICD exports all three.
* The only way to solve that properly would be to intercept all calls to
dlsym and redirect these functions by name to go to the real handle
instead of ourselves - vastly overcomplicated for this edge case.
15 lines
293 B
Plaintext
15 lines
293 B
Plaintext
{
|
|
global:
|
|
_init;
|
|
_fini;
|
|
gl[A-Z]*;
|
|
egl[A-Z]*;
|
|
vk_icd*;
|
|
dlopen;
|
|
_exit;
|
|
RENDERDOC_*;
|
|
VK_LAYER_RENDERDOC_*;
|
|
local:
|
|
*;
|
|
};
|