diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/wrapped/wrappedvulkan.c | 7 | ||||
| -rwxr-xr-x | src/wrapped/wrappedvulkan_private.h | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/wrapped/wrappedvulkan.c b/src/wrapped/wrappedvulkan.c index b138ad9b..a8f694bb 100755 --- a/src/wrapped/wrappedvulkan.c +++ b/src/wrapped/wrappedvulkan.c @@ -84,8 +84,8 @@ EXPORT void* my_vkGetDeviceProcAddr(x64emu_t* emu, void* device, void* name) fillVulkanProcWrapper(emu->context); k = kh_get(symbolmap, emu->context->vkmymap, rname); int is_my = (k==kh_end(emu->context->vkmymap))?0:1; - void* symbol; - if(is_my) { + void* symbol = my->vkGetDeviceProcAddr(device, name); + if(symbol && is_my) { // only wrap if symbol exist // try again, by using custom "my_" now... char tmp[200]; strcpy(tmp, "my_"); @@ -95,8 +95,7 @@ EXPORT void* my_vkGetDeviceProcAddr(x64emu_t* emu, void* device, void* name) #define GO(A, W) if(!strcmp(rname, #A)) my->A = (W)my->vkGetDeviceProcAddr(device, name); SUPER() #undef GO - } else - symbol = my->vkGetDeviceProcAddr(device, name); + } if(!symbol) { printf_dlsym(LOG_DEBUG, "%p\n", NULL); return NULL; // easy diff --git a/src/wrapped/wrappedvulkan_private.h b/src/wrapped/wrappedvulkan_private.h index 873f8572..4e8c295e 100755 --- a/src/wrapped/wrappedvulkan_private.h +++ b/src/wrapped/wrappedvulkan_private.h @@ -804,4 +804,8 @@ GO(vkCmdSetSampleMaskEXT, vFpip) GO(vkCmdSetShadingRateImageEnableNV, vFpi) GO(vkCmdSetTessellationDomainOriginEXT, vFpi) GO(vkCmdSetViewportSwizzleNV, vFpuup) -GO(vkCmdSetViewportWScalingEnableNV, vFpi) \ No newline at end of file +GO(vkCmdSetViewportWScalingEnableNV, vFpi) + +// VK_KHR_external_memory_win32 +GO(vkGetMemoryWin32HandleKHR, iFppp) +GO(vkGetMemoryWin32HandlePropertiesKHR, iFpipp) |