1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-22 21:53:35 +00:00
Commit graph

5554 commits

Author SHA1 Message Date
bjorn 22906f4af9 WIP; 2024-07-12 17:15:26 -07:00
bjorn 47a9b82faf WIP; 2024-07-12 17:15:26 -07:00
bjorn 772ef08cae core/gpu uses returns for error handling; 2024-07-12 17:15:26 -07:00
bjorn 975a047736 WIP; 2024-07-12 17:15:26 -07:00
bjorn fcd3d305f7 WIP; 2024-07-12 17:15:26 -07:00
bjorn 76d0b2c986 WIP; 2024-07-12 17:15:26 -07:00
bjorn cbaf3818ec WIP; 2024-07-12 17:15:26 -07:00
bjorn 227dd16602 rm lovrDefer; 2024-07-12 17:15:26 -07:00
bjorn 246e7c83d6 Try using a RotatedTranslatedShape so capsule/cylinder face right way; 2024-07-10 17:28:45 -07:00
bjorn 8a3d7520e7 Make sure to adjust compound shape mass before retrieving new COM; 2024-07-10 17:00:36 -07:00
bjorn 03ad1d3469 Fix issue when adding shape with offset to collider with no shapes; 2024-07-10 16:44:02 -07:00
bjorn 48d98b09ac actions: use less deprecated actions; 2024-07-10 03:15:36 -07:00
bjorn e5659de0e6 actions: try using a matrix for ML2 APK; 2024-07-10 03:01:14 -07:00
bjorn 52b7dc56b7 Update Jolt; 2024-07-10 02:49:08 -07:00
bjorn 45f4a08385 Fix layer/level count for depth-stencil sample view; 2024-07-10 01:06:10 -07:00
bjorn 9bf2db1b85 Fix d24 texture stride;
It's stored as 4 bytes.
2024-07-10 00:59:04 -07:00
bjorn d290a2c64f Update changelog; 2024-07-10 00:55:17 -07:00
bjorn 733470228d Create depth-only view to sample from depthstencil textures;
In the future texture views could have an optional aspect in case people
want to use the stencil aspect, or combine multiple usages for the
different channels.
2024-07-10 00:53:48 -07:00
Bjorn 65dd1f6f31
Merge pull request #793 from xiejiangzhi/texture_d24
Add depth texture format d24
2024-07-09 23:55:49 -07:00
xiejiangzhi 3bd39cfff1 Add depth texture format d24 2024-07-10 14:45:34 +08:00
Bjorn 46b16b42b8
Merge pull request #791 from SfernandezML/dev
Adds in Magic Leap 2 support
2024-07-09 15:27:06 -07:00
SfernandezML 15b7285749
Update AndroidManifest.xml
change min version
2024-07-09 10:55:39 -07:00
SfernandezML db1d44a341
Update build.yml
trying to not overwrite standard apk
2024-07-09 10:22:54 -07:00
bjorn d238f3dc2f Fix minor ubsan issues;
Can't memcpy/memset NULL pointers, even when zero bytes.
2024-07-09 02:27:57 -07:00
bjorn c3c9a3393c Fix Threads leaking their argument references; 2024-07-09 02:27:57 -07:00
bjorn 716b771776 Minor ubsan fix;
Why can't I take the address of a null pointer's field if I never read
from it!
2024-07-09 02:18:26 -07:00
bjorn 9b5b516e47 Fix Shape memory leak; 2024-07-09 02:16:08 -07:00
bjorn 5ff8675bd1 Update miniaudio to 0.11.21; 2024-07-08 01:16:09 -07:00
bjorn 41da42b153 lovr.headset.getHandles; 2024-07-04 16:20:22 -07:00
bjorn 72539a6d53 Update changelog; 2024-07-03 21:01:11 -07:00
bjorn 659222cfaa Shader:hasVariable; 2024-07-03 15:25:55 -07:00
SfernandezML 02b4ef6639
Update build.yml
fix overwrite
2024-07-03 13:54:05 -07:00
SfernandezML c1681d7514
Update build.yml
typo
2024-07-03 13:34:47 -07:00
SfernandezML 8cea719254
Update build.yml
add magicleap build
2024-07-03 13:18:08 -07:00
SfernandezML 7de9446ecc
Update AndroidManifest.xml
add magic leap hand tracking
2024-07-03 13:13:55 -07:00
bjorn e109306048 Fix skeletal animation for some models with blend shapes;
Ok so for the compute skinning, we maintain 2 vertex buffers:

- The first buffer is the original vertices in the model
- The second buffer is the post-animated vertices, which is drawn

Normally we run the animation compute shader and tell it to use the
"raw" vertices as the input and write the result to the 2nd buffer.

With blend shapes, it gets more complicated, because the blend shape
shader follows the same process and writes blended vertices to the 2nd
buffer.  So if you're doing skeletal animation on a mesh with blend
shapes, you have to then do skeletal animation "in place" instead of
reading from the original vertex buffer.

There was some code here that tried to account for this, but it was
just checking if the model had blend shapes at all.  That check isn't
fine-grained enough though.  When deciding which source buffer to use,
it can differ for each individual primitive (technically node) in the
model.  In a given skin, some primitives might have blend shapes and
others might not.

The fix is to do the skinning in 2 passes, separating the "vertices with
blend shapes" from the "vertices without blend shapes".  A push constant
is used to tell the compute shader which source buffer it should use.
The primitive sorting was also changed to group primitives within a skin
based on whether or not they have blend shapes.

Note that you could simplify this a bit by copying the raw vertices to
the 2nd buffer upfront and doing all the blending and skinning in-place,
but this has been measured to be a lot slower than branching in the
compute shader.
2024-07-03 13:00:17 -07:00
bjorn 8d24f6ba22 actions: disable parallel builds on Android; 2024-06-28 00:53:30 -07:00
bjorn f869155e0f webgpu: set buffer usage properly and map initial pointer; 2024-06-27 20:23:10 -07:00
bjorn f4a8a3b514 actions: tell cmake to build in parallel; 2024-06-26 13:22:10 -07:00
bjorn e5b9068f9b actions: rm submodule caching; 2024-06-26 13:22:04 -07:00
bjorn 0d82d7a71e actions: try caching submodules; 2024-06-26 13:14:35 -07:00
bjorn 26c5335ade Add initial version of Pass:polygon;
Normal vectors will be released in an upcoming DLC.
2024-06-26 12:18:54 -07:00
bjorn db4780f3c6 More wasm/webgpu code; 2024-06-26 01:04:25 -07:00
bjorn e36543929d Fix warning; 2024-06-25 23:59:46 -07:00
bjorn bf94208051 rm shaderConstantSize limit;
push constants aren't used anymore, the limits for constants/uniforms is
the same as the existing uniform buffer limit.
2024-06-25 23:57:48 -07:00
bjorn 0516b282f5 webgpu: limits; 2024-06-25 23:48:01 -07:00
bjorn cf3591b3d5 webgpu: features; 2024-06-25 23:28:56 -07:00
bjorn 870df3969a x11: do fullscreen the right way; 2024-06-25 17:47:32 -07:00
bjorn aee4fa0aac Fill in more webgpu code; 2024-06-25 16:39:10 -07:00
bjorn 05ed4a6e37 Update changelog; 2024-06-25 15:46:47 -07:00