diff options
| author | David Pinedo <david@lunarg.com> | 2015-07-09 16:23:44 -0600 |
|---|---|---|
| committer | David Pinedo <david@lunarg.com> | 2015-07-09 16:23:44 -0600 |
| commit | ed008740ee2398e1527abb1cae9da804bfd88441 (patch) | |
| tree | 246f0eb621e0d4b6e9531e6dd6d47e0d3fba8a10 | |
| parent | 9363b4932bae44a1ec7aa661408be8d58ac27608 (diff) | |
| download | usermoji-ed008740ee2398e1527abb1cae9da804bfd88441.tar.xz | |
Layers: They now compile on Windows.
Added missing vk funcs to basic and screenshot
Changed several funcs in mem_tracker to return void
Loader cmake file was generating .def file on linux, removed it
Fixed missing entry points in layers generated via python
| -rw-r--r-- | layers/basic.cpp | 19 | ||||
| -rw-r--r-- | layers/mem_tracker.cpp | 6 | ||||
| -rw-r--r-- | layers/screenshot.cpp | 22 | ||||
| -rw-r--r-- | loader/CMakeLists.txt | 4 | ||||
| -rwxr-xr-x | vk-layer-generate.py | 7 |
5 files changed, 44 insertions, 14 deletions
diff --git a/layers/basic.cpp b/layers/basic.cpp index aec3ea41..d1e78059 100644 --- a/layers/basic.cpp +++ b/layers/basic.cpp @@ -33,6 +33,15 @@ // being used: #include "vk_loader_platform.h" +static const VkLayerProperties globalLayerProps[] = { + { + "Basic", + VK_API_VERSION, // specVersion + VK_MAKE_VERSION(0, 1, 0), // implVersion + "layer: Basic", + } +}; + VK_LAYER_EXPORT VkResult VKAPI vkLayerExtension1(VkDevice device) { @@ -175,3 +184,13 @@ VK_LAYER_EXPORT void * VKAPI vkGetInstanceProcAddr(VkInstance instance, const ch return NULL; return instance_dispatch_table(instance)->GetInstanceProcAddr(instance, pName); } + +VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalExtensionProperties(const char *pLayerName, uint32_t *pCount, VkExtensionProperties* pProperties) +{ + return util_GetExtensionProperties(0, NULL, pCount, pProperties); +} + +VK_LAYER_EXPORT VkResult VKAPI vkGetGlobalLayerProperties(uint32_t *pCount, VkLayerProperties* pProperties) +{ + return util_GetLayerProperties(ARRAY_SIZE(globalLayerProps), globalLayerProps, pCount, pProperties); +} diff --git a/layers/mem_tracker.cpp b/layers/mem_tracker.cpp index e6f23f90..3dc7fb83 100644 --- a/layers/mem_tracker.cpp +++ b/layers/mem_tracker.cpp @@ -254,7 +254,7 @@ static void retire_device_fences( // Verify that (actual & desired) flags != 0 or, // if strict is true, verify that (actual & desired) flags == desired // In case of error, report it via dbg callbacks -static bool32_t validate_usage_flags(void* disp_obj, VkFlags actual, VkFlags desired, +static void validate_usage_flags(void* disp_obj, VkFlags actual, VkFlags desired, bool32_t strict, VkObject obj, VkObjectType obj_type, char const* ty_str, char const* func_name, char const* usage_str) { @@ -272,7 +272,7 @@ static bool32_t validate_usage_flags(void* disp_obj, VkFlags actual, VkFlags des // Helper function to validate usage flags for images // Pulls image info and then sends actual vs. desired usage off to helper above where // an error will be flagged if usage is not correct -static bool32_t validate_image_usage_flags(void* disp_obj, VkImage image, VkFlags desired, bool32_t strict, +static void validate_image_usage_flags(void* disp_obj, VkImage image, VkFlags desired, bool32_t strict, char const* func_name, char const* usage_string) { MT_OBJ_INFO* pInfo = get_object_info(image); @@ -284,7 +284,7 @@ static bool32_t validate_image_usage_flags(void* disp_obj, VkImage image, VkFlag // Helper function to validate usage flags for buffers // Pulls buffer info and then sends actual vs. desired usage off to helper above where // an error will be flagged if usage is not correct -static bool32_t validate_buffer_usage_flags(void* disp_obj, VkBuffer buffer, VkFlags desired, bool32_t strict, +static void validate_buffer_usage_flags(void* disp_obj, VkBuffer buffer, VkFlags desired, bool32_t strict, char const* func_name, char const* usage_string) { MT_OBJ_INFO* pInfo = get_object_info(buffer); diff --git a/layers/screenshot.cpp b/layers/screenshot.cpp index 5b8c0984..69b99f3a 100644 --- a/layers/screenshot.cpp +++ b/layers/screenshot.cpp @@ -554,3 +554,25 @@ VK_LAYER_EXPORT void* VKAPI vkGetDeviceProcAddr( return NULL; return pDisp->GetDeviceProcAddr(dev, funcName); } + + +VK_LAYER_EXPORT void* VKAPI vkGetInstanceProcAddr(VkInstance instance, const char* funcName) +{ + return NULL; +#if 0 + if (instance == VK_NULL_HANDLE) { + return NULL; + } + + /* loader uses this to force layer initialization; instance object is wrapped */ + if (!strcmp("vkGetInstanceProcAddr", funcName)) { + initInstanceTable((const VkBaseLayerObject *) instance); + return (void *) vkGetInstanceProcAddr; + } + + VkLayerInstanceDispatchTable* pTable = instance_dispatch_table(instance); + if (pTable->GetInstanceProcAddr == NULL) + return NULL; + return pTable->GetInstanceProcAddr(instance, funcName); +#endif +} diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt index a02c71ba..f9ae4bc0 100644 --- a/loader/CMakeLists.txt +++ b/loader/CMakeLists.txt @@ -7,10 +7,6 @@ if (WIN32) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vulkan.${MAJOR}.def COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py win-def-file vulkan.${MAJOR}.dll all > ${CMAKE_CURRENT_BINARY_DIR}/vulkan.${MAJOR}.def DEPENDS ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py) -else() - add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vulkan.def - COMMAND ${PYTHON_CMD} ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py win-def-file vulkan.dll all > ${CMAKE_CURRENT_BINARY_DIR}/vulkan.def - DEPENDS ${PROJECT_SOURCE_DIR}/loader/vk-loader-generate.py ${PROJECT_SOURCE_DIR}/vulkan.py) endif() # DEBUG enables runtime loader ICD verification diff --git a/vk-layer-generate.py b/vk-layer-generate.py index ccb60568..af55e66d 100755 --- a/vk-layer-generate.py +++ b/vk-layer-generate.py @@ -234,10 +234,6 @@ class Subcommand(object): ggep_body.append('}') return "\n".join(ggep_body) - def _gen_layer_get_physical_device_extension_props(self, layer="Generic"): - gpdep_body = [] - return "\n".join(gpdep_body) - def _gen_layer_get_physical_device_layer_props(self, layer="Generic"): gpdlp_body = [] if layer == 'Generic': @@ -285,9 +281,6 @@ class Subcommand(object): intercept = self._gen_layer_get_global_layer_props(self.layer_name) elif 'GetPhysicalDeviceLayerProperties' == proto.name: intercept = self._gen_layer_get_physical_device_layer_props(self.layer_name) - elif 'GetPhysicalDeviceExtensionProperties' == proto.name: - intercept = self._gen_layer_get_physical_device_extension_props(self.layer_name) - if intercept is not None: funcs.append(intercept) |
