diff options
18 files changed, 539 insertions, 550 deletions
diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/glslang_git.bb b/meta-v1000/recipes-graphics/lunarg-sdk/glslang_git.bb index 63e14c80..bc749b40 100644 --- a/meta-v1000/recipes-graphics/lunarg-sdk/glslang_git.bb +++ b/meta-v1000/recipes-graphics/lunarg-sdk/glslang_git.bb @@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = "file://glslang/Include/Types.h;beginline=1;endline=36;md5=9d S = "${WORKDIR}/git" -SRCREV = "715c353a15836e5ae192a64a4cf54e2ce7e8d66a" +SRCREV = "2651ccaec8170b3257642b3c438f50dc4f181fdd" SRC_URI = "git://github.com/KhronosGroup/glslang \ file://0002-spirv-do-not-install-conflicting-headers.patch" diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/spirv-tools_git.bb b/meta-v1000/recipes-graphics/lunarg-sdk/spirv-tools_git.bb index f2d80b44..a4da04e2 100644 --- a/meta-v1000/recipes-graphics/lunarg-sdk/spirv-tools_git.bb +++ b/meta-v1000/recipes-graphics/lunarg-sdk/spirv-tools_git.bb @@ -14,8 +14,8 @@ S = "${WORKDIR}/git" SPIRV_HEADERS_LOCATION = "${S}/external/spirv-headers" HEADERS_VERSION = "1.1" -SRCREV_spirv-tools = "5834719fc17d4735fce0102738b87b70255cfd5f" -SRCREV_spirv-headers = "061097878467b8e040fbf153a837d844ef9f9f96" +SRCREV_spirv-tools = "9e19fc0f31ceaf1f6bc907dbf17dcfded85f2ce8" +SRCREV_spirv-headers = "ce309203d7eceaf908bea8862c27f3e0749f7d00" SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools;protocol=http;name=spirv-tools \ git://github.com/KhronosGroup/SPIRV-Headers;name=spirv-headers;destsuffix=${SPIRV_HEADERS_LOCATION} \ file://0002-spirv-lesspipe.sh-allow-using-generic-shells.patch" diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0001-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0001-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch index df871c68..10337189 100644 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0001-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0001-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch @@ -1,7 +1,7 @@ -From 31f4c33da2d988f2ac3d3f2cdd97cae4085abe19 Mon Sep 17 00:00:00 2001 +From 49d4dd326b9d4b7b013f4a1d21498568d76443b2 Mon Sep 17 00:00:00 2001 From: Awais Belal <awais_belal@mentor.com> -Date: Wed, 31 May 2017 13:26:39 +0500 -Subject: [PATCH 1/3] CMakeLists: add include path so Xlib.h is found as needed +Date: Tue, 4 Sep 2018 14:09:12 +0500 +Subject: [PATCH 1/5] CMakeLists: add include path so Xlib.h is found as needed All the targets including vk_platform.h or directly including X11/Xlib.h require to know the directory for the installed @@ -11,18 +11,18 @@ filled in properly. Signed-off-by: Awais Belal <awais_belal@mentor.com> --- CMakeLists.txt | 2 ++ - demos/CMakeLists.txt | 2 +- + demos/CMakeLists.txt | 1 + layers/CMakeLists.txt | 1 + libs/vkjson/CMakeLists.txt | 1 + loader/CMakeLists.txt | 1 + - 5 files changed, 6 insertions(+), 1 deletion(-) + 5 files changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt -index b53696fb0..2d97f7a0d 100644 +index 5cf85d487..5ce69d216 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -187,6 +187,8 @@ find_path(SPIRV_TOOLS_INCLUDE_DIR spirv-tools/libspirv.h HINTS "${EXTERNAL_SOURC - "${EXTERNAL_SOURCE_ROOT}/source/spirv-tools/external/include" +@@ -225,6 +225,8 @@ find_path(SPIRV_TOOLS_INCLUDE_DIR spirv-tools/libspirv.h HINTS "${EXTERNAL_SOURC + "${CMAKE_SOURCE_DIR}/../glslang/External/spirv-tools/include" DOC "Path to spirv-tools/libspirv.h") +find_path(X11_XLIB_INCLUDE_DIR X11/Xlib.h DOC "Path to X11/Xlib.h") @@ -31,25 +31,24 @@ index b53696fb0..2d97f7a0d 100644 HINTS ${GLSLANG_SEARCH_PATH} ) diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt -index 917ea8840..472d1528b 100644 +index 487b19910..fb5022bf5 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt -@@ -19,7 +19,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") - if (NOT BUILD_WSI_XLIB_SUPPORT) - message( FATAL_ERROR "Selected XLIB for demos build but not building Xlib support" ) - endif() -- include_directories(${X11_INCLUDE_DIR}) -+ include_directories(${X11_INCLUDE_DIR} ${X11_XLIB_INCLUDE_DIR}) +@@ -41,6 +41,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(DEMO_INCLUDE_DIRS + ${X11_INCLUDE_DIR} + ${DEMO_INCLUDE_DIRS} ++ ${X11_XLIB_INCLUDE_DIR} + ) link_libraries(${X11_LIBRARIES}) add_definitions(-DVK_USE_PLATFORM_XLIB_KHR) - elseif(DEMOS_WSI_SELECTION STREQUAL "WAYLAND") diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt -index 7a35df7ec..5543808e5 100644 +index 08b0e2090..6068d0031 100644 --- a/layers/CMakeLists.txt +++ b/layers/CMakeLists.txt -@@ -115,6 +115,7 @@ include_directories( +@@ -146,6 +146,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_PROJECT_BINARY_DIR} + ${PROJECT_BINARY_DIR} ${CMAKE_BINARY_DIR} + ${X11_XLIB_INCLUDE_DIR} ) @@ -68,12 +67,12 @@ index 2e79d9109..4b1df5988 100644 add_library(vkjson STATIC vkjson.cc vkjson_instance.cc ../../loader/cJSON.c) diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt -index d15f09cc9..e7dd6d358 100644 +index 4d1d08fc8..55ae2cb85 100644 --- a/loader/CMakeLists.txt +++ b/loader/CMakeLists.txt @@ -3,6 +3,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_PROJECT_BINARY_DIR} + ${PROJECT_BINARY_DIR} ${CMAKE_BINARY_DIR} + ${X11_XLIB_INCLUDE_DIR} ) diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0002-install-demos.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0002-demos-CMakeLists.txt-install-demos.patch index 7dbc2c23..1ffc283e 100644 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0002-install-demos.patch +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0002-demos-CMakeLists.txt-install-demos.patch @@ -1,7 +1,7 @@ -From 4ed362554e375b0be8d3b03ec8f11cff97677f7f Mon Sep 17 00:00:00 2001 +From 0ee0a0502b96b46190f6e47243b0a008ff04ebbd Mon Sep 17 00:00:00 2001 From: Awais Belal <awais_belal@mentor.com> -Date: Wed, 31 May 2017 13:42:07 +0500 -Subject: [PATCH 2/3] install demos +Date: Tue, 4 Sep 2018 14:10:37 +0500 +Subject: [PATCH 2/5] demos/CMakeLists.txt: install demos Install demos to the target. @@ -11,20 +11,20 @@ Signed-off-by: Awais Belal <awais_belal@mentor.com> 1 file changed, 2 insertions(+) diff --git a/demos/CMakeLists.txt b/demos/CMakeLists.txt -index 472d1528b..e9e0619a0 100644 +index fb5022bf5..5a723805d 100644 --- a/demos/CMakeLists.txt +++ b/demos/CMakeLists.txt -@@ -120,6 +120,7 @@ if(NOT WIN32) +@@ -148,6 +148,7 @@ if(NOT WIN32) if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}) - add_executable(cube cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv) + add_executable(cube cube.c ${PROJECT_SOURCE_DIR}/demos/cube.vert ${PROJECT_SOURCE_DIR}/demos/cube.frag cube.vert.inc cube.frag.inc) target_link_libraries(cube ${LIBRARIES}) + install(TARGETS cube DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() else() if (CMAKE_CL_64) -@@ -136,6 +137,7 @@ if(NOT WIN32) +@@ -164,6 +165,7 @@ if(NOT WIN32) if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}) - add_executable(cubepp cube.cpp ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv) + add_executable(cubepp cube.cpp ${PROJECT_SOURCE_DIR}/demos/cube.vert ${PROJECT_SOURCE_DIR}/demos/cube.frag cube.vert.inc cube.frag.inc) target_link_libraries(cubepp ${LIBRARIES}) + install(TARGETS cubepp DESTINATION ${CMAKE_INSTALL_BINDIR}) endif() diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch new file mode 100644 index 00000000..c18441f5 --- /dev/null +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch @@ -0,0 +1,71 @@ +From af1706e021e900f2cfb15e7bc0f9f68cdd1bd04c Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Tue, 4 Sep 2018 14:58:18 +0500 +Subject: [PATCH 3/5] CMakeLists.txt: use a fixed header for spirv_commit + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +--- + CMakeLists.txt | 3 --- + spirv_tools_commit_id.h | 29 +++++++++++++++++++++++++++++ + 2 files changed, 29 insertions(+), 3 deletions(-) + create mode 100644 spirv_tools_commit_id.h + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5cf85d487..b0ec3cbaf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -343,7 +343,6 @@ add_custom_target(generate_helper_files DEPENDS + vk_dispatch_table_helper.h + vk_extension_helper.h + vk_typemap_helper.h +- spirv_tools_commit_id.h + ) + set_target_properties(generate_helper_files PROPERTIES FOLDER ${LVL_TARGET_FOLDER}) + +@@ -358,8 +357,6 @@ run_vk_xml_generate(helper_file_generator.py vk_enum_string_helper.h) + run_vk_xml_generate(helper_file_generator.py vk_object_types.h) + run_vk_xml_generate(helper_file_generator.py vk_extension_helper.h) + run_vk_xml_generate(helper_file_generator.py vk_typemap_helper.h) +-run_external_revision_generate(${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h) +- + + + if(NOT WIN32) +diff --git a/include/vulkan/spirv_tools_commit_id.h b/include/vulkan/spirv_tools_commit_id.h +new file mode 100644 +index 000000000..ae588b33f +--- /dev/null ++++ b/include/vulkan/spirv_tools_commit_id.h +@@ -0,0 +1,29 @@ ++// *** THIS FILE IS GENERATED - DO NOT EDIT *** ++// See external_revision_generator.py for modifications ++ ++/*************************************************************************** ++ * ++ * Copyright (c) 2015-2017 The Khronos Group Inc. ++ * Copyright (c) 2015-2017 Valve Corporation ++ * Copyright (c) 2015-2017 LunarG, Inc. ++ * Copyright (c) 2015-2017 Google Inc. ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ * ++ * Author: Chris Forbes <chrisforbes@google.com> ++ * Author: Cort Stratton <cort@google.com> ++ * ++ ****************************************************************************/ ++#pragma once ++ ++#define SPIRV_TOOLS_COMMIT_ID "2651ccaec8170b3257642b3c438f50dc4f181fdd" +-- +2.11.1 + diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0003-demos-make-shader-location-relative.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0003-demos-make-shader-location-relative.patch deleted file mode 100644 index c54951c9..00000000 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0003-demos-make-shader-location-relative.patch +++ /dev/null @@ -1,321 +0,0 @@ -From 8797907d97a10ce64b03bef80fd67bc9117712b2 Mon Sep 17 00:00:00 2001 -From: Awais Belal <awais_belal@mentor.com> -Date: Wed, 6 Dec 2017 18:09:55 +0500 -Subject: [PATCH] demos: make shader location relative - -The demo binaries expect the shader (frag/vert.spv) -location to be PWD so a user has to cd to /usr/bin -if the binaries are installed there in order to -run them correctly. -This patch tries to find the location of the binary -and then assumes that the shaders are located in the -same location as the binary so a user can install -everything to a single dir and that will work. - -Signed-off-by: Awais Belal <awais_belal@mentor.com> ---- - demos/cube.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++---- - demos/cube.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- - 2 files changed, 129 insertions(+), 10 deletions(-) - -diff --git a/demos/cube.c b/demos/cube.c -index dd7bd906b..c8bc00e04 100644 ---- a/demos/cube.c -+++ b/demos/cube.c -@@ -33,6 +33,7 @@ - #include <stdbool.h> - #include <assert.h> - #include <signal.h> -+#include <unistd.h> - #if defined(VK_USE_PLATFORM_XLIB_KHR) || defined(VK_USE_PLATFORM_XCB_KHR) - #include <X11/Xutil.h> - #elif defined(VK_USE_PLATFORM_WAYLAND_KHR) -@@ -453,6 +454,8 @@ struct demo { - - uint32_t current_buffer; - uint32_t queue_family_count; -+ -+ char bin_path[255]; - }; - - VKAPI_ATTR VkBool32 VKAPI_CALL dbgFunc(VkFlags msgFlags, VkDebugReportObjectTypeEXT objType, uint64_t srcObject, size_t location, -@@ -1611,18 +1614,27 @@ static void demo_prepare_textures(struct demo *demo) { - const VkFormat tex_format = VK_FORMAT_R8G8B8A8_UNORM; - VkFormatProperties props; - uint32_t i; -+ char tex_file[255]; - - vkGetPhysicalDeviceFormatProperties(demo->gpu, tex_format, &props); - - for (i = 0; i < DEMO_TEXTURE_COUNT; i++) { - VkResult U_ASSERT_ONLY err; - -+ if (strlen(demo->bin_path) > 0) { -+ strcpy(tex_file, demo->bin_path); -+ strcat(tex_file, "/"); -+ strcat(tex_file, tex_files[i]); -+ } -+ else -+ strcpy(tex_file, tex_files[i]); -+ - if ((props.linearTilingFeatures & - VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) && - !demo->use_staging_buffer) { - /* Device can texture using linear textures */ - demo_prepare_texture_image( -- demo, tex_files[i], &demo->textures[i], VK_IMAGE_TILING_LINEAR, -+ demo, tex_file, &demo->textures[i], VK_IMAGE_TILING_LINEAR, - VK_IMAGE_USAGE_SAMPLED_BIT, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | - VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); -@@ -1639,13 +1651,13 @@ static void demo_prepare_textures(struct demo *demo) { - - memset(&demo->staging_texture, 0, sizeof(demo->staging_texture)); - demo_prepare_texture_image( -- demo, tex_files[i], &demo->staging_texture, VK_IMAGE_TILING_LINEAR, -+ demo, tex_file, &demo->staging_texture, VK_IMAGE_TILING_LINEAR, - VK_IMAGE_USAGE_TRANSFER_SRC_BIT, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | - VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); - - demo_prepare_texture_image( -- demo, tex_files[i], &demo->textures[i], VK_IMAGE_TILING_OPTIMAL, -+ demo, tex_file, &demo->textures[i], VK_IMAGE_TILING_OPTIMAL, - (VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT), - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); - -@@ -1986,8 +1998,17 @@ static VkShaderModule demo_prepare_vs(struct demo *demo) { - #else - void *vertShaderCode; - size_t size; -+ char fname[255]; - -- vertShaderCode = demo_read_spv("cube-vert.spv", &size); -+ if (strlen(demo->bin_path) > 0) { -+ strcpy(fname, demo->bin_path); -+ strcat(fname, "/"); -+ strcat(fname, "cube-vert.spv"); -+ } -+ else -+ strcpy(fname, "cube-vert.spv"); -+ -+ vertShaderCode = demo_read_spv(fname, &size); - if (!vertShaderCode) { - ERR_EXIT("Failed to load cube-vert.spv", "Load Shader Failure"); - } -@@ -2014,8 +2035,17 @@ static VkShaderModule demo_prepare_fs(struct demo *demo) { - #else - void *fragShaderCode; - size_t size; -+ char fname[255]; -+ -+ if (strlen(demo->bin_path) > 0) { -+ strcpy(fname, demo->bin_path); -+ strcat(fname, "/"); -+ strcat(fname, "cube-frag.spv"); -+ } -+ else -+ strcpy(fname, "cube-frag.spv"); - -- fragShaderCode = demo_read_spv("cube-frag.spv", &size); -+ fragShaderCode = demo_read_spv(fname, &size); - if (!fragShaderCode) { - ERR_EXIT("Failed to load cube-frag.spv", "Load Shader Failure"); - } -@@ -3866,6 +3896,30 @@ static void demo_init_connection(struct demo *demo) { - #endif - } - -+static void find_bin_path(char *in_arg, char *ret_path) { -+ char *ptr = getenv("PATH"); -+ char *pch_temp; -+ char pch[255]; -+ -+ if (access(in_arg, F_OK ) == 0) { -+ pch_temp = strrchr(in_arg, '/'); -+ strncpy(ret_path, in_arg, strlen(in_arg) - strlen(pch_temp)); -+ } else if (in_arg[0] != '/') { -+ pch_temp = strtok(ptr, ":"); -+ while (pch_temp != NULL) { -+ strcpy(pch, pch_temp); -+ strcat(pch, "/"); -+ strcat(pch, in_arg); -+ if ((access(pch, F_OK ) == 0)) { -+ strcpy(ret_path, pch_temp); -+ break; -+ } -+ else -+ pch_temp = strtok(NULL, ":"); -+ } -+ } -+} -+ - static void demo_init(struct demo *demo, int argc, char **argv) { - vec3 eye = {0.0f, 3.0f, 5.0f}; - vec3 origin = {0, 0, 0}; -@@ -3960,6 +4014,8 @@ static void demo_init(struct demo *demo, int argc, char **argv) { - mat4x4_identity(demo->model_matrix); - - demo->projection_matrix[1][1]*=-1; //Flip projection matrix from GL to Vulkan orientation. -+ -+ find_bin_path(argv[0], demo->bin_path); - } - - #if defined(VK_USE_PLATFORM_WIN32_KHR) -diff --git a/demos/cube.cpp b/demos/cube.cpp -index 9b6fe5107..f867e30ab 100644 ---- a/demos/cube.cpp -+++ b/demos/cube.cpp -@@ -30,6 +30,7 @@ - #include <cstring> - #include <csignal> - #include <memory> -+#include <unistd.h> - - #if defined(VK_USE_PLATFORM_MIR_KHR) - #warning "Cubepp does not have code for Mir at this time" -@@ -219,6 +220,7 @@ struct Demo { - void draw(); - void draw_build_cmd(vk::CommandBuffer); - void flush_init_cmd(); -+ void find_bin_path(char *, char *); - void init(int, char **); - void init_connection(); - void init_vk(); -@@ -384,6 +386,8 @@ struct Demo { - - uint32_t current_buffer; - uint32_t queue_family_count; -+ -+ char bin_path[255]; - }; - - #ifdef _WIN32 -@@ -556,6 +560,7 @@ Demo::Demo() - memset(projection_matrix, 0, sizeof(projection_matrix)); - memset(view_matrix, 0, sizeof(view_matrix)); - memset(model_matrix, 0, sizeof(model_matrix)); -+ memset(bin_path, '\0', 255); - } - - void Demo::build_image_ownership_cmd(uint32_t const &i) { -@@ -888,6 +893,30 @@ Demo::Demo() - cmd = vk::CommandBuffer(); - } - -+ void Demo::find_bin_path(char *in_arg, char *ret_path) { -+ char *ptr = getenv("PATH"); -+ char *pch_temp; -+ char pch[255]; -+ -+ if (access(in_arg, F_OK ) == 0) { -+ pch_temp = strrchr(in_arg, '/'); -+ strncpy(ret_path, in_arg, strlen(in_arg) - strlen(pch_temp)); -+ } else if (in_arg[0] != '/') { -+ pch_temp = strtok(ptr, ":"); -+ while (pch_temp != NULL) { -+ strcpy(pch, pch_temp); -+ strcat(pch, "/"); -+ strcat(pch, in_arg); -+ if ((access(pch, F_OK ) == 0)) { -+ strcpy(ret_path, pch_temp); -+ break; -+ } -+ else -+ pch_temp = strtok(NULL, ":"); -+ } -+ } -+ } -+ - void Demo::init(int argc, char **argv) { - vec3 eye = {0.0f, 3.0f, 5.0f}; - vec3 origin = {0, 0, 0}; -@@ -962,6 +991,8 @@ Demo::Demo() - mat4x4_identity(model_matrix); - - projection_matrix[1][1] *= -1; // Flip projection matrix from GL to Vulkan orientation. -+ -+ find_bin_path(argv[0], bin_path); - } - - void Demo::init_connection() { -@@ -1858,7 +1889,18 @@ Demo::Demo() - - vk::ShaderModule Demo::prepare_fs() { - size_t size = 0; -- void *fragShaderCode = read_spv("cube-frag.spv", &size); -+ char fname[255]; -+ memset(fname, '\0', 255); -+ -+ if (strlen(bin_path) > 0) { -+ strcpy(fname, bin_path); -+ strcat(fname, "/"); -+ strcat(fname, "cube-frag.spv"); -+ } -+ else -+ strcpy(fname, "cube-frag.spv"); -+ -+ void *fragShaderCode = read_spv(fname, &size); - if (!fragShaderCode) { - ERR_EXIT("Failed to load cube-frag.spv", "Load Shader Failure"); - } -@@ -2079,11 +2121,21 @@ Demo::Demo() - vk::Format const tex_format = vk::Format::eR8G8B8A8Unorm; - vk::FormatProperties props; - gpu.getFormatProperties(tex_format, &props); -+ char tex_file[255]; -+ memset(tex_file, '\0', 255); - - for (uint32_t i = 0; i < texture_count; i++) { -+ if (strlen(bin_path) > 0) { -+ strcpy(tex_file, bin_path); -+ strcat(tex_file, "/"); -+ strcat(tex_file, tex_files[i]); -+ } -+ else -+ strcpy(tex_file, tex_files[i]); -+ - if ((props.linearTilingFeatures & vk::FormatFeatureFlagBits::eSampledImage) && !use_staging_buffer) { - /* Device can texture using linear textures */ -- prepare_texture_image(tex_files[i], &textures[i], vk::ImageTiling::eLinear, vk::ImageUsageFlagBits::eSampled, -+ prepare_texture_image(tex_file, &textures[i], vk::ImageTiling::eLinear, vk::ImageUsageFlagBits::eSampled, - vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent); - // Nothing in the pipeline needs to be complete to start, and don't allow fragment - // shader to run until layout transition completes -@@ -2094,11 +2146,11 @@ Demo::Demo() - } else if (props.optimalTilingFeatures & vk::FormatFeatureFlagBits::eSampledImage) { - /* Must use staging buffer to copy linear texture to optimized */ - -- prepare_texture_image(tex_files[i], &staging_texture, vk::ImageTiling::eLinear, -+ prepare_texture_image(tex_file, &staging_texture, vk::ImageTiling::eLinear, - vk::ImageUsageFlagBits::eTransferSrc, - vk::MemoryPropertyFlagBits::eHostVisible | vk::MemoryPropertyFlagBits::eHostCoherent); - -- prepare_texture_image(tex_files[i], &textures[i], vk::ImageTiling::eOptimal, -+ prepare_texture_image(tex_file, &textures[i], vk::ImageTiling::eOptimal, - vk::ImageUsageFlagBits::eTransferDst | vk::ImageUsageFlagBits::eSampled, - vk::MemoryPropertyFlagBits::eDeviceLocal); - -@@ -2167,7 +2219,18 @@ Demo::Demo() - - vk::ShaderModule Demo::prepare_vs() { - size_t size = 0; -- void *vertShaderCode = read_spv("cube-vert.spv", &size); -+ char fname[255]; -+ memset(fname, '\0', 255); -+ -+ if (strlen(bin_path) > 0) { -+ strcpy(fname, bin_path); -+ strcat(fname, "/"); -+ strcat(fname, "cube-vert.spv"); -+ } -+ else -+ strcpy(fname, "cube-vert.spv"); -+ -+ void *vertShaderCode = read_spv(fname, &size); - if (!vertShaderCode) { - ERR_EXIT("Failed to load cube-vert.spv", "Load Shader Failure"); - } --- -2.11.1 - diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0004-layer_validation_tests-include-math.h.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0004-layer_validation_tests-include-math.h.patch new file mode 100644 index 00000000..bd9713ea --- /dev/null +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0004-layer_validation_tests-include-math.h.patch @@ -0,0 +1,28 @@ +From a5beebd78eb232596f2b6b4de1ee417b629ada47 Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Tue, 4 Sep 2018 15:33:12 +0500 +Subject: [PATCH 4/5] layer_validation_tests: include math.h + +Without the inclusion several math functions +fail as expected. + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +--- + tests/layer_validation_tests.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp +index 132578f85..26b0671fa 100644 +--- a/tests/layer_validation_tests.cpp ++++ b/tests/layer_validation_tests.cpp +@@ -45,6 +45,7 @@ + #include "vk_typemap_helper.h" + + #include <limits.h> ++#include <math.h> + + #include <algorithm> + #include <functional> +-- +2.11.1 + diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0005-demos-cube-use-absolute-location-for-data-files.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0005-demos-cube-use-absolute-location-for-data-files.patch new file mode 100644 index 00000000..85c15b89 --- /dev/null +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers/0005-demos-cube-use-absolute-location-for-data-files.patch @@ -0,0 +1,70 @@ +From f6c2eeaad968b1ad0ebef7fad79eb5f01305a6e3 Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Wed, 5 Sep 2018 11:43:07 +0500 +Subject: [PATCH 5/5] demos/cube*: use absolute location for data files + +If absolute locations are not used here the demo +looks for texture files in a haphazard way and +can only be launched from the same directory. +This allows running the demo from anywhere and +consolidate any data files that are needed. + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +--- + demos/cube.c | 7 ++++++- + demos/cube.cpp | 7 ++++++- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/demos/cube.c b/demos/cube.c +index 29a484260..6b5f0b7af 100644 +--- a/demos/cube.c ++++ b/demos/cube.c +@@ -67,6 +67,8 @@ + #define APP_SHORT_NAME "cube" + #define APP_LONG_NAME "The Vulkan Cube Demo Program" + ++#define VULKAN_DATA_LOC "/usr/share/vulkan-data/" ++ + // Allow a maximum of two outstanding presentation operations. + #define FRAME_LAG 2 + +@@ -1484,7 +1486,10 @@ bool loadTexture(const char *filename, uint8_t *rgba_data, VkSubresourceLayout * + + return true; + #else +- FILE *fPtr = fopen(filename, "rb"); ++ char abs_filename[256]; ++ strcpy(abs_filename, VULKAN_DATA_LOC); ++ strcat(abs_filename, filename); ++ FILE *fPtr = fopen(abs_filename, "rb"); + char header[256], *cPtr, *tmp; + + if (!fPtr) return false; +diff --git a/demos/cube.cpp b/demos/cube.cpp +index fe8cb7c90..3eee7d9c8 100644 +--- a/demos/cube.cpp ++++ b/demos/cube.cpp +@@ -57,6 +57,8 @@ + // Allow a maximum of two outstanding presentation operations. + #define FRAME_LAG 2 + ++#define VULKAN_DATA_LOC "/usr/share/vulkan-data/" ++ + #define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0])) + + #ifdef _WIN32 +@@ -2261,7 +2263,10 @@ void Demo::update_data_buffer() { + } + + bool Demo::loadTexture(const char *filename, uint8_t *rgba_data, vk::SubresourceLayout *layout, int32_t *width, int32_t *height) { +- FILE *fPtr = fopen(filename, "rb"); ++ char abs_filename[256]; ++ strcpy(abs_filename, VULKAN_DATA_LOC); ++ strcat(abs_filename, filename); ++ FILE *fPtr = fopen(abs_filename, "rb"); + if (!fPtr) { + return false; + } +-- +2.11.1 + diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers_1.0.65.bb b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers_1.1.70.bb index 6bb42fcd..1acb3fe2 100644 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers_1.0.65.bb +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-loader-layers_1.1.70.bb @@ -19,11 +19,13 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=99c647ca3d4f6a4b9d8628f757aad156" S = "${WORKDIR}/git" -SRCREV = "4569d5658bbba977aa35bed2f456572582debd27" +SRCREV = "1fede1a6b8d6103cc9fcacb567747aa2af167849" SRC_URI = "git://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers;branch=sdk-${PV} \ file://0001-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch \ - file://0002-install-demos.patch \ - file://0003-demos-make-shader-location-relative.patch" + file://0002-demos-CMakeLists.txt-install-demos.patch \ + file://0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch \ + file://0004-layer_validation_tests-include-math.h.patch \ + file://0005-demos-cube-use-absolute-location-for-data-files.patch" EXTRA_OECMAKE = " \ -DCUSTOM_GLSLANG_BIN_ROOT=1 \ @@ -39,12 +41,16 @@ PACKAGES =+ "${PN}-layer-libs" FILES_${PN}-layer-libs = "${libdir}/libVkLayer_*.so" FILES_SOLIBSDEV = "" -FILES_${PN} += "${libdir}/libvulkan.so" +FILES_${PN} += "${libdir}/libvulkan.so \ + ${datadir}" INSANE_SKIP_${PN} = "dev-so" do_install_append() { - cp -f ${B}/demos/*.spv ${D}${bindir} - cp -f ${B}/demos/*.ppm ${D}${bindir} mv ${D}${bindir}/cube ${D}${bindir}/cube-vulkan mv ${D}${bindir}/cubepp ${D}${bindir}/cubepp-vulkan + + install -D ${B}/demos/lunarg.ppm ${D}${datadir}/vulkan-data/lunarg.ppm + + # drop the spirv_tools_commit_id.h from installation + rm -f ${D}${includedir}/vulkan/spirv_tools_commit_id.h } diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-samples/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-samples/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch new file mode 100644 index 00000000..202e0605 --- /dev/null +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-samples/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch @@ -0,0 +1,71 @@ +From af1706e021e900f2cfb15e7bc0f9f68cdd1bd04c Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Tue, 4 Sep 2018 14:58:18 +0500 +Subject: [PATCH 3/4] CMakeLists.txt: use a fixed header for spirv_commit + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +--- + CMakeLists.txt | 3 --- + spirv_tools_commit_id.h | 29 +++++++++++++++++++++++++++++ + 2 files changed, 29 insertions(+), 3 deletions(-) + create mode 100644 spirv_tools_commit_id.h + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5cf85d487..b0ec3cbaf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -343,7 +343,6 @@ add_custom_target(generate_helper_files DEPENDS + vk_dispatch_table_helper.h + vk_extension_helper.h + vk_typemap_helper.h +- spirv_tools_commit_id.h + ) + set_target_properties(generate_helper_files PROPERTIES FOLDER ${LVL_TARGET_FOLDER}) + +@@ -358,8 +357,6 @@ run_vk_xml_generate(helper_file_generator.py vk_enum_string_helper.h) + run_vk_xml_generate(helper_file_generator.py vk_object_types.h) + run_vk_xml_generate(helper_file_generator.py vk_extension_helper.h) + run_vk_xml_generate(helper_file_generator.py vk_typemap_helper.h) +-run_external_revision_generate(${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h) +- + + + if(NOT WIN32) +diff --git a/include/vulkan/spirv_tools_commit_id.h b/include/vulkan/spirv_tools_commit_id.h +new file mode 100644 +index 000000000..ae588b33f +--- /dev/null ++++ b/include/vulkan/spirv_tools_commit_id.h +@@ -0,0 +1,29 @@ ++// *** THIS FILE IS GENERATED - DO NOT EDIT *** ++// See external_revision_generator.py for modifications ++ ++/*************************************************************************** ++ * ++ * Copyright (c) 2015-2017 The Khronos Group Inc. ++ * Copyright (c) 2015-2017 Valve Corporation ++ * Copyright (c) 2015-2017 LunarG, Inc. ++ * Copyright (c) 2015-2017 Google Inc. ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ * ++ * Author: Chris Forbes <chrisforbes@google.com> ++ * Author: Cort Stratton <cort@google.com> ++ * ++ ****************************************************************************/ ++#pragma once ++ ++#define SPIRV_TOOLS_COMMIT_ID "2651ccaec8170b3257642b3c438f50dc4f181fdd" +-- +2.11.1 + diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-samples_1.0.65.bb b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-samples_1.1.70.bb index 5611cd63..3294a5f3 100644 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-samples_1.0.65.bb +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-samples_1.1.70.bb @@ -3,7 +3,7 @@ DESCRIPTION = "This project is a collection \ of Vulkan C++ sample applications." SECTION = "graphics" HOMEPAGE = "https://github.com/LunarG/VulkanSamples" -DEPENDS = "vulkan-loader-layers glslang" +DEPENDS = "vulkan-loader-layers glslang libxkbcommon" inherit cmake python3native @@ -14,9 +14,10 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=99c647ca3d4f6a4b9d8628f757aad156" S = "${WORKDIR}/git" -SRCREV = "b2a179cda8bb688dd0eaa82c08f864c1dfc3a98a" +SRCREV = "88089096a830841ea9523dc27cab733963479346" SRC_URI = "git://github.com/LunarG/VulkanSamples;branch=sdk-${PV} \ - file://0002-install-samples.patch" + file://0002-install-samples.patch \ + file://0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch" EXTRA_OECMAKE = " \ -DBUILD_LOADER=0 \ @@ -27,4 +28,5 @@ EXTRA_OECMAKE = " \ -DBUILD_WSI_MIR_SUPPORT=0 \ -DBUILD_WSI_WAYLAND_SUPPORT=0 \ -DINSTALL_LVL_FILES=0 \ + -DBUILD_ICD=0 \ " diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0001-CMakeLists-add-include-paths-so-Xlib-and-XCB-are-fou.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0001-CMakeLists-add-include-paths-so-Xlib-and-XCB-are-fou.patch new file mode 100644 index 00000000..ecac1262 --- /dev/null +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0001-CMakeLists-add-include-paths-so-Xlib-and-XCB-are-fou.patch @@ -0,0 +1,133 @@ +From a6dc74817a8670155d06e6aec722e4219e789414 Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Tue, 4 Sep 2018 16:54:17 +0500 +Subject: [PATCH 1/2] CMakeLists: add include paths so Xlib and XCB are found + as needed + +All the targets including vk_platform.h or directly including +X11/Xlib.h or xcb.h require to know the directory for the +installed header. Add the directory to these so the requirements +are filled in properly. + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +--- + CMakeLists.txt | 1 + + layer_factory/CMakeLists.txt | 1 + + layersvt/CMakeLists.txt | 1 + + vktrace/vktrace_common/CMakeLists.txt | 1 + + vktrace/vktrace_layer/CMakeLists.txt | 1 + + vktrace/vktrace_replay/CMakeLists.txt | 1 + + vktrace/vktrace_trace/CMakeLists.txt | 1 + + vktrace/vktrace_viewer/CMakeLists.txt | 5 +++++ + 8 files changed, 12 insertions(+) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index e19817efa..5298766c9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -57,6 +57,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + + if (BUILD_WSI_XLIB_SUPPORT) + find_package(X11 REQUIRED) ++ find_path(X11_XLIB_INCLUDE_DIR X11/Xlib.h DOC "Path to X11/Xlib.h") + endif() + + if (BUILD_WSI_WAYLAND_SUPPORT) +diff --git a/layer_factory/CMakeLists.txt b/layer_factory/CMakeLists.txt +index e4355d8b2..88f2d8369 100644 +--- a/layer_factory/CMakeLists.txt ++++ b/layer_factory/CMakeLists.txt +@@ -11,6 +11,7 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + + if (BUILD_WSI_XLIB_SUPPORT) + add_definitions(-DVK_USE_PLATFORM_XLIB_KHR -DVK_USE_PLATFORM_XLIB_KHX -DVK_USE_PLATFORM_XLIB_XRANDR_EXT) ++ include_directories(${X11_XLIB_INCLUDE_DIR}) + endif() + + if (BUILD_WSI_WAYLAND_SUPPORT) +diff --git a/layersvt/CMakeLists.txt b/layersvt/CMakeLists.txt +index d47f3c65a..9b780ce4d 100644 +--- a/layersvt/CMakeLists.txt ++++ b/layersvt/CMakeLists.txt +@@ -136,6 +136,7 @@ include_directories( + ${CMAKE_BINARY_DIR}/${V_LVL_RELATIVE_LOCATION} + ${PROJECT_SOURCE_DIR}/../glslang/SPIRV + ${JSONCPP_INCLUDE_DIR} ++ ${X11_XLIB_INCLUDE_DIR} + ) + + if (WIN32) +diff --git a/vktrace/vktrace_common/CMakeLists.txt b/vktrace/vktrace_common/CMakeLists.txt +index c9ad2ad8e..4c639c6d7 100644 +--- a/vktrace/vktrace_common/CMakeLists.txt ++++ b/vktrace/vktrace_common/CMakeLists.txt +@@ -9,6 +9,7 @@ include_directories( + ${SRC_DIR}/vktrace_common + ${SRC_DIR}/thirdparty + ${CMAKE_BINARY_DIR}/${V_LVL_RELATIVE_LOCATION} ++ ${X11_XLIB_INCLUDE_DIR} + ) + + if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") +diff --git a/vktrace/vktrace_layer/CMakeLists.txt b/vktrace/vktrace_layer/CMakeLists.txt +index 5cf48b34c..ea419a7ee 100644 +--- a/vktrace/vktrace_layer/CMakeLists.txt ++++ b/vktrace/vktrace_layer/CMakeLists.txt +@@ -78,6 +78,7 @@ include_directories( + ${CMAKE_BINARY_DIR}/${V_LVL_RELATIVE_LOCATION} + ${V_LVL_ROOT_DIR}/include + ${V_LVL_ROOT_DIR}/include/vulkan ++ ${X11_XLIB_INCLUDE_DIR} + ) + + # copy/link layer json file into build/layersvt directory +diff --git a/vktrace/vktrace_replay/CMakeLists.txt b/vktrace/vktrace_replay/CMakeLists.txt +index 191af81a8..0912c7f1f 100644 +--- a/vktrace/vktrace_replay/CMakeLists.txt ++++ b/vktrace/vktrace_replay/CMakeLists.txt +@@ -70,6 +70,7 @@ include_directories( + ${VKTRACE_VULKAN_INCLUDE_DIR} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/${V_LVL_RELATIVE_LOCATION} ++ ${X11_XLIB_INCLUDE_DIR} + ) + + +diff --git a/vktrace/vktrace_trace/CMakeLists.txt b/vktrace/vktrace_trace/CMakeLists.txt +index b1390d3fe..0dc0f5f8b 100644 +--- a/vktrace/vktrace_trace/CMakeLists.txt ++++ b/vktrace/vktrace_trace/CMakeLists.txt +@@ -24,6 +24,7 @@ include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/${V_LVL_RELATIVE_LOCATION} + ${GENERATED_FILES_DIR} ++ ${X11_XLIB_INCLUDE_DIR} + ) + + if (NOT WIN32) +diff --git a/vktrace/vktrace_viewer/CMakeLists.txt b/vktrace/vktrace_viewer/CMakeLists.txt +index 316e9bdba..171be773e 100644 +--- a/vktrace/vktrace_viewer/CMakeLists.txt ++++ b/vktrace/vktrace_viewer/CMakeLists.txt +@@ -50,6 +50,9 @@ else() + find_package(Threads REQUIRED) + find_package(X11 REQUIRED) + ++find_path(XCB_INCLUDE_DIR xcb/xcb.h DOC "Path to xcb/xcb.h") ++find_path(X11_XLIB_INCLUDE_DIR X11/Xlib.h DOC "Path to X11/Xlib.h") ++ + require_pthreads() + + include_directories( +@@ -61,6 +64,8 @@ include_directories( + ${CMAKE_BINARY_DIR}/${V_LVL_RELATIVE_LOCATION} + ${CMAKE_BINARY_DIR} + ${Qt5Widgets_INCLUDE_DIRS} ++ ${X11_XLIB_INCLUDE_DIR} ++ ${XCB_INCLUDE_DIR} + ) + + set(SRC_LIST +-- +2.11.1 + diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0002-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0002-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch new file mode 100644 index 00000000..8a5efc12 --- /dev/null +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0002-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch @@ -0,0 +1,41 @@ +From 87edcb996897825ef5dbbf6a614e1f07cc5edb5c Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Tue, 4 Sep 2018 17:10:08 +0500 +Subject: [PATCH 2/2] layersvt: drop device_sim as we don't have jsoncpp for + now + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +--- + layersvt/CMakeLists.txt | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/layersvt/CMakeLists.txt b/layersvt/CMakeLists.txt +index 9b780ce4d..42fd3c471 100644 +--- a/layersvt/CMakeLists.txt ++++ b/layersvt/CMakeLists.txt +@@ -46,7 +46,6 @@ set(LAYER_JSON_FILES + VkLayer_api_dump + VkLayer_monitor + VkLayer_screenshot +- VkLayer_device_simulation + ) + + set(VK_LAYER_RPATH /usr/lib/x86_64-linux-gnu/vulkan/layer:/usr/lib/i386-linux-gnu/vulkan/layer) +@@ -135,7 +134,6 @@ include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/${V_LVL_RELATIVE_LOCATION} + ${PROJECT_SOURCE_DIR}/../glslang/SPIRV +- ${JSONCPP_INCLUDE_DIR} + ${X11_XLIB_INCLUDE_DIR} + ) + +@@ -168,6 +166,5 @@ run_vk_xml_generate(api_dump_generator.py api_dump_html.h) + + add_vk_layer(monitor monitor.cpp ${V_LVL_ROOT_DIR}/layers/vk_layer_table.cpp) + add_vk_layer(screenshot screenshot.cpp screenshot_parsing.h screenshot_parsing.cpp ${V_LVL_ROOT_DIR}/layers/vk_layer_table.cpp) +-add_vk_layer(device_simulation device_simulation.cpp ${V_LVL_ROOT_DIR}/layers/vk_layer_table.cpp ${JSONCPP_SOURCE_DIR}/jsoncpp.cpp) + add_vk_layer(api_dump api_dump.cpp ${V_LVL_ROOT_DIR}/layers/vk_layer_table.cpp) + +-- +2.11.1 + diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch new file mode 100644 index 00000000..48a08bf4 --- /dev/null +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch @@ -0,0 +1,71 @@ +From af1706e021e900f2cfb15e7bc0f9f68cdd1bd04c Mon Sep 17 00:00:00 2001 +From: Awais Belal <awais_belal@mentor.com> +Date: Tue, 4 Sep 2018 14:58:18 +0500 +Subject: [PATCH 3/4] CMakeLists.txt: use a fixed header for spirv_commit + +Signed-off-by: Awais Belal <awais_belal@mentor.com> +--- + CMakeLists.txt | 3 --- + spirv_tools_commit_id.h | 29 +++++++++++++++++++++++++++++ + 2 files changed, 29 insertions(+), 3 deletions(-) + create mode 100644 spirv_tools_commit_id.h + +diff --git a/submodules/Vulkan-LoaderAndValidationLayers/CMakeLists.txt b/submodules/Vulkan-LoaderAndValidationLayers/CMakeLists.txt +index 5cf85d487..b0ec3cbaf 100644 +--- a/submodules/Vulkan-LoaderAndValidationLayers/CMakeLists.txt ++++ b/submodules/Vulkan-LoaderAndValidationLayers/CMakeLists.txt +@@ -343,7 +343,6 @@ add_custom_target(generate_helper_files DEPENDS + vk_dispatch_table_helper.h + vk_extension_helper.h + vk_typemap_helper.h +- spirv_tools_commit_id.h + ) + set_target_properties(generate_helper_files PROPERTIES FOLDER ${LVL_TARGET_FOLDER}) + +@@ -358,8 +357,6 @@ run_vk_xml_generate(helper_file_generator.py vk_enum_string_helper.h) + run_vk_xml_generate(helper_file_generator.py vk_object_types.h) + run_vk_xml_generate(helper_file_generator.py vk_extension_helper.h) + run_vk_xml_generate(helper_file_generator.py vk_typemap_helper.h) +-run_external_revision_generate(${EXTERNAL_SOURCE_ROOT}/glslang/External/spirv-tools SPIRV_TOOLS_COMMIT_ID spirv_tools_commit_id.h) +- + + + if(NOT WIN32) +diff --git a/submodules/Vulkan-LoaderAndValidationLayers/include/vulkan/spirv_tools_commit_id.h b/submodules/Vulkan-LoaderAndValidationLayers/include/vulkan/spirv_tools_commit_id.h +new file mode 100644 +index 000000000..ae588b33f +--- /dev/null ++++ b/submodules/Vulkan-LoaderAndValidationLayers/include/vulkan/spirv_tools_commit_id.h +@@ -0,0 +1,29 @@ ++// *** THIS FILE IS GENERATED - DO NOT EDIT *** ++// See external_revision_generator.py for modifications ++ ++/*************************************************************************** ++ * ++ * Copyright (c) 2015-2017 The Khronos Group Inc. ++ * Copyright (c) 2015-2017 Valve Corporation ++ * Copyright (c) 2015-2017 LunarG, Inc. ++ * Copyright (c) 2015-2017 Google Inc. ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ * ++ * Author: Chris Forbes <chrisforbes@google.com> ++ * Author: Cort Stratton <cort@google.com> ++ * ++ ****************************************************************************/ ++#pragma once ++ ++#define SPIRV_TOOLS_COMMIT_ID "2651ccaec8170b3257642b3c438f50dc4f181fdd" +-- +2.11.1 + diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0004-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0004-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch deleted file mode 100644 index 7f68c793..00000000 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0004-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 00241b5774d0b730958b03c588e4ff56ba38774f Mon Sep 17 00:00:00 2001 -From: Awais Belal <awais_belal@mentor.com> -Date: Thu, 7 Dec 2017 16:54:56 +0500 -Subject: [PATCH] CMakeLists: add include path so Xlib.h is found as needed - -All the targets including vk_platform.h or directly including -X11/Xlib.h require to know the directory for the installed -header. Add the directory to these so the requirements are -filled in properly. - -Signed-off-by: Awais Belal <awais_belal@mentor.com> ---- - CMakeLists.txt | 1 + - layers/CMakeLists.txt | 1 + - layersvt/CMakeLists.txt | 1 + - vktrace/vktrace_common/CMakeLists.txt | 1 + - vktrace/vktrace_layer/CMakeLists.txt | 1 + - vktrace/vktrace_replay/CMakeLists.txt | 1 + - vktrace/vktrace_trace/CMakeLists.txt | 1 + - 7 files changed, 7 insertions(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1b3e8770a..ddb8aac18 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -42,6 +42,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - - if (BUILD_WSI_XLIB_SUPPORT) - find_package(X11 REQUIRED) -+ find_path(X11_XLIB_INCLUDE_DIR X11/Xlib.h DOC "Path to X11/Xlib.h") - endif() - - if (BUILD_WSI_WAYLAND_SUPPORT) -diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt -index 9567d7146..998482052 100644 ---- a/layers/CMakeLists.txt -+++ b/layers/CMakeLists.txt -@@ -142,6 +142,7 @@ include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_PROJECT_BINARY_DIR} - ${CMAKE_BINARY_DIR} -+ ${X11_XLIB_INCLUDE_DIR} - ) - - if (WIN32) -diff --git a/layersvt/CMakeLists.txt b/layersvt/CMakeLists.txt -index 3c6055050..437057e8d 100644 ---- a/layersvt/CMakeLists.txt -+++ b/layersvt/CMakeLists.txt -@@ -132,6 +132,7 @@ include_directories( - ${CMAKE_BINARY_DIR} - ${PROJECT_SOURCE_DIR}/../glslang/SPIRV - ${JSONCPP_INCLUDE_DIR} -+ ${X11_XLIB_INCLUDE_DIR} - ) - - if (WIN32) -diff --git a/vktrace/vktrace_common/CMakeLists.txt b/vktrace/vktrace_common/CMakeLists.txt -index b7d6e33eb..c223912a9 100644 ---- a/vktrace/vktrace_common/CMakeLists.txt -+++ b/vktrace/vktrace_common/CMakeLists.txt -@@ -7,6 +7,7 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/../) - include_directories( - ${SRC_DIR}/vktrace_common - ${SRC_DIR}/thirdparty -+ ${X11_XLIB_INCLUDE_DIR} - ) - - if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") -diff --git a/vktrace/vktrace_layer/CMakeLists.txt b/vktrace/vktrace_layer/CMakeLists.txt -index 4a25eec87..182a406b7 100644 ---- a/vktrace/vktrace_layer/CMakeLists.txt -+++ b/vktrace/vktrace_layer/CMakeLists.txt -@@ -75,6 +75,7 @@ include_directories( - ${VKTRACE_VULKAN_INCLUDE_DIR} - ${CMAKE_BINARY_DIR} - ${GENERATED_FILES_DIR} -+ ${X11_XLIB_INCLUDE_DIR} - ) - - # copy/link layer json file into build/layersvt directory -diff --git a/vktrace/vktrace_replay/CMakeLists.txt b/vktrace/vktrace_replay/CMakeLists.txt -index 946d49691..adbf10844 100644 ---- a/vktrace/vktrace_replay/CMakeLists.txt -+++ b/vktrace/vktrace_replay/CMakeLists.txt -@@ -69,6 +69,7 @@ include_directories( - ${GENERATED_FILES_DIR} - ${VKTRACE_VULKAN_INCLUDE_DIR} - ${CMAKE_BINARY_DIR} -+ ${X11_XLIB_INCLUDE_DIR} - ) - - -diff --git a/vktrace/vktrace_trace/CMakeLists.txt b/vktrace/vktrace_trace/CMakeLists.txt -index 5bffb4d9f..d2707ecd4 100644 ---- a/vktrace/vktrace_trace/CMakeLists.txt -+++ b/vktrace/vktrace_trace/CMakeLists.txt -@@ -23,6 +23,7 @@ include_directories( - ${VULKAN_TOOLS_SOURCE_DIR}/layersvt - ${CMAKE_BINARY_DIR} - ${GENERATED_FILES_DIR} -+ ${X11_XLIB_INCLUDE_DIR} - ) - - if (NOT WIN32) --- -2.11.1 - diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0009-CMakeLists-add-include-paths-for-xcb-and-Xlib.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0009-CMakeLists-add-include-paths-for-xcb-and-Xlib.patch deleted file mode 100644 index b1b86573..00000000 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0009-CMakeLists-add-include-paths-for-xcb-and-Xlib.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 801aa0aad1f62fb41d8f28d3f2e0bf836d9aeec7 Mon Sep 17 00:00:00 2001 -From: Ahsan Hussain <ahsan_hussain@mentor.com> -Date: Mon, 18 Sep 2017 14:16:13 +0500 -Subject: [PATCH 1/1] CMakeLists: add include paths for xcb and Xlib - ---- - vktrace/vktrace_viewer/CMakeLists.txt | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/vktrace/vktrace_viewer/CMakeLists.txt b/vktrace/vktrace_viewer/CMakeLists.txt -index 7127c7f..3a203ad 100644 ---- a/vktrace/vktrace_viewer/CMakeLists.txt -+++ b/vktrace/vktrace_viewer/CMakeLists.txt -@@ -41,6 +41,9 @@ endif() - - find_package(Qt5 COMPONENTS Widgets Gui Core Svg QUIET) - -+find_path(XCB_INCLUDE_DIR xcb/xcb.h DOC "Path to xcb/xcb.h") -+find_path(X11_XLIB_INCLUDE_DIR X11/Xlib.h DOC "Path to X11/Xlib.h") -+ - if(NOT Qt5_FOUND) - # After Qt5.6 is installed, you may need to add the following to the cmake command line: - # -DCMAKE_PREFIX_PATH=C:\\Qt\\5.6\\msvc2015_64\\ -@@ -60,6 +63,8 @@ include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_BINARY_DIR} - ${Qt5Widgets_INCLUDE_DIRS} -+ ${X11_XLIB_INCLUDE_DIR} -+ ${XCB_INCLUDE_DIR} - ) - - set(SRC_LIST --- -2.11.1 - diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0010-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0010-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch deleted file mode 100644 index c1b90d1f..00000000 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools/0010-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 6d89b0953f8ffe2b81ecdf2e512afe59a86ab609 Mon Sep 17 00:00:00 2001 -From: Awais Belal <awais_belal@mentor.com> -Date: Wed, 6 Dec 2017 19:17:58 +0500 -Subject: [PATCH] layersvt: drop device_sim as we don't have jsoncpp for now - -Signed-off-by: Awais Belal <awais_belal@mentor.com> ---- - layersvt/CMakeLists.txt | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/layersvt/CMakeLists.txt b/layersvt/CMakeLists.txt -index 437057e8d..8ac4d4d13 100644 ---- a/layersvt/CMakeLists.txt -+++ b/layersvt/CMakeLists.txt -@@ -45,7 +45,6 @@ set(LAYER_JSON_FILES - VkLayer_api_dump - VkLayer_monitor - VkLayer_screenshot -- VkLayer_device_simulation - ) - - set(VK_LAYER_RPATH /usr/lib/x86_64-linux-gnu/vulkan/layer:/usr/lib/i386-linux-gnu/vulkan/layer) -@@ -131,7 +130,6 @@ include_directories( - ${CMAKE_CURRENT_BINARY_DIR} - ${CMAKE_BINARY_DIR} - ${PROJECT_SOURCE_DIR}/../glslang/SPIRV -- ${JSONCPP_INCLUDE_DIR} - ${X11_XLIB_INCLUDE_DIR} - ) - -@@ -176,7 +174,6 @@ add_dependencies(VkLayer_utilsvt generate_helper_files) - # VulkanTools layers - add_vk_layer(monitor monitor.cpp ../layers/vk_layer_table.cpp) - add_vk_layer(screenshot screenshot.cpp screenshot_parsing.h screenshot_parsing.cpp ../layers/vk_layer_table.cpp) --add_vk_layer(device_simulation device_simulation.cpp ../layers/vk_layer_table.cpp ${JSONCPP_SOURCE_DIR}/jsoncpp.cpp) - # generated - add_vk_layer(api_dump api_dump.cpp ../layers/vk_layer_table.cpp) - --- -2.11.1 - diff --git a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools_1.0.65.bb b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools_1.1.70.bb index d26d7862..88368c16 100644 --- a/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools_1.0.65.bb +++ b/meta-v1000/recipes-graphics/lunarg-sdk/vulkan-tools_1.1.70.bb @@ -17,13 +17,15 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=99c647ca3d4f6a4b9d8628f757aad156" S = "${WORKDIR}/git" -SRCREV = "2e2aca87835dbbeeee567cac99c917cd8171f9a1" +SRCREV = "b94505e03c1169e745bc9a67697a8f6943c18c8f" +SRCREV_loader = "1fede1a6b8d6103cc9fcacb567747aa2af167849" SRC_URI = "git://github.com/LunarG/VulkanTools;branch=sdk-${PV} \ + git://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers;branch=sdk-${PV};name=loader;destsuffix=${S}/submodules/Vulkan-LoaderAndValidationLayers \ file://0002-vktrace-do-not-link-to-internal-loader.patch \ - file://0004-CMakeLists-add-include-path-so-Xlib.h-is-found-as-ne.patch \ file://0005-vktrace_layer-force-linker-flags.patch \ - file://0009-CMakeLists-add-include-paths-for-xcb-and-Xlib.patch \ - file://0010-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch \ + file://0001-CMakeLists-add-include-paths-so-Xlib-and-XCB-are-fou.patch \ + file://0002-layersvt-drop-device_sim-as-we-don-t-have-jsoncpp-fo.patch \ + file://0003-CMakeLists.txt-use-a-fixed-header-for-spirv_commit.patch \ " EXTRA_OECMAKE = " \ |