Commit Graph

3843 Commits

Author SHA1 Message Date
bjorn b24350fb31 gpu: macOS also tries linking to MoltenVK; 2023-01-21 15:27:14 -08:00
bjorn bee8d16427 Add error when render pass/texture sample counts don't match; 2023-01-21 12:16:35 -08:00
bjorn ffa4beb21c Fix thread refcounting;
Minor race condition between thread starting and thread getting released.
2023-01-19 15:05:04 -08:00
bjorn 3e0d2a1ecf core/os: window size is always in framebuffer units;
pixel density is exposed as a separate accessor.
2023-01-10 19:54:48 -08:00
undef bc7a541279 Fix constrained rendering in windowed mode on macOS #620 2023-01-06 20:30:05 +01:00
bjorn dd65a59602 Fix some literals in Curve:evaluate; 2023-01-02 14:43:27 -08:00
bjorn 58c5f0624e Fix for vk portability extension;
- Always enable when supported.
- It's not required to be enabled, even if portability_enumeration is present.
2023-01-01 05:03:05 -08:00
bjorn ae4a75eecd Shift around Vulkan initialization;
Start to make it easier to declare extensions, mark them as required,
and detect whether they're supported at runtime.
2022-12-31 17:42:51 -08:00
Bjorn 119935fdd9
Merge pull request #627 from jmiskovic/add/gettags
A getter for World list of tags
2022-12-29 19:14:49 -08:00
bjorn b885f2abf5 rm AUTO_MAP_LOCATIONS flag from glslang options;
It doesn't work properly, and silently produces broken shaders when the location is left off.
2022-12-26 07:21:54 -08:00
Josip Miskovic 9e06c72b37 A getter for World list of tags 2022-12-26 09:50:14 +01:00
bjorn 305213bfb4 Error if shader push constants are too big; 2022-12-25 17:18:05 -08:00
Josip Miskovic bc1308c463 Check if torus shape is cached 2022-12-22 17:26:21 +01:00
bjorn 886e3bb42f Fix some windows warnings; 2022-12-19 14:01:30 -08:00
bjorn 0cacddb2f8 Fix Android quitting again;
See comment for details.
2022-12-11 02:11:11 -08:00
bjorn a79b3af7e5 Fix issue where temp vectors sometimes don't work as colors; 2022-12-11 00:41:12 -08:00
bjorn 58cc96414a Add flag to omit GLFW from build; 2022-12-10 20:29:36 -08:00
bjorn f013831b73 Reorganize thread code;
- Put channel into thread module file.
- Make thread internals private.
- Handle more thread bookkeeping in thread module instead of Lua API.
- Fix a few race conditions/leaks nobody was probably ever going to hit.
2022-12-10 20:13:39 -08:00
bjorn 06dad182db Fix mounted directories with non-empty mountpoints;
Mounting directories with mountpoints wasn't treating the components
in the mountpoint path as virtual directories.
2022-12-10 18:25:09 -08:00
bjorn 74a9b90e93 Fix zip archive enumeration;
Zip archives weren't enumerating in the root directory when they were
mounted with a non-empty mountpoint.  Additionally, zips mounted at the
root directory weren't listing files properly.  This fixes both by
normalizing the mountpoint prefix (it had a prepended slash when it was
empty, which messed up hashing), and ensuring there is a "root node" in
the tree with an empty string.
2022-12-10 18:25:09 -08:00
Bjorn 3fb9445149
Merge pull request #613 from brainrom/patch-1
Check for thread handle
2022-12-10 13:53:57 -08:00
bjorn 5edbfdbffb Pass:cone supports 2-endpoint variant; 2022-12-10 13:51:16 -08:00
Ilya 10675761e2
Check for thread handle 2022-12-11 00:47:20 +03:00
bjorn e63d142009 Fix refcounting when creating Font from Rasterizer; 2022-12-10 13:35:03 -08:00
bjorn 36070e828c Add missing validation for rendering to depth textures; 2022-12-10 11:20:56 -08:00
bjorn 71df5176ad Fix lovr.event.quit on Android; 2022-12-10 00:12:55 -08:00
bjorn b5c14da4a6 Pass:line errors if only 1 point is provided; 2022-12-04 18:01:20 -08:00
bjorn bb46fa5745 Pass:line copies tables of vectors to vertices better;
Using vec3_init writes 4 floats which can, extremely rarely, go past the
end of the vertex buffer.
2022-12-04 18:00:24 -08:00
bjorn 7bd3546aa9 Fix Pass:line ignoring temporary vectors in tables; 2022-12-04 17:58:49 -08:00
bjorn 98b5fcfd20 Improve Vulkan error messages;
Instead of printing the raw Vulkan error printed, a friendly error
message gets printed out with the Vulkan error in parentheses.
2022-12-04 01:58:53 -08:00
bjorn 6678af02a2 rm some unnecessary GLFW window hints; 2022-12-03 23:29:49 -08:00
bjorn efc81e4cec Fix some gcc warnings; 2022-12-03 01:20:02 -08:00
bjorn e2c73edabb Clear GPU memory pointer later; 2022-11-27 20:51:11 -08:00
bjorn 72ecd9cb04 Fix issue recycling GPU memory blocks;
When a memory block is used for host-visible memory, its mapped pointer
is tracked with the block.  If that memory is freed and later re-used
for some non-mappable memory, the pointer never gets cleared, and so
code thinks the memory is mappable and tries to use the pointer.
2022-11-27 19:55:27 -08:00
Josip Miskovic cbe3c45548 Trim whitespace in Texture:hasUsage name 2022-11-26 17:41:48 -08:00
bjorn cad98d8b2b Mat4:reflect;
Creates a matrix that reflects across a plane given as a position and
normal vector.
2022-11-26 15:34:58 -08:00
bjorn f9d7742dfd Add support for headless headset rendering;
Although the name is unfortunate, this allows access to lovr.headset
when no window is opened or when the graphics module is disabled.  This
requires the XR_MND_headless extension to be supported by the runtime.
2022-11-26 14:40:39 -08:00
bjorn 4422df2a47 Variant small string optimization; 2022-11-24 15:40:43 -08:00
bjorn 0c281bca50 Change default setProjection far plane to 0;
It was accidentally left at 100, which will cause problems.
2022-11-24 14:58:40 -08:00
bjorn e9776f98c6 Fix compatibility with Lua 5.2, 5.3, 5.4;
Part of this involved putting the Lua header back in api.h, since we
need to know the Lua version to define some macros properly.
2022-11-24 14:33:55 -08:00
bjorn 8f74778c19 Error if require path is too long instead of truncating; 2022-11-23 14:08:32 -08:00
bjorn e426520144 Blob:getString takes an optional byte range; 2022-11-23 12:21:32 -08:00
bjorn 53da4dd1dc rm File again;
forks please yell if you still need it
2022-11-23 11:58:42 -08:00
bjorn dbdd22ae95 Compute passes release their shaders properly;
Active shader was only getting released for render passes.
2022-11-21 19:52:41 -08:00
bjorn 7f2618227f Fix off-by-one tick number in readbacks;
Only when a readback is read back before a pass is created.

Should really change gpu to know if the frame has started yet and adjust
the tick index accordingly.
2022-11-21 19:42:41 -08:00
bjorn 0c966ba216 gpu: destroy readback scratchpads properly; 2022-11-21 19:42:13 -08:00
bjorn be3faf8822 Fixes for Vulkan initialization; 2022-11-17 20:32:24 -08:00
bjorn 3879ce926d Improve Vulkan initialization;
- Check for layers before enabling
- Check for instance/device extensions before enabling

Fixes unfriendly errors when running on a system without validation layers
installed.

Uses same table approach as OpenXR code.
2022-11-16 20:21:03 -08:00
bjorn 7b3e1a02eb Fix newShader when nil is used as a stage's code; 2022-11-16 18:12:06 -08:00
bjorn 6d1bbe9c5c Fix Android build on new NDKs;
Some Android header defines DEPTH, which clashes with a symbol in the
OpenXR driver.  This change just stops using Android headers in there
and declares more granular private functions.  It also removes a few
unused private os functions.
2022-11-15 20:35:39 -08:00