[Mesa-dev] [PATCH] android: vulkan: add support for libmesa_vulkan_{util, wsi}

Mauro Rossi issor.oruam at gmail.com
Tue Feb 28 00:31:01 UTC 2017


Thanks a lot for your feedbacks.
Here follows final version.
Mauro

>From d0db1d0fd07fd0b5fb7580bb8dddf109389f28ba Mon Sep 17 00:00:00 2001
From: Mauro Rossi <issor.oruam at gmail.com>
Date: Tue, 28 Feb 2017 01:24:41 +0100
Subject: [PATCH] android: vulkan: add support for libmesa_vulkan_util

The following changes are implemented:

Add src/vulkan/Android.mk to build libmesa_vulkan_util
Android.mk: add src/vulkan to SUBDIR to build new module
intel/vulkan: fix libmesa_vulkan_util,vk_enum_to_str.h dependencies
Add -o OUTPUT_PATH option in src/vulkan/util/gen_enum_to_str.py script
Use -o OUTPUT_PATH option in automake generation rules for vk_enum_to_str.{c,h}

Fixes: e9dcb17 "vulkan/util: Add generator for enum_to_str functions"
Fixes: 8e03250 "vulkan: Combine wsi and util makefiles"
---
 Android.mk                         |  3 ++-
 src/intel/vulkan/Android.mk        |  8 ++++--
 src/vulkan/Android.mk              | 55 ++++++++++++++++++++++++++++++++++++++
 src/vulkan/Makefile.am             |  2 +-
 src/vulkan/util/gen_enum_to_str.py |  9 +++++--
 5 files changed, 71 insertions(+), 6 deletions(-)
 create mode 100644 src/vulkan/Android.mk

diff --git a/Android.mk b/Android.mk
index 4168b4d..bb70321 100644
--- a/Android.mk
+++ b/Android.mk
@@ -92,7 +92,8 @@ SUBDIRS := \
  src/egl \
  src/amd \
  src/intel \
- src/mesa/drivers/dri
+ src/mesa/drivers/dri \
+ src/vulkan

 INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS))

diff --git a/src/intel/vulkan/Android.mk b/src/intel/vulkan/Android.mk
index 1e53970..a6a7d26 100644
--- a/src/intel/vulkan/Android.mk
+++ b/src/intel/vulkan/Android.mk
@@ -74,7 +74,8 @@ include $(BUILD_STATIC_LIBRARY)
 ANV_INCLUDES := \
  $(VULKAN_COMMON_INCLUDES) \
  $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_anv_entrypoints,,) \
- $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir
+ $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_nir,,)/nir \
+ $(call generated-sources-dir-for,STATIC_LIBRARIES,libmesa_vulkan_util,,)/util

 #
 # libanv for gen7
@@ -172,7 +173,10 @@ LOCAL_C_INCLUDES := \
  $(ANV_INCLUDES) \
  $(MESA_TOP)/src/compiler

-LOCAL_WHOLE_STATIC_LIBRARIES := libmesa_anv_entrypoints libmesa_genxml
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+ libmesa_anv_entrypoints \
+ libmesa_genxml \
+ libmesa_vulkan_util

 LOCAL_GENERATED_SOURCES += $(intermediates)/anv_entrypoints.c

diff --git a/src/vulkan/Android.mk b/src/vulkan/Android.mk
new file mode 100644
index 0000000..871d7f3
--- /dev/null
+++ b/src/vulkan/Android.mk
@@ -0,0 +1,55 @@
+# Copyright © 2017 Mauro Rossi <issor.oruam at gmail.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+LOCAL_PATH := $(call my-dir)
+
+# Import variables
+include $(LOCAL_PATH)/Makefile.sources
+
+#
+# libmesa_vulkan_util
+#
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := libmesa_vulkan_util
+LOCAL_MODULE_CLASS := STATIC_LIBRARIES
+
+intermediates := $(call local-generated-sources-dir)
+
+LOCAL_C_INCLUDES := \
+ $(MESA_TOP)/include/vulkan
+
+LOCAL_GENERATED_SOURCES := \
+ $(intermediates)/util/vk_enum_to_str.c \
+ $(intermediates)/util/vk_enum_to_str.h
+
+vulkan_api_xml = $(MESA_TOP)/src/vulkan/registry/vk.xml
+
+$(LOCAL_GENERATED_SOURCES):
$(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py $(vulkan_api_xml)
+ @echo "target Generated: $(PRIVATE_MODULE) <= $(notdir $(@))"
+ @mkdir -p $(dir $@)
+ $(hide) $(MESA_PYTHON2)
$(MESA_TOP)/src/vulkan/util/gen_enum_to_str.py -o
$(intermediates)/util
+
+LOCAL_EXPORT_C_INCLUDE_DIRS := \
+        $(intermediates)
+
+include $(MESA_COMMON_MK)
+include $(BUILD_STATIC_LIBRARY)
diff --git a/src/vulkan/Makefile.am b/src/vulkan/Makefile.am
index 5cdffbf..019da13 100644
--- a/src/vulkan/Makefile.am
+++ b/src/vulkan/Makefile.am
@@ -17,7 +17,7 @@ BUILT_SOURCES = \

 util/vk_enum_to_str.c util/vk_enum_to_str.h: util/gen_enum_to_str.py
$(vulkan_api_xml)
  $(MKDIR_GEN)
- $(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py
+ $(PYTHON_GEN) $(srcdir)/util/gen_enum_to_str.py -o
$(top_builddir)/src/vulkan/util

 libvulkan_util_la_SOURCES = $(VULKAN_UTIL_FILES)

diff --git a/src/vulkan/util/gen_enum_to_str.py
b/src/vulkan/util/gen_enum_to_str.py
index 4b6fdf3..d45bcec 100644
--- a/src/vulkan/util/gen_enum_to_str.py
+++ b/src/vulkan/util/gen_enum_to_str.py
@@ -22,6 +22,7 @@
 """Create enum to string functions for vulking using vk.xml."""

 from __future__ import print_function
+import argparse
 import os
 import textwrap
 import xml.etree.cElementTree as et
@@ -30,6 +31,10 @@ from mako.template import Template

 VK_XML = os.path.join(os.path.dirname(__file__), '..', 'registry', 'vk.xml')

+parser = argparse.ArgumentParser()
+parser.add_argument('-o', '--output-path', required=True)
+args = parser.parse_args()
+
 COPYRIGHT = textwrap.dedent(u"""\
     * Copyright © 2017 Intel Corporation
     *
@@ -159,8 +164,8 @@ def xml_parser(filename):

 def main():
     enums = xml_parser(VK_XML)
-    for template, file_ in [(C_TEMPLATE, 'util/vk_enum_to_str.c'),
-                            (H_TEMPLATE, 'util/vk_enum_to_str.h')]:
+    for template, file_ in [(C_TEMPLATE,
os.path.join(args.output_path, 'vk_enum_to_str.c')),
+                            (H_TEMPLATE,
os.path.join(args.output_path, 'vk_enum_to_str.h'))]:
         with open(file_, 'wb') as f:
             f.write(template.render(
                 file=os.path.basename(__file__),
-- 
2.9.3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-android-vulkan-add-support-for-libmesa_vulkan_util.patch
Type: text/x-patch
Size: 6341 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20170228/f46154e8/attachment-0001.bin>


More information about the mesa-dev mailing list