Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/KhronosGroup/SPIRV-Tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-05Switch SPIRV-Tools to use spirv.hpp11 internally (#4981)alan-baker
Fixes #4960 * Switches to using enum classes with an underlying type to avoid undefined behaviour
2022-10-27Revert "test" (#4974)Nathan Gauër
This reverts commit da215f10c991675b9c1ecb7eef2378e23b2d1276.
2022-10-26testNathan Gauër
2022-09-02Support building on OpenBSD (#4912)Brad Smith
2022-09-02build: cmake: Add support for GNU/Hurd (#4895)Samuel Thibault
2022-01-11Disable a codepage warning on non-English OS (#4668)Minmin Gong
2021-10-29Make cxx exceptions controllable (#4591)timlyeee
* Make cxx exceptions controllable Found a possible link error if we compile spirv-tools by using VS2019 and link with VS2017 for another project, unresolved symbols as _CxxFrameHandler4 and __GSHandlerCheck_EH4 will be thrown. As Visual Studio updated its c++ exceptions libs. https://devblogs.microsoft.com/cppblog/making-cpp-exception-handling-smaller-x64/ So we are making cxx exceptions controllable via a CMake option `ENABLE_EXCEPTIONS_ON_MSVC`.
2021-09-03Adjust build for fuzzer targets to support OSS-Fuzz (#4498)Alastair Donaldson
With OSS-Fuzz, the build system should not directly set options such as -fsanitize=fuzzer. Instead, these are set by OSS-Fuzz, and linker options are provided via the LIB_FUZZER_OPTIONS environment variable. This change allows the fuzzers to be build stand-alone, outside of OSS-Fuzz, in the way that was already supported, as well as inside OSS-Fuzz, when the LIB_FUZZER_OPTIONS environment variable is set.
2021-08-30Only add `-DSPIRV_CHECK_CONTEXT` for Debug builds (#4496)Lei Zhang
2021-08-05Add CMake rules for libFuzzer targets (#4445)Alastair Donaldson
Adds CMake rules for the libFuzzer targets, with a view to running them on OSS-Fuzz. Fixes #4448.
2021-07-16CMake: add ENABLE_RTTI option (#4382)Chia-I Wu
Fixes $ CXX=clang++ cmake -H. -Bout -DSPIRV_USE_SANITIZER=vptr $ make -C out ... clang: error: invalid argument '-fsanitize=vptr' not allowed with '-fno-rtti'
2021-06-29Enabled tvOS platform (#4329)Assiduous
2020-10-29CMake: Add SPIRV_TOOLS_BUILD_STATIC flag (#3910)Ben Clayton
If enabled the following targets will be created: * `${SPIRV_TOOLS}-static` - `STATIC` library. Has full public symbol visibility. * `${SPIRV_TOOLS}-shared` - `SHARED` library. Has default-hidden symbol visibility. * `${SPIRV_TOOLS}` - will alias to one of above, based on BUILD_SHARED_LIBS. If disabled the following targets will be created: * `${SPIRV_TOOLS}` - either `STATIC` or `SHARED` based on the new `SPIRV_TOOLS_LIBRARY_TYPE` flag. Has full public symbol visibility. * `${SPIRV_TOOLS}-shared` - `SHARED` library. Has default-hidden symbol visibility. Defaults to `ON`, matching existing build behavior. This flag can be used by package maintainers to ensure that all libraries are built as shared objects.
2020-09-09Improve spirv-fuzz CMake code (#3781)Paul Thomson
This change improves spirv-fuzz CMake code to be more compatible with other projects that might want to include spirv-fuzz as a sub-project. * Add a CMake option for building spirv-fuzz. * We now check if protobuf targets are already available. * We no longer specify `-DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_USE_UNALIGNED=0`; a newer version of protobuf does not require this. Note that we probably should have specified this for protobuf targets as well, but this is no longer needed. * Updated protobuf version in Kokoro scripts and README.md.
2020-05-19allow cross compiling for Windows Store, UWP, etc. (#3330)Vladimir Davidovich
for more info see https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-windows-store
2020-04-09Fix pch macro to ignore clang-cl (#3283)Malacath-92
2020-02-20Fix static libraries linking order (#3189)Danilo Spinella
Fix #1569
2019-11-27build: cmake: Add support for Fuchsia. (#3062)David Turner
This small patch adds support for the Fuchsia operating system to the CMakeLists.txt file and source/print.cpp, the only source file that contains platform-specific code. This should not change the build for other platforms. To use it, one needs a Fuchsia-specific CMake toolchain file, as in: mkdir build-fuchsia && cd build-fuchsia cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/fuchsia-toolchain.cmake make -j8
2019-11-22Respect CMAKE_INSTALL_LIBDIR in installed CMake files (#3054)Matt Turner
Fixes #3017
2019-11-19Convert stderr and stdout in status to strings on assignment (#3049)Ryan Harrison
This avoids Python2 vs Python3 issues related to how we decode bytes later on in the tests. Switching over to using unittest instead of nosetest
2019-11-01Add iOS as a supported platform (#3001)Steven Perron
* Add iOS as a supported platform Treating it the same as Darwin. Fixes #2994. * Add iOS specific macro.
2019-10-17Improved CMake install step. (#2963)Aaron Barany
Added exports for libraries. External libraries that themselves use libraries require all dependencies have exports, so not having exports can cause major problems when used within other projects. Install paths for exports are now placed in the proper directories expected by Windows and *nix systems. Config files are generated as well, which should work with CMake's find_package() function once installed.
2019-10-09CMake: Add support for building with emscripten (#2948)Corentin Wallez
2019-08-07Add -fextra-semi to Clang builds (#2787)Ryan Harrison
This will catch instances on the bots where PRs introduce unneeded semi-colons, which are going to cause downstream users problems. Fixes #2781
2019-05-24Remove MarkV and Stats code. (#2576)dan sinclair
* Remove MarkV and Stats code. This Cl removes the MarkV and Stats code from SPIRV-Tools. This code was unused and currently un-maintained.
2019-04-12SPIRV-Tools requires python3 (#2510)David Neto
Updates: - CMake configuration - Kokoro build scripts on Linux and macos (Windows already uses Python 3.6)
2019-04-11Add -fsantize to link flags. (#2506)Steven Perron
The option "SPIRV_USE_SANITIZER=address" does not work as stated in our documentation because the link step fails for the tools. We have to add -fsanitize to the link flags so the correct libraries are added on the link step. Fixes https://github.com/KhronosGroup/SPIRV-Tools/issues/2482.
2019-03-06Fix python scripts to work with python3 (#2426)Steven Perron
Updated script to work with python3 and python2. Added required tools. We added a section to the readme to mention the tools that are needed to build and test spirv-tools. For the compiler, the compilers used by the bots are mentioned. The bots have been changed. The windows bots will not use python 3.6 for testing. The other bots will still use python 2.7. Both Python2 and Python3 will be tested. Fixes #2407. Fixes #1856.
2019-02-22Non memory object as parameters. (#2415)Steven Perron
In relaxed addressing mode, we want to accept non memory objects because this is a very natural translation of hlsl. It should be fixed by legalization by inlining the calls.
2018-11-23Add cmake option to turn off SPIRV_TIMER_ENABLED (#2103)Baldur Karlsson
2018-11-08Add base and core bindless validation instrumentation classes (#2014)greg-lunarg
* Add base and core bindless validation instrumentation classes * Fix formatting. * Few more formatting fixes * Fix build failure * More build fixes * Need to call non-const functions in order. Specifically, these are functions which call TakeNextId(). These need to be called in a specific order to guarantee that tests which do exact compares will work across all platforms. c++ pretty much does not guarantee order of evaluation of operands, so any such functions need to be called separately in individual statements to guarantee order. * More ordering. * And more ordering. * And more formatting. * Attempt to fix NDK build * Another attempt to address NDK build problem. * One more attempt at NDK build failure * Add instrument.hpp to BUILD.gn * Some name improvement in instrument.hpp * Change all types in instrument.hpp to int. * Improve documentation in instrument.hpp * Format fixes * Comment clean up in instrument.hpp * imageInst -> image_inst * Fix GetLabel() issue.
2018-11-07Rename PCH macro to spvtools_pch to avoid conflicts with other projects. ↵Jeff Bolz
Also add pch to test/opt. (#2034)
2018-11-06Enable precompiled headers for spirv-tools(-shared) and some unit tests (#2026)Jeff Bolz
2018-10-19Increase the template nesting depth for clang. (#1995)Steven Perron
We started hitting this limit, so increaseing from 256 to 1024. Fixes #1994.
2018-10-04Make EFFCEE required (#1943)Steven Perron
Fixes #1912. Remove the non-effcee build as EFFCEE is now required.
2018-09-27Set the C++ version to C++11 (#1933)alan-baker
This reverts commit bfcdc913c4184430e4fca6923683c62723bf5956.
2018-08-17Add testing framework for tools.Diego Novillo
This forks the testing harness from https://github.com/google/shaderc to allow testing CLI tools. New features needed for SPIRV-Tools include: 1- A new PlaceHolder subclass for spirv shaders. This place holder calls spirv-as to convert assembly input into SPIRV bytecode. This is required for most tools in SPIRV-Tools. 2- A minimal testing file for testing basic functionality of spirv-opt. Add tests for all flags in spirv-opt. 1. Adds tests to check that known flags match the names that each pass advertises. 2. Adds tests to check that -O, -Os and --legalize-hlsl schedule the expected passes. 3. Adds more functionality to Expect classes to support regular expression matching on stderr. 4. Add checks for integer arguments to optimization flags. 5. Fixes #1817 by modifying the parsing of integer arguments in flags that take them. 6. Fixes -Oconfig file parsing (#1778). It reads every line of the file into a string and then parses that string by tokenizing every group of characters between whitespaces (using the standard cin reading operator). This mimics shell command-line parsing, but it does not support quoting (and I'm not planning to).
2018-08-07When clang is used as a MSVC frontend (clang-cl.exe) it does not behave ↵shartte
exactly as GCC would. I.e. -Wall translates to /Wall, which is an alias for -Weverything. This causes massive C++98 compat warnings logspam. (#1808)
2018-08-03Cleanup includes. (#1795)dan sinclair
This Cl cleans up the include paths to be relative to the top level directory. Various include-what-you-use fixes have been added.
2018-08-03Fixup Wno-self-assign warning (#1796)dan sinclair
The warning should only be applied for Clang builds, it was accidentally also being included for GCC builds.
2018-07-19Don't check exports on DarwinDavid Neto
Android NDK build machines for OSX don't seem to have objdump.
2018-07-11Move validation files to val/ directory (#1692)dan sinclair
This CL moves the various validate files into the val/ directory with the rest of the validation infrastructure. This matches how opt/ is setup with the passes with the infrastructure.
2018-07-04Let symbol export tests respect SPIRV_SKIP_TESTSLei Zhang
2018-06-28check_symbol_exports on Python3, MacGreg Roth
subprocess.Popen returns byte data by default. Python2 was happy to try to execute string operations on such data and hope for the best, but python3 is more persnickety. Luckily, there's a simple way to indicate to the Popen class that text data is wanted that benefits the script. Just specifying universal_newlines will cause the returned data to be text and also convert any system-specific newlines to '\n' which the script relies on anyway. Enabled on Mac as an incidental change after confirming that the script works there just as well as it does on Linux. It probably works on FreeBSD too, but I retired my BSD system years ago. So I have no way to check. Don't run it on Windows. - It didn't work after all. It was just detecting non-posix and returning success.
2018-06-21Setup gclient and presubmit file.dan sinclair
This CL adds the necessary files to use gclient and the depot_tools with the SPIRV-Tools directory. This allows doing things like `git cl format` to format code pre-upload and `git cl presubmit -uf` to run presubmit checks over the code. The dependencies are all added to the DEPS file and will be auto-downloaded. They are all pin'd to specific revisions so everyone has the same checkout. Clang is included in the checkout so it will be consistent over usages. Use clang-format
2018-03-21Add --time-report to spirv-optJaebaek Seo
This patch adds a new option --time-report to spirv-opt. For each pass executed by spirv-opt, the flag prints resource utilization for the pass (CPU time, wall time, RSS and page faults) This fixes issue #1378
2018-02-15Invoke cmake via CMAKE_COMMAND variableDavid Neto
Need to do this in case cmake is not on the path. This should fix the Android NDK build, as in when building the NDK itself.
2018-02-09Do not hardcode libdir and includedir in pkg config filesJózef Kucia
2018-02-07Build SPIRV-Tools as shared libraryJózef Kucia
Add pkg-config file for shared libraries Properly build SPIRV-Tools DLL Test C interface with shared library Set PATH to shared library file for c_interface_shared test Otherwise, the test won't find SPIRV-Tools-shared.dll. Do not use private functions when testing with shared library Make all symbols hidden by default for shared library target
2018-01-12Adding ostream operators for IR structuresAlan Baker
* Added for Instruction, BasicBlock, Function and Module * Uses new disassembly functionality that can disassemble individual instructions * For debug use only (no caching is done) * Each output converts module to binary, parses and outputs an individual instruction * Added a test for whole module output * Disabling Microsoft checked iterator warnings * Updated check_copyright.py to accept 2018