Commit Graph

4652 Commits

Author SHA1 Message Date
Dennis Brakhane 90cc606456 dummy change 2025-07-31 18:55:07 +02:00
Dennis Brakhane 4e5b14c071 improve Ccache hit rate
Change the Ccache config so that it has a much higher hit rate
during compilation, see https://ccache.dev/manual/latest.html#_precompiled_headers
for details.

For Clang, always setting -fno-pch-timestamp seems to be ok, so no need
to special case this depending on whether or not Ccache is used.
2025-07-31 17:13:56 +02:00
Dennis Brakhane e750a0ceca make checks for SDL2 macro consistent (#1191)
Most of the code checks if the SDL2 macro is defined, but a few instances
checked if it was defined and truthy.

Make this consistent and only require the macro to be defined to be
considered.
2025-07-31 17:13:41 +02:00
Turánszki János 9d1f20720d character foot placement: fix the foot jerking at initial placement 2025-07-31 08:47:25 +02:00
Turánszki János 4add799975 IntersectsAll lua binding fix: empty table is returned when no results instead of nil 2025-07-30 17:23:38 +02:00
Dennis Brakhane f428e1a61b cmake: use precompiled headers (#1181) 2025-07-30 14:21:43 +02:00
Turánszki János ca6922063a Added IntersectsAll for scene (#1189) 2025-07-30 08:38:19 +02:00
Turánszki János 7ecd39dd6e Warning fixes and changes for Linux
- Disabled warnings as errors
- Using -Wall for specifying commonly used warnings
- Fixes for many warnings in the engine code
2025-07-29 19:59:53 +02:00
Dennis Brakhane 36d314d387 configure DXMath via compile defs when using CMake, F16C support for Jolt (#1187)
F16C and FMA were hardcoded into wiMath.h, which conflicts with how CMake
does things. Also those instructions were not used by Jolt in VS because it
expects a similar define to _XM_F16C_INTRINSIC, and only CMake defined
those flags.

This commit causes CMake to set the corresponding DXMath flags, VS
builds will still use the hardcoded #defines.

The VS solution was modified to always define JPH_USE_{F16C,FMADD}
so that Jolt will also use those instructions if possible.
AVX flags are not explicitly set because both Jolt and DXMath set
it implicitly if __AVX__ is defined, which is the case when compiling with /arch:AVX.

Also disable AVX2 by default to be consistent with the VS build.
2025-07-29 15:50:09 +02:00
Dennis Brakhane 9440c568d4 cmake: add option to use symlinking instead of copying (#1185)
Windows only supports symlinking as admin or in developer mode.
This commit adds a cmake flag to use symlinking instead of copying.
When enabled, it will check for support and output a hint to enable
developer mode when it fails.

By default, it is disabled on Windows, and enabled otherwise.
2025-07-28 11:36:45 +02:00
Dennis Brakhane 80d51ac8a6 cmake: add support for unity builds (#1186) 2025-07-28 09:02:49 +02:00
Turánszki János eb07171ba9 character controller improvements: movement independent from turning, movement during jump, state handling improvement, anim loading simplification 2025-07-27 10:58:32 +02:00
Turánszki János 496fa99c92 prefer forward slashes in places where filename will be given to user and saved 2025-07-26 14:14:00 +02:00
Turánszki János 45c758203c linux filedialog fix 2025-07-26 13:23:13 +02:00
Turánszki János 96c302e3a8 paused anim timer scrolling fix 2025-07-26 12:21:05 +02:00
Turánszki János c392f53097 added filedialog multiselect 2025-07-26 12:04:34 +02:00
Turánszki János 3446829b4c fbx importer: improvement for mixamo animation name 2025-07-26 11:19:02 +02:00
Turánszki János d2391eac22 character controller: handle the case when dialog file was not found without crashing 2025-07-25 08:23:46 +02:00
Turánszki János 566b2490be enabled avx (#1184) 2025-07-24 08:36:31 +02:00
Turánszki János 14a6cb6816 limb spacing (#1182) 2025-07-23 08:25:08 +02:00
Dennis Brakhane b9527bf60a gh actions: don't fail fast (#1183)
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.
2025-07-23 08:13:18 +02:00
Dennis Brakhane 0e876c3eae update dxcompiler to May 2025 Patch 1 (#1179)
Just a regular bugfix release.

This doesn't include the fix for https://github.com/microsoft/DirectXShaderCompiler/issues/7493,
that one will probably only be fixed in the next full release.

Patch notes: https://github.com/microsoft/DirectXShaderCompiler/releases/tag/v1.8.2505.1

Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
2025-07-21 08:43:52 +02:00
Dennis Brakhane 261f90afbc show FMA3 and F16C flags when XMVerifyCPUSupport fails (#1180)
Those are required, but not supported by older processors
that do support AVX. Omitting these flags in the output
can be confusing, since every required feature seems
to be supported.

Closes #1178
2025-07-21 08:43:12 +02:00
Turánszki János 30fd382261 unified stochastic/MSAA/dithered transparency between object, hairparticle and impostors 2025-07-19 10:56:17 +02:00
Dennis Brakhane 9c6dd74a09 update json.hpp to 3.12.0 (#1177)
this gets rid of warnings on clang, all changes are
backwards-compatible.
2025-07-19 09:31:37 +02:00
Turánszki János 6e3c57ff33 added multiple animation import for character and animation tester and Mixamo resetpose fix (#1176) 2025-07-18 08:24:45 +02:00
Dennis Brakhane 1ab37777d3 cmake: symlink Content instead of copying (#1162) 2025-07-18 07:55:44 +02:00
Turánszki János 6b6d8abdfd editor retarget animation: reset pose before retarget to avoid mistake of retargeting while in a different pose 2025-07-17 09:12:26 +02:00
Dennis Brakhane ab79802f30 stb files: update to latest version (#1172)
* stb_image: v2.27 -> v2.30

  2.30  (2024-05-31) avoid erroneous gcc warning
  2.29  (2023-05-xx) optimizations
  2.28  (2023-01-29) many error fixes, security errors, just tons of stuff

* stb_truetype: v1.25 -> v1.26

  1.26 (2021-08-28) fix broken rasterizer
2025-07-17 08:05:57 +02:00
Dennis Brakhane 4acc10d3cc github build: fix ccache not being updated, limit size (#1173)
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)
2025-07-17 08:05:23 +02:00
Turánszki János 40d399195a ps5 fix 2025-07-16 09:41:04 +02:00
Turánszki János 0529b15e02 shadow border clamp fix 2025-07-16 08:16:42 +02:00
Dennis Brakhane 942df9e399 lua: update to 5.4.8 (#1171) 2025-07-15 08:32:08 +02:00
Dennis Brakhane f59bd4f9a9 github builds: on linux, compile PRs with clang as well (#1170)
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
2025-07-14 14:01:27 +02:00
Turánszki János 4ec7c94631 lightmap render memalloc improvement, bistro crashfix 2025-07-14 09:07:20 +02:00
Dennis Brakhane ae83bddd9b clang: remove "unknown warning group" warning (#1169)
clang also defines __GNUC__. Whoops
2025-07-14 08:19:28 +02:00
Dennis Brakhane 9efa9ddcfc cmake: add build flags for using AVX2 etc., work around GCC bug (#1167)
* cmake: work around GCC bug when compiling Jolt

* cmake: add build flags for using AVX2 etc.

On linux, AVX2 was used by default for compiling Jolt,
buy not in other parts, which clang doesn't like
(specifically inlining functions using a disabled instruction set)

So now, we just define some compile time options to enable/disable
AVX2, AVX, AVX512 etc. and make the compiler use the code for
everything, not just Jolt. By default, AVX2 is used.

Furthermore, the CMakeLists files were slightly refactored to be
a bit less messy.

* silence GCC warnings

* fix clang build on window

* disable another gcc warning-turned-error

* spring initialization fix

* size_t initializaed to 0 instead of -1

* remove initialization

---------

Co-authored-by: Turánszki János <turanszkij@users.noreply.github.com>
Co-authored-by: Turánszki János <turanszkij@gmail.com>
2025-07-13 16:24:39 +02:00
Dennis Brakhane 6cc524068e prevent clang warning (#1168) 2025-07-13 15:35:40 +02:00
Turánszki János 85b82f51b3 editor: custom theme sorting by name 2025-07-13 07:08:58 +02:00
Dennis Brakhane 6e4ca467bd force enum to uint32_t for all compilers via enum-base (#1166)
Some clang versions seem to use int32 for enums unless
explicitly overridden.

Use `enum : uint32_t` will force the type in a compatible
way, this also allows us to get rid of the dummy FORCE_UINT32 enum
members

This also fixes a bug in minimp4 when compiled with clang.
2025-07-13 06:55:14 +02:00
Turánszki János 7e0d2f807e fix for application exe cutomization on linux (#1164) 2025-07-12 10:00:35 +02:00
Turánszki János 5bbcbf5005 vulkan layout lifetime extender (delayed pipeline hotreload crash fix) 2025-07-12 08:55:05 +02:00
Dennis Brakhane c36f75063a gltf import: check that all required extensions are supported, update tiny_gltf.h to v2.9.6 (#1161)
* gltf import: check that we support all required extensions

* gltf import: update tiny_gltf to v2.9.6
2025-07-12 08:01:26 +02:00
Turánszki János e9f8647f0f re-added custom dxva.h 2025-07-11 20:30:01 +02:00
Dennis Brakhane 5309d10d86 cmake: don't build zstd.c (#1160)
it's built in utility_common.cpp
2025-07-11 20:15:28 +02:00
Dennis Brakhane c497fbd8ce update gitignore (#1159) 2025-07-11 07:45:20 +02:00
Turánszki János 15c22fd666 Wave effect, AMD lightmap fix and other updates (#1156) 2025-07-10 17:40:57 +02:00
Dennis Brakhane 4028d250e7 gltf import: fix light import (#1158)
The importer assumed that each light was only referenced once and in
the order it appears in the KHR_lights_punctual extension.

However, glTF allows a light to be referenced by more than one node,
and in different order. This commit adds support for this.
2025-07-10 17:16:37 +02:00
Turánszki János d0941c07ef path tracing AMD fix 2025-07-10 15:20:54 +02:00
Turánszki János eefd663a64 camera window fix 2025-07-10 14:48:23 +02:00