commit | 4a85632e1372809a84fbdfcf6cbbc87d1159b396 | [log] [tgz] |
---|---|---|
author | dan sinclair <dsinclair@google.com> | Tue Dec 17 12:49:22 2019 -0500 |
committer | GitHub <noreply@github.com> | Tue Dec 17 12:49:22 2019 -0500 |
tree | 510ac3deb3054fe2262416d3c831e589295863d5 | |
parent | 5ea7f38daf61d88010a0d099a4287885aa4dbd93 [diff] |
Rolling 6 dependencies (#758) Roll third_party/clspv/ b60b1fcd0..ae7cff6ee (1 commit) https://github.com/google/clspv/compare/b60b1fcd0abb...ae7cff6ee4b5 $ git log b60b1fcd0..ae7cff6ee --date=short --no-merges --format='%ad %ae %s' 2019-12-16 alanbaker Updates deps (#469) Roll third_party/clspv-llvm/ 079ef783d..4becf68c6 (110 commits) https://github.com/llvm/llvm-project/compare/079ef783dd55...4becf68c6f17 $ git log 079ef783d..4becf68c6 --date=short --no-merges --format='%ad %ae %s' 2019-12-04 gabor.marton [ASTImporter] Friend class decl should not be visible in its context 2019-12-17 teemperor [lldb][NFC] Allow creating ClangExpressionDeclMap and ClangASTSource without a Target and add basic unit test 2019-12-17 alexander.timofeev PostRA Machine Sink should take care of COPY defining register that is a sub-register by another COPY source operand 2019-12-17 jonathanchesterfield [libomptarget][nfc] Move omp locks under target_impl 2019-12-17 jh7370 [DebugInfo] Only print a single blank line after an empty line table 2019-12-17 mikhail.maltsev [libcxx] Fix include paths in fuzzing/partial_sort.pass.cpp 2019-12-17 luismarques [RISCV][NFC] Trivial cleanup 2019-12-17 teemperor [lldb] Remove modern-type-lookup 2019-12-17 sven.vanhaastregt [OpenCL] Add ExtVectorElementExpr constant evaluation (PR42387) 2019-12-11 kristof.beyls Fix assertion failure in getMemOperandWithOffsetWidth 2019-12-12 thomasp [lit] Remove lit's REQUIRES-ANY directive 2019-12-17 teemperor [lldb][NFC] Remove all unnecessary includes for ClangASTSourceCommon.h 2019-12-16 pavel [lldb-vscode] Centrally skip debug info variants for vscode tests 2019-12-17 teemperor [lldb][NFC] Remove implementation of GetOriginalDecl and just call GetDeclOrigin instead 2019-12-17 teemperor [lldb] Add support for calling objc_direct methods from LLDB's expression evaluator. 2019-12-16 gchatelet Resubmit "[Alignment][NFC] Deprecate CreateMemCpy/CreateMemMove" 2019-12-17 russell.gallop Revert "[Support] Fix time trace multi threaded support with LLVM_ENABLE_THREADS=OFF" 2019-12-16 russell.gallop [Support] Fix time trace multi threaded support with LLVM_ENABLE_THREADS=OFF 2019-12-17 teemperor [ObjC][DWARF] Emit DW_AT_APPLE_objc_direct for methods marked as __attribute__((objc_direct)) 2019-12-14 maskray [ELF] Rename .plt to .iplt and decrease EM_PPC{,64} alignment of .glink to 4 2019-12-17 teemperor [lldb][NFC] Make clang-format happy by removing trailing space in ArchSpec.cpp 2019-12-13 martin [lit] [windows] Make sure to convert all path separators to backslashes in NT style \\?\... paths 2019-12-12 martin [MinGW] Implicitly add .exe suffix if not provided 2019-12-14 maskray [ELF] Add IpltSection 2019-12-11 ikudrin [sanitizer] Construct InternalMmapVector without memory allocation. 2019-12-16 ikudrin [MachO] Fix detecting malformed DWARF. 2019-12-17 teemperor [lldb] Fix unused variable warning in ThreadPlanStepRange.cpp 2019-12-16 craig.topper [LegalizeTypes] Pre-size the SmallVectors in ScalarizeVecRes_StrictFPOp and SplitVecRes_StrictFPOp so we don't have to call push_back. NFCI 2019-12-16 craig.topper [LegalizeTypes] Remove ScalarizeVecRes_STRICT_FP_ROUND in favor of just using ScalarizeVecRes_StrictFPOp. NFCI 2019-12-16 craig.topper [LegalizeTypes] Remove the call to SplitVecRes_UnaryOp from SplitVecRes_StrictFPOp. NFCI 2019-12-16 maskray [MC] Delete redundant alignment update from MCELFStreamer::EmitCommonSymbol. NFC 2019-12-17 qshanz [NFC][Test][PowerPC] Add the test to verify the mask with constant 2019-12-17 llvmgnsyncbot gn build: Merge ec4749e3b8d 2019-12-17 whitneyt Revert "[LoopUtils] Updated deleteDeadLoop() to handle loop nest." 2019-12-16 johannes [Attributor][NFC] Clang format the Attributor 2019-12-16 richard Check whether the destination is a complete type in a static_cast (or C-style cast) to an enumeration type. 2019-12-17 jonathanchesterfield [libomptarget][nfc] Move timer functions behind target_impl 2019-12-16 jingham Explicitly specify -std=c++11 and include <mutex> and <condition_variable>. 2019-12-16 craig.topper [SelectionDAG] Add the fpexcept flag to the SelectionDAG dumping output so we can better see when its not propagating. 2019-12-16 richard [c++20] P1959R0: Remove support for std::*_equality. 2019-12-16 richard If constant evaluation fails due to an unspecified pointer comparison, produce a note saying that rather than the default "evaluation failed" note. 2019-12-16 richard [c++20] Add deprecation warnings for the expression forms deprecated by P1120R0. 2019-12-16 jingham Run all threads when extending a next range over a call. 2019-12-17 jonathanchesterfield [libomptarget][nfc] Wrap cuda min() in target_impl 2019-12-17 llvmgnsyncbot gn build: Merge c066ff11d84 2019-12-17 whitneyt [LoopUtils] Updated deleteDeadLoop() to handle loop nest. 2019-12-17 whitneyt [LoopUtils] Updated deleteDeadLoop() to handle loop nest. 2019-12-16 get [llvm/runtimes] Add runtimes as a dependency of clang-bootstrap-deps 2019-12-16 dan Change `asan/TestCases/Darwin/malloc_zone-protected.cpp` to call abort so that it **always crashes**. 2019-12-16 get [llvm] Add llvm-lipo dependency to runtimes (...) 2019-12-16 craig.topper [X86] Add x86 triple to command line in mxcsr-reg-usage.ll 2019-12-16 eric Add default initialization to compressed_pair. 2019-12-16 erich.keane Revert "[NFC-I] Remove hack for fp-classification builtins" 2019-12-16 v.churavy git-llvm: Add option to push to Github with SSH 2019-12-13 danilo.carvalho.grael [AArch64][SVE] Add patterns for logical immediate operations. 2019-12-12 julian.lettner [TSan][Darwin] Avoid calling pthread_self() before libpthread is initialized 2019-12-16 rjmccall Fix a bug in the property-based serialization of dependent template names. 2019-12-16 erich.keane [NFC-I] Remove hack for fp-classification builtins 2019-12-16 kbarton [LoopFusion] Restrict loop fusion to rotated loops. 2019-12-16 craig.topper [InstCombine] Teach removeBitcastsFromLoadStoreOnMinMax not to change the size of a store. 2019-12-13 tlively [WebAssembly] Replace SIMD int min/max builtins with patterns 2019-12-16 thakis Only run mangled_names.test if python3 is available. 2019-12-16 maskray [ELF] Delete unused declaration addIRelativeRelocs after D65995. NFC 2019-12-14 maskray [ELF] Delete relOff from TargetInfo::writePLT 2019-12-16 maskray [ELF] De-template PltSection::addEntry. NFC 2019-12-16 thakis gn build: (manually) merge c82e4ef69 2019-12-16 a.bataev [OPENMP][DOCS]Claim simd nontemporal clause, NFC. 2019-12-16 rjmccall Forward {read,write}SomeEnumType to {read,write}Enum instead of directly to {read,write}UInt32. 2019-12-16 rjmccall Use property-based serialization for TemplateArgument. 2019-12-16 rjmccall Add Optional::map. 2019-12-16 rjmccall Use property-based serialization for TemplateName. 2019-12-16 rjmccall Add the ability for properties to be conditional on other properties. 2019-12-16 rjmccall Add the ability to declare helper variables when reading properties from a value. 2019-12-16 rjmccall Use property-based serialization for DeclarationName. 2019-12-16 rjmccall Add the ability to use property-based serialization for "cased" types. 2019-12-15 rjmccall Replace tabs with spaces. 2019-12-15 rjmccall Move Basic{Reader,Writer} emission into ASTPropsEmitter; NFC. 2019-12-15 rjmccall Always -I clang/include when tblgen'ing in Clang. 2019-12-16 a.bataev [OPENMP][DOCS]Mark if clause on simd done, NFC. 2019-12-16 a.bataev [OPENMP50]Add if clause in target teams idistribute simd directive. 2019-02-25 julian.lettner [lit] max_failures does not need to be stored in LitConfig 2019-12-16 sam.mccall Revert "[clangd] Reapply b60896fad926 Fall back to selecting token-before-cursor if token-after-cursor fails." 2019-12-13 paulsson [SystemZ] Improve verification of MachineOperands. 2019-12-16 stevenwu [llvm-cxxfilt] Correctly demangle COFF import thunk 2019-11-04 tejohnson [TLI] Support for per-Function TLI that overrides available libfuncs 2019-12-16 aaron Fixing a -Wcovered-switch diagnostic and changing tabs to spaces; NFC. 2019-12-16 selliott [libunwind][RISCV] Add 64-bit RISC-V support 2019-10-28 dag [Bugpoint] Do not create illegal function attribute combos 2019-12-16 jonathanchesterfield Revert "Revert "[libomptarget] Move resource id functions into target specific code, implement for amdgcn"" 2019-12-16 Milos.Stojanovic [mips] Add an assert in getTargetStreamer() 2019-12-16 llvmgnsyncbot gn build: Merge 0add79aec2e 2019-12-16 Milos.Stojanovic [llvm-exegesis][mips] Add SnippetGeneratorTest unit test 2019-12-16 a.bataev [OPENMP50]Add if clause in target teams distribute parallel for simd directive. 2019-12-16 erich.keane Fix floating point builtins to not promote float->double 2019-12-16 ulrich.weigand [clang][SystemZ] Add support for -march=native 2019-12-16 sam.mccall [clangd] Reapply b60896fad926 Fall back to selecting token-before-cursor if token-after-cursor fails. 2019-12-16 sam.mccall Revert "[clangd] Reapply b60896fad926 Fall back to selecting token-before-cursor if token-after-cursor fails." 2019-12-16 sam.mccall [clangd] Reapply b60896fad926 Fall back to selecting token-before-cursor if token-after-cursor fails. 2019-12-16 sam.mccall [clangd] Make Tweak::Selection movable. NFC 2019-12-16 aaron Silence an MSVC "not all control paths" diagnostic; NFC. Roll third_party/googletest/ 5b162a79d..d166e0948 (2 commits) https://github.com/google/googletest/compare/5b162a79d49d...d166e0948384 $ git log 5b162a79d..d166e0948 --date=short --no-merges --format='%ad %ae %s' 2019-12-16 krzysio Googletest export 2019-11-22 krystian.kuzniarek remove stale comments about older GCC versions Roll third_party/shaderc/ 979ad21e8..4399459c1 (3 commits) https://github.com/google/shaderc/compare/979ad21e8422...4399459c1920 $ git log 979ad21e8..4399459c1 --date=short --no-merges --format='%ad %ae %s' 2019-12-16 rharrison Rolling 4 dependencies (#942) 2019-12-16 rharrison Replace callback interface with data one for combined image samplers (#938) 2019-12-16 rharrison Convert enum from BLOCK_STYLE to snake_style (#940) Roll third_party/spirv-tools/ 96354f504..38d7fbaad (2 commits) https://github.com/KhronosGroup/SPIRV-Tools/compare/96354f5047bf...38d7fbaad0a3 $ git log 96354f504..38d7fbaad --date=short --no-merges --format='%ad %ae %s' 2019-12-16 afdx spirv-fuzz: Transformations to add types, constants and variables (#3101) 2019-12-16 greg Make Instrumentation format version 2 the default (Step 1) (#3096) Roll third_party/swiftshader/ fbbfeb700..24c49ddde (1 commit) https://swiftshader.googlesource.com/SwiftShader.git/+log/fbbfeb700295..24c49ddde89c $ git log fbbfeb700..24c49ddde --date=short --no-merges --format='%ad %ae %s' 2019-12-13 sugoi R11G11B10F support Created with: roll-dep third_party/clspv third_party/clspv-llvm third_party/dxc third_party/glslang third_party/googletest third_party/lodepng third_party/shaderc third_party/spirv-headers third_party/spirv-tools third_party/swiftshader third_party/vulkan-headers third_party/vulkan-loader third_party/vulkan-validationlayers
Amber is a multi-API shader test framework.
Amber lets you capture and communicate shader bugs with the fluidity and ease of a scripting flow:
Amber is influenced by Talvos and VkRunner. The VkScript syntax matches the format used by VkRunner.
This is not an officially supported Google product.
Working with Amber involves writing input test files. Some example files can be see in the tests/cases folder.
The main input format is Amberscript. New features are added to AmberScript as Amber is enhanced. This is the preferred format in which new script files are written.
SHADER vertex vtex_shader PASSTHROUGH SHADER fragment frag_shader GLSL #version 430 layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; void main() { color_out = color_in; } END BUFFER img_buf FORMAT B8G8R8A8_UNORM PIPELINE graphics my_pipeline ATTACH vtex_shader ATTACH frag_shader FRAMEBUFFER_SIZE 256 256 BIND BUFFER img_buf AS color LOCATION 0 END CLEAR my_pipeline EXPECT img_buf IDX 0 0 SIZE 256 256 EQ_RGBA 0 0 0 0
The VkScript format is supported for historic reasons. It is based off, and very closely matches, the format accepted by VkRunner. There are no new features being added to VkScript, it is for historical use.
[require] VK_KHR_get_physical_device_properties2 [vertex shader passthrough] [fragment shader] #version 430 layout(location = 0) in vec4 color_in; layout(location = 0) out vec4 color_out; void main() { color_out = color_in; } [test] clear relative probe rect rgba (0.0, 0.0, 1.0, 1.0) (0, 0, 0, 0)
git clone https://github.com/google/amber.git cd amber ./tools/git-sync-deps mkdir -p out/Debug cd out/Debug cmake -GNinja ../.. ninja
Alternatives:
-DAMBER_ENABLE_SHARED_CRT
. This will cause Amber to be built with /MD
for release builds or /MDd
for debug builds.ANDROID_PLATFORM
and ANDROID_BUILD_TOOL_VERSION
in tools/build-amber-sample.sh
.export ANDROID_SDK_HOME=path/to/Android/SDK
in your shell.export ANDROID_NDK_HOME=path/to/Android/NDK
in your shell.keytool
command and set up KEY_STORE_PATH
env variable for the KeyStore file path../tools/build-amber-sample.sh [build output directory path]
.It is possible to obtain a plain executable for Android, as opposed to an APK, with the following:
git clone https://github.com/google/amber.git cd amber ./tools/git-sync-deps ./tools/update_build_version.py . samples/ third_party/ ./tools/update_vk_wrappers.py . . mkdir build cd build mkdir app mkdir libs ${ANDROID_NDK_HOME}/ndk-build -C ../samples NDK_PROJECT_PATH=. NDK_LIBS_OUT=`pwd`/libs NDK_APP_OUT=`pwd`/app
The list of target ABIs can be configured in samples/jni/Application.mk
by editing the APP_ABI entry:
APP_ABI := arm64-v8a armeabi-v7a x86 x86_64
The resulting executable will be produced as build/app/local/<abi>/amber_ndk
. This executable can be run via the adb shell on your device, e.g. under /data/local/tmp
(/sdcard
is generally not suitable because it is mounted with a non-executable flag). Also, vulkan layers may not be available to this executable as it is not an app, so make sure to use the -d
flag to disable Vulkan layers:
adb push build/app/local/<abi>/amber_ndk /data/local/tmp adb shell # Now on device shell cd /data/local/tmp ./amber_ndk -d <shader-test-files>
The components which build up Amber can be enabled or disabled as needed. Any option with _SKIP_
in the name is on by default, any with _USE_
is off by default.
The available flags which can be defined are:
cmake -DAMBER_SKIP_TESTS=True -DAMBER_SKIP_SPIRV_TOOLS=True -GNinja ../..
DXC can be enabled in Amber by adding the -DAMBER_USE_DXC=true
flag when running cmake.
There are a number of build bots to verify Amber continues to compile and run on the various targets. Due to bot limitations, the integration tests are not being run on the bots, just the unit tests.
Amber is designed to run against different graphics APIs. Amber will build if no graphics API is found, but will only allow verifying the syntax of the amber script files.
Currently the Vulkan and Dawn graphics APIs are supported.
A Vulkan implementation is found by CMake in the following priority order:
If AMBER_USE_LOCAL_VULKAN
is enable the headers, loader and layers will be built locally and not found on the system.
If an enclosing CMake project includes the Vulkan-Headers CMake project, then headers will be picked up from there.
In this case the CMake variable Vulkan_LIBRARIES
can name the Vulkan library, or a default of vulkan
will be used.
If you have CMake 3.7 or later, then the Vulkan implementation will be found from a Vulkan SDK as published by LunarG.
Environment variables:
VULKAN_SDK
should point to the platform-specific SDK directory that contains the include
and lib
directories.VK_ICD_FILENAMES
should point to the ICD JSON file.VK_LAYER_PATH
should point to the explicit_layer.d folder.LD_LIBRARY_PATH
must contain the $VULKAN_SDK/lib/ folder for the validation libraries.export VULKAN_SDK=$HOME/vulkan-macos-1.1.85.0/macOS export VK_ICD_FILENAMES=$VULKAN_SDK/etc/vulkan/icd.d/MoltenVK_icd.json export VK_LAYER_PATH=$VULKAN_SDK/etc/vulkan/explicit_layer.d export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH
We assume you have built Dawn from source, and have access to both the source and build trees. To build a Dawn backend for Amber, set the following CMake variables when configuring Amber:
Dawn_INCLUDE_DIR
: The directory containing dawn/dawn_export.h
(in the source tree).Dawn_GEN_INCLUDE_DIR
: The directory containing generated header dawn/dawncpp.h
(in the build output tree).Dawn_LIBRARY_DIR
: The directory containing the dawn_native
library (in the build output tree).The build will generate an out/Debug/amber
executable which can be used to run amber scripts. The script can be used as out/Debug/amber <path to amber file>
. Where, currently, the amber file is in the VkScript format.
out/Debug/amber tests/cases/clear.amber
The sample app returns a value of 0 on success or non-zero on error. Any issues encountered should be displayed on the console.
By default, out/Debug/amber
supports saving the output image into ‘.png’ file. You can disable this by passing -DAMBER_SKIP_LODEPNG=true
to cmake.
The image_diff
program will also be created. This allows comparing two images using the Amber buffer comparison methods.
Please see the CONTRIBUTING and CODE_OF_CONDUCT files on how to contribute to Amber.
SwiftShader if installed it can be used by by exporting the VK_ICD_FILENAMES
environment variable and using it directly. If SwiftShader is not installed it can be built with Amber by setting AMBER_ENABLE_SWIFTSHADER
during the configure step of CMake.
mkdir out/sw cd out/sw cmake -GNinja -DAMBER_ENABLE_SWIFTSHADER=TRUE ../.. ninja export VK_ICD_FILENAMES=$PWD/Linux/vk_swiftshader_icd.json ./amber -d -V # Should see SwiftShader listed as device ./amber -d ../../tests/cases/clear.amber