diff --git a/.gitignore b/.gitignore index 1221df9..1054d07 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,26 @@ /shaderc-7a23a01.tar.gz /shaderc-7d8582b.tar.gz +/shaderc-34c412f.tar.gz +/shaderc-f76bb2f.tar.gz +/shaderc-7c2aa93.tar.gz +/shaderc-4162bb1.tar.gz +/shaderc-1fce597.tar.gz +/shaderc-0dbd899.tar.gz +/shaderc-24275a1.tar.gz +/shaderc-bdd134d.tar.gz +/shaderc-adca18d.tar.gz +/shaderc-1701a27.tar.gz +/shaderc-551f106.tar.gz +/shaderc-d0b0222.tar.gz +/shaderc-2023.3.tar.gz +/shaderc-2023.7.tar.gz +/shaderc-2023.8.tar.gz +/shaderc-2024.0.tar.gz +/3ac03b8ad85a8e328a6182cddee8d05810bd5a2c.tar.gz +/ff84893dd52d28f0b1737d2635733d952013bd9c.tar.gz +/caa54d9779d5605aca4e1a0c0c962a3d8f4aeb31.tar.gz +/3362e24c42ab5bf7ad32c0fec64b0a0ddeb2fda1.tar.gz +/8c2e602ce440b7739c95ff3d69cecb1adf6becda.tar.gz +/73743588fe9c39f2f1c780a087d94afac691a189.tar.gz +/301b4ede53d59b68bf55f95bb26412d9233c8187.tar.gz +/d5f08ae5c5a9a45165578445cbd0f9adf0223448.tar.gz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..1ce0fb0 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,22 @@ +# packit config for shaderc +# Build Stage 4 - depends on glslang + +jobs: + - job: koji_build + trigger: commit | koji_build + allowed_committers: [all_committers] + allowed_pr_authors: ['asrivats','jexposit'] + dist_git_branches: + - fedora-all + sidetag_group: vulkan-sdk-releases + dependencies: + - glslang + + - job: bodhi_update + trigger: koji_build + dist_git_branches: + - fedora-all + sidetag_group: vulkan-sdk-releases + dependencies: + - vulkan-validation-layers + - vulkan-tools diff --git a/0001-Drop-third-party-code-in-CMakeLists.txt.patch b/0001-Drop-third-party-code-in-CMakeLists.txt.patch index 8425d34..312864e 100644 --- a/0001-Drop-third-party-code-in-CMakeLists.txt.patch +++ b/0001-Drop-third-party-code-in-CMakeLists.txt.patch @@ -1,21 +1,7 @@ -From f3e0470ccf96a48f6e5701aa64aa831d51769d8e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= -Date: Sun, 30 Sep 2018 20:53:08 +0200 -Subject: [PATCH] Drop third party code in CMakeLists.txt -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Robert-André Mauchin ---- - CMakeLists.txt | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b9bd0df..bd2c9f7 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -52,15 +52,9 @@ endif(MSVC) +diff -up shaderc-24275a11d81a6b33ef345878f8a4ef929c95a116/CMakeLists.txt.orig shaderc-24275a11d81a6b33ef345878f8a4ef929c95a116/CMakeLists.txt +--- shaderc-24275a11d81a6b33ef345878f8a4ef929c95a116/CMakeLists.txt.orig 2021-03-05 13:50:35.469018657 +0100 ++++ shaderc-24275a11d81a6b33ef345878f8a4ef929c95a116/CMakeLists.txt 2021-03-05 13:52:02.679524176 +0100 +@@ -112,20 +112,10 @@ endif(MSVC) # Configure subdirectories. # We depend on these for later projects, so they should come first. @@ -24,13 +10,15 @@ index b9bd0df..bd2c9f7 100644 add_subdirectory(libshaderc_util) add_subdirectory(libshaderc) add_subdirectory(glslc) - add_subdirectory(examples) - +-if(${SHADERC_ENABLE_EXAMPLES}) +- add_subdirectory(examples) +-endif() +- -add_custom_target(build-version -- ${PYTHON_EXE} +- ${Python_EXECUTABLE} - ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py -- ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} +- ${shaderc_SOURCE_DIR} ${spirv-tools_SOURCE_DIR} ${glslang_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/build-version.inc - COMMENT "Update build-version.inc in the Shaderc build directory (if necessary).") --- -2.19.0 - + + function(define_pkg_config_file NAME LIBS) + add_custom_target(${NAME}-pkg-config ALL diff --git a/0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch b/0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch deleted file mode 100644 index ad7de1f..0000000 --- a/0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 21c8be385b3fab5edcb934a6d99f69fd389c4e67 Mon Sep 17 00:00:00 2001 -From: Niklas Haas -Date: Tue, 29 May 2018 07:34:00 +0200 -Subject: [PATCH] Fix the link order of libglslang and libHLSL - -libglslang depends on libHLSL, so the latter needs to be specified last. -This fixes an issue when trying to build shaderc against system-wide -versions of libglslang/libHLSL, rather than the in-tree versions from -third_party. - -Additionally, libshaderc_util also depends on SPIRV-Tools ---- - glslc/CMakeLists.txt | 2 +- - libshaderc_util/CMakeLists.txt | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/glslc/CMakeLists.txt b/glslc/CMakeLists.txt -index acf6fb0..0f5d888 100644 ---- a/glslc/CMakeLists.txt -+++ b/glslc/CMakeLists.txt -@@ -18,7 +18,7 @@ add_library(glslc STATIC - shaderc_default_compile_options(glslc) - target_include_directories(glslc PUBLIC ${glslang_SOURCE_DIR}) - target_link_libraries(glslc PRIVATE glslang OSDependent OGLCompiler -- HLSL glslang SPIRV ${CMAKE_THREAD_LIBS_INIT}) -+ glslang SPIRV HLSL ${CMAKE_THREAD_LIBS_INIT}) - target_link_libraries(glslc PRIVATE shaderc_util shaderc) - - add_executable(glslc_exe src/main.cc) -diff --git a/libshaderc_util/CMakeLists.txt b/libshaderc_util/CMakeLists.txt -index 873540a..6d0c465 100644 ---- a/libshaderc_util/CMakeLists.txt -+++ b/libshaderc_util/CMakeLists.txt -@@ -34,8 +34,8 @@ endif(SHADERC_ENABLE_INSTALL) - - find_package(Threads) - target_link_libraries(shaderc_util PRIVATE -- glslang OSDependent OGLCompiler HLSL glslang SPIRV -- SPIRV-Tools-opt ${CMAKE_THREAD_LIBS_INIT}) -+ glslang OSDependent OGLCompiler glslang HLSL SPIRV -+ SPIRV-Tools-opt SPIRV-Tools ${CMAKE_THREAD_LIBS_INIT}) - - shaderc_add_tests( - TEST_PREFIX shaderc_util diff --git a/0001-Revert-Add-support-for-SPV_NV_mesh_shader.patch b/0001-Revert-Add-support-for-SPV_NV_mesh_shader.patch deleted file mode 100644 index 083858b..0000000 --- a/0001-Revert-Add-support-for-SPV_NV_mesh_shader.patch +++ /dev/null @@ -1,521 +0,0 @@ -From 7867887019541322b08cc31257c447d20e79a40c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= -Date: Wed, 3 Oct 2018 16:37:42 +0200 -Subject: [PATCH] Revert "Add-support-for-SPV_NV_mesh_shader" - -This reverts commit e8ffa069fa40f79824cb1499eaa78cb56af84d0a. ---- - CMakeLists.txt | 8 -- - glslc/src/shader_stage.cc | 23 +----- - glslc/src/stage_test.cc | 25 ------ - libshaderc/include/shaderc/shaderc.h | 27 ------- - libshaderc/src/common_shaders_for_test.h | 38 ---------- - libshaderc/src/shaderc.cc | 57 -------------- - libshaderc/src/shaderc_private.h | 18 ----- - libshaderc/src/shaderc_private_test.cc | 18 ----- - libshaderc/src/shaderc_test.cc | 76 ------------------- - .../include/libshaderc_util/compiler.h | 34 +-------- - libshaderc_util/src/resources.cc | 10 --- - 11 files changed, 5 insertions(+), 329 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b982eab..422d9c2 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -19,19 +19,11 @@ else() - message(STATUS "Configuring Shaderc to avoid building tests.") - endif() - --set (CMAKE_CXX_STANDARD 11) -- --option(SHADERC_ENABLE_NV_EXTENSIONS "Enables support of Nvidia-specific extensions" ON) - - include(GNUInstallDirs) - include(cmake/setup_build.cmake) - include(cmake/utils.cmake) - -- --if(SHADERC_ENABLE_NV_EXTENSIONS) -- add_definitions(-DNV_EXTENSIONS) --endif(SHADERC_ENABLE_NV_EXTENSIONS) -- - add_custom_target(check-copyright ALL - ${PYTHON_EXE} ${CMAKE_CURRENT_SOURCE_DIR}/utils/add_copyright.py - --check -diff --git a/glslc/src/shader_stage.cc b/glslc/src/shader_stage.cc -index 3e4716d..142195a 100644 ---- a/glslc/src/shader_stage.cc -+++ b/glslc/src/shader_stage.cc -@@ -43,18 +43,7 @@ shaderc_shader_kind MapStageNameToForcedKind(const string_piece& stage_name) { - {"geometry", shaderc_glsl_geometry_shader}, - {"geom", shaderc_glsl_geometry_shader}, - {"compute", shaderc_glsl_compute_shader}, -- {"comp", shaderc_glsl_compute_shader}, --#ifdef NV_EXTENSIONS -- {"rgen", shaderc_glsl_raygen_shader }, -- {"rahit", shaderc_glsl_anyhit_shader }, -- {"rchit", shaderc_glsl_closesthit_shader }, -- {"rmiss", shaderc_glsl_miss_shader }, -- {"rint", shaderc_glsl_intersection_shader }, -- {"rcall", shaderc_glsl_callable_shader }, -- {"task", shaderc_glsl_task_shader }, -- {"mesh", shaderc_glsl_mesh_shader }, --#endif -- }; -+ {"comp", shaderc_glsl_compute_shader}}; - for (const auto& entry : string_to_kind) { - if (stage_name == entry.id) return entry.stage; - } -@@ -79,16 +68,6 @@ shaderc_shader_kind DeduceDefaultShaderKindFromFileName( - {"geom", shaderc_glsl_default_geometry_shader}, - {"comp", shaderc_glsl_default_compute_shader}, - {"spvasm", shaderc_spirv_assembly}, --#ifdef NV_EXTENSIONS -- {"rgen", shaderc_glsl_default_raygen_shader }, -- {"rahit", shaderc_glsl_default_anyhit_shader }, -- {"rchit", shaderc_glsl_default_closesthit_shader }, -- {"rmiss", shaderc_glsl_default_miss_shader }, -- {"rint", shaderc_glsl_default_intersection_shader }, -- {"rcall", shaderc_glsl_default_callable_shader }, -- {"task", shaderc_glsl_default_task_shader }, -- {"mesh", shaderc_glsl_default_mesh_shader }, --#endif - }; - - const string_piece extension = glslc::GetFileExtension(file_name); -diff --git a/glslc/src/stage_test.cc b/glslc/src/stage_test.cc -index 80eef92..2ee0271 100644 ---- a/glslc/src/stage_test.cc -+++ b/glslc/src/stage_test.cc -@@ -49,31 +49,6 @@ TEST(DeduceDefaultShaderKindFromFileName, ValidStage) { - EXPECT_EQ(shaderc_glsl_default_compute_shader, - glslc::DeduceDefaultShaderKindFromFileName("a.comp")); - --#ifdef NV_EXTENSIONS -- EXPECT_EQ(shaderc_glsl_default_raygen_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.rgen")); -- -- EXPECT_EQ(shaderc_glsl_default_anyhit_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.rahit")); -- -- EXPECT_EQ(shaderc_glsl_default_closesthit_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.rchit")); -- -- EXPECT_EQ(shaderc_glsl_default_miss_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.rmiss")); -- -- EXPECT_EQ(shaderc_glsl_default_intersection_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.rint")); -- -- EXPECT_EQ(shaderc_glsl_default_callable_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.rcall")); -- -- EXPECT_EQ(shaderc_glsl_default_task_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.task")); -- -- EXPECT_EQ(shaderc_glsl_default_mesh_shader, -- glslc::DeduceDefaultShaderKindFromFileName("a.mesh")); --#endif - } - - TEST(DeduceDefaultShaderKindFromFileName, InvalidStage) { -diff --git a/libshaderc/include/shaderc/shaderc.h b/libshaderc/include/shaderc/shaderc.h -index 6addebf..093bb12 100644 ---- a/libshaderc/include/shaderc/shaderc.h -+++ b/libshaderc/include/shaderc/shaderc.h -@@ -64,7 +64,6 @@ typedef enum { - shaderc_glsl_geometry_shader = shaderc_geometry_shader, - shaderc_glsl_tess_control_shader = shaderc_tess_control_shader, - shaderc_glsl_tess_evaluation_shader = shaderc_tess_evaluation_shader, -- - // Deduce the shader kind from #pragma annotation in the source code. Compiler - // will emit error if #pragma annotation is not found. - shaderc_glsl_infer_from_source, -@@ -78,32 +77,6 @@ typedef enum { - shaderc_glsl_default_tess_control_shader, - shaderc_glsl_default_tess_evaluation_shader, - shaderc_spirv_assembly, --#ifdef NV_EXTENSIONS -- shaderc_raygen_shader, -- shaderc_anyhit_shader, -- shaderc_closesthit_shader, -- shaderc_miss_shader, -- shaderc_intersection_shader, -- shaderc_callable_shader, -- shaderc_glsl_raygen_shader = shaderc_raygen_shader, -- shaderc_glsl_anyhit_shader = shaderc_anyhit_shader, -- shaderc_glsl_closesthit_shader = shaderc_closesthit_shader, -- shaderc_glsl_miss_shader = shaderc_miss_shader, -- shaderc_glsl_intersection_shader = shaderc_intersection_shader, -- shaderc_glsl_callable_shader = shaderc_callable_shader, -- shaderc_glsl_default_raygen_shader, -- shaderc_glsl_default_anyhit_shader, -- shaderc_glsl_default_closesthit_shader, -- shaderc_glsl_default_miss_shader, -- shaderc_glsl_default_intersection_shader, -- shaderc_glsl_default_callable_shader, -- shaderc_task_shader, -- shaderc_mesh_shader, -- shaderc_glsl_task_shader = shaderc_task_shader, -- shaderc_glsl_mesh_shader = shaderc_mesh_shader, -- shaderc_glsl_default_task_shader, -- shaderc_glsl_default_mesh_shader, --#endif - } shaderc_shader_kind; - - typedef enum { -diff --git a/libshaderc/src/common_shaders_for_test.h b/libshaderc/src/common_shaders_for_test.h -index e1e52be..d4e15c1 100644 ---- a/libshaderc/src/common_shaders_for_test.h -+++ b/libshaderc/src/common_shaders_for_test.h -@@ -259,44 +259,6 @@ const char kGlslShaderComputeSubgroupBarrier[] = - #extension GL_KHR_shader_subgroup_basic : enable - void main() { subgroupBarrier(); })"; - --#ifdef NV_EXTENSIONS --// A GLSL task shader using a regular barrier. --const char kGlslShaderTaskBarrier[] = -- R"(#version 450 -- #extension GL_NV_mesh_shader : enable -- layout(local_size_x = 32) in; -- void main() { barrier(); })"; -- --// A GLSL task shader using the Subgroups feature. --const char kGlslShaderTaskSubgroupBarrier[] = -- R"(#version 450 -- #extension GL_NV_mesh_shader : enable -- #extension GL_KHR_shader_subgroup_basic : enable -- layout(local_size_x = 32) in; -- void main() { subgroupBarrier(); })"; -- --// A GLSL mesh shader using a regular barrier. --const char kGlslShaderMeshBarrier[] = -- R"(#version 450 -- #extension GL_NV_mesh_shader : enable -- layout(local_size_x = 32) in; -- layout(max_vertices=81) out; -- layout(max_primitives=32) out; -- layout(triangles) out; -- void main() { barrier(); })"; -- --// A GLSL mesh shader using the Subgroups feature. --const char kGlslShaderMeshSubgroupBarrier[] = -- R"(#version 450 -- #extension GL_NV_mesh_shader : enable -- #extension GL_KHR_shader_subgroup_basic : enable -- layout(local_size_x = 32) in; -- layout(max_vertices=81) out; -- layout(max_primitives=32) out; -- layout(triangles) out; -- void main() { subgroupBarrier(); })"; --#endif -- - const char kGlslMultipleFnShader[] = - R"(#version 450 - layout(location=0) flat in int inVal; -diff --git a/libshaderc/src/shaderc.cc b/libshaderc/src/shaderc.cc -index 5f5db16..17a6562 100644 ---- a/libshaderc/src/shaderc.cc -+++ b/libshaderc/src/shaderc.cc -@@ -56,26 +56,6 @@ EShLanguage GetForcedStage(shaderc_shader_kind kind) { - return EShLangTessControl; - case shaderc_glsl_tess_evaluation_shader: - return EShLangTessEvaluation; -- --#ifdef NV_EXTENSIONS -- case shaderc_glsl_raygen_shader: -- return EShLangRayGenNV; -- case shaderc_glsl_anyhit_shader: -- return EShLangAnyHitNV; -- case shaderc_glsl_closesthit_shader: -- return EShLangClosestHitNV; -- case shaderc_glsl_miss_shader: -- return EShLangMissNV; -- case shaderc_glsl_intersection_shader: -- return EShLangIntersectNV; -- case shaderc_glsl_callable_shader: -- return EShLangCallableNV; -- case shaderc_glsl_task_shader: -- return EShLangTaskNV; -- case shaderc_glsl_mesh_shader: -- return EShLangMeshNV; --#endif -- - case shaderc_glsl_infer_from_source: - case shaderc_glsl_default_vertex_shader: - case shaderc_glsl_default_fragment_shader: -@@ -83,16 +63,6 @@ EShLanguage GetForcedStage(shaderc_shader_kind kind) { - case shaderc_glsl_default_geometry_shader: - case shaderc_glsl_default_tess_control_shader: - case shaderc_glsl_default_tess_evaluation_shader: --#ifdef NV_EXTENSIONS -- case shaderc_glsl_default_raygen_shader: -- case shaderc_glsl_default_anyhit_shader: -- case shaderc_glsl_default_closesthit_shader: -- case shaderc_glsl_default_miss_shader: -- case shaderc_glsl_default_intersection_shader: -- case shaderc_glsl_default_callable_shader: -- case shaderc_glsl_default_task_shader: -- case shaderc_glsl_default_mesh_shader: --#endif - case shaderc_spirv_assembly: - return EShLangCount; - } -@@ -150,16 +120,6 @@ class StageDeducer { - case shaderc_glsl_tess_control_shader: - case shaderc_glsl_tess_evaluation_shader: - case shaderc_glsl_infer_from_source: --#ifdef NV_EXTENSIONS -- case shaderc_glsl_raygen_shader: -- case shaderc_glsl_anyhit_shader: -- case shaderc_glsl_closesthit_shader: -- case shaderc_glsl_miss_shader: -- case shaderc_glsl_intersection_shader: -- case shaderc_glsl_callable_shader: -- case shaderc_glsl_task_shader: -- case shaderc_glsl_mesh_shader: --#endif - return EShLangCount; - case shaderc_glsl_default_vertex_shader: - return EShLangVertex; -@@ -173,23 +133,6 @@ class StageDeducer { - return EShLangTessControl; - case shaderc_glsl_default_tess_evaluation_shader: - return EShLangTessEvaluation; --#ifdef NV_EXTENSIONS -- case shaderc_glsl_default_raygen_shader: -- return EShLangRayGenNV; -- case shaderc_glsl_default_anyhit_shader: -- return EShLangAnyHitNV; -- case shaderc_glsl_default_closesthit_shader: -- return EShLangClosestHitNV; -- case shaderc_glsl_default_miss_shader: -- return EShLangMissNV; -- case shaderc_glsl_default_intersection_shader: -- return EShLangIntersectNV; -- case shaderc_glsl_default_callable_shader: -- return EShLangCallableNV; -- case shaderc_glsl_default_task_shader: -- return EShLangTaskNV; -- case shaderc_glsl_default_mesh_shader: --#endif - case shaderc_spirv_assembly: - return EShLangCount; - } -diff --git a/libshaderc/src/shaderc_private.h b/libshaderc/src/shaderc_private.h -index 30dc863..47de8f5 100644 ---- a/libshaderc/src/shaderc_private.h -+++ b/libshaderc/src/shaderc_private.h -@@ -111,24 +111,6 @@ inline shaderc_util::Compiler::Stage shaderc_convert_specific_stage( - return shaderc_util::Compiler::Stage::Geometry; - case shaderc_compute_shader: - return shaderc_util::Compiler::Stage::Compute; --#if NV_EXTENSIONS -- case shaderc_raygen_shader: -- return shaderc_util::Compiler::Stage::RayGenNV; -- case shaderc_intersection_shader: -- return shaderc_util::Compiler::Stage::IntersectNV; -- case shaderc_anyhit_shader: -- return shaderc_util::Compiler::Stage::AnyHitNV; -- case shaderc_closesthit_shader: -- return shaderc_util::Compiler::Stage::ClosestHitNV; -- case shaderc_miss_shader: -- return shaderc_util::Compiler::Stage::MissNV; -- case shaderc_callable_shader: -- return shaderc_util::Compiler::Stage::CallableNV; -- case shaderc_task_shader: -- return shaderc_util::Compiler::Stage::TaskNV; -- case shaderc_mesh_shader: -- return shaderc_util::Compiler::Stage::MeshNV; --#endif - default: - // We don't care about the other kinds. - break; -diff --git a/libshaderc/src/shaderc_private_test.cc b/libshaderc/src/shaderc_private_test.cc -index 3b64551..2d6ebf8 100644 ---- a/libshaderc/src/shaderc_private_test.cc -+++ b/libshaderc/src/shaderc_private_test.cc -@@ -30,23 +30,5 @@ TEST(ConvertSpecificStage, Exhaustive) { - shaderc_convert_specific_stage(shaderc_geometry_shader)); - EXPECT_EQ(shaderc_util::Compiler::Stage::Compute, - shaderc_convert_specific_stage(shaderc_compute_shader)); --#ifdef NV_EXTENSIONS -- EXPECT_EQ(shaderc_util::Compiler::Stage::RayGenNV, -- shaderc_convert_specific_stage(shaderc_raygen_shader)); -- EXPECT_EQ(shaderc_util::Compiler::Stage::AnyHitNV, -- shaderc_convert_specific_stage(shaderc_anyhit_shader)); -- EXPECT_EQ(shaderc_util::Compiler::Stage::ClosestHitNV, -- shaderc_convert_specific_stage(shaderc_closesthit_shader)); -- EXPECT_EQ(shaderc_util::Compiler::Stage::IntersectNV, -- shaderc_convert_specific_stage(shaderc_intersection_shader)); -- EXPECT_EQ(shaderc_util::Compiler::Stage::MissNV, -- shaderc_convert_specific_stage(shaderc_miss_shader)); -- EXPECT_EQ(shaderc_util::Compiler::Stage::CallableNV, -- shaderc_convert_specific_stage(shaderc_callable_shader)); -- EXPECT_EQ(shaderc_util::Compiler::Stage::TaskNV, -- shaderc_convert_specific_stage(shaderc_task_shader)); -- EXPECT_EQ(shaderc_util::Compiler::Stage::MeshNV, -- shaderc_convert_specific_stage(shaderc_mesh_shader)); --#endif - } - } // anonymous namespace -diff --git a/libshaderc/src/shaderc_test.cc b/libshaderc/src/shaderc_test.cc -index e68ebcb..93acc09 100644 ---- a/libshaderc/src/shaderc_test.cc -+++ b/libshaderc/src/shaderc_test.cc -@@ -1198,82 +1198,6 @@ TEST_F(CompileStringWithOptionsTest, - shaderc_glsl_compute_shader, options_.get())); - } - --#ifdef NV_EXTENSIONS --// task shader --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_0TaskShaderToVulkan1_0Succeeds) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_0); -- EXPECT_TRUE(CompilesToValidSpv(compiler_, kGlslShaderTaskBarrier, -- shaderc_glsl_task_shader, options_.get())); --} -- --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_0TaskShaderToVulkan1_1Succeeds) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_1); -- EXPECT_TRUE(CompilesToValidSpv(compiler_, kGlslShaderTaskBarrier, -- shaderc_glsl_task_shader, options_.get())); --} -- --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_1TaskShaderToVulkan1_0Fails) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_0); -- EXPECT_FALSE(CompilesToValidSpv(compiler_, kGlslShaderTaskSubgroupBarrier, -- shaderc_glsl_task_shader, options_.get())); --} -- --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_1TaskShaderToVulkan1_1Succeeds) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_1); -- EXPECT_TRUE(CompilesToValidSpv(compiler_, kGlslShaderTaskSubgroupBarrier, -- shaderc_glsl_task_shader, options_.get())); --} -- --// mesh shader --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_0MeshShaderToVulkan1_0Succeeds) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_0); -- EXPECT_TRUE(CompilesToValidSpv(compiler_, kGlslShaderMeshBarrier, -- shaderc_glsl_mesh_shader, options_.get())); --} -- --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_0MeshShaderToVulkan1_1Succeeds) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_1); -- EXPECT_TRUE(CompilesToValidSpv(compiler_, kGlslShaderMeshBarrier, -- shaderc_glsl_mesh_shader, options_.get())); --} -- --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_1MeshShaderToVulkan1_0Fails) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_0); -- EXPECT_FALSE(CompilesToValidSpv(compiler_, kGlslShaderMeshSubgroupBarrier, -- shaderc_glsl_mesh_shader, options_.get())); --} -- --TEST_F(CompileStringWithOptionsTest, -- TargetEnvRespectedWhenCompilingVulkan1_1MeshShaderToVulkan1_1Succeeds) { -- shaderc_compile_options_set_target_env(options_.get(), -- shaderc_target_env_vulkan, -- shaderc_env_version_vulkan_1_1); -- EXPECT_TRUE(CompilesToValidSpv(compiler_, kGlslShaderMeshSubgroupBarrier, -- shaderc_glsl_mesh_shader, options_.get())); --} --#endif -- - TEST_F(CompileStringWithOptionsTest, - DISABLED_TargetEnvIgnoredWhenPreprocessing) { - // This test is disabled since some versions of glslang may refuse to compile -diff --git a/libshaderc_util/include/libshaderc_util/compiler.h b/libshaderc_util/include/libshaderc_util/compiler.h -index f36a97f..bbbab86 100644 ---- a/libshaderc_util/include/libshaderc_util/compiler.h -+++ b/libshaderc_util/include/libshaderc_util/compiler.h -@@ -171,40 +171,14 @@ class Compiler { - Geometry, - Fragment, - Compute, --#ifdef NV_EXTENSIONS -- RayGenNV, -- IntersectNV, -- AnyHitNV, -- ClosestHitNV, -- MissNV, -- CallableNV, -- TaskNV, -- MeshNV, --#endif -- StageEnd, - }; -- enum { kNumStages = int(Stage::StageEnd) }; -+ enum { kNumStages = int(Stage::Compute) + 1 }; - - // Returns a std::array of all the Stage values. - const std::array& stages() const { -- static std::array values{{ -- Stage::Vertex, -- Stage::TessEval, -- Stage::TessControl, -- Stage::Geometry, -- Stage::Fragment, -- Stage::Compute, --#ifdef NV_EXTENSIONS -- Stage::RayGenNV, -- Stage::IntersectNV, -- Stage::AnyHitNV, -- Stage::ClosestHitNV, -- Stage::MissNV, -- Stage::CallableNV, -- Stage::TaskNV, -- Stage::MeshNV, --#endif -- }}; -+ static std::array values{ -+ {Stage::Vertex, Stage::TessEval, Stage::TessControl, Stage::Geometry, -+ Stage::Fragment, Stage::Compute}}; - return values; - } - -diff --git a/libshaderc_util/src/resources.cc b/libshaderc_util/src/resources.cc -index 458a63f..1617b0a 100644 ---- a/libshaderc_util/src/resources.cc -+++ b/libshaderc_util/src/resources.cc -@@ -116,16 +116,6 @@ const TBuiltInResource kDefaultTBuiltInResource = { - /*.maxCullDistances = */ 8, // ARB_cull_distance. - /*.maxCombinedClipAndCullDistances = */ 8, // ARB_cull_distance. - /*.maxSamples = */ 4, -- /* .maxMeshOutputVerticesNV = */ 256, -- /* .maxMeshOutputPrimitivesNV = */ 512, -- /* .maxMeshWorkGroupSizeX_NV = */ 32, -- /* .maxMeshWorkGroupSizeY_NV = */ 1, -- /* .maxMeshWorkGroupSizeZ_NV = */ 1, -- /* .maxTaskWorkGroupSizeX_NV = */ 32, -- /* .maxTaskWorkGroupSizeY_NV = */ 1, -- /* .maxTaskWorkGroupSizeZ_NV = */ 1, -- /* .maxMeshViewCountNV = */ 4, -- - // This is the glslang TLimits structure. - // It defines whether or not the following features are enabled. - // We want them to all be enabled. --- -2.19.0 - diff --git a/changelog b/changelog new file mode 100644 index 0000000..8d0f288 --- /dev/null +++ b/changelog @@ -0,0 +1,57 @@ +* Fri Jul 23 2021 Fedora Release Engineering - 2021.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sun May 30 11:26:42 CEST 2021 Robert-André Mauchin - 2021.0-2 +- Update to 2021.0 +- Fix changelog +- Close: rhbz#1952332 + +* Fri Mar 5 13:43:44 CET 2021 Robert-André Mauchin - 2020.5-1 +- Update to 2020.5 +- Close: rhbz#1931006 + +* Wed Jan 27 2021 Fedora Release Engineering - 2020.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Dec 26 15:21:39 CET 2020 Robert-André Mauchin - 2020.4-1 +- Update to 2020.4 +- Close: rhbz#1906260 + +* Sat Dec 05 2020 Robert-André Mauchin - 2020.3-1 +- Update to 2020.3 +- Close: rhbz#1875183 + +* Sat Aug 08 2020 Robert-André Mauchin - 2020.2-1 +- Update to 2020.2 + +* Sat Aug 01 2020 Fedora Release Engineering - 2020.1-3 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 2020.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jun 17 20:15:27 CEST 2020 Robert-André Mauchin - 2020.1-1 +- Update to 2020.1 + +* Sun Feb 02 20:53:01 CET 2020 Robert-André Mauchin - 2019.1-1 +- Update to 2019.1 + +* Thu Jan 30 2020 Fedora Release Engineering - 2019.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Jul 26 2019 Fedora Release Engineering - 2019.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jun 10 00:18:18 CEST 2019 Robert-André Mauchin - 2019.0-1 +- Release 2019.0 + +* Sat Feb 02 2019 Fedora Release Engineering - 2018.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Wed Oct 03 2018 Robert-André Mauchin - 2018.0-1 +- Release 2018.0 + +* Mon Sep 24 2018 Robert-André Mauchin - 2017.2-1 +- Initial build + diff --git a/glslang_linker_flags.patch b/glslang_linker_flags.patch new file mode 100644 index 0000000..0bc540c --- /dev/null +++ b/glslang_linker_flags.patch @@ -0,0 +1,24 @@ +--- a/libshaderc_util/CMakeLists.txt ++++ b/libshaderc_util/CMakeLists.txt +@@ -47,7 +47,7 @@ add_definitions(-DENABLE_HLSL) + find_package(Threads) + target_link_libraries(shaderc_util PRIVATE + glslang SPIRV +- SPIRV-Tools-opt ${CMAKE_THREAD_LIBS_INIT}) ++ SPIRV-Tools-opt MachineIndependent GenericCodeGen ${CMAKE_THREAD_LIBS_INIT}) + + shaderc_add_tests( + TEST_PREFIX shaderc_util + +--- a/glslc/CMakeLists.txt ++++ b/glslc/CMakeLists.txt +@@ -43,7 +43,7 @@ if (SHADERC_ENABLE_WGSL_OUTPUT) + endif(SHADERC_ENABLE_WGSL_OUTPUT) + + target_link_libraries(glslc PRIVATE +- glslang SPIRV # Glslang libraries ++ glslang SPIRV MachineIndependent GenericCodeGen # Glslang libraries + $<$:libtint> # Tint libraries, optional + shaderc_util shaderc # internal Shaderc libraries + ${CMAKE_THREAD_LIBS_INIT}) + diff --git a/shaderc.spec b/shaderc.spec index 81ce50c..35693ce 100644 --- a/shaderc.spec +++ b/shaderc.spec @@ -1,64 +1,52 @@ -# Release 2018.0 -%global commit 7d8582bb10c94889f0fc603cb10728faa58b93e1 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global snapshotdate 20181003 -%global gitversion v2018.0 - -# Need to keep this in sync with spirv-tools -%global spirv_commit 26a698c34788bb69123a1f3789970a16cf4d9641 +# Glslang revision from packaged version +%global glslang_version d5f08ae5c5a9a45165578445cbd0f9adf0223448 Name: shaderc -Version: 2018.0 -Release: 2%{?dist} -Summary: A collection of tools, libraries, and tests for Vulkan shader compilation +Version: 2026.2 +Release: %autorelease +Summary: Collection of tools, libraries, and tests for Vulkan shader compilation -License: ASL 2.0 +License: Apache-2.0 URL: https://github.com/google/shaderc -Source0: %url/archive/%{commit}/%{name}-%{shortcommit}.tar.gz - -# https://github.com/google/shaderc/pull/463 -Patch0: https://patch-diff.githubusercontent.com/raw/google/shaderc/pull/463.patch#/0001-Fix-the-link-order-of-libglslang-and-libHLSL.patch +Source: %{url}/archive/%{glslang_version}.tar.gz # Patch to unbundle 3rd party code -Patch1: 0001-Drop-third-party-code-in-CMakeLists.txt.patch -# SPV_NV_mesh_shader is only available in theGIT master of glslang -# Delaying inclusion until neyt glslang release -Patch2: 0001-Revert-Add-support-for-SPV_NV_mesh_shader.patch +Patch: 0001-Drop-third-party-code-in-CMakeLists.txt.patch +Patch: glslang_linker_flags.patch -BuildRequires: cmake3 +BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: ninja-build -BuildRequires: python3-devel -BuildRequires: glslang-devel -BuildRequires: spirv-headers-devel +BuildRequires: sed BuildRequires: spirv-tools + +BuildRequires: glslang-devel +BuildRequires: python3-devel +BuildRequires: spirv-headers-devel BuildRequires: spirv-tools-devel %description -A collection of tools, libraries and tests for shader compilation. +A collection of tools, libraries and tests for shader compilation. Shaderc aims to to provide: - - a command line compiler with GCC- and Clang-like usage, for better + - a command line compiler with GCC- and Clang-like usage, for better integration with build systems - an API where functionality can be added without breaking existing clients - - an API supporting standard concurrency patterns across multiple + - an API supporting standard concurrency patterns across multiple operating systems - increased functionality such as file #include support - %package -n glslc Summary: A command line compiler for GLSL/HLSL to SPIR-V %description -n glslc A command line compiler for GLSL/HLSL to SPIR-V. - %package -n libshaderc Summary: A library for compiling shader strings into SPIR-V %description -n libshaderc A library for compiling shader strings into SPIR-V. - %package -n libshaderc-devel Summary: Development files for libshaderc Requires: libshaderc%{?_isa} = %{version}-%{release} @@ -68,7 +56,6 @@ A library for compiling shader strings into SPIR-V. Development files for libshaderc. - %package -n libshaderc-static Summary: A library for compiling shader strings into SPIR-V (static libraries) @@ -77,74 +64,61 @@ A library for compiling shader strings into SPIR-V. Static libraries for libshaderc. - %prep -%autosetup -p1 -n %{name}-%{commit} +%autosetup -p1 -n %{name}-%{glslang_version} -rm -rf third_party +rm -r third_party # Stolen from Gentoo -# Create build-version.inc since we want to use our packaged +# Create build-version.inc since we want to use our packaged # SPIRV-Tools and glslang -echo \"shaderc $(grep -m1 -o '^v[[:digit:]]\{4\}\.[[:digit:]]\(-dev\)\?' CHANGES) %{gitversion}\" \ +sed -i -e '/build-version/d' glslc/CMakeLists.txt +echo \"shaderc $(grep -m1 -o '^v[[:digit:]]\{4\}\.[[:digit:]]\(-dev\)\? [[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}$' CHANGES)\" \ > glslc/src/build-version.inc -echo \"spirv-tools $(grep -m1 -o '^v[[:digit:]]\{4\}\.[[:digit:]]\(-dev\)\?' /usr/share/doc/spirv-tools/CHANGES) %{spirv_commit}\" \ +echo \"spirv-tools $(grep -m1 -o '^v[[:digit:]]\{4\}\.[[:digit:]]\(-dev\)\? [[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}$' /usr/share/doc/spirv-tools/CHANGES)\" \ >> glslc/src/build-version.inc -echo \"glslang \'\'\" >> glslc/src/build-version.inc +echo \"glslang %{glslang_version}\" >> glslc/src/build-version.inc +# Point to correct include +sed -i 's|SPIRV/GlslangToSpv.h|glslang/SPIRV/GlslangToSpv.h|' libshaderc_util/src/compiler.cc %build -mkdir %_target_platform -cd %_target_platform # We disable the tests because they don't work with our unbundling of 3rd party. # See https://github.com/google/shaderc/issues/470 -%cmake3 -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_SKIP_RPATH=True \ - -DSHADERC_SKIP_TESTS=True \ - -DPYTHON_EXE=%{__python3} \ - -GNinja .. -%ninja_build - +%cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_SKIP_RPATH=True \ + -DSHADERC_SKIP_TESTS=True \ + -DPYTHON_EXECUTABLE=%{python3} \ + -GNinja +%cmake_build %install -%ninja_install -C %_target_platform - +%cmake_install %check -ctest -V - +%ctest %files -n glslc %doc glslc/README.asciidoc %license LICENSE %{_bindir}/glslc - %files -n libshaderc %doc AUTHORS CHANGES CONTRIBUTORS README.md %license LICENSE %{_libdir}/libshaderc_shared.so.1* - %files -n libshaderc-devel %{_includedir}/%{name}/ %{_libdir}/libshaderc_shared.so - +%{_libdir}/pkgconfig/shaderc.pc %files -n libshaderc-static %license LICENSE %{_libdir}/libshaderc.a %{_libdir}/libshaderc_combined.a -%{_libdir}/libshaderc_util.a - +%{_libdir}/pkgconfig/shaderc_static.pc +%{_libdir}/pkgconfig/shaderc_combined.pc %changelog -* Sat Feb 02 2019 Fedora Release Engineering - 2018.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Wed Oct 03 2018 Robert-André Mauchin - 2018.0-1 -- Release 2018.0 - -* Mon Sep 24 2018 Robert-André Mauchin - 2017.2-1 -- Initial build - +%autochangelog diff --git a/sources b/sources index 4a56ba0..618f369 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (shaderc-7d8582b.tar.gz) = 20c77170265bb5dba61a47df7c369fdbece1d7a457f78f04c0a1ee4c728802b673857da8f91456de35627832781d2064ba2daf2b6859a4f1b14bfd53fc6e8588 +SHA512 (d5f08ae5c5a9a45165578445cbd0f9adf0223448.tar.gz) = 91223ef1c85a8e7a5dff8b220e816afe278830f9fb3f7a15e88fd814995b2ea453aaba0370d22102520e9c4acd375436ff79b2ddd6cdbf03aab72541523d5592