[Mesa-dev] [PATCH] radv: Allow physical device interfaces to be included in device extensions

Keith Packard keithp at keithp.com
Fri Oct 12 20:38:44 UTC 2018


According to the Vulkan spec:

"Vulkan 1.0 initially required all new physical-device-level extension
 functionality to be structured within an instance extension. In order
 to avoid using an instance extension, which often requires loader
 support, physical-device-level extension functionality may be
 implemented within device extensions"

The code that checks for enabled extension APIs currently only passes
functions with VkDevice or VkCommandBuffer as their first
argument. This patch extends that to also allow functions with
VkPhysicalDevice parameters, in support of the above quote from the
Vulkan spec.

Signed-off-by: Keith Packard <keithp at keithp.com>
---
 src/amd/vulkan/radv_entrypoints_gen.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_entrypoints_gen.py b/src/amd/vulkan/radv_entrypoints_gen.py
index 377b544c2aa..69e6fc3e0eb 100644
--- a/src/amd/vulkan/radv_entrypoints_gen.py
+++ b/src/amd/vulkan/radv_entrypoints_gen.py
@@ -352,7 +352,7 @@ class Entrypoint(EntrypointBase):
         self.return_type = return_type
         self.params = params
         self.guard = guard
-        self.device_command = len(params) > 0 and (params[0].type == 'VkDevice' or params[0].type == 'VkQueue' or params[0].type == 'VkCommandBuffer')
+        self.device_command = len(params) > 0 and (params[0].type == 'VkPhysicalDevice' or params[0].type == 'VkDevice' or params[0].type == 'VkQueue' or params[0].type == 'VkCommandBuffer')
 
     def prefixed_name(self, prefix):
         assert self.name.startswith('vk')
-- 
2.19.1



More information about the mesa-dev mailing list