RHEL 9.0.0 Alpha bootstrap
The content of this branch was automatically imported from Fedora ELN with the following as its source: https://src.fedoraproject.org/rpms/shaderc#1987df224e598b69529d5c0bc21540bdb112db89
This commit is contained in:
parent
021101bf20
commit
8ed2a09569
6
.gitignore
vendored
6
.gitignore
vendored
@ -0,0 +1,6 @@
|
||||
/shaderc-7a23a01.tar.gz
|
||||
/shaderc-7d8582b.tar.gz
|
||||
/shaderc-34c412f.tar.gz
|
||||
/shaderc-f76bb2f.tar.gz
|
||||
/shaderc-7c2aa93.tar.gz
|
||||
/shaderc-4162bb1.tar.gz
|
25
0001-Drop-third-party-code-in-CMakeLists.txt.patch
Normal file
25
0001-Drop-third-party-code-in-CMakeLists.txt.patch
Normal file
@ -0,0 +1,25 @@
|
||||
diff -up shaderc-f76bb2f09f858c3014b329961d836964e515095d/CMakeLists.txt.orig shaderc-f76bb2f09f858c3014b329961d836964e515095d/CMakeLists.txt
|
||||
--- shaderc-f76bb2f09f858c3014b329961d836964e515095d/CMakeLists.txt.orig 2020-01-22 21:15:53.000000000 +0100
|
||||
+++ shaderc-f76bb2f09f858c3014b329961d836964e515095d/CMakeLists.txt 2020-02-02 21:06:15.193583552 +0100
|
||||
@@ -98,7 +98,6 @@ endif(MSVC)
|
||||
|
||||
# Configure subdirectories.
|
||||
# We depend on these for later projects, so they should come first.
|
||||
-add_subdirectory(third_party)
|
||||
|
||||
if(SHADERC_ENABLE_SPVC)
|
||||
add_subdirectory(libshaderc_spvc)
|
||||
@@ -107,13 +106,6 @@ endif()
|
||||
add_subdirectory(libshaderc_util)
|
||||
add_subdirectory(libshaderc)
|
||||
add_subdirectory(glslc)
|
||||
-add_subdirectory(examples)
|
||||
-
|
||||
-add_custom_target(build-version
|
||||
- ${PYTHON_EXECUTABLE}
|
||||
- ${CMAKE_CURRENT_SOURCE_DIR}/utils/update_build_version.py
|
||||
- ${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).")
|
||||
|
||||
function(define_pkg_config_file NAME LIBS)
|
||||
add_custom_target(${NAME}-pkg-config ALL
|
223
CHANGES
Normal file
223
CHANGES
Normal file
@ -0,0 +1,223 @@
|
||||
Revision history for Shaderc
|
||||
|
||||
v2020.1 2020-06-09
|
||||
This is the last version that officially supports VS2013.
|
||||
|
||||
- General:
|
||||
- Added warning signs about unsupported downloads (#1041)
|
||||
- Added .NET bindings to README.md (#1060)
|
||||
- Only add -fPIC if supported by the compiler. (#1061)
|
||||
|
||||
- glslc, libshaderc:
|
||||
- Removed Singleton pattern around access to glslang (#1059)
|
||||
|
||||
- spvc:
|
||||
- Added concept of comparison sampler to API (#1036)
|
||||
- Added support for options.hlsl.nonwritable_uav_texture_as_srv (#1048)
|
||||
- Support forcing storage buffers to be always declared as UAV. (#1076)
|
||||
|
||||
v2020.0 2020-03-06
|
||||
- General:
|
||||
- Getting spirv.hpp from SPIRV-Headers instead of not glslang (#992)
|
||||
- Added clarification about status of artifacts in downloads.md (#1012)
|
||||
|
||||
- glslc, libshaderc:
|
||||
- Added support for new Glslang profile enum, EProfileCount (#973)
|
||||
- Updated user documentation for -S in glslc (#978)
|
||||
- Add documentation for Vulkan 1.2 and SPIR-V 1.5 (#980)
|
||||
- Removed NV_EXTENSIONS conditionals (#1003)
|
||||
- Added support for generating WebGPU SPIR-V to libshaderc (#1021)
|
||||
- Rolled in all DEPS for provisional SPIR-V extensions for raytracing
|
||||
|
||||
- spvc:
|
||||
- Normalized API behaviour (#967)
|
||||
- Added source_set target for libshaderc_spvc (#976)
|
||||
- Added in support for spvc logging to the terminal (#981)
|
||||
- Internal refactoring to reduce boiler plate in API implementations (#984)
|
||||
- Added newline to logging messages to make them readable (#985)
|
||||
- Added reflection support for Dawn:
|
||||
- storage textures (#1001)
|
||||
- storage texture format (#1005)
|
||||
- texture dimension for storage textures (#1008)
|
||||
- is storage texture declared as multisampled texture (#1011)
|
||||
- Converted compile options to require explicit environments (#1019)
|
||||
- Added knob to control force_zero_initialized_variables in SPIRV-Cross (#1028)
|
||||
|
||||
v2019.1 2020-01-22
|
||||
- glslc, libshaderc:
|
||||
- Add -fnan-clamp: Generate code for max and min builtins so that,
|
||||
given a NaN operand, will return the other operand. Similarly, the
|
||||
clamp builtin favours non-NaN operands, as if clamp was implemented
|
||||
as the composition of max and min.
|
||||
- Add -finvert-y
|
||||
- Using SetBeforeHlslLegalization for more relaxed validation rules
|
||||
- Added support for SPIR-V 1.5
|
||||
- Add --emit-line-directive option
|
||||
- Added support for Vulkan 1.2
|
||||
- spvc:
|
||||
- Add many options:
|
||||
--flatten-multidimensional-arrays
|
||||
--es
|
||||
--no-es
|
||||
--glsl-emit-push-constant-as-ubo
|
||||
--msl-swizzle-texture-samples
|
||||
--msl-platform=ios|macos
|
||||
--msl-pad-fragment-output
|
||||
--msl-capture-output
|
||||
--msl-domain-lower-left
|
||||
--msl-argument-buffers
|
||||
--msl-discrete-descriptor-set=<number>
|
||||
--hlsl-enable-compat
|
||||
- Reintroduce shaderc_spvc_compile_options_set_shader_model
|
||||
- Added option to inject robust buffer access code
|
||||
- Added support for emitting ToVulkan shaders
|
||||
- Added spirv-opt based IR generation as alternative to built in spirv_cross IR gen
|
||||
- Added API for specifying source and target execution environments
|
||||
- Added option & reflection API methods neede by Dawn
|
||||
- Substantial internal refactoring and code cleanup
|
||||
- Large number of breaking changes to the API
|
||||
- Replaced shaderc_spvc_compile_options_set_shader_model with
|
||||
shaderc_spvc_compile_options_set_hlsl_shader_model
|
||||
- Compiler initialization and shader generation moved into seperate calls
|
||||
- Seperated return codes from shaderc ones
|
||||
- Many small API changes
|
||||
- Improvements to testing
|
||||
- Refactoring and clean up of run_spirv_cross_tests.py
|
||||
- Seperation of expectations into known failures, known invalids, and cases
|
||||
that need investigation
|
||||
- Tweaks and fixes to substantially increase passing cases
|
||||
- Added support for running tests using spvc IR generation
|
||||
- Infrastructure
|
||||
- Update DEPS with cross-verified commits from associated repos.
|
||||
- Add utils/roll-deps
|
||||
- Infrastructure:
|
||||
- Removed Appveyor artifacts link
|
||||
- Improvements and clean up of DEPS rolling scripts
|
||||
- Enabled warnings about implicit fallthrough
|
||||
- Enabled improper semicolon warnings
|
||||
- Restricted -fPIC to platforms that support it
|
||||
- Converted remaining scripts to use Python 3
|
||||
- Replaced nosetest with unittest
|
||||
- Removed assumptions aabout location of spirv-tools, effcee, and RE2
|
||||
- Migrated BUILD.gn spirv_cross dependency to local repo
|
||||
- Fixes:
|
||||
- Fix duplicate install paths when using VisualStudio
|
||||
- Fixed BUILD.gn for Chromium, Dawn & Fuchsia
|
||||
- Explicitly enabled HLSL support in glslang
|
||||
- Added installing necessary headers in Android.mk
|
||||
- Removed unsupported Unicode characters
|
||||
- Fixed detection of spirv-headers directory
|
||||
#666: Update Docker file to use Python3
|
||||
|
||||
v2019.0 2019-06-04
|
||||
- Add optional spvc, libshaderc_spvc as wrapper around SPIRV-Cross:
|
||||
- Rejects bad modules by running the SPIR-V validator first
|
||||
- Skips exception-heavy SPIRV-Cross SPIR-V parser
|
||||
- Support NV extensions for shader stages
|
||||
- Require SPIRV-Tools and SPIRV-Headers with SPIR-V 1.4 support
|
||||
Build support:
|
||||
- Use KhronosGroup/glslang instead of google/glslang
|
||||
- Stop running tests on VS 2013 (googletest no longer supports VS2013)
|
||||
- Require Python3 for building
|
||||
- Support Chromium's GN build system
|
||||
- Kokoro build fixes
|
||||
- Cmake build fixes: Only build subdirs if those targets are not yet defined
|
||||
- Use Android.mk from Glslang
|
||||
- Dockerfile gets re2 and effcee sources
|
||||
- Fixes for newer googletest
|
||||
- Add address sanitizer presubmit bot
|
||||
- Generate config files for pkg-config
|
||||
Spvc:
|
||||
- Add option to specify source environment. Spvc will transform from source
|
||||
to target environment if they are different. This only works for WebGPU0
|
||||
and Vulkan 1.1.
|
||||
Fixes:
|
||||
#499: In HLSL compilation, relax layout and logical pointer validation rules
|
||||
prior to running the legalization recipe.
|
||||
|
||||
v2018.0 2018-10-01
|
||||
- Support -fhlsl_functionality1 (also -fhlsl-functionality1)
|
||||
- Support NVIDIA Turing extensions. Requires updated Glslang and SPIRV-Tools.
|
||||
- Use SPIR-V optimization and HLSL legalization recipes from SPIRV-Tools.
|
||||
- Pass target environment into SPIRV-Tools code, e.g. from --target-env vulkan1.1
|
||||
- Add SONAME=1 property to shared library
|
||||
- Support GN build for Chromium
|
||||
Fixes:
|
||||
#469: Add virtual dtor to classes with virtual functions.
|
||||
#457: Fix writing SPIR-V binaries to standard output on Windows.
|
||||
|
||||
v2017.2 2018-02-27
|
||||
- Add a shared library version of libshaderc
|
||||
- Support GLSL 4.6 and ESSL 3.2
|
||||
- Fail compilation if a resource does not have a binding.
|
||||
- Add options for automatically setting bindings for (uniform) resources that
|
||||
don't have bindings set in shader source.
|
||||
- Add options for automatically setting locations for pipline inputs and outputs.
|
||||
- Add option for using HLSL IO mappings as expressed in source.
|
||||
- Add options for setting resource binding base numbers.
|
||||
- Add option to use HLSL resource register numbers for bindings.
|
||||
- HLSL compilation now defaults to HLSL packing rules.
|
||||
(This change is inherited from Glslang commit 7cca140.)
|
||||
- HLSL compilation runs SPIR-V "legalization" transforms to reduce
|
||||
manipulation of opaque handles (e.g. images), to satisfy Vulkan rules.
|
||||
- Adapt to Glslang generator version numbers:
|
||||
- To 2: a fix for code generation for atomicCounterDecrement.
|
||||
- To 3: change memory barrier semantics masks
|
||||
- To 4: generate more access chains for swizzles
|
||||
- CMake install rules uses GNUInstallDirs. For example, install to lib64
|
||||
when that is the norm for the target system.
|
||||
|
||||
v2017.1 2017-03-10
|
||||
- Add option to automatically assign bindings to uniform variables
|
||||
that don't have an explicit 'binding' layout in the shader source.
|
||||
- Enable NVIDIA extensions by default in GLSL compilation
|
||||
- README mentions language bindings provided by 3rd parties.
|
||||
- README describes the known-good branch on GitHub
|
||||
- Fixed examples in shaderc.h; added C API use to examples/online-compile
|
||||
- Fixes issues:
|
||||
#289: Don't output an object file when compilation fails.
|
||||
#296: Enable use of the CMake in Android Studio.
|
||||
|
||||
v2016.2 2016-12-13
|
||||
- Describe Shaderc's level of stability.
|
||||
- Support HLSL compilation, exposing functionality in Glslang.
|
||||
- Supported in C, C++ API
|
||||
- glslc accepts "-x hlsl", and assumes .hlsl files are HLSL.
|
||||
- glslc accepts "-fentry-point=<name>" to set entry point name,
|
||||
overriding default value "main".
|
||||
- Support setting shader resource limits in C, C++ APIs, and in
|
||||
glslc
|
||||
- glslc adds -flimit=<setting>
|
||||
- glslc adds --show-limits to display defaults and valid resource
|
||||
limit syntax.
|
||||
- glslc adds "-flimit-file <file>" support to read Glslang resource
|
||||
configuration files, i.e. the output of "glslangValidator -c".
|
||||
- Enable AMD extensions by default in GLSL compilation
|
||||
- Fixes issues:
|
||||
#281: Work around Android build issue with abspath on Windows
|
||||
#283: Increase default maxDrawBuffers to 4, to match Vulkan/GLES3.0
|
||||
|
||||
v2016.1 2016-10-12
|
||||
- C API for assembling now takes an options object
|
||||
- Support compilation options to optimize for size.
|
||||
- Maintain compatibility with recent SPIRV-Tools and Glslang versions.
|
||||
- Update examples.
|
||||
- Build cleanups.
|
||||
- Fixes issues:
|
||||
#238: Fix invocation of python scripts during build
|
||||
|
||||
v2016.0 2016-07-07
|
||||
|
||||
- Adds v<year>.<index> versioning, with "-dev" suffix to indicate work in
|
||||
progress. The intent is to summarize and report functionalities more easily
|
||||
for incorporating into downstream projects.
|
||||
|
||||
- Summary of functionalities (See the README.md for more details):
|
||||
- Provides libraries and command line tools for generating SPIR-V modules
|
||||
- Supports GLSL source code or SPIR-V assembly as input
|
||||
- Supports SPIR-V binary or assembly text as output
|
||||
- Command line options follow GCC/Clang conventions
|
||||
- Supports various semantics (OpenGL, OpenGL Compatible and Vulkan)
|
||||
- Supports #include
|
||||
- Supports user-defined macros
|
||||
- Supports dependency information dumping
|
24
glslang_linker_flags.patch
Normal file
24
glslang_linker_flags.patch
Normal file
@ -0,0 +1,24 @@
|
||||
--- a/libshaderc_util/CMakeLists.txt
|
||||
+++ b/libshaderc_util/CMakeLists.txt
|
||||
@@ -47,7 +47,7 @@
|
||||
find_package(Threads)
|
||||
target_link_libraries(shaderc_util PRIVATE
|
||||
glslang OSDependent OGLCompiler HLSL 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 @@
|
||||
endif(SHADERC_ENABLE_WGSL_OUTPUT)
|
||||
|
||||
target_link_libraries(glslc PRIVATE
|
||||
- glslang OSDependent OGLCompiler HLSL glslang SPIRV # Glslang libraries
|
||||
+ glslang OSDependent OGLCompiler HLSL glslang SPIRV MachineIndependent GenericCodeGen # Glslang libraries
|
||||
$<$<BOOL:${SHADERC_ENABLE_WGSL_OUTPUT}>:libtint> # Tint libraries, optional
|
||||
shaderc_util shaderc # internal Shaderc libraries
|
||||
${CMAKE_THREAD_LIBS_INIT})
|
||||
|
162
shaderc.spec
Normal file
162
shaderc.spec
Normal file
@ -0,0 +1,162 @@
|
||||
# Force out of source build
|
||||
%undefine __cmake_in_source_build
|
||||
|
||||
# Release 2020.2
|
||||
%global commit 4162bb13b426dab68ebe411ea7ef05f6343bea95
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global snapshotdate 20200808
|
||||
|
||||
# Glslang revision from packaged version
|
||||
%global glslang_version SDK-candidate-2-11-gc9b28b9f
|
||||
|
||||
Name: shaderc
|
||||
Version: 2020.2
|
||||
Release: 1%{?dist}
|
||||
Summary: A collection of tools, libraries, and tests for Vulkan shader compilation
|
||||
|
||||
License: ASL 2.0
|
||||
URL: https://github.com/google/shaderc
|
||||
Source0: %url/archive/%{commit}/%{name}-%{shortcommit}.tar.gz
|
||||
# Patch to unbundle 3rd party code
|
||||
Patch1: 0001-Drop-third-party-code-in-CMakeLists.txt.patch
|
||||
Patch2: glslang_linker_flags.patch
|
||||
|
||||
BuildRequires: cmake3
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: glslang-devel
|
||||
BuildRequires: spirv-headers-devel
|
||||
BuildRequires: spirv-tools
|
||||
BuildRequires: spirv-tools-devel
|
||||
|
||||
%description
|
||||
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
|
||||
integration with build systems
|
||||
- an API where functionality can be added without breaking existing clients
|
||||
- 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}
|
||||
|
||||
%description -n libshaderc-devel
|
||||
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)
|
||||
|
||||
%description -n libshaderc-static
|
||||
A library for compiling shader strings into SPIR-V.
|
||||
|
||||
Static libraries for libshaderc.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -n %{name}-%{commit}
|
||||
|
||||
rm -rf third_party
|
||||
|
||||
# Stolen from Gentoo
|
||||
# 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\)\? [[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}$' CHANGES)\" \
|
||||
> glslc/src/build-version.inc
|
||||
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 %{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
|
||||
# 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
|
||||
%cmake3_build
|
||||
|
||||
%install
|
||||
%cmake3_install
|
||||
|
||||
%check
|
||||
%ctest3
|
||||
|
||||
%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}/pkgconfig/shaderc_static.pc
|
||||
%{_libdir}/pkgconfig/shaderc_combined.pc
|
||||
|
||||
%changelog
|
||||
* Sat Aug 08 2020 Robert-André Mauchin <zebob.m@gmail.com> - 2020.2-1
|
||||
- Update to 2020.2
|
||||
|
||||
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2020.1-3
|
||||
- Second attempt - Rebuilt for
|
||||
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2020.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jun 17 20:15:27 CEST 2020 Robert-André Mauchin <zebob.m@gmail.com> - 2020.1-1
|
||||
- Update to 2020.1
|
||||
|
||||
* Sun Feb 02 20:53:01 CET 2020 Robert-André Mauchin <zebob.m@gmail.com> - 2019.1-1
|
||||
- Update to 2019.1
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2019.0-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2019.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Mon Jun 10 00:18:18 CEST 2019 Robert-André Mauchin <zebob.m@gmail.com> - 2019.0-1
|
||||
- Release 2019.0
|
||||
|
||||
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2018.0-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Wed Oct 03 2018 Robert-André Mauchin <zebob.m@gmail.com> - 2018.0-1
|
||||
- Release 2018.0
|
||||
|
||||
* Mon Sep 24 2018 Robert-André Mauchin <zebob.m@gmail.com> - 2017.2-1
|
||||
- Initial build
|
||||
|
Loading…
Reference in New Issue
Block a user