Update to 2023.3 and tidy up the spec; Fixes: RHBZ#1997985
This commit is contained in:
		
							parent
							
								
									e372b7585c
								
							
						
					
					
						commit
						4a5f8f6b07
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -12,3 +12,4 @@ | |||||||
| /shaderc-1701a27.tar.gz | /shaderc-1701a27.tar.gz | ||||||
| /shaderc-551f106.tar.gz | /shaderc-551f106.tar.gz | ||||||
| /shaderc-d0b0222.tar.gz | /shaderc-d0b0222.tar.gz | ||||||
|  | /shaderc-2023.3.tar.gz | ||||||
|  | |||||||
							
								
								
									
										223
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										223
									
								
								CHANGES
									
									
									
									
									
								
							| @ -1,223 +0,0 @@ | |||||||
| 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 |  | ||||||
							
								
								
									
										48
									
								
								shaderc.spec
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								shaderc.spec
									
									
									
									
									
								
							| @ -1,33 +1,27 @@ | |||||||
| # Force out of source build |  | ||||||
| %undefine __cmake_in_source_build |  | ||||||
| 
 |  | ||||||
| # Release 2023.1 |  | ||||||
| %global commit          d0b02222f33e1e5e1f521e4e4e1cbfa7fe2cf540 |  | ||||||
| %global shortcommit     %(c=%{commit}; echo ${c:0:7}) |  | ||||||
| %global snapshotdate    20230116 |  | ||||||
| 
 |  | ||||||
| # Glslang revision from packaged version | # Glslang revision from packaged version | ||||||
| %global glslang_version ca8d07d0bc1c6390b83915700439fa7719de6a2a | %global glslang_version ca8d07d0bc1c6390b83915700439fa7719de6a2a | ||||||
| 
 | 
 | ||||||
| Name:           shaderc | Name:           shaderc | ||||||
| Version:        2023.1 | Version:        2023.3 | ||||||
| Release:        %autorelease | Release:        %autorelease | ||||||
| Summary:        A collection of tools, libraries, and tests for Vulkan shader compilation | Summary:        Collection of tools, libraries, and tests for Vulkan shader compilation | ||||||
| 
 | 
 | ||||||
| License:        Apache-2.0 | License:        Apache-2.0 | ||||||
| URL:            https://github.com/google/shaderc | URL:            https://github.com/google/shaderc | ||||||
| Source0:        %url/archive/%{commit}/%{name}-%{shortcommit}.tar.gz | Source:         %{url}/archive/v%{version}/%{name}-%{version}.tar.gz | ||||||
| # Patch to unbundle 3rd party code | # Patch to unbundle 3rd party code | ||||||
| Patch1:         0001-Drop-third-party-code-in-CMakeLists.txt.patch | Patch:          0001-Drop-third-party-code-in-CMakeLists.txt.patch | ||||||
| Patch2:         glslang_linker_flags.patch | Patch:          glslang_linker_flags.patch | ||||||
| 
 | 
 | ||||||
| BuildRequires:  cmake3 | BuildRequires:  cmake | ||||||
| BuildRequires:  gcc-c++ | BuildRequires:  gcc-c++ | ||||||
| BuildRequires:  ninja-build | BuildRequires:  ninja-build | ||||||
| BuildRequires:  python3-devel | BuildRequires:  sed | ||||||
| BuildRequires:  glslang-devel |  | ||||||
| BuildRequires:  spirv-headers-devel |  | ||||||
| BuildRequires:  spirv-tools | BuildRequires:  spirv-tools | ||||||
|  | 
 | ||||||
|  | BuildRequires:  glslang-devel | ||||||
|  | BuildRequires:  python3-devel | ||||||
|  | BuildRequires:  spirv-headers-devel | ||||||
| BuildRequires:  spirv-tools-devel | BuildRequires:  spirv-tools-devel | ||||||
| 
 | 
 | ||||||
| %description | %description | ||||||
| @ -71,9 +65,9 @@ A library for compiling shader strings into SPIR-V. | |||||||
| Static libraries for libshaderc. | Static libraries for libshaderc. | ||||||
| 
 | 
 | ||||||
| %prep | %prep | ||||||
| %autosetup -p1 -n %{name}-%{commit} | %autosetup -p1 | ||||||
| 
 | 
 | ||||||
| rm -rf third_party | rm -r third_party | ||||||
| 
 | 
 | ||||||
| # Stolen from Gentoo | # 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 | ||||||
| @ -91,18 +85,18 @@ sed -i 's|SPIRV/GlslangToSpv.h|glslang/SPIRV/GlslangToSpv.h|' libshaderc_util/sr | |||||||
| %build | %build | ||||||
| # We disable the tests because they don't work with our unbundling of 3rd party. | # We disable the tests because they don't work with our unbundling of 3rd party. | ||||||
| # See https://github.com/google/shaderc/issues/470 | # See https://github.com/google/shaderc/issues/470 | ||||||
| %cmake3 -DCMAKE_BUILD_TYPE=RelWithDebInfo \ | %cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \ | ||||||
|         -DCMAKE_SKIP_RPATH=True \ |        -DCMAKE_SKIP_RPATH=True \ | ||||||
|         -DSHADERC_SKIP_TESTS=True \ |        -DSHADERC_SKIP_TESTS=True \ | ||||||
|         -DPYTHON_EXE=%{__python3} \ |        -DPYTHON_EXE=%{python3} \ | ||||||
|         -GNinja |        -GNinja | ||||||
| %cmake3_build | %cmake_build | ||||||
| 
 | 
 | ||||||
| %install | %install | ||||||
| %cmake3_install | %cmake_install | ||||||
| 
 | 
 | ||||||
| %check | %check | ||||||
| %ctest3 | %ctest | ||||||
| 
 | 
 | ||||||
| %files -n glslc | %files -n glslc | ||||||
| %doc glslc/README.asciidoc | %doc glslc/README.asciidoc | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sources
									
									
									
									
									
								
							| @ -1 +1 @@ | |||||||
| SHA512 (shaderc-d0b0222.tar.gz) = e9d91ca0ffdd66df457ad8f288f34bd0b3aa5b76e66320f0c38cb867db4cc0bc4419fe82b99826df116dd8398d6da39867dcac9c32c68596b09782faad120eab | SHA512 (shaderc-2023.3.tar.gz) = c6422383318b5d4d341e5b4215489ba03590aeff65fd03fb0b57aab8689c9002444f520a4017485645291777ee442979d22db52d843e66d4d672da2810b20e36 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user