1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-04 21:43:34 +00:00
Commit graph

5097 commits

Author SHA1 Message Date
Bjorn 2770ab270a
Merge pull request #743 from jmiskovic/simulator-supersampling
Headset simulator supersampling
2024-02-14 10:50:39 -08:00
Josip Miskovic 7229a93f11 Headset simulator supersampling 2024-02-14 19:34:13 +01:00
bjorn 41deb706ce rm steamvr workaround for local-floor reference space; 2024-02-09 21:17:11 -08:00
bjorn 7b39a30600 Fix sType field in gpu_xr_acquire; 2024-02-09 19:01:55 -08:00
bjorn 78586c3770 CMake: disable BUILD_WITH_WAYLAND_HEADERS for OpenXR; 2024-02-09 11:01:06 -08:00
bjorn da5a6cec10 Bump OpenXR to 1.0.33; 2024-02-09 11:00:59 -08:00
bjorn bf97a55fcb Fix issues with Pass buffer recycling;
- When destroyed, Pass should only recycle its buffer if it actually has one.
- When resetting, chain all of the buffers at once instead of one-by-one (N^2)
2024-02-08 11:32:01 -08:00
bjorn df3544e5f3 Fix issue with buffer recycling;
Must set next pointer to NULL!
2024-02-08 11:22:34 -08:00
Bjorn d23164235b
Merge pull request #732 from bjornbytes/model-vertex-compression
Model Vertex Compression
2024-01-31 13:35:58 -08:00
bjorn 215e042e05 Add lovrUnreachable branch; 2024-01-31 12:52:29 -08:00
bjorn 06bfbbaa6b Validate that intra-buffer copy has non-overlapping ranges; 2024-01-29 21:33:51 -08:00
bjorn 5bd48f16f5 lovr.system.get/setClipboardText; 2024-01-29 12:52:41 -08:00
bjorn 287769f1f2 Fix 32 bit sync flag truncation; Fix sync validation; 2024-01-29 02:10:40 -08:00
bjorn 6516cca39d Switch to VK_KHR_synchronization2; 2024-01-29 00:58:11 -08:00
bjorn 3712bc3fba Fix error when loading a Model without any vertices; 2024-01-29 00:33:34 -08:00
bjorn 35f97f08f3 glTF: support glb models without BIN chunk; 2024-01-29 00:29:23 -08:00
bjorn 2b351fa145 Clean up NodeTransform struct a bit; 2024-01-26 10:47:54 -08:00
bjorn 1ede3ef012 gpu_wait_idle also updates tick;
So you don't have to call `gpu_wait_tick` right after.
2024-01-25 00:13:25 -08:00
bjorn dacc17e1b7 Fix errhand loop when debug library is unavailable; 2024-01-24 17:54:07 -08:00
bjorn f8158744f9 Details; 2024-01-20 21:58:03 -08:00
Bjorn 30cb0c19a0
Merge pull request #733 from xiejiangzhi/slow_move_32_tag_and_other_fix
Slow movement for sim, fix bug of tag, add max number of tag to 32
2024-01-20 21:56:38 -08:00
xiejiangzhi 45a6333afb Slow movement for sim, fix bug of tag, add max number of tag to 32
Holding ctrl to slowly movement for Sim
Check null for findTag
Increment max number of tags to 32
Fix newWorld error if tags > MAX_TAGS
2024-01-21 13:50:59 +08:00
bjorn a90c4092f8 glslang: Add -gVS when compiling default shaders for debug build;
This allows RenderDoc to debug the default shaders.
2024-01-20 21:47:27 -08:00
bjorn 1e02c16c5d 'sample' TextureFeature no longer implies linear filtering support;
Basically it's somewhat common for depth-stencil formats to not support
linear filtering and that is kind of annoying because you can't create
depth textures with the `sample` usage.  Instead we'll just ignore the
LINEAR format feature bit for now.

In the future I'd like to fix this by silently demoting individual
texture's filtering to nearest when linear is not supported for the
format, but this requires per-texture sampler settings which isn't done
yet.
2024-01-20 21:21:00 -08:00
bjorn 40d85c6a16 Model uses sn10x3 normals and tangents;
This shaves 20 bytes off of each model vertex, or around 40% savings.
The vertex size is also a power of two which results in extreme amounts
of style points.
2024-01-20 17:39:36 -08:00
bjorn 5434dd6add Add sn10x3 data type;
The unpacking code might not be working properly...
2024-01-20 17:39:36 -08:00
bjorn 4e2c0111c7 Quat euler fixup; 2024-01-20 03:45:21 -08:00
bjorn 7b72c64de4 Quat:SetEuler -> :setEuler; 2024-01-20 03:43:18 -08:00
bjorn a4c57193d5 Details; 2024-01-20 03:42:51 -08:00
Bjorn 5bbd093cf1
Merge pull request #730 from jmiskovic/fix/sphere_segments
Bound check the number of sphere segments
2024-01-19 17:27:42 -08:00
Bjorn 0f64de7d2c
Merge pull request #722 from xiejiangzhi/quat_euler
Add quat:ToEuler and quat:fromEuler
2024-01-19 17:27:18 -08:00
Josip Miskovic 3db04db05a Bound check the number of sphere segments 2024-01-19 23:18:58 +01:00
xiejiangzhi 165dac6130 Rename toEuler -> getEuler & fromEuler -> setEuler for Quat
Use float instead of double for quat euler calc
2024-01-19 19:04:57 +08:00
bjorn fd771f6420 Fix newBuffer crash when created with initial contents on some GPUs; 2024-01-17 15:52:56 -08:00
bjorn dfa231ebc0 Fix memory leak in pass lookup; 2024-01-17 15:48:34 -08:00
bjorn 65f1370314 Update flushTransfers comment;
No longer applies to buffers.
2024-01-17 15:41:27 -08:00
bjorn 5c60f068db Blend mode usess a lookup table; 2024-01-17 15:40:42 -08:00
bjorn 435d2676cd Fix issue with buffer destruction; 2024-01-14 02:28:10 -08:00
bjorn 6fa8e41c92 Merge branch 'stable' into dev 2024-01-13 18:11:47 -08:00
bjorn d4a17eee4c Actions: Update Android build-tools version to 34.0.0; 2024-01-13 18:11:22 -08:00
bjorn fd3b0c365d Actions: update sdkmanager path; 2024-01-13 18:09:54 -08:00
bjorn 358abdcd86 Actions: update sdkmanager path; 2024-01-13 18:06:40 -08:00
bjorn b45856b744 Actions: use ANDROID_SDK_ROOT instead of ANDROID_HOME; 2024-01-13 18:04:54 -08:00
bjorn 33fa6ed623 Fix skeletal animation; 2024-01-13 18:01:04 -08:00
bjorn e1abf0b332 Refactor render passes for thread safety;
Currently pipeline compilation accesses the render pass cache, which
presents thread safety challenges.  The framebuffer and render pass
caches are also slow and gross.

This adds a `gpu_pass` object which is basically just a VkRenderPass
object.  The graphics module creates and caches these in
`lovrPassSetCanvas`.  They are used when compiling pipelines and
beginning render passes.

Framebuffers are no longer cached but are just created and immediately
condemned dynamically when beginning a render pass.  This is fine,
because framebuffers are super cheap.

There's still technically a thread safety issue with the `gpu_pass`
object caching, but it's much easier to solve that with a lock in
`lovrPassSetCanvas` compared to trying to make core/gpu's render pass
cache thread safe.

This is all still a temporary measure until we can use a more
"ergonomic" render pass API like dynamic rendering.

Oh also we stopped using automatic layout transitions because they seem
to be pessimistic in drivers and require tying render pass objects to
texture usage which is annoying.  So now we do attachment layout
transitions manually before/after beginning/ending a render pass, which
isn't so bad.
2024-01-13 17:35:43 -08:00
bjorn 5c46d6169a Fix depth write not working when depth test is disabled;
A classic
2024-01-13 03:05:39 -08:00
bjorn 0c528ff3de Merge branch 'stable' into dev 2024-01-09 15:27:54 -08:00
bjorn 1122f6419b Actions: rm sudo from Android install command; 2024-01-09 15:12:42 -08:00
bjorn 3216573f0b Actions: Manually install Android SDK;
GitHub removed Android versions v30 and below.
2024-01-09 15:10:15 -08:00
bjorn 83f106b89f Fix render pass cache when compiling pipelines;
Comparing the lower 32 bits to the full hash was producing false
negatives and causing unnecessary render pass creation when creating
pipelines.
2024-01-09 14:53:27 -08:00