]>
git.nega.tv - josh/narcissus/log
Josh Simmons [Fri, 17 May 2024 19:17:09 +0000 (21:17 +0200)]
narcissus-gpu: Simplify bind group layout setup
Josh Simmons [Thu, 16 May 2024 18:29:37 +0000 (20:29 +0200)]
shark: Render UI with compute
Josh Simmons [Wed, 15 May 2024 06:37:49 +0000 (08:37 +0200)]
shark: Use indexable structs for gpu resources
Josh Simmons [Tue, 14 May 2024 19:49:53 +0000 (21:49 +0200)]
narcissus-gpu: Configure swapchain with available modes
Josh Simmons [Tue, 14 May 2024 16:54:31 +0000 (18:54 +0200)]
shark: Apply display transform in compute shader
Josh Simmons [Tue, 14 May 2024 12:10:23 +0000 (14:10 +0200)]
narcissus-gpu: Add `E5B9G9R9_UFLOAT_PACK32` format
Josh Simmons [Tue, 14 May 2024 07:28:49 +0000 (09:28 +0200)]
narcissus-core: Add basic dds loader
Josh Simmons [Mon, 13 May 2024 21:28:29 +0000 (23:28 +0200)]
narcissus-core: Add FourCC wrapper
Josh Simmons [Mon, 13 May 2024 21:27:20 +0000 (23:27 +0200)]
narcissus-core: Use derive for flags impls
Josh Simmons [Mon, 13 May 2024 21:25:55 +0000 (23:25 +0200)]
shark: Use match for key bindings
Josh Simmons [Sun, 12 May 2024 11:48:34 +0000 (13:48 +0200)]
narcissus-gpu: Add ImageFormat::BGRA16_FLOAT
Josh Simmons [Sun, 12 May 2024 10:47:41 +0000 (12:47 +0200)]
narcissus-gpu: Add 10-bit packed color formats
Josh Simmons [Sun, 12 May 2024 10:09:28 +0000 (12:09 +0200)]
narcissus-gpu: Add support for mutable swapchain images
Josh Simmons [Sun, 12 May 2024 09:57:09 +0000 (11:57 +0200)]
vulkan-sys: Add VkImageFormatListCreateInfo
Josh Simmons [Sat, 11 May 2024 18:41:50 +0000 (20:41 +0200)]
narcissus-gpu: Re-enable validation layers by default
Josh Simmons [Sat, 11 May 2024 18:38:00 +0000 (20:38 +0200)]
vulkan-sys: Add `vkEnumerateInstanceLayerProperties`
Josh Simmons [Sat, 11 May 2024 11:13:26 +0000 (13:13 +0200)]
shark: Rename Text shader to Ui
Josh Simmons [Sat, 11 May 2024 10:21:05 +0000 (12:21 +0200)]
shark: Re-arrange main loop
Josh Simmons [Sat, 11 May 2024 10:15:17 +0000 (12:15 +0200)]
shark: Disable Wayland when RenderDoc is detected
Josh Simmons [Sat, 11 May 2024 10:06:54 +0000 (12:06 +0200)]
narcissus-gpu: Assert when emitting barrier in render pass
Any use of `vkCmdPipelineBarrier` between `vkBeginRendering` and
`vkEndRendering` will be ignored, so assert for that case.
Avoid stuttering by using `cmd_encoder` to refer to the narcissus side
implementation of command buffers.
Josh Simmons [Sat, 11 May 2024 10:05:51 +0000 (12:05 +0200)]
narcissus-gpu: Add `Default` impl for `BufferImageCopy`
Josh Simmons [Sat, 11 May 2024 10:03:46 +0000 (12:03 +0200)]
narcissus-gpu: Expose `is_null` for `Handle` newtypes
Josh Simmons [Sat, 11 May 2024 10:00:47 +0000 (12:00 +0200)]
shark: Move spring helper into own module
Josh Simmons [Thu, 9 May 2024 09:00:12 +0000 (11:00 +0200)]
shark: Add HIDPI support
Josh Simmons [Thu, 9 May 2024 08:59:13 +0000 (10:59 +0200)]
narcissus-app: Add HIDPI support
Josh Simmons [Thu, 9 May 2024 08:50:01 +0000 (10:50 +0200)]
sdl2-sys: Add HIDPI related APIs
Josh Simmons [Wed, 8 May 2024 19:26:55 +0000 (21:26 +0200)]
misc: Bump gmp-mpfs-sys dependency
Joshua Simmons [Tue, 7 May 2024 19:57:57 +0000 (21:57 +0200)]
shark: Change chunk layout
Joshua Simmons [Tue, 7 May 2024 07:12:55 +0000 (09:12 +0200)]
narcissus-core: Add extra integer widths to `BitIter`
Joshua Simmons [Mon, 6 May 2024 16:42:39 +0000 (18:42 +0200)]
misc: Remove accidentally added profiler output
Joshua Simmons [Mon, 6 May 2024 16:40:04 +0000 (18:40 +0200)]
narcissus-maths: Sprinkle force inline
Help to salvage debug mode performance. Add `#[must_use]` too.
Joshua Simmons [Sun, 5 May 2024 20:45:37 +0000 (22:45 +0200)]
shark: Shoot fast and break things
Joshua Simmons [Sun, 5 May 2024 16:14:00 +0000 (18:14 +0200)]
narcissus-maths: Add error count assert for `exp_f32` test
Joshua Simmons [Sun, 5 May 2024 14:47:44 +0000 (16:47 +0200)]
misc: Fix clippy lints
Joshua Simmons [Sun, 5 May 2024 14:43:52 +0000 (16:43 +0200)]
narcissus-core: Add Default impl for fixed_vec
Joshua Simmons [Sun, 5 May 2024 14:21:22 +0000 (16:21 +0200)]
shark: Add guns which shoot projectile sharks
Joshua Simmons [Sun, 5 May 2024 14:20:25 +0000 (16:20 +0200)]
narcissus-core: Add user-defined type to `flags_def` macro
Joshua Simmons [Sun, 5 May 2024 14:16:18 +0000 (16:16 +0200)]
narcissus-maths: Add `exp_f32` implementation
Based on Norbert Juffa's implemention for CUDA from
https://forums.developer.nvidia.com/t/a-more-accurate-performance-competitive-implementation-of-expf/47528
Joshua Simmons [Sun, 5 May 2024 14:14:11 +0000 (16:14 +0200)]
narcissus-maths: Use `f32_to_i32` for `sin_cos_pi` and `tan_pi`
Joshua Simmons [Sun, 5 May 2024 14:10:45 +0000 (16:10 +0200)]
narcissus-maths: Add safe f32 to i32 conversions
Rather than relying on `to_int_unsafe` which isn't valid for values that
overflow `i32`, implement an intrinsics based solution which merely
returns an implementation defined value for those cases.
Joshua Simmons [Sun, 5 May 2024 14:07:04 +0000 (16:07 +0200)]
narcissus-maths: Add additional rng functions
Add `next_[f32,f64]_s`, returning uniformly distibuted floats in the
range `-1.0..1.0`.
Add `next_uniform_unit_disc_f32`, generating a uniformly distributed
point on the unit disc.
Add `next_uniform_unit_circle_f32`, generating a uniformly distributed
point on the unit circle.
Joshua Simmons [Fri, 3 May 2024 19:28:04 +0000 (21:28 +0200)]
shark: Adjust camera shake
Joshua Simmons [Fri, 3 May 2024 06:37:54 +0000 (08:37 +0200)]
narcissus-maths: Remove custom `round_ties_even`
Stable from Rust 1.77.0
Joshua Simmons [Fri, 3 May 2024 06:35:18 +0000 (08:35 +0200)]
narcissus-maths: Small cleanup of perlin noise
Joshua Simmons [Thu, 2 May 2024 20:58:22 +0000 (22:58 +0200)]
narcissus-core: Fix out-of-bounds slice access
Joshua Simmons [Thu, 2 May 2024 20:33:57 +0000 (22:33 +0200)]
shark: Add basic camera shake
Joshua Simmons [Thu, 2 May 2024 20:32:43 +0000 (22:32 +0200)]
narcissus-maths: Add perlin noise functions
Taken from `stb_perlin.h` by Sean Barrett et al
Joshua Simmons [Wed, 1 May 2024 18:54:54 +0000 (20:54 +0200)]
shark: Only write two lines of text
Joshua Simmons [Wed, 1 May 2024 18:48:29 +0000 (20:48 +0200)]
narcissus-gpu: Remove accidentally added sleep
When debugging goes too far!
Joshua Simmons [Wed, 1 May 2024 16:17:57 +0000 (18:17 +0200)]
shark: Dampen camera movement
Joshua Simmons [Wed, 1 May 2024 14:55:53 +0000 (16:55 +0200)]
shark: Fix parameterization of top-down camera
Using the camera height and camera angle to define a camera is
unfortunate as those to variables are tightly coupled; Adjusting the
camera height requires a camera angle adjustment to maintain the same
distance from the camera, and visa-versa.
Instead, calculate the height from the desired camera distance so these
variables can be changed independently.
Joshua Simmons [Wed, 1 May 2024 14:55:10 +0000 (16:55 +0200)]
narcissus-maths: Add `lerp` for scalars and vectors
Joshua Simmons [Wed, 1 May 2024 14:53:00 +0000 (16:53 +0200)]
narcissus-maths: Add `sin_pi_f32` and `cos_pi_f32`
Trivial implementation for now.
Joshua Simmons [Wed, 1 May 2024 08:26:59 +0000 (10:26 +0200)]
shark: Add drivable shark
Joshua Simmons [Wed, 1 May 2024 07:29:44 +0000 (09:29 +0200)]
sdl2-sys: Add repeat flag to key events
Joshua Simmons [Mon, 29 Apr 2024 18:13:29 +0000 (20:13 +0200)]
shark: Remove unused import
Joshua Simmons [Mon, 29 Apr 2024 18:12:52 +0000 (20:12 +0200)]
shark-shaders: Remove unnecessary lifetime annotation
Joshua Simmons [Sun, 28 Apr 2024 16:30:41 +0000 (18:30 +0200)]
shark: Remove buffer test code
Joshua Simmons [Sun, 28 Apr 2024 15:24:48 +0000 (17:24 +0200)]
shark-shaders: Use old name for glslang
Ubuntu image used by CI is old and doesn't have the command under the
new name. So just use `glslangValidator` instead.
Joshua Simmons [Sun, 28 Apr 2024 15:18:56 +0000 (17:18 +0200)]
github: Fix name for glslang package in ubuntu
Joshua Simmons [Sun, 28 Apr 2024 15:16:07 +0000 (17:16 +0200)]
github: Add glslang to github actions image
Joshua Simmons [Sun, 28 Apr 2024 15:08:27 +0000 (17:08 +0200)]
shark: Move shaders into their own crate
We can build them with cargo and a build script.
Joshua Simmons [Sun, 28 Apr 2024 06:30:37 +0000 (08:30 +0200)]
narcissus: Remove cstr macro
We've got builtin functionality now!
Joshua Simmons [Sat, 27 Apr 2024 16:55:22 +0000 (18:55 +0200)]
narcissus-gpu: Fix minor sync issues
Resolve incorrect arguments to various presentation related barriers.
Joshua Simmons [Sat, 27 Apr 2024 14:55:22 +0000 (16:55 +0200)]
shark: Remove duplicate image copy
Joshua Simmons [Sat, 6 Apr 2024 07:44:59 +0000 (09:44 +0200)]
narcissus-gpu: Use VK_EXT_swapchain_maintenance1
Fixes the broken way we were handling presentation semaphore recycling
as well as swapchain destruction. When VK_EXT_swapchain_maintenance1 is
unavailable, fallback to a fixed frame delay.
Remove the unused delay queue structure.
Joshua Simmons [Fri, 5 Apr 2024 22:42:18 +0000 (00:42 +0200)]
vulkan-sys: Add `VK_EXT_[swapchain,surface]_maintenance1`
Joshua Simmons [Fri, 5 Apr 2024 22:40:21 +0000 (00:40 +0200)]
vulkan-sys: Add `VK_KHR_get_surface_capabilities2`
Joshua Simmons [Fri, 5 Apr 2024 22:21:41 +0000 (00:21 +0200)]
vulkan-sys: Add wrapper for `get_fence_status`
Joshua Simmons [Fri, 5 Apr 2024 22:20:21 +0000 (00:20 +0200)]
vulkan-sys: Use &CStr directly in wrapper function
Joshua Simmons [Fri, 5 Apr 2024 22:18:05 +0000 (00:18 +0200)]
shark: Enable RUST_BACKTRACE by default
In debug builds we always want to enable backtraces if they're not
explicitly disabled by the environment variable.
Joshua Simmons [Sun, 31 Mar 2024 03:22:24 +0000 (05:22 +0200)]
narcissus-core: Improve float random generation
Change `next_f32` to output in the range `[0.0,1.0)`.
Add `next_f64`.
Add very basic smoke test.
Joshua Simmons [Sun, 31 Mar 2024 02:56:39 +0000 (04:56 +0200)]
narcissus-core: Fix clippy lint
Joshua Simmons [Sun, 31 Mar 2024 02:55:15 +0000 (04:55 +0200)]
narcissus-gpu: Fix clippy lint
Joshua Simmons [Mon, 20 Nov 2023 20:21:05 +0000 (21:21 +0100)]
meta: Rename ext to external
Joshua Simmons [Sun, 5 Nov 2023 19:39:17 +0000 (20:39 +0100)]
narcissus-sqlite: Fix clippy lint
Joshua Simmons [Sun, 5 Nov 2023 19:38:54 +0000 (20:38 +0100)]
narcissus-core: Fix clippy lint
Joshua Simmons [Sun, 5 Nov 2023 19:38:25 +0000 (20:38 +0100)]
narcissus-app: Fix clippy lint
Joshua Simmons [Sun, 5 Nov 2023 18:39:01 +0000 (19:39 +0100)]
blake3-smol: Add minimal blake3 dependency
Joshua Simmons [Sun, 5 Nov 2023 16:43:12 +0000 (17:43 +0100)]
sqlite-sys: Add sqlite dependency
Joshua Simmons [Sun, 5 Nov 2023 11:56:13 +0000 (12:56 +0100)]
meta: Re-organize crates
Joshua Simmons [Sun, 5 Nov 2023 11:35:37 +0000 (12:35 +0100)]
narcissus-core: Fix clippy lints
Joshua Simmons [Sun, 5 Nov 2023 11:33:43 +0000 (12:33 +0100)]
vulkan-sys: Use macro to generate flags impls
Replace find-and-replace "we've got macros at home" with actual macros,
and additionally fix a minor clippy lint about the structure of the
clone impl.
Joshua Simmons [Sun, 20 Aug 2023 16:01:02 +0000 (18:01 +0200)]
narcissus-core: Remove `cstr_from_bytes_until_nul`
The standard verison is stablilized as of Rust 1.69.
Joshua Simmons [Sun, 20 Aug 2023 16:00:27 +0000 (18:00 +0200)]
narcissus-gpu: Use std from_bytes_until_nul
Joshua Simmons [Sun, 20 Aug 2023 15:53:27 +0000 (17:53 +0200)]
narcissus-gpu: Fix link in barrier documentation
Joshua Simmons [Sun, 20 Aug 2023 15:46:50 +0000 (17:46 +0200)]
narcissus-core: Add helpers to fetch important directories
Joshua Simmons [Mon, 7 Aug 2023 21:53:17 +0000 (23:53 +0200)]
stb_image: Suppress camel case warning
Joshua Simmons [Mon, 7 Aug 2023 19:09:32 +0000 (21:09 +0200)]
narcissus-gpu: Renaming and lifetime cleanups
Rename CmdBuffer to CmdEncoder.
Rename MappedBuffer to PersistentBuffer.
Joshua Simmons [Sun, 6 Aug 2023 13:05:16 +0000 (15:05 +0200)]
narcissus-gpu: Add new API for mapped buffers
Add new functionality for persistent and transient buffers that allows
easy copying from Rust data types.
Replace code in narcissus with the new APIs.
Fix some GPU read - CPU write synchronisation issues by switching some
persistent buffers into automatically managed transient buffers.
Joshua Simmons [Sat, 5 Aug 2023 09:00:20 +0000 (11:00 +0200)]
narcissus: Avoid using draw indexed for glyphs
In preparation for being able to draw different types of primitive from
the same system, stop using indexed drawing for glyphs. Instead pack
information into the index buffer.
Joshua Simmons [Sat, 29 Jul 2023 16:43:35 +0000 (18:43 +0200)]
narcissus-gpu: Remove unnecessary mut
Joshua Simmons [Sat, 29 Jul 2023 16:42:48 +0000 (18:42 +0200)]
cargo: Enable resolver 2 for workspace
Joshua Simmons [Sat, 29 Jul 2023 13:12:41 +0000 (15:12 +0200)]
vulkan-sys: Use a simpler alignment check for SPV
Joshua Simmons [Sat, 29 Jul 2023 13:12:05 +0000 (15:12 +0200)]
narcissus-gpu: Add basic randomised test for Tlsf
Joshua Simmons [Sat, 29 Jul 2023 08:27:39 +0000 (10:27 +0200)]
narcissus-core: Add `array_select` to Pcg64
Joshua Simmons [Thu, 27 Jul 2023 09:36:06 +0000 (11:36 +0200)]
narcissus-gpu: Simplify allocator stats tracking
Joshua Simmons [Wed, 26 Jul 2023 18:00:32 +0000 (20:00 +0200)]
narcissus-gpu: Fix old naming
Joshua Simmons [Tue, 25 Jul 2023 13:35:47 +0000 (15:35 +0200)]
narcissus-gpu: Always call them super-blocks
Joshua Simmons [Tue, 25 Jul 2023 13:32:26 +0000 (15:32 +0200)]
narcissus-gpu: Add emergency deallocation to allocator