Fixes#854. But, only good if we are not trying to use the same
texture for both shadow and non-shadow constructors.
Force the type of the texture to have 'shadow' set when it is
constructed with a samplerShadow.
Includes the following:
Add Vulkan 1.1 capability sets
Don't merge types of resources
Remove stores of undef.
Make sure the constant folder get the correct type.
This is one step in providing full linker functionality for creating
correct SPIR-V from multiple compilation units for the same stage.
(This was the only remaining "hard" part. The rest should be simple.)
More recent NDK releases have their own CMake toolchain file.
Use it.
Also, download the NDK from github.com:dneto0/android-ndk.
That is a fork of the repo we used to use, but we have more
control over how long it stays stable.
The Travis-CI bot downloads a copy of the Android NDK. The source
we get it from recently updated to Android NDK r17b. However,
the android.toolchain.cmake file does not know how to parse the
Android native API level from that version of the NDK. So check
out the NDK r13b version that we were using until yesterday.
Fixes#1439
This is totally optional, but lets people build this repo with
ccache to improve rebuild speeds. It also can help a great deal
on ccache-enabled CI systems like Travis-CI. We build fixed
revisions of glslang a lot on Travis, so this will be a big help
with CI machine loading.
When constructing a matrix from another matrix with smaller dimensions,
there's no need to extract the scalars out of columns and rebuild the
resulting matrix from scalars - instead, we can just construct shorter
vectors with OpShuffle and combine them to the final result.
This keeps the common casts such as mat3(mat4) in vector registers,
which may improve performance for some GPUs, and cleans up output of
translation tools like SPIRV-Cross.
Fixes#1412.
These introduce limited support for 8/16-bit types such that they can only be accessed in buffer memory and converted to/from 32-bit types.
Contributed from Khronos-internal work.
Constant.cpp will throw a floating point divide by zero if floating point exceptions are enabled in Win32 causing the program to crash. This fix manually checks the right-hand argument of the division and sets appropriate Infinity, Negative Infinity, or NAN as if the floating point exceptions were disabled.