Sanitizers added: address, undefined behaviour, thread
also rename WICKED_USE_{IPO,SYMLINKS} to WICKED_ENABLE_{IPO,SYMLINKS}
for consistency with the other options.
IPO/LTO increases link time significantly; we want PR checks to finish
as quickly as possible and we don't really care about the performance
of the result, so disable it.
Nightly builds will still use IPO
We set SHADERDUMP_ENABLED on wiRenderer depending on whether or not
wiShaderDump.h exists. This will cause a recompile if necessary, even
though normally the build system cannot see the has_includes.
Since the compiler flags are different, this will even work with CCache
in direct mode.
This commit also configures CCache to have better hit rate for
precompiled headers as well as re-enabling the (much faster) direct
mode.
by default, if any run of a matrix strategy fails, the others are
stopped immediately. In our case it means that if gcc fails, the
clang build will also fail, which is not what we want.
Change fail-fast to false so that if gcc fails, we can still see if
clang also fails or if it is a gcc specific problem or vice versa.
GitHub has the weird restriction that builders in a branch can only
access their own cache as well as the one from "master". Which means
PRs cannot use each others CCache. Therefore the master build was
also updating the cache.
This also means we'll have to compile clang there as well, just so that
the cache can get updated. As with the PR build, the resulting binaries
aren't packaged.
I've also fixed the name for the windows cache, build-pr was using
ccache-win, but build.yml was using win-ccache
This commit also reduces the maximum size to 500MiB, otherwise
the caches can become too big and get deleted by GitHub before they
can be used (the windows one was over 4GiB, and a new one
was created for every PR, quickly exceeding the 10 GB limit)
PR builds will be compiled with both GCC and Clang to more easily spot
errors.
There is still only one Linux artifact, the GCC one.
build.yml and build-nightly.yml will still only use GCC. The only
changes there are switching to ninja and adjusting the name of
the github cache to be consitent with build-pr.
Also the Windows CCache binary was updated to the latest version
* Update .editorconfig so my Emacs doesn't add tabs into the YAML files
anymore
* The UPX version in ubuntu doesn't use the NRV library and seems to be
a bit buggier. Furthermore, UPX is GPL and they allow an exception
only if the binary is compressed with the official build. The latter
is not really a problem, nobody will care, but the worse compression
and potential crashes are. So just use the official build for Linux.
Windows was already using it, but to keep it consistent with
UPX_VERSION we now also download it instead of using Chocolatey.
When a PR is updated while the build action hasn't finished yet,
the old action is not automatically cancelled. That build is of
very limited usefulness since its results will not be shown and
are not relevant anymore, so it just wastes resources.
This commit fixes that, now an older build will get cancelled.
- font renderer DPI scale change handling
- Editor: user fonts will be loaded from fonts folder, config.ini can override default font, removed yumin embedded font, added NotoSans CJK font to support Chinese, Janpanese and Korean characters with one file
* font renderer updates, text debug drawer;
editor: name visualizer;
github CI: vulkan sdk not required;
* cmake: vulkan sdk not required
* refactors
* lua binding for DrawDebugText()
* comment
* transparency sorting for debug texts;
font alphablend fix;
* softer debug text
0.60.50:
- Added procedural terrain generator (for now this is Editor only preview version)
- Added LOD (Level Of Detail) support
- Added LOD Generator to Editor (Mesh Window -> LOD Gen), uses the meshoptimizer library
- Editor can merge multiple objects now into one mesh (Mesh window -> Merge Selected)
- Ocean: added occlusion culling support to detect when ocean is occluded
- can skip planar reflection render for ocean
- can skip ocean simulation
- can skip ocean rendering
- CPU ray tracing optimization: TMin and TMax parameter
- can improve Ray-AABB and Ray-Triangle tests
- improves performance of third person character controller script
- other fixes
* dx12: abandoned shader reflection, added support for custom root signatures, removed dxcompiler dependency
* removed dll copies from build scripts
* update
* updates
* updates
* fix
* update
* update
* updates
* added custom root signatures to some passes
* fix
* updates
* comment fix
* allow shaders to not have root signatures, if they are part of a pipeline which has root signature for an other shader
* root signature optimizer
* batched descriptor null initializer
* shader updates
* update
* put the atmospheric sky update to async compute
* improved debug of root constant - push constant data size mismatch
* bitwise root param iteration
* added superluminal perf api
* performance api will be optional
* async updaterenderdata fixes
* fixes
* fixes
* occludee update
* raytraced reflection implementation with ray query instead of rt pipeline
* alwaysactive
* shadercompiler enable old d3dcompiler because why not, it's only loaded on demand now
* removed common sampler api
* root signature simplification
* fixes
* linear allocator fix
* push constants are now immediately set
* fixes
* version
* fix?
* improved descriptor allocator
* default sampler table reduction
* gpu sort lib push constants
* small update
* descriptor allocator safety
* shader compiler refactor
* some optimizations