From cf2d4000bd877ed296c59c9464f1ad4a4b8542a8 Mon Sep 17 00:00:00 2001 From: John Werner Date: Thu, 23 Jul 2026 21:32:22 -0700 Subject: [PATCH 01/21] Allow #caller-expression on constant parameters which are procedures --- src/check_builtin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp index e87c75e88..a41448973 100644 --- a/src/check_builtin.cpp +++ b/src/check_builtin.cpp @@ -2447,7 +2447,7 @@ gb_internal bool check_builtin_procedure_directive(CheckerContext *c, Operand *o } else { Operand o = {}; Entity *e = check_ident(c, &o, arg, nullptr, nullptr, true); - if (e == nullptr || (e->flags & EntityFlag_Param) == 0) { + if (e == nullptr || (e->kind != Entity_Procedure && (e->flags & EntityFlag_Param) == 0)) { error(arg, "'#caller_expression' expected a valid earlier parameter name"); } arg->Ident.entity = e; From c1e327c5662b0e752c0a404f447848ca438743da Mon Sep 17 00:00:00 2001 From: bingis-khan <52740618+bingis-khan@users.noreply.github.com> Date: Sun, 26 Jul 2026 11:11:36 +0200 Subject: [PATCH 02/21] Fix LLVM codegen for matching on `nil` for `union{}` --- src/llvm_backend_stmt.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/llvm_backend_stmt.cpp b/src/llvm_backend_stmt.cpp index 54447820a..1d42b497a 100644 --- a/src/llvm_backend_stmt.cpp +++ b/src/llvm_backend_stmt.cpp @@ -2201,7 +2201,9 @@ gb_internal void lb_build_type_switch_stmt(lbProcedure *p, AstTypeSwitchStmt *ss LLVMValueRef switch_instr = nullptr; if (type_size_of(parent_base_type) == 0) { GB_ASSERT(tag.value == nullptr); - switch_instr = LLVMBuildSwitch(p->builder, lb_const_bool(p->module, t_llvm_bool, false).value, else_block->block, cast(unsigned)num_cases); + GB_ASSERT(switch_kind == TypeSwitch_Union); // zero size only possible for union{} + Type *ut = type_deref(parent.type); + switch_instr = LLVMBuildSwitch(p->builder, lb_const_int(m, union_tag_type(ut), 0).value, else_block->block, cast(unsigned)num_cases); } else { GB_ASSERT(tag.value != nullptr); switch_instr = LLVMBuildSwitch(p->builder, tag.value, else_block->block, cast(unsigned)num_cases); From 75335afd042484da1e6bdabedd7cdb00da454205 Mon Sep 17 00:00:00 2001 From: corley <28909106+corleypc@users.noreply.github.com> Date: Wed, 29 Jul 2026 03:00:29 +0300 Subject: [PATCH 03/21] #no_alias added to the array parameter of dynamic array builtins --- base/runtime/core_builtin.odin | 74 +++++++++++++++++----------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/base/runtime/core_builtin.odin b/base/runtime/core_builtin.odin index e65cf56f0..4913b53d9 100644 --- a/base/runtime/core_builtin.odin +++ b/base/runtime/core_builtin.odin @@ -128,7 +128,7 @@ copy :: proc{copy_slice, copy_from_string, copy_from_string16} // Note: If you want the elements to remain in their order, use `ordered_remove`. // Note: If the index is out of bounds, this procedure will panic. @builtin -unordered_remove_dynamic_array :: proc(array: ^$D/[dynamic]$T, #any_int index: int, loc := #caller_location) #no_bounds_check { +unordered_remove_dynamic_array :: proc(#no_alias array: ^$D/[dynamic]$T, #any_int index: int, loc := #caller_location) #no_bounds_check { bounds_check_error_loc(loc, index, len(array)) n := len(array)-1 if index != n { @@ -142,7 +142,7 @@ unordered_remove_dynamic_array :: proc(array: ^$D/[dynamic]$T, #any_int index: i // Note: If the elements do not have to remain in their order, prefer `unordered_remove`. // Note: If the index is out of bounds, this procedure will panic. @builtin -ordered_remove_dynamic_array :: proc(array: ^$D/[dynamic]$T, #any_int index: int, loc := #caller_location) #no_bounds_check { +ordered_remove_dynamic_array :: proc(#no_alias array: ^$D/[dynamic]$T, #any_int index: int, loc := #caller_location) #no_bounds_check { bounds_check_error_loc(loc, index, len(array)) if index+1 < len(array) { copy(array[index:], array[index+1:]) @@ -155,7 +155,7 @@ ordered_remove_dynamic_array :: proc(array: ^$D/[dynamic]$T, #any_int index: int // Note: This is an O(N) operation. // Note: If the range is out of bounds, this procedure will panic. @builtin -remove_range_dynamic_array :: proc(array: ^$D/[dynamic]$T, #any_int lo, hi: int, loc := #caller_location) #no_bounds_check { +remove_range_dynamic_array :: proc(#no_alias array: ^$D/[dynamic]$T, #any_int lo, hi: int, loc := #caller_location) #no_bounds_check { slice_expr_error_lo_hi_loc(loc, lo, hi, len(array)) n := max(hi-lo, 0) if n > 0 { @@ -236,13 +236,13 @@ remove_range :: proc{ // // Note: If the dynamic array has no elements (`len(array) == 0`), this procedure will panic. @builtin -pop_dynamic_array :: proc(array: ^$T/[dynamic]$E, loc := #caller_location) -> (res: E) #no_bounds_check { +pop_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, loc := #caller_location) -> (res: E) #no_bounds_check { assert(len(array) > 0, loc=loc) _pop_dynamic_array_type_erased(&res, (^Raw_Dynamic_Array)(array), size_of(E)) return res } -_pop_dynamic_array_type_erased :: proc(res: rawptr, array: ^Raw_Dynamic_Array, elem_size: int) { +_pop_dynamic_array_type_erased :: proc(res: rawptr, #no_alias array: ^Raw_Dynamic_Array, elem_size: int) { end := rawptr(uintptr(array.data) + uintptr(elem_size*(array.len-1))) intrinsics.mem_copy_non_overlapping(res, end, elem_size) array.len -= 1 @@ -276,7 +276,7 @@ pop :: proc{ // `pop_safe_dynamic_array` trys to remove and return the end value of dynamic array `array` and reduces the length of `array` by 1. // If the operation is not possible, it will return false. @builtin -pop_safe_dynamic_array :: proc "contextless" (array: ^$T/[dynamic]$E) -> (res: E, ok: bool) #no_bounds_check { +pop_safe_dynamic_array :: proc "contextless" (#no_alias array: ^$T/[dynamic]$E) -> (res: E, ok: bool) #no_bounds_check { if len(array) == 0 { return } @@ -310,7 +310,7 @@ pop_safe :: proc{ // // Note: If the dynamic array as no elements (`len(array) == 0`), this procedure will panic. @builtin -pop_front_dynamic_array :: proc(array: ^$T/[dynamic]$E, loc := #caller_location) -> (res: E) #no_bounds_check { +pop_front_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, loc := #caller_location) -> (res: E) #no_bounds_check { assert(len(array) > 0, loc=loc) res = array[0] if len(array) > 1 { @@ -348,7 +348,7 @@ pop_front :: proc{ // `pop_front_safe_dynamic_array` trys to return and remove the first value of dynamic array `array` and reduces the length of `array` by 1. // If the operation is not possible, it will return false. @builtin -pop_front_safe_dynamic_array :: proc "contextless" (array: ^$T/[dynamic]$E) -> (res: E, ok: bool) #no_bounds_check { +pop_front_safe_dynamic_array :: proc "contextless" (#no_alias array: ^$T/[dynamic]$E) -> (res: E, ok: bool) #no_bounds_check { if len(array) == 0 { return } @@ -590,7 +590,7 @@ make_dynamic_array_len_cap :: proc($T: typeid/[dynamic]$E, #any_int len: int, #a } @(require_results) -_make_dynamic_array_len_cap :: proc(array: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, #any_int len: int, #any_int cap: int, allocator := context.allocator, loc := #caller_location) -> (err: Allocator_Error) { +_make_dynamic_array_len_cap :: proc(#no_alias array: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, #any_int len: int, #any_int cap: int, allocator := context.allocator, loc := #caller_location) -> (err: Allocator_Error) { make_dynamic_array_error_loc(loc, len, cap) array.allocator = allocator // initialize allocator before just in case it fails to allocate any memory data := mem_alloc_bytes(size_of_elem*cap, align_of_elem, allocator, loc) or_return @@ -716,7 +716,7 @@ when MAP_ENABLED { } } -_append_elem :: #force_no_inline proc(array: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, arg_ptr: rawptr, should_zero: bool, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +_append_elem :: #force_no_inline proc(#no_alias array: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, arg_ptr: rawptr, should_zero: bool, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { if array == nil { return } @@ -739,7 +739,7 @@ _append_elem :: #force_no_inline proc(array: ^Raw_Dynamic_Array, size_of_elem, a return } -_append_elem_ptr :: #force_no_inline proc(array: ^Raw_Dynamic_Array, arg: rawptr, should_zero: bool, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +_append_elem_ptr :: #force_no_inline proc(#no_alias array: ^Raw_Dynamic_Array, arg: rawptr, should_zero: bool, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { if array == nil { return } @@ -764,7 +764,7 @@ _append_elem_ptr :: #force_no_inline proc(array: ^Raw_Dynamic_Array, arg: rawptr // `append_elem` appends an element to the end of a dynamic array. @builtin -append_elem :: proc(array: ^$T/[dynamic]$E, #no_broadcast arg: E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +append_elem :: proc(#no_alias array: ^$T/[dynamic]$E, #no_broadcast arg: E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { when size_of(E) == 0 { if array == nil { return @@ -806,7 +806,7 @@ append_elem :: proc(array: ^$T/[dynamic]$E, #no_broadcast arg: E, loc := #caller // // Note: Prefer using the procedure group `non_zero_append @builtin -non_zero_append_elem :: proc(array: ^$T/[dynamic]$E, #no_broadcast arg: E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +non_zero_append_elem :: proc(#no_alias array: ^$T/[dynamic]$E, #no_broadcast arg: E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { when size_of(E) == 0 { (^Raw_Dynamic_Array)(array).len += 1 return 1, nil @@ -841,7 +841,7 @@ non_zero_append_elem :: proc(array: ^$T/[dynamic]$E, #no_broadcast arg: E, loc : } } -_append_elems :: #force_no_inline proc(array: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, should_zero: bool, loc := #caller_location, args: rawptr, arg_len: int) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +_append_elems :: #force_no_inline proc(#no_alias array: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, should_zero: bool, loc := #caller_location, args: rawptr, arg_len: int) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { if array == nil { return 0, nil } @@ -872,7 +872,7 @@ _append_elems :: #force_no_inline proc(array: ^Raw_Dynamic_Array, size_of_elem, // // Note: Prefer using the procedure group `append`. @builtin -append_elems :: proc(array: ^$T/[dynamic]$E, #no_broadcast args: ..E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +append_elems :: proc(#no_alias array: ^$T/[dynamic]$E, #no_broadcast args: ..E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { when size_of(E) == 0 { a := (^Raw_Dynamic_Array)(array) a.len += len(args) @@ -886,7 +886,7 @@ append_elems :: proc(array: ^$T/[dynamic]$E, #no_broadcast args: ..E, loc := #ca // // Note: Prefer using the procedure group `non_zero_append @builtin -non_zero_append_elems :: proc(array: ^$T/[dynamic]$E, #no_broadcast args: ..E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +non_zero_append_elems :: proc(#no_alias array: ^$T/[dynamic]$E, #no_broadcast args: ..E, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { when size_of(E) == 0 { a := (^Raw_Dynamic_Array)(array) a.len += len(args) @@ -897,7 +897,7 @@ non_zero_append_elems :: proc(array: ^$T/[dynamic]$E, #no_broadcast args: ..E, l } // The append_string built-in procedure appends a string to the end of a [dynamic]u8 like type -_append_elem_string :: proc(array: ^$T/[dynamic]$E/u8, arg: $A/string, should_zero: bool, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +_append_elem_string :: proc(#no_alias array: ^$T/[dynamic]$E/u8, arg: $A/string, should_zero: bool, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { return _append_elems((^Raw_Dynamic_Array)(array), 1, 1, should_zero, loc, raw_data(arg), len(arg)) } @@ -905,14 +905,14 @@ _append_elem_string :: proc(array: ^$T/[dynamic]$E/u8, arg: $A/string, should_ze // // Note: Prefer using the procedure group `append`. @builtin -append_elem_string :: proc(array: ^$T/[dynamic]$E/u8, arg: $A/string, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +append_elem_string :: proc(#no_alias array: ^$T/[dynamic]$E/u8, arg: $A/string, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { return _append_elem_string(array, arg, true, loc) } // `non_zero_append_elem_string` appends a string to the end of a dynamic array of bytes, without zeroing any reserved memory // // Note: Prefer using the procedure group `non_zero_append`. @builtin -non_zero_append_elem_string :: proc(array: ^$T/[dynamic]$E/u8, arg: $A/string, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +non_zero_append_elem_string :: proc(#no_alias array: ^$T/[dynamic]$E/u8, arg: $A/string, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { return _append_elem_string(array, arg, false, loc) } @@ -930,7 +930,7 @@ non_zero_append_elem_fixed_capacity_string :: proc "contextless" (array: ^$T/[dy // // Note: Prefer using the procedure group `append`. @builtin -append_string :: proc(array: ^$T/[dynamic]$E/u8, args: ..string, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { +append_string :: proc(#no_alias array: ^$T/[dynamic]$E/u8, args: ..string, loc := #caller_location) -> (num_appended: int, err: Allocator_Error) #optional_allocator_error { n_arg: int for arg in args { n_arg, err = append(array, ..transmute([]E)(arg), loc=loc) @@ -1026,7 +1026,7 @@ non_zero_append :: proc{ // `append_nothing` appends an empty value to a dynamic array. It returns `1, nil` if successful, and `0, err` when it was not possible, // whatever `err` happens to be. @builtin -append_nothing_dynamic_array :: proc(array: ^$T/[dynamic]$E, loc := #caller_location) -> (n: int, err: Allocator_Error) #optional_allocator_error { +append_nothing_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, loc := #caller_location) -> (n: int, err: Allocator_Error) #optional_allocator_error { if array == nil { return 0, nil } @@ -1059,7 +1059,7 @@ append_nothing :: proc{ // `inject_at_elem` injects an element in a dynamic array at a specified index and moves the previous elements after that index "across" @builtin -inject_at_elem :: proc(array: ^$T/[dynamic]$E, #any_int index: int, #no_broadcast arg: E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +inject_at_elem :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int index: int, #no_broadcast arg: E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { when !ODIN_NO_BOUNDS_CHECK { ensure(index >= 0, "Index must be positive.", loc) } @@ -1081,7 +1081,7 @@ inject_at_elem :: proc(array: ^$T/[dynamic]$E, #any_int index: int, #no_broadcas // `inject_at_elems` injects multiple elements in a dynamic array at a specified index and moves the previous elements after that index "across" @builtin -inject_at_elems :: proc(array: ^$T/[dynamic]$E, #any_int index: int, #no_broadcast args: ..E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +inject_at_elems :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int index: int, #no_broadcast args: ..E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { when !ODIN_NO_BOUNDS_CHECK { ensure(index >= 0, "Index must be positive.", loc) } @@ -1108,7 +1108,7 @@ inject_at_elems :: proc(array: ^$T/[dynamic]$E, #any_int index: int, #no_broadca // `inject_at_elem_string` injects a string into a dynamic array at a specified index and moves the previous elements after that index "across" @builtin -inject_at_elem_string :: proc(array: ^$T/[dynamic]$E/u8, #any_int index: int, arg: string, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +inject_at_elem_string :: proc(#no_alias array: ^$T/[dynamic]$E/u8, #any_int index: int, arg: string, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { when !ODIN_NO_BOUNDS_CHECK { ensure(index >= 0, "Index must be positive.", loc) } @@ -1219,7 +1219,7 @@ inject_at :: proc{ // `assign_at_elem` assigns a value at a given index. If the requested index is past the end of the current // size of the dynamic array, it will attempt to `resize` the a new length of `index+1` and then assign as `index`. @builtin -assign_at_elem :: proc(array: ^$T/[dynamic]$E, #any_int index: int, arg: E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +assign_at_elem :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int index: int, arg: E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { if index < len(array) { array[index] = arg ok = true @@ -1235,7 +1235,7 @@ assign_at_elem :: proc(array: ^$T/[dynamic]$E, #any_int index: int, arg: E, loc // `assign_at_elems` assigns a values at a given index. If the requested index is past the end of the current // size of the dynamic array, it will attempt to `resize` the a new length of `index+len(args)` and then assign as `index`. @builtin -assign_at_elems :: proc(array: ^$T/[dynamic]$E, #any_int index: int, #no_broadcast args: ..E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +assign_at_elems :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int index: int, #no_broadcast args: ..E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { new_size := index + len(args) if len(args) == 0 { ok = true @@ -1253,7 +1253,7 @@ assign_at_elems :: proc(array: ^$T/[dynamic]$E, #any_int index: int, #no_broadca // `assign_at_elem_string` assigns a string at a given index. If the requested index is past the end of the current // size of the dynamic array, it will attempt to `resize` the a new length of `index+len(arg)` and then assign as `index`. @builtin -assign_at_elem_string :: proc(array: ^$T/[dynamic]$E/u8, #any_int index: int, arg: string, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +assign_at_elem_string :: proc(#no_alias array: ^$T/[dynamic]$E/u8, #any_int index: int, arg: string, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { new_size := index + len(arg) if len(arg) == 0 { ok = true @@ -1341,7 +1341,7 @@ assign_at :: proc{ // // Note: Prefer the procedure group `clear`. @builtin -clear_dynamic_array :: proc "contextless" (array: ^$T/[dynamic]$E) { +clear_dynamic_array :: proc "contextless" (#no_alias array: ^$T/[dynamic]$E) { if array != nil { (^Raw_Dynamic_Array)(array).len = 0 } @@ -1362,7 +1362,7 @@ clear_fixed_capacity_dynamic_array :: proc "contextless" (array: ^$T/[dynamic; $ // When a memory resize allocation is required, the memory will be asked to be zeroed (i.e. it calls `mem_resize`). // // Note: Prefer the procedure group `reserve`. -_reserve_dynamic_array :: #force_no_inline proc(a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, capacity: int, should_zero: bool, loc := #caller_location) -> Allocator_Error { +_reserve_dynamic_array :: #force_no_inline proc(#no_alias a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, capacity: int, should_zero: bool, loc := #caller_location) -> Allocator_Error { if a == nil { return nil } @@ -1395,7 +1395,7 @@ _reserve_dynamic_array :: #force_no_inline proc(a: ^Raw_Dynamic_Array, size_of_e return nil } -_reserve_dynamic_array_unsafe :: #force_no_inline proc(a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, capacity: int, should_zero: bool, loc := #caller_location) -> Allocator_Error { +_reserve_dynamic_array_unsafe :: #force_no_inline proc(#no_alias a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, capacity: int, should_zero: bool, loc := #caller_location) -> Allocator_Error { if capacity <= a.cap { return nil } @@ -1430,7 +1430,7 @@ _reserve_dynamic_array_unsafe :: #force_no_inline proc(a: ^Raw_Dynamic_Array, si // // Note: Prefer the procedure group `reserve`. @builtin -reserve_dynamic_array :: proc(array: ^$T/[dynamic]$E, #any_int capacity: int, loc := #caller_location) -> Allocator_Error { +reserve_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int capacity: int, loc := #caller_location) -> Allocator_Error { return _reserve_dynamic_array((^Raw_Dynamic_Array)(array), size_of(E), align_of(E), capacity, true, loc) } @@ -1440,12 +1440,12 @@ reserve_dynamic_array :: proc(array: ^$T/[dynamic]$E, #any_int capacity: int, lo // // Note: Prefer the procedure group `non_zero_reserve`. @builtin -non_zero_reserve_dynamic_array :: proc(array: ^$T/[dynamic]$E, #any_int capacity: int, loc := #caller_location) -> Allocator_Error { +non_zero_reserve_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int capacity: int, loc := #caller_location) -> Allocator_Error { return _reserve_dynamic_array((^Raw_Dynamic_Array)(array), size_of(E), align_of(E), capacity, false, loc) } -_resize_dynamic_array :: #force_no_inline proc(a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, length: int, should_zero: bool, loc := #caller_location) -> Allocator_Error { +_resize_dynamic_array :: #force_no_inline proc(#no_alias a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, length: int, should_zero: bool, loc := #caller_location) -> Allocator_Error { if a == nil { return nil } @@ -1491,7 +1491,7 @@ _resize_dynamic_array :: #force_no_inline proc(a: ^Raw_Dynamic_Array, size_of_el // // Note: Prefer the procedure group `resize` @builtin -resize_dynamic_array :: proc(array: ^$T/[dynamic]$E, #any_int length: int, loc := #caller_location) -> Allocator_Error { +resize_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int length: int, loc := #caller_location) -> Allocator_Error { return _resize_dynamic_array((^Raw_Dynamic_Array)(array), size_of(E), align_of(E), length, true, loc=loc) } @@ -1501,7 +1501,7 @@ resize_dynamic_array :: proc(array: ^$T/[dynamic]$E, #any_int length: int, loc : // // Note: Prefer the procedure group `non_zero_resize` @builtin -non_zero_resize_dynamic_array :: proc(array: ^$T/[dynamic]$E, #any_int length: int, loc := #caller_location) -> Allocator_Error { +non_zero_resize_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int length: int, loc := #caller_location) -> Allocator_Error { return _resize_dynamic_array((^Raw_Dynamic_Array)(array), size_of(E), align_of(E), length, false, loc=loc) } @@ -1552,11 +1552,11 @@ non_zero_resize_fixed_capacity_dynamic_array :: proc "contextless" (array: ^$T/[ // // Note: Prefer the procedure group `shrink` @builtin -shrink_dynamic_array :: proc(array: ^$T/[dynamic]$E, #any_int new_cap := -1, loc := #caller_location) -> (did_shrink: bool, err: Allocator_Error) { +shrink_dynamic_array :: proc(#no_alias array: ^$T/[dynamic]$E, #any_int new_cap := -1, loc := #caller_location) -> (did_shrink: bool, err: Allocator_Error) { return _shrink_dynamic_array((^Raw_Dynamic_Array)(array), size_of(E), align_of(E), new_cap, loc) } -_shrink_dynamic_array :: proc(a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, new_cap := -1, loc := #caller_location) -> (did_shrink: bool, err: Allocator_Error) { +_shrink_dynamic_array :: proc(#no_alias a: ^Raw_Dynamic_Array, size_of_elem, align_of_elem: int, new_cap := -1, loc := #caller_location) -> (did_shrink: bool, err: Allocator_Error) { if a == nil { return } From cd08f535c8fd1e7fe6d8d5129f71dad13c782e07 Mon Sep 17 00:00:00 2001 From: Yawning Angel Date: Sun, 2 Aug 2026 21:03:11 +0900 Subject: [PATCH 04/21] src: Use `llvm.readsteadycounter` on Linux RISC-V Why `rdcycle` is kernel only while `rdtime` is not is a mystery to me. --- src/llvm_backend_proc.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index 9f1b5dd3f..05691e408 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -3418,6 +3418,18 @@ gb_internal lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValu LLVMValueRef the_asm = llvm_get_inline_asm(func_type, str_lit("mrs $0, cntvct_el0"), str_lit("=r"), has_side_effects); GB_ASSERT(the_asm != nullptr); res.value = LLVMBuildCall2(p->builder, func_type, the_asm, nullptr, 0, ""); + #if LLVM_VERSION_MAJOR > 19 || (LLVM_VERSION_MAJOR == 19 && LLVM_VERSION_MINOR >= 1) + } else if (build_context.metrics.arch == TargetArch_riscv64 && build_context.metrics.os == TargetOs_linux) { + // Linux in it's infinite wisdom decided that `rdcycle` should not be + // available to userland past Linux 6.6. Some inline assembly with + // `rdtime` would also work, but LLVM issue #117701 suggests just + // using this intrinsic. + // + // Support for this was introduced in commit `b8ed69e`, and is present + // in LLVM tags 19.1.0-rc1. + char const *name = "llvm.readsteadycounter"; + res.value = lb_call_intrinsic(p, name, nullptr, 0, nullptr, 0); + #endif } else { char const *name = "llvm.readcyclecounter"; res.value = lb_call_intrinsic(p, name, nullptr, 0, nullptr, 0); From 711d38579455b3ff8b4279762afd934b3f6207ff Mon Sep 17 00:00:00 2001 From: Yawning Angel Date: Mon, 27 Jul 2026 16:39:09 +0900 Subject: [PATCH 05/21] src: Add SpacemiT X-100 and A-100 microarchitectures Generated featuregen against the vendor supplied (Bianbu) LLVM 21.1.8 package. --- src/build_settings_microarch.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/build_settings_microarch.cpp b/src/build_settings_microarch.cpp index d3010522d..0396d2d40 100644 --- a/src/build_settings_microarch.cpp +++ b/src/build_settings_microarch.cpp @@ -21,7 +21,7 @@ gb_global String target_microarch_list[TargetArch_COUNT] = { // TargetArch_wasm64p32: str_lit("bleeding-edge,generic,lime1,mvp"), // TargetArch_riscv64: - str_lit("andes-45-series,andes-a25,andes-a45,andes-ax25,andes-ax45,andes-ax45mpv,andes-n45,andes-nx45,generic,generic-ooo,generic-rv32,generic-rv64,mips-p8700,rocket,rocket-rv32,rocket-rv64,rp2350-hazard3,sifive-7-series,sifive-e20,sifive-e21,sifive-e24,sifive-e31,sifive-e34,sifive-e76,sifive-p450,sifive-p470,sifive-p550,sifive-p670,sifive-p870,sifive-s21,sifive-s51,sifive-s54,sifive-s76,sifive-u54,sifive-u74,sifive-x280,sifive-x390,spacemit-x60,syntacore-scr1-base,syntacore-scr1-max,syntacore-scr3-rv32,syntacore-scr3-rv64,syntacore-scr4-rv32,syntacore-scr4-rv64,syntacore-scr5-rv32,syntacore-scr5-rv64,syntacore-scr7,tt-ascalon-d8,veyron-v1,xiangshan-kunminghu,xiangshan-nanhu"), + str_lit("andes-45-series,andes-a25,andes-a45,andes-ax25,andes-ax45,andes-ax45mpv,andes-n45,andes-nx45,generic,generic-ooo,generic-rv32,generic-rv64,mips-p8700,rocket,rocket-rv32,rocket-rv64,rp2350-hazard3,sifive-7-series,sifive-e20,sifive-e21,sifive-e24,sifive-e31,sifive-e34,sifive-e76,sifive-p450,sifive-p470,sifive-p550,sifive-p670,sifive-p870,sifive-s21,sifive-s51,sifive-s54,sifive-s76,sifive-u54,sifive-u74,sifive-x280,sifive-x390,spacemit-a100,spacemit-x100,spacemit-x60,syntacore-scr1-base,syntacore-scr1-max,syntacore-scr3-rv32,syntacore-scr3-rv64,syntacore-scr4-rv32,syntacore-scr4-rv64,syntacore-scr5-rv32,syntacore-scr5-rv64,syntacore-scr7,tt-ascalon-d8,veyron-v1,xiangshan-kunminghu,xiangshan-nanhu"), }; // Generated with the featuregen script in `misc/featuregen` @@ -41,7 +41,7 @@ gb_global String target_features_list[TargetArch_COUNT] = { // TargetArch_wasm64p32: str_lit("atomics,bulk-memory,bulk-memory-opt,call-indirect-overlong,exception-handling,extended-const,fp16,gc,multimemory,multivalue,mutable-globals,nontrapping-fptoint,reference-types,relaxed-simd,sign-ext,simd128,tail-call,wide-arithmetic"), // TargetArch_riscv64: - str_lit("32bit,64bit,a,add-load-fusion,addi-load-fusion,andes45,auipc-addi-fusion,auipc-load-fusion,b,bfext-fusion,c,conditional-cmv-fusion,d,disable-latency-sched-heuristic,disable-misched-load-clustering,disable-misched-store-clustering,disable-postmisched-load-clustering,disable-postmisched-store-clustering,dlen-factor-2,e,enable-vsetvli-sched-heuristic,exact-asm,experimental,experimental-p,experimental-rvm23u32,experimental-smpmpmt,experimental-svukte,experimental-xrivosvisni,experimental-xrivosvizip,experimental-xsfmclic,experimental-xsfsclic,experimental-zibi,experimental-zicfilp,experimental-zicfiss,experimental-zvbc32e,experimental-zvfbfa,experimental-zvfofp8min,experimental-zvkgs,experimental-zvqdotq,f,forced-atomics,h,i,ld-add-fusion,log-vrgather,lui-addi-fusion,lui-load-fusion,m,mips-p8700,no-default-unroll,no-sink-splat-operands,no-trailing-seq-cst-fence,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,optimized-nf5-segment-load-store,optimized-nf6-segment-load-store,optimized-nf7-segment-load-store,optimized-nf8-segment-load-store,optimized-zero-stride-load,permissive-zalrsc,predictable-select-expensive,prefer-vsetvli-over-read-vlenb,prefer-w-inst,q,relax,reserve-x1,reserve-x10,reserve-x11,reserve-x12,reserve-x13,reserve-x14,reserve-x15,reserve-x16,reserve-x17,reserve-x18,reserve-x19,reserve-x2,reserve-x20,reserve-x21,reserve-x22,reserve-x23,reserve-x24,reserve-x25,reserve-x26,reserve-x27,reserve-x28,reserve-x29,reserve-x3,reserve-x30,reserve-x31,reserve-x4,reserve-x5,reserve-x6,reserve-x7,reserve-x8,reserve-x9,rva20s64,rva20u64,rva22s64,rva22u64,rva23s64,rva23u64,rvb23s64,rvb23u64,rvi20u32,rvi20u64,save-restore,sdext,sdtrig,sha,shcounterenw,shgatpa,shifted-zextw-fusion,shlcofideleg,short-forward-branch-ialu,short-forward-branch-iload,short-forward-branch-iminmax,short-forward-branch-imul,shtvala,shvsatpa,shvstvala,shvstvecd,shxadd-load-fusion,sifive7,single-element-vec-fp64,smaia,smcdeleg,smcntrpmf,smcsrind,smctr,smdbltrp,smepmp,smmpm,smnpm,smrnmi,smstateen,ssaia,ssccfg,ssccptr,sscofpmf,sscounterenw,sscsrind,ssctr,ssdbltrp,ssnpm,sspm,ssqosid,ssstateen,ssstrict,sstc,sstvala,sstvecd,ssu64xl,supm,svade,svadu,svbare,svinval,svnapot,svpbmt,svvptc,tagged-globals,unaligned-scalar-mem,unaligned-vector-mem,use-postra-scheduler,v,ventana-veyron,vl-dependent-latency,vxrm-pipeline-flush,xandesbfhcvt,xandesperf,xandesvbfhcvt,xandesvdot,xandesvpackfph,xandesvsinth,xandesvsintload,xcvalu,xcvbi,xcvbitmanip,xcvelw,xcvmac,xcvmem,xcvsimd,xmipscbop,xmipscmov,xmipsexectl,xmipslsp,xqccmp,xqci,xqcia,xqciac,xqcibi,xqcibm,xqcicli,xqcicm,xqcics,xqcicsr,xqciint,xqciio,xqcilb,xqcili,xqcilia,xqcilo,xqcilsm,xqcisim,xqcisls,xqcisync,xsfcease,xsfmm128t,xsfmm16t,xsfmm32a16f,xsfmm32a32f,xsfmm32a8f,xsfmm32a8i,xsfmm32t,xsfmm64a64f,xsfmm64t,xsfmmbase,xsfvcp,xsfvfbfexp16e,xsfvfexp16e,xsfvfexp32e,xsfvfexpa,xsfvfexpa64e,xsfvfnrclipxfqf,xsfvfwmaccqqq,xsfvqmaccdod,xsfvqmaccqoq,xsifivecdiscarddlone,xsifivecflushdlone,xsmtvdot,xtheadba,xtheadbb,xtheadbs,xtheadcmo,xtheadcondmov,xtheadfmemidx,xtheadmac,xtheadmemidx,xtheadmempair,xtheadsync,xtheadvdot,xventanacondops,xwchc,za128rs,za64rs,zaamo,zabha,zacas,zalasr,zalrsc,zama16b,zawrs,zba,zbb,zbc,zbkb,zbkc,zbkx,zbs,zca,zcb,zcd,zce,zcf,zclsd,zcmop,zcmp,zcmt,zdinx,zexth-fusion,zextw-fusion,zfa,zfbfmin,zfh,zfhmin,zfinx,zhinx,zhinxmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccamoc,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zilsd,zilsd-4byte-align,zimop,zk,zkn,zknd,zkne,zknh,zkr,zks,zksed,zksh,zkt,zmmul,ztso,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvknc,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl1024b,zvl128b,zvl16384b,zvl2048b,zvl256b,zvl32768b,zvl32b,zvl4096b,zvl512b,zvl64b,zvl65536b,zvl8192b"), + str_lit("32bit,64bit,a,add-mem-fusion,add-or-sub-andi-fusion,addi-mem-fusion,andes45,andi-add-fusion,andi-sub-fusion,auipc-addi-fusion,b,branch-fusion,c,conditional-cmv-fusion,d,disable-latency-sched-heuristic,dlen-factor-2,e,exact-asm,experimental,experimental-p,experimental-rvm23u32,experimental-smctr,experimental-ssctr,experimental-svukte,experimental-xqccmp,experimental-xqcia,experimental-xqciac,experimental-xqcibi,experimental-xqcibm,experimental-xqcicli,experimental-xqcicm,experimental-xqcics,experimental-xqcicsr,experimental-xqciint,experimental-xqciio,experimental-xqcilb,experimental-xqcili,experimental-xqcilia,experimental-xqcilo,experimental-xqcilsm,experimental-xqcisim,experimental-xqcisls,experimental-xqcisync,experimental-xrivosvisni,experimental-xrivosvizip,experimental-xsfmclic,experimental-xsfsclic,experimental-zalasr,experimental-zicfilp,experimental-zicfiss,experimental-zvbc32e,experimental-zvkgs,experimental-zvqdotq,f,fcvt-fmul-or-fmuladd-fusion,forced-atomics,h,i,ld-add-fusion,log-vrgather,logic-imm-imm-fusion,logic-imm-reg-fusion,logic-reg-imm-fusion,logic-reg-reg-fusion,lui-addi-fusion,lui-mem-fusion,m,mips-p8700,mul-add-fusion,mulw-addw-fusion,no-default-unroll,no-sink-splat-operands,no-trailing-seq-cst-fence,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,optimized-nf5-segment-load-store,optimized-nf6-segment-load-store,optimized-nf7-segment-load-store,optimized-nf8-segment-load-store,optimized-zero-stride-load,predictable-select-expensive,prefer-vsetvli-over-read-vlenb,prefer-w-inst,q,relax,reserve-x1,reserve-x10,reserve-x11,reserve-x12,reserve-x13,reserve-x14,reserve-x15,reserve-x16,reserve-x17,reserve-x18,reserve-x19,reserve-x2,reserve-x20,reserve-x21,reserve-x22,reserve-x23,reserve-x24,reserve-x25,reserve-x26,reserve-x27,reserve-x28,reserve-x29,reserve-x3,reserve-x30,reserve-x31,reserve-x4,reserve-x5,reserve-x6,reserve-x7,reserve-x8,reserve-x9,rva20s64,rva20u64,rva22s64,rva22u64,rva23s64,rva23u64,rvb23s64,rvb23u64,rvi20u32,rvi20u64,save-restore,sdext,sdtrig,sh1adduw-lh-fusion,sha,shcounterenw,shgatpa,shift-imm-op-fusion,shifted-zextw-fusion,shlcofideleg,short-forward-branch-opt,shtvala,shvsatpa,shvstvala,shvstvecd,sifive7,smaia,smcdeleg,smcntrpmf,smcsrind,smdbltrp,smepmp,smmpm,smnpm,smrnmi,smstateen,ssaia,ssccfg,ssccptr,sscofpmf,sscounterenw,sscsrind,ssdbltrp,ssnpm,sspm,ssqosid,ssstateen,ssstrict,sstc,sstvala,sstvecd,ssu64xl,sub-sltiu-fusion,sub-sltu-fusion,supm,svade,svadu,svbare,svinval,svnapot,svpbmt,svvptc,tagged-globals,unaligned-scalar-mem,unaligned-vector-mem,use-postra-scheduler,v,ventana-veyron,vl-dependent-latency,vxrm-pipeline-flush,xandesbfhcvt,xandesperf,xandesvbfhcvt,xandesvdot,xandesvpackfph,xandesvsintload,xcvalu,xcvbi,xcvbitmanip,xcvelw,xcvmac,xcvmem,xcvsimd,xmipscbop,xmipscmov,xmipslsp,xsfcease,xsfmm128t,xsfmm16t,xsfmm32a16f,xsfmm32a32f,xsfmm32a8f,xsfmm32a8i,xsfmm32t,xsfmm64a64f,xsfmm64t,xsfmmbase,xsfvcp,xsfvfnrclipxfqf,xsfvfwmaccqqq,xsfvqmaccdod,xsfvqmaccqoq,xsifivecdiscarddlone,xsifivecflushdlone,xsmtvdot,xsmtvdotii,xtheadba,xtheadbb,xtheadbs,xtheadcmo,xtheadcondmov,xtheadfmemidx,xtheadmac,xtheadmemidx,xtheadmempair,xtheadsync,xtheadvdot,xventanacondops,xwchc,za128rs,za64rs,zaamo,zabha,zacas,zalrsc,zama16b,zawrs,zba,zbb,zbc,zbkb,zbkc,zbkx,zbs,zca,zcb,zcd,zce,zcf,zclsd,zcmop,zcmp,zcmt,zdinx,zexth-fusion,zextw-fusion,zfa,zfbfmin,zfh,zfhmin,zfinx,zhinx,zhinxmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccamoc,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zilsd,zimop,zk,zkn,zknd,zkne,zknh,zkr,zks,zksed,zksh,zkt,zmmul,ztso,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvknc,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl1024b,zvl128b,zvl16384b,zvl2048b,zvl256b,zvl32768b,zvl32b,zvl4096b,zvl512b,zvl64b,zvl65536b,zvl8192b"), }; // Generated with the featuregen script in `misc/featuregen` @@ -61,7 +61,7 @@ gb_global int target_microarch_counts[TargetArch_COUNT] = { // TargetArch_wasm64p32: 4, // TargetArch_riscv64: - 51, + 53, }; // Generated with the featuregen script in `misc/featuregen` @@ -574,6 +574,8 @@ gb_global MicroarchFeatureList microarch_features_list[] = { { str_lit("sifive-u74"), str_lit("64bit,a,c,d,f,i,m,no-default-unroll,short-forward-branch-ialu,sifive7,use-postra-scheduler,zaamo,zalrsc,zca,zicsr,zifencei,zmmul") }, { str_lit("sifive-x280"), str_lit("64bit,a,c,d,dlen-factor-2,f,i,m,no-default-unroll,optimized-nf2-segment-load-store,optimized-zero-stride-load,short-forward-branch-ialu,sifive7,use-postra-scheduler,v,vl-dependent-latency,zaamo,zalrsc,zba,zbb,zca,zfh,zfhmin,zicsr,zifencei,zmmul,zve32f,zve32x,zve64d,zve64f,zve64x,zvfh,zvfhmin,zvl128b,zvl256b,zvl32b,zvl512b,zvl64b") }, { str_lit("sifive-x390"), str_lit("64bit,a,b,c,d,dlen-factor-2,experimental-zicfilp,experimental-zicfiss,f,i,m,no-default-unroll,optimized-nf2-segment-load-store,optimized-zero-stride-load,short-forward-branch-ialu,sifive7,single-element-vec-fp64,use-postra-scheduler,v,vl-dependent-latency,xsifivecdiscarddlone,xsifivecflushdlone,za64rs,zaamo,zalrsc,zawrs,zba,zbb,zbs,zca,zcb,zcmop,zfa,zfbfmin,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zimop,zkr,zkt,zmmul,zvbb,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkt,zvl1024b,zvl128b,zvl256b,zvl32b,zvl512b,zvl64b") }, + { str_lit("spacemit-a100"), str_lit("64bit,a,add-or-sub-andi-fusion,addi-mem-fusion,andi-add-fusion,andi-sub-fusion,auipc-addi-fusion,b,branch-fusion,c,d,dlen-factor-2,f,fcvt-fmul-or-fmuladd-fusion,h,i,logic-imm-imm-fusion,logic-imm-reg-fusion,logic-reg-imm-fusion,logic-reg-reg-fusion,lui-addi-fusion,lui-mem-fusion,m,no-default-unroll,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,prefer-w-inst,sh1adduw-lh-fusion,sha,shcounterenw,shgatpa,shtvala,shvsatpa,shvstvala,shvstvecd,smepmp,smnpm,smstateen,ssccptr,sscofpmf,sscounterenw,ssnpm,sspm,ssstateen,sstc,sstvala,sstvecd,ssu64xl,sub-sltiu-fusion,sub-sltu-fusion,supm,svade,svbare,svinval,svnapot,svpbmt,use-postra-scheduler,v,vxrm-pipeline-flush,xsmtvdotii,za64rs,zaamo,zalrsc,zawrs,zba,zbb,zbc,zbkc,zbs,zca,zcb,zcd,zcmop,zfa,zfbfmin,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zimop,zkt,zmmul,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl1024b,zvl128b,zvl256b,zvl32b,zvl512b,zvl64b") }, + { str_lit("spacemit-x100"), str_lit("64bit,a,add-mem-fusion,b,c,d,dlen-factor-2,f,h,i,logic-imm-reg-fusion,logic-reg-imm-fusion,logic-reg-reg-fusion,lui-addi-fusion,m,mul-add-fusion,mulw-addw-fusion,no-default-unroll,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,sha,shcounterenw,shgatpa,shift-imm-op-fusion,shtvala,shvsatpa,shvstvala,shvstvecd,smepmp,smnpm,smstateen,ssccptr,sscofpmf,sscounterenw,ssnpm,sspm,ssstateen,sstc,sstvala,sstvecd,ssu64xl,supm,svade,svbare,svinval,svnapot,svpbmt,use-postra-scheduler,v,vxrm-pipeline-flush,xsmtvdot,za64rs,zaamo,zalrsc,zawrs,zba,zbb,zbc,zbkc,zbs,zca,zcb,zcd,zcmop,zfa,zfbfmin,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zimop,zkt,zmmul,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl128b,zvl256b,zvl32b,zvl64b") }, { str_lit("spacemit-x60"), str_lit("64bit,a,b,c,d,dlen-factor-2,f,i,m,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,ssccptr,sscofpmf,sscounterenw,sstc,sstvala,sstvecd,svade,svbare,svinval,svnapot,svpbmt,unaligned-scalar-mem,v,vxrm-pipeline-flush,xsmtvdot,za64rs,zaamo,zalrsc,zba,zbb,zbc,zbkc,zbs,zca,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintpause,zihpm,zkt,zmmul,zve32f,zve32x,zve64d,zve64f,zve64x,zvfh,zvfhmin,zvkt,zvl128b,zvl256b,zvl32b,zvl64b") }, { str_lit("syntacore-scr1-base"), str_lit("32bit,c,i,no-default-unroll,zca,zicsr,zifencei") }, { str_lit("syntacore-scr1-max"), str_lit("32bit,c,i,m,no-default-unroll,zca,zicsr,zifencei,zmmul") }, @@ -608,7 +610,7 @@ gb_global String target_microarch_list[TargetArch_COUNT] = { // TargetArch_wasm64p32: str_lit("bleeding-edge,generic,lime1,mvp"), // TargetArch_riscv64: - str_lit("andes-45-series,andes-a25,andes-a45,andes-ax25,andes-ax45,andes-ax45mpv,andes-n45,andes-nx45,generic,generic-ooo,generic-rv32,generic-rv64,mips-p8700,rocket,rocket-rv32,rocket-rv64,rp2350-hazard3,sifive-7-series,sifive-e20,sifive-e21,sifive-e24,sifive-e31,sifive-e34,sifive-e76,sifive-p450,sifive-p470,sifive-p550,sifive-p670,sifive-p870,sifive-s21,sifive-s51,sifive-s54,sifive-s76,sifive-u54,sifive-u74,sifive-x280,sifive-x390,spacemit-x60,syntacore-scr1-base,syntacore-scr1-max,syntacore-scr3-rv32,syntacore-scr3-rv64,syntacore-scr4-rv32,syntacore-scr4-rv64,syntacore-scr5-rv32,syntacore-scr5-rv64,syntacore-scr7,tt-ascalon-d8,veyron-v1,xiangshan-kunminghu,xiangshan-nanhu"), + str_lit("andes-45-series,andes-a25,andes-a45,andes-ax25,andes-ax45,andes-ax45mpv,andes-n45,andes-nx45,generic,generic-ooo,generic-rv32,generic-rv64,mips-p8700,rocket,rocket-rv32,rocket-rv64,rp2350-hazard3,sifive-7-series,sifive-e20,sifive-e21,sifive-e24,sifive-e31,sifive-e34,sifive-e76,sifive-p450,sifive-p470,sifive-p550,sifive-p670,sifive-p870,sifive-s21,sifive-s51,sifive-s54,sifive-s76,sifive-u54,sifive-u74,sifive-x280,sifive-x390,spacemit-a100,spacemit-x100,spacemit-x60,syntacore-scr1-base,syntacore-scr1-max,syntacore-scr3-rv32,syntacore-scr3-rv64,syntacore-scr4-rv32,syntacore-scr4-rv64,syntacore-scr5-rv32,syntacore-scr5-rv64,syntacore-scr7,tt-ascalon-d8,veyron-v1,xiangshan-kunminghu,xiangshan-nanhu"), }; // Generated with the featuregen script in `misc/featuregen` @@ -628,7 +630,7 @@ gb_global String target_features_list[TargetArch_COUNT] = { // TargetArch_wasm64p32: str_lit("atomics,bulk-memory,bulk-memory-opt,call-indirect-overlong,exception-handling,extended-const,fp16,multimemory,multivalue,mutable-globals,nontrapping-fptoint,reference-types,relaxed-simd,sign-ext,simd128,tail-call,wide-arithmetic"), // TargetArch_riscv64: - str_lit("32bit,64bit,a,andes45,auipc-addi-fusion,b,c,conditional-cmv-fusion,d,disable-latency-sched-heuristic,dlen-factor-2,e,exact-asm,experimental,experimental-p,experimental-rvm23u32,experimental-smctr,experimental-ssctr,experimental-svukte,experimental-xqccmp,experimental-xqcia,experimental-xqciac,experimental-xqcibi,experimental-xqcibm,experimental-xqcicli,experimental-xqcicm,experimental-xqcics,experimental-xqcicsr,experimental-xqciint,experimental-xqciio,experimental-xqcilb,experimental-xqcili,experimental-xqcilia,experimental-xqcilo,experimental-xqcilsm,experimental-xqcisim,experimental-xqcisls,experimental-xqcisync,experimental-xrivosvisni,experimental-xrivosvizip,experimental-xsfmclic,experimental-xsfsclic,experimental-zalasr,experimental-zicfilp,experimental-zicfiss,experimental-zvbc32e,experimental-zvkgs,experimental-zvqdotq,f,forced-atomics,h,i,ld-add-fusion,log-vrgather,lui-addi-fusion,m,mips-p8700,no-default-unroll,no-sink-splat-operands,no-trailing-seq-cst-fence,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,optimized-nf5-segment-load-store,optimized-nf6-segment-load-store,optimized-nf7-segment-load-store,optimized-nf8-segment-load-store,optimized-zero-stride-load,predictable-select-expensive,prefer-vsetvli-over-read-vlenb,prefer-w-inst,q,relax,reserve-x1,reserve-x10,reserve-x11,reserve-x12,reserve-x13,reserve-x14,reserve-x15,reserve-x16,reserve-x17,reserve-x18,reserve-x19,reserve-x2,reserve-x20,reserve-x21,reserve-x22,reserve-x23,reserve-x24,reserve-x25,reserve-x26,reserve-x27,reserve-x28,reserve-x29,reserve-x3,reserve-x30,reserve-x31,reserve-x4,reserve-x5,reserve-x6,reserve-x7,reserve-x8,reserve-x9,rva20s64,rva20u64,rva22s64,rva22u64,rva23s64,rva23u64,rvb23s64,rvb23u64,rvi20u32,rvi20u64,save-restore,sdext,sdtrig,sha,shcounterenw,shgatpa,shifted-zextw-fusion,shlcofideleg,short-forward-branch-opt,shtvala,shvsatpa,shvstvala,shvstvecd,sifive7,smaia,smcdeleg,smcntrpmf,smcsrind,smdbltrp,smepmp,smmpm,smnpm,smrnmi,smstateen,ssaia,ssccfg,ssccptr,sscofpmf,sscounterenw,sscsrind,ssdbltrp,ssnpm,sspm,ssqosid,ssstateen,ssstrict,sstc,sstvala,sstvecd,ssu64xl,supm,svade,svadu,svbare,svinval,svnapot,svpbmt,svvptc,tagged-globals,unaligned-scalar-mem,unaligned-vector-mem,use-postra-scheduler,v,ventana-veyron,vl-dependent-latency,vxrm-pipeline-flush,xandesbfhcvt,xandesperf,xandesvbfhcvt,xandesvdot,xandesvpackfph,xandesvsintload,xcvalu,xcvbi,xcvbitmanip,xcvelw,xcvmac,xcvmem,xcvsimd,xmipscbop,xmipscmov,xmipslsp,xsfcease,xsfmm128t,xsfmm16t,xsfmm32a16f,xsfmm32a32f,xsfmm32a8f,xsfmm32a8i,xsfmm32t,xsfmm64a64f,xsfmm64t,xsfmmbase,xsfvcp,xsfvfnrclipxfqf,xsfvfwmaccqqq,xsfvqmaccdod,xsfvqmaccqoq,xsifivecdiscarddlone,xsifivecflushdlone,xtheadba,xtheadbb,xtheadbs,xtheadcmo,xtheadcondmov,xtheadfmemidx,xtheadmac,xtheadmemidx,xtheadmempair,xtheadsync,xtheadvdot,xventanacondops,xwchc,za128rs,za64rs,zaamo,zabha,zacas,zalrsc,zama16b,zawrs,zba,zbb,zbc,zbkb,zbkc,zbkx,zbs,zca,zcb,zcd,zce,zcf,zclsd,zcmop,zcmp,zcmt,zdinx,zexth-fusion,zextw-fusion,zfa,zfbfmin,zfh,zfhmin,zfinx,zhinx,zhinxmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccamoc,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zilsd,zimop,zk,zkn,zknd,zkne,zknh,zkr,zks,zksed,zksh,zkt,zmmul,ztso,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvknc,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl1024b,zvl128b,zvl16384b,zvl2048b,zvl256b,zvl32768b,zvl32b,zvl4096b,zvl512b,zvl64b,zvl65536b,zvl8192b"), + str_lit("32bit,64bit,a,add-mem-fusion,add-or-sub-andi-fusion,addi-mem-fusion,andes45,andi-add-fusion,andi-sub-fusion,auipc-addi-fusion,b,branch-fusion,c,conditional-cmv-fusion,d,disable-latency-sched-heuristic,dlen-factor-2,e,exact-asm,experimental,experimental-p,experimental-rvm23u32,experimental-smctr,experimental-ssctr,experimental-svukte,experimental-xqccmp,experimental-xqcia,experimental-xqciac,experimental-xqcibi,experimental-xqcibm,experimental-xqcicli,experimental-xqcicm,experimental-xqcics,experimental-xqcicsr,experimental-xqciint,experimental-xqciio,experimental-xqcilb,experimental-xqcili,experimental-xqcilia,experimental-xqcilo,experimental-xqcilsm,experimental-xqcisim,experimental-xqcisls,experimental-xqcisync,experimental-xrivosvisni,experimental-xrivosvizip,experimental-xsfmclic,experimental-xsfsclic,experimental-zalasr,experimental-zicfilp,experimental-zicfiss,experimental-zvbc32e,experimental-zvkgs,experimental-zvqdotq,f,fcvt-fmul-or-fmuladd-fusion,forced-atomics,h,i,ld-add-fusion,log-vrgather,logic-imm-imm-fusion,logic-imm-reg-fusion,logic-reg-imm-fusion,logic-reg-reg-fusion,lui-addi-fusion,lui-mem-fusion,m,mips-p8700,mul-add-fusion,mulw-addw-fusion,no-default-unroll,no-sink-splat-operands,no-trailing-seq-cst-fence,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,optimized-nf5-segment-load-store,optimized-nf6-segment-load-store,optimized-nf7-segment-load-store,optimized-nf8-segment-load-store,optimized-zero-stride-load,predictable-select-expensive,prefer-vsetvli-over-read-vlenb,prefer-w-inst,q,relax,reserve-x1,reserve-x10,reserve-x11,reserve-x12,reserve-x13,reserve-x14,reserve-x15,reserve-x16,reserve-x17,reserve-x18,reserve-x19,reserve-x2,reserve-x20,reserve-x21,reserve-x22,reserve-x23,reserve-x24,reserve-x25,reserve-x26,reserve-x27,reserve-x28,reserve-x29,reserve-x3,reserve-x30,reserve-x31,reserve-x4,reserve-x5,reserve-x6,reserve-x7,reserve-x8,reserve-x9,rva20s64,rva20u64,rva22s64,rva22u64,rva23s64,rva23u64,rvb23s64,rvb23u64,rvi20u32,rvi20u64,save-restore,sdext,sdtrig,sh1adduw-lh-fusion,sha,shcounterenw,shgatpa,shift-imm-op-fusion,shifted-zextw-fusion,shlcofideleg,short-forward-branch-opt,shtvala,shvsatpa,shvstvala,shvstvecd,sifive7,smaia,smcdeleg,smcntrpmf,smcsrind,smdbltrp,smepmp,smmpm,smnpm,smrnmi,smstateen,ssaia,ssccfg,ssccptr,sscofpmf,sscounterenw,sscsrind,ssdbltrp,ssnpm,sspm,ssqosid,ssstateen,ssstrict,sstc,sstvala,sstvecd,ssu64xl,sub-sltiu-fusion,sub-sltu-fusion,supm,svade,svadu,svbare,svinval,svnapot,svpbmt,svvptc,tagged-globals,unaligned-scalar-mem,unaligned-vector-mem,use-postra-scheduler,v,ventana-veyron,vl-dependent-latency,vxrm-pipeline-flush,xandesbfhcvt,xandesperf,xandesvbfhcvt,xandesvdot,xandesvpackfph,xandesvsintload,xcvalu,xcvbi,xcvbitmanip,xcvelw,xcvmac,xcvmem,xcvsimd,xmipscbop,xmipscmov,xmipslsp,xsfcease,xsfmm128t,xsfmm16t,xsfmm32a16f,xsfmm32a32f,xsfmm32a8f,xsfmm32a8i,xsfmm32t,xsfmm64a64f,xsfmm64t,xsfmmbase,xsfvcp,xsfvfnrclipxfqf,xsfvfwmaccqqq,xsfvqmaccdod,xsfvqmaccqoq,xsifivecdiscarddlone,xsifivecflushdlone,xsmtvdot,xsmtvdotii,xtheadba,xtheadbb,xtheadbs,xtheadcmo,xtheadcondmov,xtheadfmemidx,xtheadmac,xtheadmemidx,xtheadmempair,xtheadsync,xtheadvdot,xventanacondops,xwchc,za128rs,za64rs,zaamo,zabha,zacas,zalrsc,zama16b,zawrs,zba,zbb,zbc,zbkb,zbkc,zbkx,zbs,zca,zcb,zcd,zce,zcf,zclsd,zcmop,zcmp,zcmt,zdinx,zexth-fusion,zextw-fusion,zfa,zfbfmin,zfh,zfhmin,zfinx,zhinx,zhinxmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccamoc,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zilsd,zimop,zk,zkn,zknd,zkne,zknh,zkr,zks,zksed,zksh,zkt,zmmul,ztso,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvknc,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl1024b,zvl128b,zvl16384b,zvl2048b,zvl256b,zvl32768b,zvl32b,zvl4096b,zvl512b,zvl64b,zvl65536b,zvl8192b"), }; // Generated with the featuregen script in `misc/featuregen` @@ -648,7 +650,7 @@ gb_global int target_microarch_counts[TargetArch_COUNT] = { // TargetArch_wasm64p32: 4, // TargetArch_riscv64: - 51, + 53, }; // Generated with the featuregen script in `misc/featuregen` @@ -1149,6 +1151,8 @@ gb_global MicroarchFeatureList microarch_features_list[] = { { str_lit("sifive-u74"), str_lit("64bit,a,c,d,f,i,m,no-default-unroll,short-forward-branch-opt,sifive7,use-postra-scheduler,zaamo,zalrsc,zca,zicsr,zifencei,zmmul") }, { str_lit("sifive-x280"), str_lit("64bit,a,c,d,dlen-factor-2,f,i,m,no-default-unroll,optimized-nf2-segment-load-store,optimized-zero-stride-load,short-forward-branch-opt,sifive7,use-postra-scheduler,v,vl-dependent-latency,zaamo,zalrsc,zba,zbb,zca,zfh,zfhmin,zicsr,zifencei,zmmul,zve32f,zve32x,zve64d,zve64f,zve64x,zvfh,zvfhmin,zvl128b,zvl256b,zvl32b,zvl512b,zvl64b") }, { str_lit("sifive-x390"), str_lit("64bit,a,b,c,d,dlen-factor-2,experimental-zicfilp,experimental-zicfiss,f,i,m,no-default-unroll,optimized-nf2-segment-load-store,optimized-zero-stride-load,short-forward-branch-opt,sifive7,use-postra-scheduler,v,vl-dependent-latency,xsifivecdiscarddlone,xsifivecflushdlone,za64rs,zaamo,zalrsc,zawrs,zba,zbb,zbs,zca,zcb,zcmop,zfa,zfbfmin,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zimop,zkr,zkt,zmmul,zvbb,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkt,zvl1024b,zvl128b,zvl256b,zvl32b,zvl512b,zvl64b") }, + { str_lit("spacemit-a100"), str_lit("64bit,a,add-or-sub-andi-fusion,addi-mem-fusion,andi-add-fusion,andi-sub-fusion,auipc-addi-fusion,b,branch-fusion,c,d,dlen-factor-2,f,fcvt-fmul-or-fmuladd-fusion,h,i,logic-imm-imm-fusion,logic-imm-reg-fusion,logic-reg-imm-fusion,logic-reg-reg-fusion,lui-addi-fusion,lui-mem-fusion,m,no-default-unroll,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,prefer-w-inst,sh1adduw-lh-fusion,sha,shcounterenw,shgatpa,shtvala,shvsatpa,shvstvala,shvstvecd,smepmp,smnpm,smstateen,ssccptr,sscofpmf,sscounterenw,ssnpm,sspm,ssstateen,sstc,sstvala,sstvecd,ssu64xl,sub-sltiu-fusion,sub-sltu-fusion,supm,svade,svbare,svinval,svnapot,svpbmt,use-postra-scheduler,v,vxrm-pipeline-flush,xsmtvdotii,za64rs,zaamo,zalrsc,zawrs,zba,zbb,zbc,zbkc,zbs,zca,zcb,zcd,zcmop,zfa,zfbfmin,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zimop,zkt,zmmul,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl1024b,zvl128b,zvl256b,zvl32b,zvl512b,zvl64b") }, + { str_lit("spacemit-x100"), str_lit("64bit,a,add-mem-fusion,b,c,d,dlen-factor-2,f,h,i,logic-imm-reg-fusion,logic-reg-imm-fusion,logic-reg-reg-fusion,lui-addi-fusion,m,mul-add-fusion,mulw-addw-fusion,no-default-unroll,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,sha,shcounterenw,shgatpa,shift-imm-op-fusion,shtvala,shvsatpa,shvstvala,shvstvecd,smepmp,smnpm,smstateen,ssccptr,sscofpmf,sscounterenw,ssnpm,sspm,ssstateen,sstc,sstvala,sstvecd,ssu64xl,supm,svade,svbare,svinval,svnapot,svpbmt,use-postra-scheduler,v,vxrm-pipeline-flush,xsmtvdot,za64rs,zaamo,zalrsc,zawrs,zba,zbb,zbc,zbkc,zbs,zca,zcb,zcd,zcmop,zfa,zfbfmin,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintntl,zihintpause,zihpm,zimop,zkt,zmmul,zvbb,zvbc,zve32f,zve32x,zve64d,zve64f,zve64x,zvfbfmin,zvfbfwma,zvfh,zvfhmin,zvkb,zvkg,zvkn,zvkned,zvkng,zvknha,zvknhb,zvks,zvksc,zvksed,zvksg,zvksh,zvkt,zvl128b,zvl256b,zvl32b,zvl64b") }, { str_lit("spacemit-x60"), str_lit("64bit,a,b,c,d,dlen-factor-2,f,i,m,optimized-nf2-segment-load-store,optimized-nf3-segment-load-store,optimized-nf4-segment-load-store,ssccptr,sscofpmf,sscounterenw,sstc,sstvala,sstvecd,svade,svbare,svinval,svnapot,svpbmt,unaligned-scalar-mem,v,vxrm-pipeline-flush,za64rs,zaamo,zalrsc,zba,zbb,zbc,zbkc,zbs,zca,zfh,zfhmin,zic64b,zicbom,zicbop,zicboz,ziccamoa,ziccif,zicclsm,ziccrse,zicntr,zicond,zicsr,zifencei,zihintpause,zihpm,zkt,zmmul,zve32f,zve32x,zve64d,zve64f,zve64x,zvfh,zvfhmin,zvkt,zvl128b,zvl256b,zvl32b,zvl64b") }, { str_lit("syntacore-scr1-base"), str_lit("32bit,c,i,no-default-unroll,zca,zicsr,zifencei") }, { str_lit("syntacore-scr1-max"), str_lit("32bit,c,i,m,no-default-unroll,zca,zicsr,zifencei,zmmul") }, From 3e24e2601cf3c399b4514aa730a89fbde18ef8a4 Mon Sep 17 00:00:00 2001 From: Phil Date: Sun, 2 Aug 2026 14:26:19 -0700 Subject: [PATCH 06/21] zero tracking_allocator.allocation_map and tracking_allocator.bad_free_array in destroy. Allows for re-using the struct again after an init. Otherwise, there would be dangling references. e.g. to tracking_allocator.allocation_map.data --- core/mem/tracking_allocator.odin | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/mem/tracking_allocator.odin b/core/mem/tracking_allocator.odin index d6462faf1..96a417d7a 100644 --- a/core/mem/tracking_allocator.odin +++ b/core/mem/tracking_allocator.odin @@ -82,6 +82,8 @@ Destroy the tracking allocator. tracking_allocator_destroy :: proc(t: ^Tracking_Allocator) { delete(t.allocation_map) delete(t.bad_free_array) + t.allocation_map = {} + t.bad_free_array = {} } /* From 439edc5fa8e5033b4881dceaedf73b4b1be00e95 Mon Sep 17 00:00:00 2001 From: corley <28909106+corleypc@users.noreply.github.com> Date: Mon, 3 Aug 2026 02:32:09 +0300 Subject: [PATCH 07/21] make soa builtins go vroom --- base/runtime/core_builtin_soa.odin | 478 ++++++++++++++++------ tests/core/runtime/test_core_runtime.odin | 193 +++++++++ tests/core/speed.odin | 3 +- 3 files changed, 556 insertions(+), 118 deletions(-) diff --git a/base/runtime/core_builtin_soa.odin b/base/runtime/core_builtin_soa.odin index f4cdec08f..9dca88d9f 100644 --- a/base/runtime/core_builtin_soa.odin +++ b/base/runtime/core_builtin_soa.odin @@ -50,13 +50,18 @@ Raw_SOA_Footer_Dynamic_Array :: struct { allocator: Allocator, } +// Note: When casting array to access footer/fields +// uintptr(array) lowers to LLVM ptrtoint and captures pointer provenance, +// whcih defeats #no_alias on the array in any code following (including in callers). +// Multipointer indexing lowers to GEP and doesn't capture, so prefer that throughout. + @(builtin, require_results) raw_soa_footer_slice :: proc(array: ^$T/#soa[]$E) -> (footer: ^Raw_SOA_Footer_Slice) { if array == nil { return nil } - field_count := uintptr(len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E)) - footer = (^Raw_SOA_Footer_Slice)(uintptr(array) + field_count*size_of(rawptr)) + field_count := len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) + footer = (^Raw_SOA_Footer_Slice)(&([^]byte)(array)[field_count*size_of(rawptr)]) return } @(builtin, require_results) @@ -64,8 +69,8 @@ raw_soa_footer_dynamic_array :: proc(array: ^$T/#soa[dynamic]$E) -> (footer: ^Ra if array == nil { return nil } - field_count := uintptr(len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E)) - footer = (^Raw_SOA_Footer_Dynamic_Array)(uintptr(array) + field_count*size_of(rawptr)) + field_count := len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) + footer = (^Raw_SOA_Footer_Dynamic_Array)(&([^]byte)(array)[field_count*size_of(rawptr)]) return } raw_soa_footer :: proc{ @@ -118,15 +123,13 @@ make_soa_aligned :: proc($T: typeid/#soa[]$E, #any_int length, alignment: int, a } new_data := raw_data(new_bytes) - data := uintptr(&array) offset := 0 for i in 0.. Allocator_Error { +resize_soa :: proc(#no_alias array: ^$T/#soa[dynamic]$E, #any_int length: int, loc := #caller_location) -> Allocator_Error { if array == nil { return nil } @@ -215,7 +218,7 @@ resize_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int length: int, loc := #cal } @builtin -non_zero_resize_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int length: int, loc := #caller_location) -> Allocator_Error { +non_zero_resize_soa :: proc(#no_alias array: ^$T/#soa[dynamic]$E, #any_int length: int, loc := #caller_location) -> Allocator_Error { if array == nil { return nil } @@ -225,6 +228,15 @@ non_zero_resize_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int length: int, lo return nil } +// `reserve_soa` will try to reserve memory of a passed SOA dynamic array to the requested element count (setting the `cap`). +// +// For maximizing performance it is recommended to avoid power-of-2 capacities +// when manually reserving memory for SOA arrays, more so for sizes above 512. +// For element types with several fields, prefer padding such capacities by at +// least the number of fields that fit in a CPU cache line. +// Modern cache lines are typically 64 (Intel/AMD/Arm64) or 128 bytes (Apple Silicon), +// so pad requested capacity with e.g. `128 / size_of(field)` (for the smallest field when field sizes differ), +// that is, prefer capacity of 4128 instead of 4096 for 4-byte fields. @builtin reserve_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int capacity: int, loc := #caller_location) -> Allocator_Error { return _reserve_soa(array, capacity, true, loc) @@ -235,7 +247,33 @@ non_zero_reserve_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int capacity: int, return _reserve_soa(array, capacity, false, loc) } -_reserve_soa :: proc(array: ^$T/#soa[dynamic]$E, capacity: int, zero_memory: bool, loc := #caller_location) -> Allocator_Error { + +// Note: capacity and performance +// Each field is stored in contiguous memory with stride between fields capacity * size_of(field) (+ alignment). +// When the stride is a multiple of 4KB, e.g. a power-of-2 capacity >= 1024 with 4-byte fields, +// every same-size field's cache line for a given index maps to the same L1 set, and +// per-element operations degrade (e.g. append_soa, inject_at_soa). +// It is worst past 8 same-size fields where the burst exceeds the common +// L1 8-way associativity and the fields collide (measured up to ~7-8x degradation +// on a type with 18 same-size fields; fields of different sizes advance through +// the sets at different rates, so they don't collide persistently). +// Common SoA iterative flows may also be affected, when the loop touches multiple fields +// and other hot data aliases the same L1 set. +// So, for types with several fields, prefer padding such capacities by at +// least the number of fields that fit in a CPU cache line. +// Modern cache lines are typically 64 (Intel/AMD/Arm64) or 128 bytes (Apple Silicon), +// so pad with e.g. 128 / size_of(field) (for the smallest field when field sizes differ), +// so prefer 4128 instead of 4096 for 4-byte fields. Setting cap to e.g. 4097 is NOT enough +// (it shifts field memory by only 4 bytes (same cache line) and fields keep colliding). +// Note: 4KB stride in the discussion above is the x86 L1 set period (32–48KB/8–12-way); +// Apple Silicon (128KB/8-way) has a 16KB period, so cap 4096 × 4 = 16KB stride +// is still pathological there and the recommended 128-byte pad fixes it. +// Note: struct size also plays a role, but the user facing padding recommendation +// on reserve_soa() will handle up to 256 fields (of 4 bytes) decently on 8-way caches. +// Note: Ideally, this should be handled internally by allowing allocated capacity to exceed requested capacity. +// This would break current runtime tests though, they explicitly test requested cap. +// Note: Capacities produced by append growth all the way from empty (2*cap + 8) are not affected. +_reserve_soa :: #force_no_inline proc(array: ^$T/#soa[dynamic]$E, capacity: int, zero_memory: bool, loc := #caller_location) -> Allocator_Error { if array == nil { return nil } @@ -322,7 +360,7 @@ _reserve_soa :: proc(array: ^$T/#soa[dynamic]$E, capacity: int, zero_memory: boo mem_copy(new_data_elem, old_data_elem, old_size_elem) - (^rawptr)(uintptr(array) + i*size_of(rawptr))^ = new_data_elem + ([^]rawptr)(array)[i] = new_data_elem if zero_memory { mem_zero(rawptr(uintptr(new_data_elem) + uintptr(old_size_elem)), new_size_elem - old_size_elem) @@ -361,7 +399,7 @@ _reserve_soa :: proc(array: ^$T/#soa[dynamic]$E, capacity: int, zero_memory: boo mem_copy(new_data_elem, old_data_elem, type.size * old_cap) - (^rawptr)(uintptr(array) + i*size_of(rawptr))^ = new_data_elem + ([^]rawptr)(array)[i] = new_data_elem old_offset += type.size * old_cap new_offset += type.size * capacity @@ -388,7 +426,7 @@ non_zero_append_soa_elem :: proc(array: ^$T/#soa[dynamic]$E, #no_broadcast arg: return _append_soa_elem(array, false, arg, loc) } -_append_soa_elem :: proc(array: ^$T/#soa[dynamic]$E, zero_memory: bool, #no_broadcast arg: E, loc := #caller_location) -> (n: int, err: Allocator_Error) #optional_allocator_error { +_append_soa_elem :: proc(#no_alias array: ^$T/#soa[dynamic]$E, zero_memory: bool, #no_broadcast arg: E, loc := #caller_location) -> (n: int, err: Allocator_Error) #optional_allocator_error { if array == nil { return 0, nil } @@ -399,35 +437,13 @@ _append_soa_elem :: proc(array: ^$T/#soa[dynamic]$E, zero_memory: bool, #no_broa err = _reserve_soa(array, cap, zero_memory, loc) // do not 'or_return' here as it could be a partial success } - footer := raw_soa_footer(array) - if size_of(E) > 0 && cap(array)-len(array) > 0 { - ti := type_info_of(T) - ti = type_info_base(ti) - si := &ti.variant.(Type_Info_Struct) - field_count := uintptr(len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E)) - - data := (^rawptr)(array)^ - - soa_offset := 0 - item_offset := 0 - - arg_copy := arg - arg_ptr := &arg_copy - - max_align :: align_of(E) - for i in 0.. (n: int, err: Allocator_Error) #optional_allocator_error { +_append_soa_elems :: proc(#no_alias array: ^$T/#soa[dynamic]$E, zero_memory: bool, #no_broadcast args: []E, loc := #caller_location) -> (n: int, err: Allocator_Error) #optional_allocator_error { if array == nil { return } @@ -464,41 +480,267 @@ _append_soa_elems :: proc(array: ^$T/#soa[dynamic]$E, zero_memory: bool, #no_bro footer := raw_soa_footer(array) if size_of(E) > 0 && arg_len > 0 { - ti := type_info_of(typeid_of(T)) - ti = type_info_base(ti) - si := &ti.variant.(Type_Info_Struct) - field_count := uintptr(len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E)) - - data := (^rawptr)(array)^ - - soa_offset := 0 - item_offset := 0 - - args_ptr := &args[0] - - max_align :: align_of(E) - for i in 0..= .Speed do per-field copy passes that bind + // the SOA struct's multipointers and each incoming element's fields by + // position via expand_values with compile-time known types. + // At ODIN_OPTIMIZATION_MODE <= .Size the compiler's lowering is + // used, because it is the most compact at these field counts. + // When E has >16 fields: + // Type erased per-field loop using RTTI, with one mem_copy per element per field (codegen size is field count invariant). + // (Note that offset and the multipointers must be read after _reserve_soa, because any growth moves them.) + offset := footer.len + FIELD_COUNT :: len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) + when FIELD_COUNT <= 16 { + when ODIN_OPTIMIZATION_MODE <= .Size { + // Use the compiler's #soa element store lowering. + // Note that #no_bounds_check is not optional, we write at index == len. + #no_bounds_check { + for j in 0..= 1 { // nothing to do if field count is 0 + _append_soa_elems_per_field_expanded(array, offset, args[:arg_len]) } + } else { // FIELD_COUNT > 16 + ti := type_info_base(type_info_of(typeid_of(T))) + si := &ti.variant.(Type_Info_Struct) + // si describes the SOA struct (fields are multipointers), so E's + // field offsets are not available in it; read them from E's own RTTI (si.soa_base_type). + // Note that basing on default struct layout here instead + // would misplace the fields of #packed elements. + // (> 16 fields is struct-only: array element types are capped at length 4.) + se := &type_info_base(si.soa_base_type).variant.(Type_Info_Struct) - soa_offset += type.size * cap(array) - item_offset += type.size + src_base := uintptr(raw_data(args)) + for i in 0.. (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +inject_at_elem_soa :: proc(#no_alias array: ^$T/#soa[dynamic]$E, #any_int index: int, #no_broadcast arg: E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { when !ODIN_NO_BOUNDS_CHECK { ensure(index >= 0, "Index must be positive.", loc) } if array == nil { return } - n := max(len(array), index) + old_len := len(array) + n := max(old_len, index) m :: 1 new_len := n + m - resize_soa(array, new_len, loc) or_return + // The tail shift and the stored element cover every new slot, + // except a gap of [old_len, index) when injecting past the end, which is + // zeroed explicitly below. + non_zero_resize_soa(array, new_len, loc) or_return when size_of(E) != 0 { ti := type_info_base(type_info_of(typeid_of(T))) si := &ti.variant.(Type_Info_Struct) - field_count := len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) + FIELD_COUNT :: len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) - item_offset := 0 - - arg_copy := arg - arg_ptr := &arg_copy - - for i in 0.. old_len { // zero the gap left by injecting past the end + mem_zero(rawptr(data + uintptr(old_len * type.size)), (index - old_len) * type.size) + } src := data + uintptr(index * type.size) dst := data + uintptr((index + m) * type.size) mem_copy(rawptr(dst), rawptr(src), (n - index) * type.size) - - mem_copy(rawptr(src), rawptr(uintptr(arg_ptr) + uintptr(item_offset)), type.size) - - item_offset += type.size } + + // store the new element via the compiler's #soa element store lowering + array[index] = arg } ok = true @@ -568,7 +811,7 @@ inject_at_elem_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int index: int, #no_ // `inject_at_elems_soa` injects multiple elements in a dynamic SOA array at a specified index and moves the previous elements after that index "across" @builtin -inject_at_elems_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int index: int, #no_broadcast args: ..E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { +inject_at_elems_soa :: proc(#no_alias array: ^$T/#soa[dynamic]$E, #any_int index: int, #no_broadcast args: ..E, loc := #caller_location) -> (ok: bool, err: Allocator_Error) #no_bounds_check #optional_allocator_error { when !ODIN_NO_BOUNDS_CHECK { ensure(index >= 0, "Index must be positive.", loc) } @@ -580,11 +823,15 @@ inject_at_elems_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int index: int, #no return } - n := max(len(array), index) + old_len := len(array) + n := max(old_len, index) m := len(args) new_len := n + m - resize_soa(array, new_len, loc) or_return + // The tail shift and the stored elements cover every new slot, + // except a gap of [old_len, index) when injecting past the end, which is + // zeroed explicitly below. + non_zero_resize_soa(array, new_len, loc) or_return when size_of(E) != 0 { ti := type_info_base(type_info_of(typeid_of(T))) @@ -592,14 +839,28 @@ inject_at_elems_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int index: int, #no field_count := len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) - item_offset := 0 - args_ptr := &args[0] + when !intrinsics.type_is_array(E) { + // E's field offsets come from E's own RTTI (si describes the SOA + // struct, whose fields are multipointers); basing on default struct + // layout here would misplace the fields of #packed elements. + se := &type_info_base(si.soa_base_type).variant.(Type_Info_Struct) + } + for i in 0.. old_len { // zero the gap left by injecting past the end + mem_zero(rawptr(data + uintptr(old_len * type.size)), (index - old_len) * type.size) + } src := data + uintptr(index * type.size) dst := data + uintptr((index + m) * type.size) @@ -607,11 +868,9 @@ inject_at_elems_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int index: int, #no for j in 0.. #soa[dynamic]E { // Note: If you the elements to remain in their order, use `ordered_remove_soa`. // Note: If the index is out of bounds, this procedure will panic. @builtin -unordered_remove_soa :: proc(array: ^$T/#soa[dynamic]$E, #any_int index: int, loc := #caller_location) #no_bounds_check { +unordered_remove_soa :: proc(#no_alias array: ^$T/#soa[dynamic]$E, #any_int index: int, loc := #caller_location) #no_bounds_check { bounds_check_error_loc(loc, index, len(array)) if index+1 < len(array) { - ti := type_info_of(typeid_of(T)) - ti = type_info_base(ti) - si := &ti.variant.(Type_Info_Struct) - - field_count := uintptr(len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E)) - - data := uintptr(array) - for i in 0.. E) { + expect_same :: proc(t: ^testing.T, soa: #soa[dynamic]$T, model: [dynamic]T) { + testing.expect_value(t, len(soa), len(model)) + for i in 0.. 0 { + unordered_remove_soa(&soa, 0) + unordered_remove(&ref, 0) + } + testing.expect_value(t, len(soa), 0) + + // inject into an empty array + ok, err = inject_at_soa(&soa, 0, mk(998)) + testing.expect(t, ok) + testing.expect_value(t, err, nil) + inject_at(&ref, 0, mk(998)) + expect_same(t, soa, ref) + + // non-zero append + n, err = non_zero_append(&soa, mk(42)) + testing.expect_value(t, n, 1) + testing.expect_value(t, err, nil) + non_zero_append(&ref, mk(42)) + expect_same(t, soa, ref) + } + + // mixed field widths + padding + Padded :: struct { a: u8, b: u64, c: u16 } + check(t, Padded, proc(i: int) -> Padded { return {u8(i*3), u64(i)*257 + 7, u16(i*5 + 1)} }) + // array element type + check(t, [4]u16, proc(i: int) -> [4]u16 { return {u16(i), u16(i + 1), u16(i*3), u16(i*7)} }) + // eight fields at varying widths, no two neighbouring fields share a stride + Eight :: struct { a: u8, b: u16, c: u32, d: u64, e: i8, f: i16, g: f32, h: f64 } + check(t, Eight, proc(i: int) -> Eight { + return { + u8(i), u16(i*3 + 1), u32(i)*5 + 2, u64(i)*7 + 3, + i8(i >> 1), i16(i*11 + 4), f32(i)*1.5, f64(i)*2.25, + } + }) + // #packed struct with > 16 fields, field offsets diverging from default + // layout (u8/u64 alternate, align_of == 1), and the field count takes + // the type-erased batch appends compile time branch. + Packed17 :: struct #packed { + f0: u8, f1: u64, f2: u8, f3: u64, f4: u8, f5: u64, f6: u8, f7: u64, + f8: u8, f9: u64, f10: u8, f11: u64, f12: u8, f13: u64, f14: u8, f15: u64, + f16: u8, + } + check(t, Packed17, proc(i: int) -> Packed17 { + return { + u8(i), u64(i)*3 + 1, u8(i >> 1), u64(i)*5 + 2, u8(i >> 2), u64(i)*7 + 3, u8(i >> 3), u64(i)*11 + 4, + u8(i >> 4), u64(i)*13 + 5, u8(i >> 5), u64(i)*17 + 6, u8(i >> 6), u64(i)*19 + 7, u8(i >> 7), u64(i)*23 + 8, + u8(i*3), + } + }) +} diff --git a/tests/core/speed.odin b/tests/core/speed.odin index 0da7c1b82..c043aefe7 100644 --- a/tests/core/speed.odin +++ b/tests/core/speed.odin @@ -5,4 +5,5 @@ package tests_core @(require) import "crypto/bigint" @(require) import "hash" @(require) import "image" -@(require) import "math/big" \ No newline at end of file +@(require) import "math/big" +@(require) import "runtime" \ No newline at end of file From 9914a57fc7191cfb3b4749909feee66fc01be828 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 3 Aug 2026 14:41:04 +0100 Subject: [PATCH 08/21] Add `intrinsics.soa_copy_from_slice` and use it within `_append_soa_elems` replacing the old handwritten unrolled approach --- base/intrinsics/intrinsics.odin | 1 + base/runtime/core_builtin_soa.odin | 254 ++--------------------------- src/check_builtin.cpp | 56 +++++++ src/checker_builtin_procs.hpp | 12 +- src/llvm_backend_general.cpp | 23 +++ src/llvm_backend_proc.cpp | 89 ++++++++++ src/types.cpp | 5 + 7 files changed, 193 insertions(+), 247 deletions(-) diff --git a/base/intrinsics/intrinsics.odin b/base/intrinsics/intrinsics.odin index e639aadbd..d91bc2e79 100644 --- a/base/intrinsics/intrinsics.odin +++ b/base/intrinsics/intrinsics.odin @@ -379,6 +379,7 @@ simd_pairwise_sub :: proc(a, b: #simd[LANES]T) -> #simd[LANES]T where LANES % 2 simd_interleave :: proc(a, ..#simd[LANES/N]T) -> #simd[LANES]T where N >= 1 --- simd_deinterleave :: proc(a: #simd[LANES]T, $N: uint) -> (..#simd[LANES/N]T) where N >= 1, LANES % N == 0 --- // returns N multiple vectors +soa_copy_from_slice :: proc(ptr: ^$A/#soa[dynamic]$E, offset: int, args: []$E) --- // Checks if the current target supports the given target features. // diff --git a/base/runtime/core_builtin_soa.odin b/base/runtime/core_builtin_soa.odin index 9dca88d9f..737aecd9f 100644 --- a/base/runtime/core_builtin_soa.odin +++ b/base/runtime/core_builtin_soa.odin @@ -491,257 +491,27 @@ _append_soa_elems :: proc(#no_alias array: ^$T/#soa[dynamic]$E, zero_memory: boo // (Note that offset and the multipointers must be read after _reserve_soa, because any growth moves them.) offset := footer.len FIELD_COUNT :: len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) - when FIELD_COUNT <= 16 { - when ODIN_OPTIMIZATION_MODE <= .Size { - // Use the compiler's #soa element store lowering. - // Note that #no_bounds_check is not optional, we write at index == len. - #no_bounds_check { - for j in 0..= 1 { // nothing to do if field count is 0 - _append_soa_elems_per_field_expanded(array, offset, args[:arg_len]) - } - } else { // FIELD_COUNT > 16 - ti := type_info_base(type_info_of(typeid_of(T))) - si := &ti.variant.(Type_Info_Struct) - // si describes the SOA struct (fields are multipointers), so E's - // field offsets are not available in it; read them from E's own RTTI (si.soa_base_type). - // Note that basing on default struct layout here instead - // would misplace the fields of #packed elements. - // (> 16 fields is struct-only: array element types are capped at length 4.) - se := &type_info_base(si.soa_base_type).variant.(Type_Info_Struct) - src_base := uintptr(raw_data(args)) - for i in 0..args[0]); + if (array_ptr.mode == Addressing_Invalid) { + return false; + } + if (!is_type_pointer(array_ptr.type)) { + gbString s = type_to_string(array_ptr.type); + error(array_ptr.expr, "Expected a pointer to a #soa dynamic array, got %s", s); + gb_string_free(s); + return false; + } + Type *array_type = type_deref(array_ptr.type); + if (!is_type_soa_dynamic_array(array_type)) { + gbString s = type_to_string(array_ptr.type); + error(array_ptr.expr, "Expected a pointer to a #soa dynamic array, got %s", s); + gb_string_free(s); + return false; + } + Type *at = base_type(array_type); + GB_ASSERT(at->kind == Type_Struct); + Type *elem = at->Struct.soa_elem; + + check_expr_with_type_hint(c, &offset, ce->args[1], t_int); + if (offset.mode == Addressing_Invalid) { + return false; + } + if (!is_type_integer(offset.type)) { + gbString s = type_to_string(array_ptr.type); + error(array_ptr.expr, "Expected an integer as the offset for '%.*s', got %s", s, LIT(builtin_name)); + gb_string_free(s); + return false; + } + + Type *slice_hint = alloc_type_slice(elem); + + check_expr_with_type_hint(c, &args, ce->args[2], slice_hint); + if (args.mode == Addressing_Invalid) { + return false; + } + if (!are_types_identical(base_type(args.type), slice_hint)) { + gbString s = type_to_string(slice_hint); + gbString t = type_to_string(args.type); + error(array_ptr.expr, "Expected a %s to use as the slice '%.*s', got %s", s, LIT(builtin_name), t); + gb_string_free(t); + gb_string_free(s); + return false; + } + + operand->mode = Addressing_NoValue; + operand->type = nullptr; + break; + } + case BuiltinProc_concatenate: { Operand lhs = {}; diff --git a/src/checker_builtin_procs.hpp b/src/checker_builtin_procs.hpp index e492ca7b2..457591615 100644 --- a/src/checker_builtin_procs.hpp +++ b/src/checker_builtin_procs.hpp @@ -60,6 +60,7 @@ enum BuiltinProcId { BuiltinProc_matrix_flatten, BuiltinProc_soa_struct, + BuiltinProc_soa_copy_from_slice, BuiltinProc_concatenate, @@ -99,12 +100,12 @@ enum BuiltinProcId { BuiltinProc_volatile_store, BuiltinProc_volatile_load, - + BuiltinProc_unaligned_store, BuiltinProc_unaligned_load, BuiltinProc_non_temporal_store, BuiltinProc_non_temporal_load, - + BuiltinProc_prefetch_read_instruction, BuiltinProc_prefetch_read_data, BuiltinProc_prefetch_write_instruction, @@ -242,7 +243,7 @@ BuiltinProc__simd_begin, // Platform specific SIMD intrinsics BuiltinProc_simd_x86__MM_SHUFFLE, BuiltinProc__simd_end, - + // Platform specific intrinsics BuiltinProc_syscall, BuiltinProc_syscall_bsd, @@ -328,7 +329,7 @@ BuiltinProc__type_simple_boolean_end, BuiltinProc_type_has_field, BuiltinProc_type_field_type, - + BuiltinProc_type_field_bit_offset, BuiltinProc_type_field_bit_size, @@ -467,8 +468,9 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = { {STR_LIT("outer_product"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics}, {STR_LIT("hadamard_product"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics}, {STR_LIT("matrix_flatten"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics}, - + {STR_LIT("soa_struct"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics}, // Type + {STR_LIT("soa_copy_from_slice"), 3, false, Expr_Stmt, BuiltinProcPkg_intrinsics}, {STR_LIT("concatenate"), 2, true, Expr_Expr, BuiltinProcPkg_intrinsics}, diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp index d9a807d18..7af1c52be 100644 --- a/src/llvm_backend_general.cpp +++ b/src/llvm_backend_general.cpp @@ -330,6 +330,29 @@ gb_internal lbLoopData lb_loop_start(lbProcedure *p, isize count, Type *index_ty return data; } +gb_internal lbLoopData lb_loop_start_runtime(lbProcedure *p, lbValue count) { + lbLoopData data = {}; + + lbValue max = count; + + data.idx_addr = lb_add_local_generated(p, count.type, true); + + data.body = lb_create_block(p, "loop.body"); + data.done = lb_create_block(p, "loop.done"); + data.loop = lb_create_block(p, "loop.loop"); + + lb_emit_jump(p, data.loop); + lb_start_block(p, data.loop); + + data.idx = lb_addr_load(p, data.idx_addr); + + lbValue cond = lb_emit_comp(p, Token_Lt, data.idx, max); + lb_emit_if(p, cond, data.body, data.done); + lb_start_block(p, data.body); + + return data; +} + gb_internal void lb_loop_end(lbProcedure *p, lbLoopData const &data) { if (data.idx_addr.addr.value != nullptr) { lb_emit_increment(p, data.idx_addr.addr); diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index 05691e408..68215b49a 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -3355,6 +3355,95 @@ gb_internal lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValu // "Intrinsics" + case BuiltinProc_soa_copy_from_slice: + { + lbValue ptr = lb_build_expr(p, ce->args[0]); + lbValue offset = lb_build_expr(p, ce->args[1]); + lbValue args = lb_build_expr(p, ce->args[2]); + + Type *ptr_type = base_type(ptr.type); + Type *array_type = base_type(type_deref(ptr_type)); + GB_ASSERT(is_type_soa_dynamic_array(array_type)); + + Type *elem = array_type->Struct.soa_elem; + + i32 field_count = 0; + if (is_type_array(elem)) { + field_count = cast(i32)get_array_type_count(elem); + } else { + Type *bt = base_type(elem); + GB_ASSERT(bt->kind == Type_Struct); + field_count = cast(i32)bt->Struct.fields.count; + } + if (field_count == 0) { + return {}; + } + GB_ASSERT(field_count >= 1); + + Type *slice_type = base_type(args.type); + GB_ASSERT(slice_type->kind == Type_Slice); + GB_ASSERT(are_types_identical(slice_type->Slice.elem, elem)); + + lbValue arg_ptr = lb_slice_elem(p, args); + lbValue arg_len = lb_slice_len(p, args); + + lbValue soa_array_len = lb_soa_struct_len(p, ptr); + + offset = lb_emit_conv(p, offset, t_int); + lbValue max_soa_len = lb_emit_arith(p, Token_Sub, soa_array_len, offset, t_int); + lbValue max_len = lb_emit_min(p, t_int, arg_len, max_soa_len); + + if (field_count <= 16) { + lbValue *ps = gb_alloc_array(temporary_allocator(), lbValue, field_count); + for (i32 field_index = 0; field_index < field_count; field_index++) { + ps[field_index] = lb_emit_load(p, lb_emit_struct_ep(p, ptr, field_index)); + } + + for (i32 field_index = 0; field_index < field_count; field_index++) { + auto loop_data = lb_loop_start_runtime(p, max_len); + + lbValue j = loop_data.idx; + lbValue index = lb_emit_arith(p, Token_Add, j, offset, t_int); + + lbValue dst = lb_emit_ptr_offset(p, ps[field_index], index); + // make sure it's ^T and not [^]T + dst.type = alloc_type_multi_pointer_to_pointer(dst.type); + + lbValue src_ptr = lb_emit_ptr_offset(p, arg_ptr, j); + src_ptr = lb_emit_struct_ep(p, src_ptr, field_index); + + lbValue src = lb_emit_load(p, src_ptr); + lb_emit_store(p, dst, src); + + lb_loop_end(p, loop_data); + } + } else { + for (i32 field_index = 0; field_index < field_count; field_index++) { + Type *type = array_type->Struct.fields[field_index]->type; + GB_ASSERT(type->kind == Type_MultiPointer); + type = type->MultiPointer.elem; + + lbValue dst = lb_emit_load(p, lb_emit_struct_ep(p, ptr, field_index)); + dst = lb_emit_ptr_offset(p, dst, offset); + dst.type = alloc_type_multi_pointer_to_pointer(dst.type); + + auto loop_data = lb_loop_start_runtime(p, max_len); + + lbValue src = lb_emit_ptr_offset(p, arg_ptr, loop_data.idx); + + lbValue d = lb_emit_ptr_offset(p, dst, loop_data.idx); + lbValue s = lb_emit_struct_ep(p, src, field_index); + + GB_ASSERT(are_types_identical(d.type, s.type)); + + lb_mem_copy_non_overlapping(p, d, s, lb_const_int(p->module, t_int, type_size_of(type)), false); + + lb_loop_end(p, loop_data); + } + } + return {}; + } + case BuiltinProc_alloca: { lbValue sz = lb_build_expr(p, ce->args[0]); diff --git a/src/types.cpp b/src/types.cpp index ff5147574..0e41b1b9b 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -2001,6 +2001,11 @@ gb_internal bool is_type_soa_struct(Type *t) { if (t == nullptr) { return false; } return t->kind == Type_Struct && t->Struct.soa_kind != StructSoa_None; } +gb_internal bool is_type_soa_dynamic_array(Type *t) { + t = base_type(t); + if (t == nullptr) { return false; } + return t->kind == Type_Struct && t->Struct.soa_kind == StructSoa_Dynamic; +} gb_internal bool is_type_raw_union(Type *t) { t = base_type(t); From 319143e4b7ca7dcf2c19eff4040080290d2ca1bc Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 3 Aug 2026 14:42:44 +0100 Subject: [PATCH 09/21] Minor style cleanup --- base/runtime/core_builtin_soa.odin | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/base/runtime/core_builtin_soa.odin b/base/runtime/core_builtin_soa.odin index 737aecd9f..b7a36e248 100644 --- a/base/runtime/core_builtin_soa.odin +++ b/base/runtime/core_builtin_soa.odin @@ -497,11 +497,9 @@ _append_soa_elems :: proc(#no_alias array: ^$T/#soa[dynamic]$E, zero_memory: boo // do nothing } else when FIELD_COUNT <= 16 && ODIN_OPTIMIZATION_MODE <= .Size { // Use the compiler's #soa element store lowering. - // Note that #no_bounds_check is not optional, we write at index == len. - #no_bounds_check { - for j in 0.. Date: Mon, 3 Aug 2026 15:01:51 +0100 Subject: [PATCH 10/21] Improve error handling on `set in set` comparisons to suggest using `<=` instead --- src/check_expr.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index eea6db2b4..7e183652f 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -1311,9 +1311,13 @@ gb_internal void check_assignment(CheckerContext *c, Operand *operand, Type *typ if (context_name == "procedure argument") { if (is_type_slice(src) && are_types_identical(src->Slice.elem, dst)) { gbString a = expr_to_string(operand->expr); - error_line("\tSuggestion: Did you mean to pass the slice into the variadic parameter with ..%s?\n\n", a); + error_line("\tSuggestion: Did you mean to pass the slice into the variadic parameter with ..%s?\n", a); gb_string_free(a); } + } else if (context_name == "bit_set 'in'") { + if (is_type_bit_set(operand->type)) { + error_line("\tSuggestion: Prefer <= if you want a superset\n"); + } } if (src->kind == dst->kind && src->kind == Type_Proc) { Type *x = src; @@ -4425,7 +4429,12 @@ gb_internal void check_binary_expr(CheckerContext *c, Operand *x, Ast *node, Typ if (is_type_bit_set(rhs_type)) { Type *elem = base_type(rhs_type)->BitSet.elem; - check_expr_with_type_hint(c, x, be->left, elem); + Type *type_hint = elem; + Ast *left = unparen_expr(be->left); + if (left != nullptr && left->kind == Ast_CompoundLit) { + type_hint = rhs_type; + } + check_expr_with_type_hint(c, x, left, type_hint); } else if (is_type_map(rhs_type)) { Type *key = base_type(rhs_type)->Map.key; check_expr_with_type_hint(c, x, be->left, key); From 1ac0b9bcdc77edf3d20ac690fa1f61e0aa69d4c2 Mon Sep 17 00:00:00 2001 From: A1029384756 Date: Mon, 3 Aug 2026 10:09:39 -0400 Subject: [PATCH 11/21] [debug/trace] sync allocator with `core:mem` --- core/debug/trace/allocator.odin | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/debug/trace/allocator.odin b/core/debug/trace/allocator.odin index 642561bac..febbcc4e1 100644 --- a/core/debug/trace/allocator.odin +++ b/core/debug/trace/allocator.odin @@ -97,6 +97,8 @@ tracking_allocator_init :: proc( tracking_allocator_destroy :: proc(t: ^Tracking_Allocator) { delete(t.allocation_map) delete(t.bad_free_array) + t.allocation_map = {} + t.bad_free_array = {} } @(no_sanitize_address) From c720ee53539aba0101914303938caa6240ffb637 Mon Sep 17 00:00:00 2001 From: corley <28909106+corleypc@users.noreply.github.com> Date: Mon, 3 Aug 2026 23:26:44 +0300 Subject: [PATCH 12/21] cleans up obsolete comments --- base/runtime/core_builtin_soa.odin | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/base/runtime/core_builtin_soa.odin b/base/runtime/core_builtin_soa.odin index b7a36e248..1df79a21c 100644 --- a/base/runtime/core_builtin_soa.odin +++ b/base/runtime/core_builtin_soa.odin @@ -480,24 +480,15 @@ _append_soa_elems :: proc(#no_alias array: ^$T/#soa[dynamic]$E, zero_memory: boo footer := raw_soa_footer(array) if size_of(E) > 0 && arg_len > 0 { - // For the common case where E has no more than 16 fields: - // At ODIN_OPTIMIZATION_MODE >= .Speed do per-field copy passes that bind - // the SOA struct's multipointers and each incoming element's fields by - // position via expand_values with compile-time known types. - // At ODIN_OPTIMIZATION_MODE <= .Size the compiler's lowering is - // used, because it is the most compact at these field counts. - // When E has >16 fields: - // Type erased per-field loop using RTTI, with one mem_copy per element per field (codegen size is field count invariant). - // (Note that offset and the multipointers must be read after _reserve_soa, because any growth moves them.) + // Note that offset must be read after _reserve_soa, because any growth moves the field pointers. offset := footer.len FIELD_COUNT :: len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) - + // Advance len before the copy, soa_copy_from_slice needs the final len to be set footer.len += arg_len when FIELD_COUNT == 0 { // do nothing } else when FIELD_COUNT <= 16 && ODIN_OPTIMIZATION_MODE <= .Size { - // Use the compiler's #soa element store lowering. - // Note that #no_bounds_check is not optional + // Use the compiler's #soa element store lowering, more compact at these field counts. #no_bounds_check for j in 0.. Date: Mon, 3 Aug 2026 23:45:44 +0300 Subject: [PATCH 13/21] another useless comment removed --- base/runtime/core_builtin_soa.odin | 1 - 1 file changed, 1 deletion(-) diff --git a/base/runtime/core_builtin_soa.odin b/base/runtime/core_builtin_soa.odin index 1df79a21c..61b93efd7 100644 --- a/base/runtime/core_builtin_soa.odin +++ b/base/runtime/core_builtin_soa.odin @@ -480,7 +480,6 @@ _append_soa_elems :: proc(#no_alias array: ^$T/#soa[dynamic]$E, zero_memory: boo footer := raw_soa_footer(array) if size_of(E) > 0 && arg_len > 0 { - // Note that offset must be read after _reserve_soa, because any growth moves the field pointers. offset := footer.len FIELD_COUNT :: len(E) when intrinsics.type_is_array(E) else intrinsics.type_struct_field_count(E) // Advance len before the copy, soa_copy_from_slice needs the final len to be set From cc71be2a5b5bd379d5976513fb958249798be2dd Mon Sep 17 00:00:00 2001 From: Alexander Zhura Date: Tue, 4 Aug 2026 00:19:32 +0300 Subject: [PATCH 14/21] Impl fix simd arm sha arch --- core/simd/arm/sha.odin | 123 ++++++++++++++++++++++++++++------------- 1 file changed, 85 insertions(+), 38 deletions(-) diff --git a/core/simd/arm/sha.odin b/core/simd/arm/sha.odin index ca87c9795..be1529823 100644 --- a/core/simd/arm/sha.odin +++ b/core/simd/arm/sha.odin @@ -1,88 +1,130 @@ #+build arm64,arm32 package simd_arm +// SHA1 hash update, choose. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1cq_u32) @(require_results, enable_target_feature = "sha2") -vsha1cq_u32 :: #force_inline proc "c" (hash_abcd: uint32x4_t, e: uint32_t, wk: uint32x4_t) -> uint32x4_t { - return _vsha1cq_u32(hash_abcd, e, wk) +vsha1cq_u32 :: #force_inline proc "c" (hash_abcd: uint32x4_t, hash_e: uint32_t, wk: uint32x4_t) -> uint32x4_t { + return _vsha1cq_u32(hash_abcd, hash_e, wk) } +// SHA1 hash update, parity. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1pq_u32) @(require_results, enable_target_feature = "sha2") -vsha1pq_u32 :: #force_inline proc "c" (hash_abcd: uint32x4_t, e: uint32_t, wk: uint32x4_t) -> uint32x4_t { - return _vsha1pq_u32(hash_abcd, e, wk) +vsha1pq_u32 :: #force_inline proc "c" (hash_abcd: uint32x4_t, hash_e: uint32_t, wk: uint32x4_t) -> uint32x4_t { + return _vsha1pq_u32(hash_abcd, hash_e, wk) } +// SHA1 hash update, majority. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1mq_u32) @(require_results, enable_target_feature = "sha2") -vsha1mq_u32 :: #force_inline proc "c" (hash_abcd: uint32x4_t, e: uint32_t, wk: uint32x4_t) -> uint32x4_t { - return _vsha1mq_u32(hash_abcd, e, wk) +vsha1mq_u32 :: #force_inline proc "c" (hash_abcd: uint32x4_t, hash_e: uint32_t, wk: uint32x4_t) -> uint32x4_t { + return _vsha1mq_u32(hash_abcd, hash_e, wk) } +// SHA1 fixed rotate. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1h_u32) @(require_results, enable_target_feature = "sha2") -vsha1h_u32 :: #force_inline proc "c" (e: uint32_t) -> uint32_t { - return _vsha1h_u32(e) +vsha1h_u32 :: #force_inline proc "c" (hash_e: uint32_t) -> uint32_t { + return _vsha1h_u32(hash_e) } +// SHA1 schedule update, first part. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su0q_u32) @(require_results, enable_target_feature = "sha2") vsha1su0q_u32 :: #force_inline proc "c" (w0_3, w4_7, w8_11: uint32x4_t) -> uint32x4_t { return _vsha1su0q_u32(w0_3, w4_7, w8_11) } +// SHA1 schedule update, second part. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su1q_u32) @(require_results, enable_target_feature = "sha2") vsha1su1q_u32 :: #force_inline proc "c" (tw0_3, w12_15: uint32x4_t) -> uint32x4_t { return _vsha1su1q_u32(tw0_3, w12_15) } +// SHA256 hash update, first part. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256hq_u32) @(require_results, enable_target_feature = "sha2") vsha256hq_u32 :: #force_inline proc "c" (hash_abcd, hash_efgh, wk: uint32x4_t) -> uint32x4_t { return _vsha256hq_u32(hash_abcd, hash_efgh, wk) } +// SHA256 hash update, second part. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256h2q_u32) @(require_results, enable_target_feature = "sha2") vsha256h2q_u32 :: #force_inline proc "c" (hash_efgh, hash_abcd, wk: uint32x4_t) -> uint32x4_t { return _vsha256h2q_u32(hash_efgh, hash_abcd, wk) } +// SHA256 schedule update, first part. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su0q_u32) @(require_results, enable_target_feature = "sha2") vsha256su0q_u32 :: #force_inline proc "c" (w0_3, w4_7: uint32x4_t) -> uint32x4_t { return _vsha256su0q_u32(w0_3, w4_7) } +// SHA256 schedule update, second part. +// +// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su1q_u32) @(require_results, enable_target_feature = "sha2") vsha256su1q_u32 :: #force_inline proc "c" (tw0_3, w8_11, w12_15: uint32x4_t) -> uint32x4_t { return _vsha256su1q_u32(tw0_3, w8_11, w12_15) } -// Note: The SHA512 instructions are part of the `sha3` feature set. +when ODIN_ARCH == .arm64 { + // SHA512 hash update, first part. + // + // [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha512hq_u64) + @(require_results, enable_target_feature = "neon,sha3") + vsha512hq_u64 :: #force_inline proc "c" (hash_ed, hash_gf, kwh_kwh2: uint64x2_t) -> uint64x2_t { + return _vsha512hq_u64(hash_ed, hash_gf, kwh_kwh2) + } -@(require_results, enable_target_feature = "sha3") -vsha512hq_u64 :: #force_inline proc "c" (hash_ed, hash_gf, kwh_kwh2: uint64x2_t) -> uint64x2_t { - return _vsha512hq_u64(hash_ed, hash_gf, kwh_kwh2) -} + // SHA512 hash update, second part. + // + // [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha512h2q_u64) + @(require_results, enable_target_feature = "neon,sha3") + vsha512h2q_u64 :: #force_inline proc "c" (sum_ab, hash_c_, hash_ab: uint64x2_t) -> uint64x2_t { + return _vsha512h2q_u64(sum_ab, hash_c_, hash_ab) + } -@(require_results, enable_target_feature = "sha3") -vsha512h2q_u64 :: #force_inline proc "c" (sum_ab, hash_c_, hash_ab: uint64x2_t) -> uint64x2_t { - return _vsha512h2q_u64(sum_ab, hash_c_, hash_ab) -} + // SHA512 schedule update, first part. + // + // [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha512su0q_u64) + @(require_results, enable_target_feature = "neon,sha3") + vsha512su0q_u64 :: #force_inline proc "c" (w0_1, w2_: uint64x2_t) -> uint64x2_t { + return _vsha512su0q_u64(w0_1, w2_) + } -@(require_results, enable_target_feature = "sha3") -vsha512su0q_u64 :: #force_inline proc "c" (w0_1, w2_: uint64x2_t) -> uint64x2_t { - return _vsha512su0q_u64(w0_1, w2_) -} - -@(require_results, enable_target_feature = "sha3") -vsha512su1q_u64 :: #force_inline proc "c" (s01_s02, w14_15, w9_10: uint64x2_t) -> uint64x2_t { - return _vsha512su1q_u64(s01_s02, w14_15, w9_10) + // SHA512 schedule update, second part. + // + // [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha512su1q_u64) + @(require_results, enable_target_feature = "neon,sha3") + vsha512su1q_u64 :: #force_inline proc "c" (s01_s02, w14_15, w9_10: uint64x2_t) -> uint64x2_t { + return _vsha512su1q_u64(s01_s02, w14_15, w9_10) + } } @(private, default_calling_convention = "none") foreign _ { @(link_name = "llvm.aarch64.crypto.sha1c" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha1c") - _vsha1cq_u32 :: proc(hash_abcd: uint32x4_t, e: uint32_t, wk: uint32x4_t) -> uint32x4_t --- + _vsha1cq_u32 :: proc(hash_abcd: uint32x4_t, hash_e: uint32_t, wk: uint32x4_t) -> uint32x4_t --- @(link_name = "llvm.aarch64.crypto.sha1p" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha1p") - _vsha1pq_u32 :: proc(hash_abcd: uint32x4_t, e: uint32_t, wk: uint32x4_t) -> uint32x4_t --- + _vsha1pq_u32 :: proc(hash_abcd: uint32x4_t, hash_e: uint32_t, wk: uint32x4_t) -> uint32x4_t --- @(link_name = "llvm.aarch64.crypto.sha1m" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha1m") - _vsha1mq_u32 :: proc(hash_abcd: uint32x4_t, e: uint32_t, wk: uint32x4_t) -> uint32x4_t --- + _vsha1mq_u32 :: proc(hash_abcd: uint32x4_t, hash_e: uint32_t, wk: uint32x4_t) -> uint32x4_t --- @(link_name = "llvm.aarch64.crypto.sha1h" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha1h") - _vsha1h_u32 :: proc(e: uint32_t) -> uint32_t --- + _vsha1h_u32 :: proc(hash_e: uint32_t) -> uint32_t --- @(link_name = "llvm.aarch64.crypto.sha1su0" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha1su0") _vsha1su0q_u32 :: proc(w0_3, w4_7, w8_11: uint32x4_t) -> uint32x4_t --- @(link_name = "llvm.aarch64.crypto.sha1su1" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha1su1") @@ -96,13 +138,18 @@ foreign _ { _vsha256su0q_u32 :: proc(w0_3, w4_7: uint32x4_t) -> uint32x4_t --- @(link_name = "llvm.aarch64.crypto.sha256su1" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha256su1") _vsha256su1q_u32 :: proc(tw0_3, w8_11, w12_15: uint32x4_t) -> uint32x4_t --- - - @(link_name = "llvm.aarch64.crypto.sha512h" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha512h") - _vsha512hq_u64 :: proc(hash_ed, hash_gf, kwh_kwh2: uint64x2_t) -> uint64x2_t --- - @(link_name = "llvm.aarch64.crypto.sha512h2" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha512h2") - _vsha512h2q_u64 :: proc(sum_ab, hash_c_, hash_ab: uint64x2_t) -> uint64x2_t --- - @(link_name = "llvm.aarch64.crypto.sha512su0" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha512su0") - _vsha512su0q_u64 :: proc(w0_1, w2_: uint64x2_t) -> uint64x2_t --- - @(link_name = "llvm.aarch64.crypto.sha512su1" when ODIN_ARCH == .arm64 else "llvm.arm.neon.sha512su1") - _vsha512su1q_u64 :: proc(s01_s02, w14_15, w9_10: uint64x2_t) -> uint64x2_t --- +} + +when ODIN_ARCH == .arm64 { + @(private, default_calling_convention = "none") + foreign _ { + @(link_name = "llvm.aarch64.crypto.sha512h") + _vsha512hq_u64 :: proc(hash_ed, hash_gf, kwh_kwh2: uint64x2_t) -> uint64x2_t --- + @(link_name = "llvm.aarch64.crypto.sha512h2") + _vsha512h2q_u64 :: proc(sum_ab, hash_c_, hash_ab: uint64x2_t) -> uint64x2_t --- + @(link_name = "llvm.aarch64.crypto.sha512su0") + _vsha512su0q_u64 :: proc(w0_1, w2_: uint64x2_t) -> uint64x2_t --- + @(link_name = "llvm.aarch64.crypto.sha512su1") + _vsha512su1q_u64 :: proc(s01_s02, w14_15, w9_10: uint64x2_t) -> uint64x2_t --- + } } From b838b1bf25a8e7322a530753bedeb2f0392d18d5 Mon Sep 17 00:00:00 2001 From: Senthilnathan Date: Tue, 4 Aug 2026 12:19:03 +0530 Subject: [PATCH 15/21] fixes os.glob not cloning pattern when no meta characters present --- core/os/path.odin | 2 +- tests/core/os/path.odin | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/os/path.odin b/core/os/path.odin index 22ec2d3f7..9f2f33ebb 100644 --- a/core/os/path.odin +++ b/core/os/path.odin @@ -746,7 +746,7 @@ glob :: proc(pattern: string, allocator := context.allocator) -> (matches: []str if !has_meta(pattern) { // TODO(bill): os.lstat on here to check for error m := make([]string, 1) - m[0] = pattern + m[0] = strings.clone(pattern) return m[:], nil } diff --git a/tests/core/os/path.odin b/tests/core/os/path.odin index 3a7611757..50ee6bc87 100644 --- a/tests/core/os/path.odin +++ b/tests/core/os/path.odin @@ -380,6 +380,13 @@ glob_tests := []Glob_Test{ }, err = {}, }, + { + pattern = ODIN_ROOT + "tests/core/os/path.odin", + matches = { + ODIN_ROOT + "tests/core/os/path.odin", + }, + err = {}, + }, } @(test) From e57af19fcde47d8c79e2489475aeb3d535ffe665 Mon Sep 17 00:00:00 2001 From: Yawning Angel Date: Tue, 4 Aug 2026 20:07:19 +0900 Subject: [PATCH 16/21] core/crypto/_fiat: Fix coditional in ensure Callers in core also check so there is no user visible impact. --- core/crypto/_fiat/field_scalarp256r1/field.odin | 2 +- core/crypto/_fiat/field_scalarp384r1/field.odin | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/crypto/_fiat/field_scalarp256r1/field.odin b/core/crypto/_fiat/field_scalarp256r1/field.odin index 802f3382e..a2016992f 100644 --- a/core/crypto/_fiat/field_scalarp256r1/field.odin +++ b/core/crypto/_fiat/field_scalarp256r1/field.odin @@ -38,7 +38,7 @@ fe_from_bytes :: proc "contextless" ( out1: ^Montgomery_Domain_Field_Element, arg1: []byte, ) -> bool { - ensure_contextless(len(out1) <= 64, "p256r1: invalid scalar input buffer") + ensure_contextless(len(arg1) <= 64, "p256r1: invalid scalar input buffer") is_canonical := false s_len := len(arg1) diff --git a/core/crypto/_fiat/field_scalarp384r1/field.odin b/core/crypto/_fiat/field_scalarp384r1/field.odin index d465bae44..8c110b6ad 100644 --- a/core/crypto/_fiat/field_scalarp384r1/field.odin +++ b/core/crypto/_fiat/field_scalarp384r1/field.odin @@ -31,7 +31,7 @@ fe_from_bytes :: proc "contextless" ( out1: ^Montgomery_Domain_Field_Element, arg1: []byte, ) -> bool { - ensure_contextless(len(out1) <= 64, "p384r1: invalid scalar input buffer") + ensure_contextless(len(arg1) <= 64, "p384r1: invalid scalar input buffer") is_canonical := false s_len := len(arg1) From 11f481b4c38394d52c250472dc8ff5631c6dd795 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Tue, 4 Aug 2026 14:16:51 +0200 Subject: [PATCH 17/21] Update box3d Update box3d to https://github.com/erincatto/box3d/commit/3fc20f5b453ba9e14cdf54ecafa87a2a4bcdf53c Fixes #7177 --- .gitattributes | 6 +- vendor/box3d/box3d.odin | 18 +- vendor/box3d/box3d_collision.odin | 67 +- vendor/box3d/box3d_constants.odin | 27 +- vendor/box3d/box3d_types.odin | 44 +- vendor/box3d/lib/box3d.lib | Bin 3262634 -> 132 bytes vendor/box3d/lib/darwin/libbox3d.a | 4 +- vendor/box3d/lib/linux-amd64/libbox3d.a | 4 +- vendor/box3d/src/include/box3d/base.h | 12 +- vendor/box3d/src/include/box3d/box3d.h | 34 +- vendor/box3d/src/include/box3d/collision.h | 65 +- vendor/box3d/src/include/box3d/config.h | 4 + vendor/box3d/src/include/box3d/constants.h | 31 +- vendor/box3d/src/include/box3d/id.h | 7 +- vendor/box3d/src/include/box3d/types.h | 64 +- vendor/box3d/src/src/CMakeLists.txt | 12 +- vendor/box3d/src/src/block_allocator.c | 5 + vendor/box3d/src/src/block_allocator.h | 2 +- vendor/box3d/src/src/body.c | 33 +- vendor/box3d/src/src/body.h | 1 - vendor/box3d/src/src/compound.c | 75 +- vendor/box3d/src/src/contact.c | 10 + vendor/box3d/src/src/contact_solver.c | 532 ++----- vendor/box3d/src/src/contact_solver.h | 4 +- vendor/box3d/src/src/convex_manifold.c | 1508 +++++++++++++++---- vendor/box3d/src/src/core.h | 6 + vendor/box3d/src/src/height_field.c | 12 +- vendor/box3d/src/src/hull.c | 303 +++- vendor/box3d/src/src/{hull_map.h => hull.h} | 4 +- vendor/box3d/src/src/island.c | 2 +- vendor/box3d/src/src/manifold.c | 54 +- vendor/box3d/src/src/manifold.h | 48 +- vendor/box3d/src/src/math_internal.h | 1 + vendor/box3d/src/src/mesh.c | 12 +- vendor/box3d/src/src/mesh_contact.c | 6 +- vendor/box3d/src/src/parallel_for.c | 3 +- vendor/box3d/src/src/physics_world.c | 39 +- vendor/box3d/src/src/physics_world.h | 2 +- vendor/box3d/src/src/recording.c | 56 +- vendor/box3d/src/src/recording.h | 15 +- vendor/box3d/src/src/recording_ops.inl | 7 +- vendor/box3d/src/src/recording_replay.c | 47 +- vendor/box3d/src/src/sensor.c | 5 +- vendor/box3d/src/src/shape.c | 19 +- vendor/box3d/src/src/shape.h | 5 + vendor/box3d/src/src/simd.h | 568 ++++++- vendor/box3d/src/src/solver.c | 43 +- vendor/box3d/src/src/timer.c | 5 +- vendor/box3d/src/src/triangle_manifold.c | 464 +++--- vendor/box3d/src/src/types.c | 3 +- 50 files changed, 2994 insertions(+), 1304 deletions(-) rename vendor/box3d/src/src/{hull_map.h => hull.h} (77%) diff --git a/.gitattributes b/.gitattributes index 25300b4ef..d808581de 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,6 +5,10 @@ Makefile text eol=lf *.sh text eol=lf vendor/box2d/lib/box2d_windows_amd64_avx2.lib filter=lfs diff=lfs merge=lfs -text vendor/box2d/lib/box2d_windows_amd64_sse2.lib filter=lfs diff=lfs merge=lfs -text +vendor/box3d/lib/linux-amd64/libbox3d.a filter=lfs diff=lfs merge=lfs -text +vendor/box3d/lib/linux-arm64/libbox3d.a filter=lfs diff=lfs merge=lfs -text +vendor/box3d/lib/darwin/libbox3d.a filter=lfs diff=lfs merge=lfs -text +vendor/box3d/lib/box3d.lib filter=lfs diff=lfs merge=lfs -text vendor/miniaudio/lib/miniaudio.lib filter=lfs diff=lfs merge=lfs -text vendor/sdl3/SDL3.dll filter=lfs diff=lfs merge=lfs -text vendor/sdl3/SDL3.lib filter=lfs diff=lfs merge=lfs -text @@ -31,5 +35,3 @@ vendor/raylib/windows/raylibdll.lib filter=lfs diff=lfs merge=lfs -text vendor/raylib/windows/raygui.dll filter=lfs diff=lfs merge=lfs -text vendor/raylib/windows/raygui.lib filter=lfs diff=lfs merge=lfs -text vendor/raylib/windows/rayguidll.lib filter=lfs diff=lfs merge=lfs -text -vendor/box3d/lib/linux-amd64/libbox3d.a filter=lfs diff=lfs merge=lfs -text -vendor/box3d/lib/darwin/libbox3d.a filter=lfs diff=lfs merge=lfs -text diff --git a/vendor/box3d/box3d.odin b/vendor/box3d/box3d.odin index 75639c63e..25be6ebad 100644 --- a/vendor/box3d/box3d.odin +++ b/vendor/box3d/box3d.odin @@ -833,6 +833,14 @@ foreign lib { // Is this body a bullet? Body_IsBullet :: proc(bodyId: BodyId) -> bool --- + // Allow this body to rotate fast. Useful for axially symmetric bodies, such as vehicle wheels. + // Normally rotation speed is clamped to improve CCD. However, this clamping is unnecessary for + // bodies that only rotate fast around an axis of symmetry. + Body_AllowFastRotation :: proc(bodyId: BodyId, flag: bool) --- + + // Is this body allowed to rotate fast? + Body_IsFastRotationAllowed :: proc(bodyId: BodyId) -> bool --- + // Enable or disable contact recycling for this body. Contact recycling is a performance optimization // that reuses contact manifolds when bodies move slightly. Disabling it can avoid ghost collisions // on characters at the cost of higher per-step work. Existing contacts retain their prior setting; @@ -895,6 +903,10 @@ foreign lib { * @defgroup shape Shape * Functions to create, destroy, and access. * Shapes bind raw geometry to bodies and hold material properties including friction and restitution. + * You may add multiple shapes to a single body. There are no hard limits on shape count per body. + * + * When you create a shape on a body the center of mass moves. This can lead to the body linear velocity + * changing if the angular velocity is non-zero. * @{ */ @@ -933,8 +945,10 @@ foreign lib { // @return the shape id for accessing the shape CreateHeightFieldShape :: proc(bodyId: BodyId, #by_ptr def: ShapeDef, heightField: ^HeightFieldData) -> ShapeId --- - // Compound shapes are only allowed on static bodies. - CreateCompoundShape :: proc(bodyId: BodyId, #by_ptr def: ShapeDef, compound: ^CompoundData) -> ShapeId --- + // Baked compound shapes are only allowed on static bodies. + // Note: runtime compounds are achieved by adding multiple shapes to a body. + // Runtime compounds can be dynamic and/or kinematic. + CreateBakedCompoundShape :: proc(bodyId: BodyId, #by_ptr def: ShapeDef, compound: ^CompoundData) -> ShapeId --- // Destroy a shape. You may defer the body mass update which can improve performance if several shapes on a // body are destroyed at once. diff --git a/vendor/box3d/box3d_collision.odin b/vendor/box3d/box3d_collision.odin index e80584f7a..33c3961c9 100644 --- a/vendor/box3d/box3d_collision.odin +++ b/vendor/box3d/box3d_collision.odin @@ -265,14 +265,12 @@ foreign lib { // Destroy a compound shape. DestroyCompound :: proc(compound: ^CompoundData) --- - // If bytes is null then this returns the number of required bytes. This clones all the - // data into the bytes buffer. This is expected to run offline or asynchronously. - // This mutates the compound to nullify pointers, leaving the compound in an unusable state. + // Cast the provided compound data to bytes, setting the internal pointers to null. + // Use this before serializing the compound bytes. ConvertCompoundToBytes :: proc(compound: ^CompoundData) -> [^]u8 --- - // Convert bytes to compound. This does not clone. The bytes must remain in scope while the - // compound is used. This is done to improve run-time performance and allow for instancing. - // The bytes are mutated to fixup pointers. + // Cast the provided bytes to compound data, setting up internal pointers. + // Use this after de-serializing the compound bytes. ConvertBytesToCompound :: proc(bytes: [^]u8, byteCount: c.int) -> ^CompoundData --- /**@}*/ // compound @@ -440,15 +438,16 @@ foreign lib { // Collide two hulls. CollideHulls :: proc(manifold: ^LocalManifold, capacity: c.int, #by_ptr hullA: HullData, #by_ptr hullB: HullData, transformBtoA: Transform, cache: ^SATCache) --- - // Collide a capsule and a triangle. - CollideCapsuleAndTriangle :: proc(manifold: ^LocalManifold, capacity: c.int, #by_ptr capsuleA: Capsule, #by_ptr triangleB: [3]Vec3, cache: ^SimplexCache) --- + // Collide a triangle and capsule. Normal points from triangle to capsule. + CollideTriangleAndCapsule :: proc(manifold: ^LocalManifold, capacity: c.int, #by_ptr triangleA: [3]Vec3, #by_ptr capsuleB: Capsule, cache: ^SimplexCache) --- - // Collide a hull and a triangle. - CollideHullAndTriangle :: proc(manifold: ^LocalManifold, capacity: c.int, #by_ptr hullA: HullData, v1, v2, v3: Vec3, - triangleFlags: c.int, cache: ^SATCache, enableSpeculative: bool) --- + // Collide a triangle and hull. Normal points from triangle to hull. + CollideTriangleAndHull :: proc(manifold: ^LocalManifold, capacity: c.int, v1, v2, v3: Vec3, triangleFlags: c.int, + #by_ptr hullB: HullData, cache: ^SATCache, enableSpeculative: bool) --- + + // Collide a triangle and sphere. Normal points from triangle to sphere. + CollideTriangleAndSphere :: proc(manifold: ^LocalManifold, capacity: c.int, #by_ptr triangleA: [3]Vec3, #by_ptr sphereB: Sphere) --- - // Collide a sphere and a triangle. - CollideSphereAndTriangle :: proc(manifold: ^LocalManifold, capacity: c.int, #by_ptr sphereA: Sphere, #by_ptr triangleB: [3]Vec3) --- /**@}*/ // collision @@ -513,16 +512,6 @@ GetHullEdges :: proc "c" (hull: ^HullData) -> Maybe(^HullHalfEdge) { return (^HullHalfEdge)(uintptr(hull) + uintptr(hull.edgeOffset)) } -// Get read only hull faces. -@(require_results) -GetHullFaces :: proc "c" (hull: ^HullData) -> Maybe(^HullFace) { - if hull.faceOffset == 0 { - return nil - } - - return (^HullFace)(uintptr(hull) + uintptr(hull.faceOffset)) -} - // Get read only hull planes. @(require_results) GetHullPlanes :: proc "c" (hull: ^HullData) -> Maybe(^Plane) { @@ -533,6 +522,38 @@ GetHullPlanes :: proc "c" (hull: ^HullData) -> Maybe(^Plane) { return (^Plane)(uintptr(hull) + uintptr(hull.planeOffset)) } +// Get read only hull faces. +@(require_results) +GetHullFaces :: proc "c" (hull: ^HullData) -> Maybe(^HullFace) { + if hull.faceOffset == 0 { + return nil + } + + return (^HullFace)(uintptr(hull) + uintptr(hull.faceOffset)) +} + +// Get read only SOA vertices. This is an array of vertices with all x values, +// y values, and z values as separate arrays. The array lengths are padded to +// a multiple of 4. The padded values are repeats of the first value. +@(require_results) +GetHullSoaVertices :: proc "c" (hull: ^HullData) -> Maybe([^]f32) { + if hull.soaVertexOffset == 0 { + return nil + } + + return ([^]f32)(uintptr(hull) + uintptr(hull.soaVertexOffset)) +} + +// Get read only SOA unit normal vectors. This is an array of normals with all x values, +// y values, and z values as separate arrays. The array lengths are padded to +// a multiple of 4. The padded values are repeats of the first value. +@(require_results) +GetHullSoaNormals :: proc "c" (hull: ^HullData) -> Maybe([^]f32) { + if hull.soaNormalOffset == 0 { + return nil + } + return ([^]f32)(uintptr(hull) + uintptr(hull.soaNormalOffset)) +} // Get read only mesh BVH nodes. @(require_results) diff --git a/vendor/box3d/box3d_constants.odin b/vendor/box3d/box3d_constants.odin index ccb93678a..37edbeaaa 100644 --- a/vendor/box3d/box3d_constants.odin +++ b/vendor/box3d/box3d_constants.odin @@ -62,6 +62,10 @@ MIN_CAPSULE_LENGTH :: #force_inline proc "c" () -> f32 { return LINEAR_SLOP() } +// Minimum contact point friction weight, lower bound for speculative points. Made small +// enough to be washed away by weights that hit 1. +MIN_FRICTION_WEIGHT :: 1e-10 + // The distance between shapes where they are considered overlapped. This is needed // because GJK may return small positive values for overlapped shapes in degenerate // configurations. @@ -121,11 +125,30 @@ TIME_TO_SLEEP :: 0.5 // The maximum number of contact points between two touching shapes. MAX_MANIFOLD_POINTS :: 4 +// The number of iterations for gyroscopic torques. +GYROSCOPIC_ITERATIONS :: 1 + +// The maximum number of convex hull vertices. This is fixed for performance reasons. +MAX_HULL_VERTICES :: 128 + +// The maximum number of convex hull faces. +MAX_HULL_FACES :: 128 + +// The maximum number of convex hull edges. Full edges, not half-edges. +MAX_HULL_EDGES :: 128 + +// Relative tolerance used to determine if two edges are parallel. +PARALLEL_EDGE_TOL :: 0.005 + // The maximum number points to use for shape cast proxies (swept point cloud). -MAX_SHAPE_CAST_POINTS :: 64 +MAX_SHAPE_CAST_POINTS :: MAX_HULL_VERTICES // These generous limits allow for easy hashing. See b3ShapePairKey. SHAPE_POWER :: 22 CHILD_POWER :: 64 - 2 * SHAPE_POWER MAX_SHAPES :: 1 << SHAPE_POWER -MAX_CHILD_SHAPES :: 1 << CHILD_POWER \ No newline at end of file +MAX_CHILD_SHAPES :: 1 << CHILD_POWER + +// Increase this if your application needs more accurate restitution. Doing so will +// slow down the simulation. Must be 1 or more. +RESTITUTION_ITERATIONS :: 1 \ No newline at end of file diff --git a/vendor/box3d/box3d_types.odin b/vendor/box3d/box3d_types.odin index 42b72615f..84b8cb53f 100644 --- a/vendor/box3d/box3d_types.odin +++ b/vendor/box3d/box3d_types.odin @@ -479,6 +479,9 @@ SurfaceMaterial :: struct { // carry a b3DebugMaterial preset, see b3MakeDebugColor. // @see b3HexColor customColor: u32, + + // Explicit padding. Must be zero. + padding: u32, } @@ -542,6 +545,7 @@ ShapeDef :: struct { isSensor: bool, // Enable sensor events for this shape. This applies to sensors and non-sensors. False by default, even for sensors. + // Only convex shapes may act as sensor visitors. enableSensorEvents: bool, // Enable contact events for this shape. Only applies to kinematic and dynamic bodies. Ignored for sensors. False by default. @@ -1871,8 +1875,7 @@ Capsule :: struct { * @{ */ -// A hull vertex. Identified by a half-edge with this -// vertex as its tail. +// A hull vertex. Identified by a half-edge with this vertex as its tail. HullVertex :: struct { // A half-edge that has this vertex as the origin // Can be used along with edge twins and winding order @@ -1903,7 +1906,7 @@ HullFace :: struct { } // 64-bit hull version. Useful for validating serialized data. -HULL_VERSION :: 0x9D4716CE3793900E +HULL_VERSION :: 0xDA5150191B994C01 // A convex hull. // @note This data structure has data hanging off the end and cannot be directly copied. @@ -1953,11 +1956,17 @@ HullData :: struct { // The face count. Hulls faces are convex polygons. faceCount: c.int, + // Offset of the face plane array in bytes from the struct address. + planeOffset: c.int, + // Offset of the face array in bytes from the struct address. faceOffset: c.int, - // Offset of the face plane array in bytes from the struct address. - planeOffset: c.int, + // Offset of structure of array (SOA) vertices + soaVertexOffset: c.int, + + // Offset of structure of array (SOA) unit normal vectors + soaNormalOffset: c.int, // Explicit padding. Hull identity is a content hash and memcmp over raw bytes, // so there must be no unnamed padding for struct copies to scramble. @@ -1971,9 +1980,15 @@ BoxHull :: struct { boxVertices: [8]HullVertex, //< Box vertices. boxPoints: [8]Vec3, //< Box points. boxEdges: [24]HullHalfEdge, //< Box half-edges. - boxFaces: [6]HullFace, //< Box faces. - padding: [2]u8, //< Explicit padding, see b3HullData::padding. boxPlanes: [6]Plane, //< Box face planes. + boxFaces: [6]HullFace, //< Box faces. + padding: [10]u8, //< Explicit padding, see b3HullData::padding. + vx: [8]f32, //< vertex x + vy: [8]f32, //< vertex y + vz: [8]f32, //< vertex z + nx: [8]f32, //< normal x, padded to multiple of 4 + ny: [8]f32, //< normal y, padded to multiple of 4 + nz: [8]f32, //< normal z, padded to multiple of 4 } /**@}*/ // hull @@ -1989,7 +2004,7 @@ MeshDef :: struct { // Triangle vertices vertices: [^]Vec3 `fmt:"v,vertexCount"`, - // Triangle vertex indices. 3 for each triangle. + // Triangle vertex indices. 3 for each triangle. CCW winding. indices: [^]i32, // Triangle material index. 1 per triangle. Indexes into b3ShapeDef::materials. @@ -2333,13 +2348,13 @@ CompoundDef :: struct { } // The compound version depends on the tree, mesh, and hull versions. -COMPOUND_VERSION :: 0x830778DB07086EB4 ~ DYNAMIC_TREE_VERSION ~ MESH_VERSION ~ HULL_VERSION +COMPOUND_VERSION :: 0xB11DCE70FAD5622B ~ DYNAMIC_TREE_VERSION ~ MESH_VERSION ~ HULL_VERSION // Meshes used in compounds have limited space for materials. If you have // a mesh with many materials, you can use it outside of the compound. MAX_COMPOUND_MESH_MATERIALS :: 4 -// The runtime data for a baked compound shape. This is a potentially large yet highly optimized +// The data for a baked compound shape. This is a potentially large yet highly optimized // data structure. It can contain thousands of child shapes, yet at runtime it populates // into the world as a single shape in the runtime broad-phase. // This data structure has data living off the end and must be accessed using offsets. @@ -2851,7 +2866,9 @@ DebugShape :: struct { // Callbacks receive world coordinates. In large world mode the translation is double precision so // it stays accurate far from the origin. Shift into your own camera frame inside the callbacks. DebugDraw :: struct { - // Draws a shape and returns true if drawing should continue + // Draws a user shape. The userShape pointer is owned by the application and is known to Box3D as + // an opaque pointer returned from b3CreateDebugShapeCallback. When this is called the drawn shape has + // passed a culling test against drawingBounds below. DrawShapeFcn: proc "c" (userShape: rawptr, transform: WorldTransform, color: HexColor, ctx: rawptr) -> bool, // Draw a line segment. @@ -2912,7 +2929,7 @@ DebugDraw :: struct { drawContacts: bool, // Draw contact anchor A or B - drawAnchorA: c.int, + drawAnchorA: bool, // Option to visualize the graph coloring used for contacts and joints drawGraphColors: bool, @@ -2926,9 +2943,6 @@ DebugDraw :: struct { // Option to draw contact normal forces drawContactForces: bool, - // Option to draw contact friction forces - drawFrictionForces: bool, - // Option to draw islands as bounding boxes drawIslands: bool, diff --git a/vendor/box3d/lib/box3d.lib b/vendor/box3d/lib/box3d.lib index 38b5dad3636609168a26b0040a865ae90bc45fe7..42ada6bbae86828947560779ba1bf73ee61821b1 100644 GIT binary patch literal 132 zcmWm4K@!3s3;@78uiyigG?WPa4FMv|sB{E-@b&6xFMF2PX#J_{oX6OWxwUz@%UFKa zH!rC_%s5Ii=c;erv7!q?9&j5sgEJBez{j;SjM&aO@ N)M%fgEjmvds4qf{C|3Xg literal 3262634 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 z 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 `HQmxz9EpWZ0 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

{k}vhhokQVk{- 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%0A?dPO=guobLvSTJfNqR}c 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

rgN>VsARb4 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%0D6_%bLy$YE8|}83~NR~)@^yA(W7F# zS$hRD{4s?YlNHLenv4l##g=;H=&XWqa$B+r=NIISrDG23(NP6iS*YA7y#)*W;|j9S zH~R3&5BW!+=ZvJRikiCWNB|2TOlXPJ7hx>qGq7r>&#sNsjH=A2oK{s?S3!paEQ@SP zWLH;CW9xn)TidYWvSbjM5v=!E?vR9)y0UOeq@0$%jOqy1K@(J4T{&C(%Kk43*4zde zMd9BIYa>rbSnR!WW)=2jw%!Bm!` zJP|oDt0Fw9JW^O5iBy$UOx9VROb5WSin_`=YEe;(NNoWEm(|wMS~hA*b)<$4(&l{h zK-LT#k!&-ERflKrvj^_SmeLYB!0G-C6uB^O-mdmo@QPmNn zkfPD5BE@y($eckrd_D5N1Stea$?L4AeV%5WqyHP%9#3Tzq}&PcXpS)$fn1|F>O*JiP)C8ymFA^^ zWLAe~vgV;Pk+O)K30FPOKB$o`xk^IJZDjJXN`=H1F-pZZ`mYFO9W}d(hN$*+1Rt^5 zSN+7_gz!mwTLdRge1Xtlf5l`>vuc~1QDF?8+88sO2bIsxuBP1FW|4bYUHDA+uuO$It>%V!uX0fos(!oLFxK#T_)v2UoK&X2V&i#C8C(BFW3r1d2-yF$FkrZZ%h^&xXUaCobXBV-XYg|tjGu}~aV2J>BBTl;dM5(0jRF^`!^qL&NspZ|y*sP_VKxt-6OCo8_Uqn>SB!1jttNie%_WWNoz>s3u{GomS{Sx z$l0-n9XTKIG_4lW5zsqWCin`kjUT%_OH0d$D51SxK1yh#Pc}dmcz-)qfM@H)=WS}b zTZ3*Ab49uzgXDZEp~x~eExG#O)av4tZ)uNM%yddXr{-)0wovi_wPex=rJ+kpt0hYw zot8}KSlepD(3M%Qcl%HVOm4gk&*jCb7Ut78C3Hu(N6UZR*-&S?VMamPO1i z&m!jwj&W<2ilg7B)w-ds2KPeg7Ok9%`WNb1dWj9Sly8aa5=0v^CPZ@5mlPAgM_eIJ z?zO%$Ws+LU(UufBo2}ht75XeOsSAoOb~n8b|2u zng$X0DA$4*i&JqyNp;4QNbywkE3SO;P2Aq5FLbYNMx?N~I$T>kMF2(Y;GZ65S8;%F zwOBlrE=~9_;*_2!-ExucAwo*u*@>=pkAxDKy_UdACVinuQi5c_c*y~$)FIpyp{p2P zG?8Gsh>_B@YZ#u0lcFlBdy%LIyQgN!GVa6ZG{eNGG42GS#&!f<%jq`-V;FRu={m=J zPHl&3*BxG*an~@$#kheOlZCQSVeun8{c6C4L6+sVq8*HpAA5%}2IOsNx!D*)+1+4_ zfwX19e6P_A@nKBE%+k+d2-xIM5=}Af$F~-t$d0)mV~(m>@Vh)VIpP}GCPyszrX!FI zWIBy2#ScMkN@(2Dam_T{ps|LLZ~fTjTJHjRLtgPj?TvdwR!ek@={Auy*Zz)?m4b)$ z=8+8|iXs+zn^uI4<(872i@3XF%`z<~_SP}?oU9I5e8lZ1YYz9ex5dE}M}6(4lvRl; z>G!9sdE8a37|6tGzz?7Hptg3=si2wQ6Ox^`={Kul^DTF?Vgd7=t=L@iU9Q+%)4_rr zZfr}a9Xad>v3A&Hu{1QJ%>>u7jQe5cqG`FNTVr zZ8Qf;j0XLtnFAJcbIpNs8Z&y;=v1EW%f#r>;>O*#m|XLXH*+Q*i_$G8i#aDS)!5@S z+KrM}5BZuuHlLltI?LtDVcRlD7lO8gd@W>)=$8-nx%zpqC0mSlyYjO%w7z`b(%b;C z1l_{4BW&(w#$eKo&6r#o26%+Ta*xvvW4Cmi&a1Q{^OJWcN*XtaEMLHygW8jpO9(ds zPOJ0_2{R`ROzH*g&Zi?JW_Oji^l{|$`ml!5?nip#+EtS`=~8{ETD-*CRg#;peDBne zQe_lZcRS?f*OHh{boyG$1u)aQ#`y&O=N7K>4s&iM5kx8@qk z0_Qm+b8JM4+qqtDtP?FOcZ?f@>}E_X=`v-cW1UMENStdA*pn_DU={H8$Cwm%fsJc_ ziF9sw33F<93F2OM%`Rc^a%}Y&(0c3A-0AZ91CNfQseZ%QnMD!QKyGT>C$ZhWjYxTR*mg*b#b*aB}%5D{QK>vR#h280hgTH4MzdlEwF|oNQ?oxKW;w+tW7KKG`lveV7!}EfJ%)j3MwT3r^0%-zi{i|G-^2t6!rX(DtKf0{9!o|hFX6utPsIml|Ju&3VBBa`tfA=yO_ zo(In?D=m#w3!Gj#krMc`kK$oh+=Il!xVX4U>jN(c@S>ZlrZ))7k)P2u4_b3JyL7j-8_PGI+>Mb^mY2?W!q--=J;fWF zDL>^KlRqj<55Ag`^R%|7j@6$5)E^(zQ*rM?bZH@;tEC&jL2XD-0#o+UlJOeP6bz2i zYDB~5>2=`}{7|N>n7&X(5gyTrOvb~>_+C7%s#^cfiiR?VDl4bfRUw%@MS|iQX_M-T zr$!(X59>;KWi>^31%g-5P?S}Omv$r;j}BTvJXRd8z%O64ltR3J6fUY{FX33TYw@$# z@*+HvSy^0E!{64C0+r&4sG`!c>KgHGlU2|1c^TPjBXk23H7_cjf+v}*aAXFaEQ?7* zfU;V8)LRNHJn>klHK#g4y}(oHr6jbK=v?-~QhBA;*V%aPxzPBEXA3JZF=@6^j`sL0 zH=<#nr4(RAz-V)LpnQjYs5m7=or%qvEw zd4ZxNKG}9SPzYhA0lE9RZcC7_>$`?W}=glC#4v# zTqRf0??#Z5bc}xT#~yvtDI-OP2+-cm(m5$npyn5S1Slm5tctxxwekBspo88hAml37!_EYRN-l6fOp z#b?f4fPBjbtk>UVgITTC$AuccWxhq{$$?Hzi{%g{_RqeK9#%gPSNhjdT5M zI5~}TDK?y(CKpb6lS?k8oF&V&m%U_#o+`tv+v$}rnKqJn(fjB{r6dCbdqvOG3h zmRsJ@lf~9dSt`HCCo3&^vM}~#KUr*(FB`~gq9A0jatyBxXE%x@se%_ilTMOnr>%4UT*S;s9ei|V{JT^Hb7 zNPd}Am&E4q+KYi{gXs1DP`In#h!G*GQ&pyJj+F+clIa+pgH=7rbqz zwe$jbG7m2gHksfha3gH1U{eaYyX7d{L+)0YuYA;yhNa1S@ara|ep6TKL3 z)0TP`4=qmo94l-Jn=gMY#PXvX&2O# zZQH$uHCM}%H%9H4&DEBEH_UB^g^_JrY3cVs*w$Po>`k=WoZ?pw*!x%^UK@El;fFU? z%x>7(VBAd}DK;2)^TfEDJbE16JTdNO?N*1HdSdonVE3yM?EAr%v@wnO z#!_~j8cT7nzH*DiV%*FV6K?YKadh*-gqwU0=ji5z*)%_1gVBFBHQR30wg6@e?Ij^| zkLhU=D8E1?@s=!JVKH;C%$i?35;})Wt`xJxUg?l271i`!lT=P~x>WOtsH`cSIp&pwpHEV3Pv|hz#OHCV_&DElDW3$bb)?VZ?x00R~ z1M;7GN~4m&T6&Ct{qPsBg~izG88H&}$gZ74&oE2GTVvWY{!*ZrJhM>$5jgv?8y0!( z)hlyRogrH*{&PHP45=Kti#gxcK#U$|2MLfypdLg*q)}*(NF&i6kw&9EB8^CUL>iU$ zh;5@#YoLEHj`=U)v~Sy3%FWF3^sa563r8#JW-FeW(jV}0^NnHMjQOK2icMhoWkJTz zd~tU~Z+EJl>D4mFlA0OE5*m>HT9|^N!MYoZ=ZV}MHOSqHcc%7In!BTg{XZBR72{)` z9YJDSUJ77n+yjYWqgDkg>}ZYorN4~l*eVj_YGryg&DG7!*&6Z{lRZW$-Z8WFv%y^K zq*u~h{AA9>(0GN-#mxk{SQ+oTxmcMX7ps_;<6InLSr=pNV9THEa&fhQ_QxyUcNWzC zxMhoSS8h? zhsf}hhdfG0>tFEb;KQf5lrXE9S!k~y69k#%$Am^`zPKbUTL?%b@l2VyPo zBMj*Q^;nM>!fZk(1eQnF%?@_iye-9TLpy*EY8QYzh|{SKD!DMY*dI>Rx^RHj{hJ1>;d^$;ozlQY9oW$MQ>FUKB5v zHyeRJFIHDvkFN%9PPCm)Yi{f75&=@<}B`+_^Wk8tUU~?H05@u&dZ?@U#Svs#v zUrSe*B(_;XWoan0$}UT&EKOoo*<}fp_+hEm+-8+smboG5lvw|%DZSBWZjIPXTPb_( z&sN8C%pyFyp}!btmPqNmTB4bx9O*bA<#3H?Bq@h$>~gFHV-2CdplB_gC0DdPKaHY* zmV9aDv&rXr(LXl%T<@IE_2SV+N4;}C*NaCS9re!n=EjS8kJ8+Bv6=SL$#~h)UdM9m zMcV6__Ch_^UL5n*rM*im=3?jglBSEdv&KFUf5FqcYJtIdGDg?KI0Uan=D zrTV+0W{Hu=hoLwO8_9h1$0T!FtjJb6CYjUX@MooCk~u9_9V;D^Y^@@H1J+tcks4EM zi8hs6;>D6hMUnW}bnY+KiWojNo%3RD$MCV~oEL9B#PG4{oY$U$juF^on48mhq1fD< zrc`b(28StK8Z@SK&WmO?rE@+uo%3RV#PG4{oEJkRhL24*S5|*r+FVy7kz0#1OCy<= zJSJJHsFfD=G?MjVP?5E#2#qCJPSs)jD4dQK8n3^_EtTIEkV|KaNIha7hP#MPut&Iy zD`Kt=ep)HLdTy>sOr8`zCRd6algqVYJjCR3ty8YK!2B6!dUDtNTD-Z~4g@cNm^cm$ zFNQnAeZ=r{^>Jsoj~JM)KJE>q;W2{U%k;N-0V0i@$d}h5f}?`UN31sr{#<`Gjh4W^QgMJAHV1 z8vCs%sRL4zGxJgh^Z`(m$N%bVA(oTylYqg+gRx*Q5?8D@h$Njr}d&;wdaKSgjYUe=uwKu$&RY(0dzyFmwV6ym= zw?UMJie;AOS+MlPohWHzNr`k7JshPD61YUD?2TJxPN#cH!rq&_-PjZolbi9=(5aU zS|Ak4&&tlti-}fOF}0#{W<~0N%Btc@jJ*MUX6d?&+_apWykQwx{#aeL_0EB;LTOo97!NrZ*VfTz#1kXl94{{|JAXuA zcy=JR>kM6OHU9Q8+DH$VnVpuG6UZKxJ|gH64u3tcdNv0pT zhN1PdGcz*9+=-P<3e(&VPcAFwOATMa(2UuE;UjX=bNO_Q)!}b`(qCp_1JkHtc3LPe zKWlip-_KeU6&C`%gYVq zjtKglbXe4C@cZ8}CM&{*EITcbo0*v#a8ltHrd8Kf)nfdYmg*`RStI;87?fBF=~tHU zvl#I=U#SNWqY8gW7rGK-K&E5$4Q6Jh4-4c=y&kR=e@@jrcuK?gLzQ~O5o!7Pq5NSv zSy^ecAg1>3-v?_o4KVszUS3DzOQ#2928WNpU!~4BU?VRlD?2@qhgA@gOrcK0-y;vA z=OgUzsuW?6W7_r^Feuyy8}iuql;VCVC4>5e_3x4X#n?)W?}KSG@=Hl=(wFwNxpUt^H>C_1oYJRX z|IX6Zw@;se0|$2QoYHS#|ABoe>&}Zy9=yGI+N`|0TL09rmdJdF>_KGeSP|2rq<-)ZIELDry;e7@%Y<5Uy; zXBYP}q-P6;llI(W=#L5DzWanz_-gAn4e93uw!Rf6u6GC_~BEZ zuhnPV%c*<~=+Mi+{P_#cIgNubxVOOc_}ZOojqF0faMHeAXxbDha9^X~Rp7>c!`&{z ze|GJ14bmSI3@7cmmy!8b1&)U3U8giB{=Z$^VJKhLw?5w^r#a&^uI>c)G%??C&Z!>6 z-2&#x?>R^9X&1LI(%YTkjP|b`NAo62fg``+3LN>(QQ)?KyI+BO7~G&Ae7;8Pv^lLW zPb2R*n7L<(a^|`tZzY&F1&8LeZNGKMco)o^AIZ(0amJds*uMAB3 z&zy5w|HdKvAuyi_&Z)i+fV%)@-ha8D)4aSJ*=xZhopa}AB0C4n>mD5WeFLWC7k9tw z(0-4A`RjSkIjzr&ko^UissGD4r};4z*>k~sBRHpa2_SC#uRdS?Z`|)<{AV}r2O#}# zg5jh+cN7IW3GR(J8Y#}>;1T5A(j?Be7dvfE^`PU?$AV!X{;?|`9gn^RcWYC3zstZC z2*%Bijz^Qhoo~kd=wG|IbUbR_oHK5IVPsY-aCAI6tiW}I-)|Si`P#SOvFTsC^3n0A z3z!!#=A6^Gr{mEFUm_aL<5Q>%mdKZ36S52e%Iu{2a`> zD|mgWo$UIz3h7I(jPu1^#W|;OMa%q9FgIPzIj4T3_5Kww{%bfF?+|xA#RYR~C(gBW z;OH>)Coq5P%((;yE)D73y2SaWV5iM#-Ka<2AHa0HmUB+yY7n?0Fpmq)X&kHr_ct&_ zN!+g$zT35PI?@k-Nl11tUoUWjz(fS+v>tp3ZZ?=Zx^h3K^A{@L2VmyW0UMiB`QAdH z@4#&B&bcJ8cJ-j~*B*=hEwu1sqkrwV%}CD%b6#*X59~NvH+tTP@q(Q;C%-|+$N}>} zPtN@gtexLS1ZcpA(u!8!HE0&qvbOz6Y?oVZ89 zRf1{K*PVM4+~r_C_TVV)_h4%Kx%<(0ehADC!8x@{4!C1rx}|VGr+%Ylemt1U{+x5_ z4>})88W878!A=|fYu9hoA49>sCpf46Ag;r}INy5gv^kZJ+V41+XKCPIb6SVU??*5X z-{kH0Dwqcbd;7fyX7bJMe%B-JaxgmuN3>JByalFch_~MoFfR+v$&cc`4(6l>mk;hN zn2cL^T&M9&+!!!x6u50*S`Bsg3&F1wn5iBdogd5vb6#*x>phh(>DD-34R+ex>ahsS z5f6^acM8m)RChn(a=rFxtI(>s%MPVM(SxC}5US)6maE_)l?GBCy2oO7C&6n7Jt3xacs zy9iuc+=O|8Zp2`7;;7kP1oIs=BsQn|Zbn}FV4Ux5?6f(plarAB4VX|4=bZXuAv`_= zGcm+Dr}9zU>0qwQb&pG2CYW;`+y!v$N5uIq&*Oeh=XDPty8z5T@;R3Xo!z)Pi1gZ# zSPu#~=d|w5Kz1FNQ-z#s?cg^H*~O#cd`CySb5|p~@U}Q#)fmn>_1ght{|QWF9Ov3P z#QhxUN#o;u%_nfqsa*~s+Yjb<6W#r2J$)C<&w?Y`uKj2oin}AuHxfH-PUC>M2$;fjKHTx42(|8BpXMHwb3A0=FK_uO1xD-!^w*++(NBslH>7HyzAg!8y%0^7|K< zeqnb%;1xK{q{2;$$ zV7gCs_akm7n0gP6j;kxdbezKdoYoEU^Mh#+oKroBTLtE{2S;(^%Hn+YVyDe5?z3Rd z2+l2T^SiKaV5iNEi-6gv!0iUpW~#SeS1{8RxP@R2DR5tc>09m|m*z(nn57EbS}^An zxJ#yC{$h7)Kei5m*(*4=`Svd`{VLr3XuM>D`J)2&9GD*zxQi;|dOpZ!!Ti;O zONY&yVB)89Kd1WwyWuwj%#do%Io+orZYh}YHSXMJ;Qj_?X)WiR&J)`p`y7~y>4XBC z(>injdE>!cKa+D#<$DR-JTQIf!~~`xA#hD3auHcBa;~qkKJ(xDLxu4T{1dZoh zFe?S;G=GWP2qx}s?&ro`1}5Uc(RiK>=3T+Ljpu)Zxp|IzTpCv+z&xSAy$I$P1@6*& zFkZ0J=2TybTLI=35AN^a-T|}VUhd~KUZ|b_0VerA_qfE}1m+yPeW>ICQ1E)=&O%=;eP5^yKM z++EM(I*lt@hh6~F^kL39_3usKx_}ucIH&TZgPR6sgNGm0;{ceBQSWx{31+qe*8t`t z1@1JM!H>AdrSX>wW~BnR5lmczx8G%8A`0AWF#8m^V_jmc) zcR!f+e{}a7g19}vlqzs{gW0UW?E};7QSZ1Nz!Z9Lub_OB!E||y`#Bw_>HfxaF!KdR zwB32wAfz{dc|&kc<0Ti|hhVxc<#CYA|a( zxakPD9Zau3@wiUs?OPD{Nic=WIp@^Q#H|K1{t0jHc`)G>-rPnoQ=atZUItUS(wo}> zX2$<`b8mvV_bG4g0GI_&dvpH)6J6!a9R>5pKYMeZgIT`Xn>z{S>1VvT@4>8j)|>ko z%!|)?bH9PvyvCbr{+Br4tJrCC8dpCeuk~6Sx1Q&m(>T2j*_B|HuH&53eRT5c@&fK> zulM#_0Ot7@z5NDmzex43gJP+Tw*Uv}p{2Dcte{Z`I7UGG!*PJ>zbin|}< zz^vTn&QbYJgIWHnH+K@u((UdX)#FPrjjwUesU9>fy6%Yc9oWe^dcMK#xYY{TOB*rI zU+0|D^EC9h=C!-xd{@4~Ij6W(-??CV?B<-)ILJr#95DOe?e;3QXC4Z*BvazHfVTGr^ow;8G8uf3bU& zuf;nU&)B`VgJ4D;^yZd<>G-ZUR|MuW1@8JoIFG>YRle`QOn=Xt+X80rVQ+3On7Ds< zbHl*wQ{WQbkMk|T?p2Q?V8(sm&aHyUQ()4LxO23=JP2mshn#a7&x`{z@FREb5%L4` zyMKDe9SbJ@sJkD<9SbJ@V+9UO{4sZq=I>ZA%|3DG=sa;0m{!L*=XC#t{32l5eCqB; zTo}wHpLuf=!L-vKWgVvFqePn&QaV_FjxP}JMK&{Nng49 z(Yjj$=Bcka=d|t;*W+ZIZ_GFD9JTWaFpE!d&S^Za0(TtD{oiuVX?-TYH^Ee&cK0Lh zbubnGcIW80`Wl!gzT=$R@$EM-&wuakM{$1v^V}JCj^h3V=Di=h;|@HF>wWCBIkg|f z?f0KJ-zV6;xL!ZT`TmLBi@V{cINt}@y}0XsMm?~5ao7GA&jn%k;;uOt=X(pg8%Oiw zieJEC_vFrl!|uubFF5RO9L={Ye#OrlvD4JWO z?nt@&b&6}^+mGGL@5&~4e-yhLM~9*IO`G_>YsNWxPr>edvMadd&71gMyNGj6&q)(E zsznpu?09$14=$l)6JP$toJ(|w`z*Nc!7OdfIj8liC%7(`H1UnN)IDw@xG%u`CxLTL z=fw}8JTnrT`2LHXHmCLKKgheaO%q?g-*K)rzT34QjpygVjBm?1r}4r#Fyq@PaA3w? z=FZW0ejZHta?ZJp=WSpnw|DoWb!ZEi;tt;2CNM=Ey}1owCS2jotphXWN_XyZ^zRxl z+pprB(|DnF4qn~FcMdykZv7Fw1{`)zt`j)yo?K^e*xk5P)FarXiSMCnIp@@G+hFoJ zn3YNH9F5bT!JJCwoYVah>fdo)oA{bv=UzU#ZX69}#PytWJFfl}%pKj_{o13xFM`?K zopVn09S*M34NZJyJvisI4pIMJ0JGsn_qdD$v!SN~2WCSr1rE%H-tHW=^93;L`gn8a z!K~@)&e8eC&tMMs_VTaYgIU z@4;jZ;+#|e{t4VuUl2a+!8QjN4s+r_f;^3x4Fk9ZZ(*j$9QuO zgXuEXoui*GP8SS5vd!+ilejts?iO&f!EF{SMYr>#^?o0iSH|)3IdQYVy#pqDJm;K# z9!l?HSAaP`k#m(a0li`m~&3|y*oqym0<9ZZFcqOjGPvexEH7F>r34A3S4V& z!xT6gzl92161edS99_TMtH9BD(!+M#Ecy2U(Y#)6;nEWOr1fIIJQ0~g^g9Obq=z4suSKc6jyttqdvHmDb?OiD^DFv|1UFH^Z;qm0 z6x=coKWe|tihhmY4tV&{dU{IH?*h11likO22l#aduC{~saDQ1Kd3+I!7R6O zHhx>c?6PteKUxny6AV7G&1t-x1oxwdAC<4|6t(e}1g^JW-Ns+8qTfVtWgdQ1-$jak zi@~i>@Y|~B*9h)_haZjSQ;L2+gKJvmKK`gbx(Egz+2+*0eZdX&@T2)LLD8=g+#C-- zs_$||zh}X1^zftl9#r%@4(^nPAI;yEcd3o%F5r3!)@eLXYQF1T?Delr#Q7J+-z!;j8~HY)n<26sro?>j}mrd7Cq zkDWHB_M`Qsr(hU}f1JkiU~pLqe#MG@mEh(m_$^oTdluYA1;2xeen-K5rQp|my4rYd z1MX_Uy7k8pMZaO-3KjgOEBf6Fu3o`!jiTQsa61(Ijw$+`1oxwYU)yT6{^$g*hhW|M zBdF*%8eG`JkJhWXihhg1t?=-p`MXuoZ#TF@3Vz=y`ke>YqQ-rFq4lq;VDOP`j_V7! zECs(}MZcNg=6m>2f2>mU+X!yEg5Oa^zf<6T_VAM37zW}Wr}3N$F2}=`ZgBv1PxA8nq(Qg{K*$RHk6#dqL+v4Fz>&yF!ey72mQ}Am)Te1DX4H2wU z`_b`joT6U@+;j!M#fp9_z^zg6+pXw#2;4CRzw?TIE$+s1TG(lGYrnpNVIcl-T2F_9 z3o7_cR`ja@H&?-LrJ~LZBFBvu0K))!$ADwwBBcc%k%J~r_HVX1_*|M_{V8H`@!XU_)+<$D*DXgSJAH?+)@RETd3xk{H;YaIBRMGD#aO)KO_9^-u19#HHkLFv8`D)|2 zEx1mCbsNt^75#$XMl1N$DEiF>7gg|EtLV2GT%&^DaYesV;C@!{yKI44e{=!YQ?PFR zk)!B023)a%-#kUX25`$2{I)3i?E-gD!SA%9-#Kv27kaNRNrLfOUwVTZ;^9Zf%W;Z+ zW#H-*{2o>GTMcf5haat12NeB219w`%uhoNU}u4?n8!c}2g3MR;!!J8e$wN9+Ay!7vd2IGz7xfg9=JN9|Xs=rn-6ZWg5P>Y zzeaEe6#Pyp`dt9m>Jjhp++8rJI@_Ga^H6X>4?pUU$%=k8;N~j$tyJ_|3vRQ5-(f|+ zmpdU@tmsYmjiB$f?u7Y-#l;)3V!Pp{kDMHrQr9OqTgw7=M?lEC#AtXqHND*BBB7g6w=ujscJ+zJK1t%`oT!5vcY`%cmCJh&E%-Padd54sA5 zuP)B#&warSRq&gj=r_u?zn>AuZn&x|A3#*V5iM(Jf{f8 zt3Oh~((E6ihdKoO;+$*sOYx@ z+)4$%ZHj(-z#UfbJEQ3LE4Y@Adap0n3&v}GNdcFt;5SjxuMAwBg5RTxeouj0=ix`! zTl*CKJ_7fpf?w0e)W&mLaGeC}G@hw^LlymU!HrY!o2lrx2;8F{esq4YQPFQZxP1zK zUn%;X1$RNg@9L#${m~uV0Kq!-2i3Pw(XR;HR0Y3!MZcxsRw?-HQ1sgm?udflkBWYA zkK_4l?6kSHUk|}B5dSz`uMPs2q2L!*^qU55wu0X>MZeYHHYoTVQ1tr<+?NV|O_!;S z=LB$93f8SZ1}pkyfg7pdSE=YX2izhBzh@QwHiFx(;CEEf?<;U;75v)#Nv%Jw2G?D% zZv8P#(XS9(k%Hg7ihlLrmMZvdQuNyaZoh)xNkzXO!No22USB#1#%q1)0dA0j-)Kd@ zFt}+7eo;lgW#CpT_%$l}9RT-{g5S@Ieoddi`@h&}a~sb+1>@BpgTZAf_!TSqRf3zN z;I~}S?^$pg75ok=`W*%Lm4aXM6>95C8*o<()~!E=DEbWpSE%4OUD5AeaP}zaY5L3Vt<;esjS^75vsJ`fUc+sNi>8(eD(vpB4Nrds?kOx`68`ShxPjQS=)F zu2{iuo}ym^xaA6dTNM3vfjg++cUsZ!9JuDIyw{f`!Fa7Ny}=Dp@EfP-7Xde2!Edpm z-wJSR6#RB8`W*syOu_HGqF;+Y&w;Px(n8=KZYs#6@n}B@T2y-SJAHl+;RoKEsB17 zz#aDRqxL(a==UqQmd|*P=j#OnYqmMvpG*Ols^B+K(XR|#or2$^ihfUlTc_Z+Ptosv zaGxpoT~PFE^(@}s!cLppcpe}a2I3#5{_um#Rq>=r?28 z3;^d>@GDaEn+k5Gg5Od_zg6JYEBNhK^g9CXgo0n(TD9?f3Am1ebsNuv6#X*5d;I=9FeWd93CAc#RehJU3^~aUqt{1FZe`G28jRZGQ!EcVD-y(32 zD)?|c;4(b?=zW8*qF)`jc?y0{Df(>!w?o12n4;eq zaK9?}UAbOuJog4SM6gc%LG3qA(Qg{K*$RHk6#dqL+oIt2zM|hra6c;ewS7^o{jLX> zB3QTf8>#3Q0XJR2Z?U4^YH%Ao{H{X(9#Hf<3GPP^zs~S$yFsn}QoyAO)~Wrdd=nM@ zW`kSk;Ya0Lt?0K4+(8dNy1#K+(eE6%<}Z1#e@TLYHQSu7r+b4NqTn}9(JumSx`!X# zZ(6MA_Y}Bw9)7gG>{IkR2JWPXAC<4gMz!(R9$b=OoyH&e`4#;}f}5z|H%HMg3T~N# z-)2R>-QW%>_+S@mS7l&f1JkiIB*dUzZ;>Sujsb{+%^wC`u!FkDf*oO_p5^6m0NKgg`GCNU2NKK zB$$a-&Za-+fQec;8^5(+Hd{H1AC2e3f?);3KTiGe9k}xze$;*)Ur}2R`hpuOSiM~= z<)isALD8=g+#ChJ<%)jm!EIIWI|AmEm9y!OmfLXr#ZH@3eQExtfXT3OHhy6+)2y7O z{b+rT3Wnm+=G4EBf_uutkNS7JqTl=AKJ)OS{=ERE?W>k{v8iugFhi}JrM}dD6TnQh zayEYTV3t}riyzf@lVI?XZBFgCAKVcIzaJI-F4>NsS74{jX}nPR1__3N_{XVydEh1} z_{~=ITLNyShaVl!w<-GV0e9HLkLr6y(XZuem~Yr=b80^-Uy5KDh<}{gFBM#lhaZjS zGBEdAIh*mf0?ZmKXBmIww;RkyR?f!nXE057xYw8FM;9=Ct(=Wt9+(MM&Qd<|n+>Mk z%Gvm>0kg@&^7*;_1<5b^0;0}BE(eeBYm`fVH>)Qj&AS-86zR_SJR?eor^T8~( zauz@8kM)A_s&6B>10H@fUQQ|codtKn!;jX3t6%4B=T*M$;06d*A6GW@Ed(>!%GtEv zLNH6LoW+mE-v%%{telPCF)$~soW+mo+hUhmecOWTBv`ll4h1vP%Gs2!63iScXDJ`8 z_shX-v~o6n2f-Y*auz=tf9Jql@`l3v05izSS^TJcqrptGayI3Qf>~zeEPhnJ&0zLf zIUB#Pz?`*m7C#y8I2R4_SK&c?4yFw7ADIIUN+!7cRgqxM^^=(i2r z9uGfizb_U2&Vg(Grlnmh_3aG5B*EY#+nnl~0WQzOkJjgDihlLrmU{Tn`nO5ZZyUHh z3VvTI`ke-MPQkDJ9<}wQ6Sy9N)yJu&KdAkJihdDr(-r&{EBdViw?)D4eMP@B;C}V+ z>x}wdxmT_IhJYI;Shx0zDEiF<*Wlqt<8Pg!-zIQ76#R}U`h5xRjDlanKDG914=zct zZtdq+^qUB-Ou=uFqTgz88x;HwDEgfQ_oIg&tt*4t2e(gw>jmz61&-S5n*BEIY>7);7X^;m zIXQ+yJ&LDHtr^%KxqSQd2A}Un3+KDo=j+_LbMMToZ2#!cs8BHd=4A6?E^MS5;d!t?X{d zI%iZ)t12sxR8thE?fz7sPuq#1&(`h#pES+O&O^(y``^lYeYf*4r&;ypy#LGR|GQ6M z{JlxWRu@In%>SI4YY$iGdb~WLecB^)GnEPg3;H{`V-ou zw`OLrDI!Zsp)fEj+DqStw+qaFquZ`P{q4!|f%@{~#6W#*a)&_uJ;|N@w*}^Xdq3JG z5FM8ojGhcezt4>R5Qv@&EIe9weM3&?uc^%f(GOF02I`vz>N8-Fkr-%b&XVgh;8K(r zioO|W2qoVch#qEms39{s4POGNePBo+F%UhNkm&O#ENx6k3?xPuB)Z5Qrqg^Ug?Yw+Be>}uTWbAqWgL3{5LvJ zU}gI|E60tc%e2g5FHjDSh%zHra&|g9`6PkKW`S8|9YFip>G0B z-wiah8;$i{w2C&cdk5-=VQg1oxK~1xlW12cGV5K3-TQm?I8IL|)_+G-&oq?vW?@ALr?~kY6N6BvvM1vkBH^ziz zezG1l%9N?cCq-PK9zp8;SP}dk0@22p&hU@&kM`f@XPpv=f{UIBML!Qk-^y+JMPTco z+xz`z#klLc__tqZ;q!%}cf^MpW^@=4ZT4v}x--!Db^Bn-&QLVFLm**8BWw6?dIwV8 z4JI89Mc?x$Y-ybzOga!~@W-+ILtmrr!K7WmA&s>?6FMzGLGdUSsI*WN8e6dLI0ei| z*wQRNr{TtyrT&y=-2x5c<4XNWyLZsoE6wQJEI)b>g@_MDM|21#eOT(Bf6F*u?Tw`g zozNDg7xt9;hy0qb;8DN{TlNH+?hQ0t)kf#)KA`}aloNeN46EDF3i|_1_k|jo`Cj&Y z@AIW6BsTjTtNdGm=xrTP;2TPl_NJpuO{f^9t@f7Iw;unB@4vJNTuSM2rAe=sw%Svg zUf(S4r8pWt`80mU2BNiCMA2dXBL5x!iT>M*cJi9LN$UVkd=HEsY3pEtPm1fm< z#0Uu`jf~H&N1^;3O4H}xlJBeS?|+3l}qeJQZTLQki!@MN%yQn+tCt}A^ zi*ct-PyZc7ckBw)mn36R-Q|CkdJZmqLO2d~E6qy!*uR5nS!$|KyJ6_#VW=27@@-Um ze_dj36y4wWX|qt%cY}j(sO^lLBgi>Y+gq-Gpy{qa(wnEY<<_?eG-Su+(maC~FW9&a zr`p7nH55h3P~cD$<*}4no~zm-{G%lwDJC3DeOfxq>6#XorJ60_m zwFW@oGqr3Khdwj}wRaW{|0z3jqu=xC`U9Ilf#}{q<4H{0y{xH2I5Vh!B>8@r1RKBW zQ<|A{KC@x$g@jI+{WQgHLz90UNIFR!e^=?kcM}#Kqj=Fv6UOWd%x{dF)#8Uh!VUXQ zU53SG{%3IkO!`)hl(hGUgt7Zl_TgZhyKpDY6oO6na<(y+-3b=^xHn4^dhbnG^b_Vo z>B9GF+XkZVYqNC0&V&V@AUzPxPDEL-0PGH;*K+Iov!ty0a$o$*7ZM-}DYf&xKOn%}x3x zH~M+7@mrdx|H4AndKRuSUiqw5!UM-qLL83NrsZigG)_;V2QV=MP2cjIn5Y|O7Mq+Q z)Vef_PC|pxBSF#7G&@s}5yW86jUMFVmyzO?PvQwio1@A|1YXJzM2?4$xG zQ8DLFAEI7-BA&%3J`oEs@^~7(TP4n{=-hU&KR)3xocKg>tj572Fn?#8!2C~tL&6(@ z`ms1qo`Mdo!tr%hXB=JmS#cFzD>qbMz!gh<)k|1OK>dX+`IwvY8{6RPPPW9qg9Apc zexVVMj$f53HN2*>O+3X0|aUbZG7c*=V?J_Z}E%BJ&89Nq(8qYl25ou%n} zn$5xGYBVoCc;wN`{5(5)<-4xc@sx3EbzFt#;4A4 zp=h%{7~AoorrOfSFV$7;nbN7a7`p?%Y+k#QwO7w$uP zC(M5cB??48z|58|t3Hq}tLUiSlr<4#XA|b)GC$Zb6Gt?(7P(>Wv9_W^p=~=Y{0OUk zzn!%1R$<-kj77H_7TrF$9e_2MFTA&-pZJB|wcZzc?C9`PTtZ?9cO2TZNNAIncxqK1 z>cX$YAI7K0*a}VSk}@$aMT}d`w2f2fa>^-{Q<77XP*lSR5uuw>k$-hux}cIvo%uiSdiQ?!`o7t7 zbB(coznSmZYwu^>*Sp^JuFGB=QQOE{37_Z{IE}>snyfvD5!6ZOAiL{9g)^4E_5F8s z?rz`XJ*9ap-CO0V^Oq%TnrWDujTL(?Fq&?L`zFI&iJs;{qv=YHH|$y7#Vd?ucKi~} zFP+FI;pL_)5?1V@$mJ%O>)Lu3uT4NaR_ykXi+Ay6IKnSD&^R!_Au8A*CfFgC9MGXP zhd<;A-SJP-lx^vk_`QoOPW~Xho{T{je~^^jD+Dp3C-nB@4@T_ateBFcbQ{Cl7J0%W z-KehJ)zCK9NPRgL%3#wx(r=eZ!A$wdJB>PUs-?;1A2fF8k+59y0j?<`N|VebG4LWW z^q{}RxFOytZ=m8NP{a60wOW(}?x28slpQb1L@P9!ZZ+r^W{|It<8%+vqwWYr2=WQ4 zCMc2+dgd`38=q9q$)>db&2+MM*b=T0xWMVDDFdlzdym; ziV+EHGb3WMJF*qZFb~lfr##Fqkh3JS;1gwh`^W^0&meafMUyO7cE&^#!?@+q8FX)c z&M8lwAH4(jiRLcb>ge^w`Mi&<^!j|6Goy3xjMTv7^qU75-f^2?nVfVuFCD#4tLR6J z)D;-?XZTwT+3p)rEx}CO4mIk16qoWE89LSvw9B)p4Zmn)Fw!cj`CfmNiQiLffV}L|z^ZofKq# zQMb7sBE>z&FgF;mxaQy`C4$@gyj9vq;SZM9_K?c$VQFojqAacS4%$t7+tOMdmbo?U zHA}1MMTsR+f6_kcZA9Kq&PJH7RlHk%O(nMjPexp3nB^xlZ{4(0n-Ldg4UI5N*mmr= zS_z)8in6FL@}667)11BA?1UI5zk~$XuW69-GDm6tWZ_){O+U=j3g`oc5`oq!G(z0Q z1955Q2-*U~mf+n$YZc=+pw$XBK>`P=621Y5-7o`C24W57{(c_dn`j!KpMm)WHPg^K zoNnX7X=;Jo{NcHn99V&WHmi@Y`UJB21hM)+bV47R^ka{V`_eq#$qyo0Uf)GtU(X)i zhH1M{T*G|c82H?0l{aR+clG+NPz9pBF&}$Ze>~5-dRrcX55xT`@9I@uX}W{qJitxf z)!*g81OFgI?koJQ#=FLRL^5FrQ1Sx&>#+#`;+A@2R(oU8c6nFlzz@uF;JxKY%hDc{ zN&d7D_;M4fQy9&@B!>GSu6n4>43hwCR9BV4920@TLdF=MXTTba7CoNq_Mz#Ov)Z6e z^oCk8iOjiX=kS&*$2EePIXkTCq&00?uJI-vLgN`x!ARxGu{S*4T%-KM6iL>YaM=X?(y?Qmkb1~W zKI36;~)^aZZHSjk}uqtXM=j``$Rjz2$0e5;RT~Yi^Ge>(vtL;ZPMw zRHb%^NJM)Gtq7^39)^s`7r^Zj=OGg3ET9>xO4`Qj!lo^dvAuF@fMVOfNxz1S9|YYx zEy~C;!kt0zgdZQli!>94?sQ)w8XpX)kSa&w%{i8U`63?emtspza|eD=5n)fN5|@c; zP{!ME^wM~5!??NesFr>+4mN7&pOC)>Cg?~vP6qCgV75iagE^^qbn>zBWD}%ud6ep{ zll^&JF+7?ay$YTuWG7)(=wolpA!xilqv9rdu$n^WTa|4H_*!~#fOp&h<$wxH_f%ow zwoYAC15yk$h(;HIo@243LNKM{296zm9vJK6h&IiV^GH6(}MJPZRV0wX1U!eJ;#o{_cuORvX3 z(&|Tz>`LHs|HIMXsWo$Wgt=zLp>Xq;6@U4t@n*(H_snh=8kadXx<`6h2%WtNfwE?G zn_{$DN7nR!tclAUT!v%~1QOI28a5)~X#Yc^4H6Dy0awX}sPimRy%Z(;ZH1_pTExi) zV(~N$h{e;BKrEg<1=`?bk17hYC#1yTMm-}Z?G2r9)XtTc+;hc9?HCC)GSrLQ$gH*E zs4uf8x-Jw@CT4<^%)JyraP(-o2uH6exjDf)b-|v;p7bNc*I#Q47GG<4=`;|Ww4b8$vV^-Xuc>XL@yR|&oOw1v!w+P z%e@XjeO3KQ1?r-ZQ-4SrL%8vbd$D8c9z*2nF~zWr#IV=NjbT%J0=7gM=tPe?@spW> zkSZrM1JQHo(=OB^(B|$WUX7@~y5XVcV1$GEn4t?pqj z0Eo{Tm8b@AP>bUdQ@a~UcdhH;hdnYev}0UWdm|~UMN-ynm>mBpJtoP-RN4E9jo$Yz z_D$ZB9!YJc(FSAE;kXAP@^bx|T|7P`FK6$!Mry8#97WRnto7>naG$5Gxz0)z4Gke} z(n!pXMr(m`6m#|mh(_Flcnis`AR1Ja7*e#SdjRo zkuKDfPT_f*yo-13E&C1?D=A&gjO?4KhnDU+KKdHHZ=UiKz2JQerU+iIlGm=WcQLeD z()kc?gHm8AQ{CYw_fLa>SSVVpTCFG{Wis`M-`t9c@hMwIhiA7BYw3>|hc2OsyYQp& z^G8M~W`FZj*Ak))uF3s86HiFfsCN8N!6WVy`~70A2#U>-S&o0B8EbyErE)I}YZ)P4tl7oSZXa4`qU34o}96 zRf5?t(Ht0?=xuu-So|htHBZbM9ge?1@jD#iS1o6QAHm|6a>Hzs*rJUwqM`r2aNM!v zZ3W5O0g`u(CV9ssq98E;1G(GFXlt%Xx@$c|ZySi-4sls+AbPK|MQ_6-m|scse#)X3 zYdS>qR`TcNK=zhVvUf*9Y7WWX<`hFm_OgCS)rvX|tSc}-BU2Zu69%BFYLKvrTKG#m z=4l$!Vm*^7WY&YE=2Axf(DJb^wDy1%Bg5nZk2gEkLH>T4NOK7m73sA*vW}P$QZ_1meD7F%b6+ zF{rTIH^c*Rd+i0pO8fmlJequ5+@1wuMV>Z6Sz}EMBqCKul5w98#rB1HUj&c+Y4jhK z?#uE+PiM7R>7rPhh4KH@ScHecw3@ES9u;2<#hm23vILkFVdIU>3aenQfodM6dF?j% zKerZ)){3253r0;gg_HniQGvY{>|s%m!q2S*JGT}Lg49FHH_xpFJGU0>#4M3zGGdO1&Ng@~jb(S( zk%8Gy{J|)p=8*tl6K<1CLjj&M<+1W*sKPu}R^~`$b0*VVtYLl$lM)vG9TuA!8Q!o3 zFJS7ibGW^>0dEh-?9E4ozg~^Zmavc}lZ7o7v5Dgew0ejK+sUpHL^Db3mLw=e(EWk} zr$?eJyZHf?46`aypo|xY-$;y_3y)tnN`ZPEZ^KHF|Lq_{B<08IAUmYSqCjDP&+mjCIp(zo~I z99W7{U@jd1<4Av%i&*4*8wF6YI%`VGMake%1Dc)7~LZ1HbLovXoCa4=NN(KirX?lH0RIn zeJ*H^px*^Kv*HzD%wk3jLG=Y)3$#gzoW6o+2An5b?+0R|*AqZ&RDMa&5J@xU& z(VUF!j4PE}Ik-7iaR1UexL37I8M!OsE_gl}Ld^xTB zj0||_+|g`@eV4H;6L$fA%$TY@H)oKQ-FbUvzPHH&Y(F<=%;Gz$iX;-PH3e1RdbjE( zD4|^5jes}{Xx}os`2}?pL{ky`los?c;{kCq1^r8&I@1%m^3>@PkdaoepvzNQ?NhjD z>r66Km66$*M85?i9asm@twX4VSa1cPE{fA~y&ywSXF;^`iQgM72n)KfR~{3oF=iLF z5-Ud4r1RwkTGz!d7y)lo!y6pDWI`0zCc~_%Qej|~g_8_QXHfY$UPOs!S4+SYC-#SC zXi&^nS*!S=by-OXx-DVbv3f>piZKPN8Pv2}(=BS^4Rehu1~AAYB^zniBvuc5mu#Z> z0klP|Ny38cSeng4v$PUTTc5EiTfIjMURUhK3+i2a*3UBgdwru&%p1*qvFO#t#{{Yc z8}rTRndB7Qk!}39=ykmhMOS4#^o>IQh+q>b*m&_kDK954ShIVw9Rss_ z7YCwO;dq(ddpi&%!LAwO`$GMamNO!0 z!!`c}L5l@B{R=Gz<@df9^oyYKsCE3bwxG)ek*dm169n}ZG(gb3g2oDZNDyswWMBRz z=zSndtV3_$+4+p?kS!#;MR8CYRUFk|Oc}hO-G&CEHZl`)wsV_jqd z7a}dIV&oS@Ym?b6MbL0T4+^4{sr=sag5DIgR?t>Ke+Uwp9A|e-j-GFJrd(IjN|Vr3 z8pRu(SaPnj)<;EIxe+{QiIfO65aeXZjpEixP#-~e0&(k|ByLW!PWBK?C6e-lQkk#5 z>4LR$L5VN>jAb;o34B{0-$+XcN{CbJQJ{0L*$9ZM^)-T=uA{TO zcbhz=@e4C1$WupXyd+P9Gp3;2w(^4df}r@iWqd>N{{}(9Aq5Qxf_!yG0W^*Y8dAh1 znplPSB{XlY@w9mlI!|F5IMwVD47=!c8h91n5NHslG6sVh#K7)7V;o3UDJ$zpH&8HR z3@uoqYDZ}fmSxQ)xe1bWy#);vG+K};C{Q=xO#6>KT`I^Ks(uT%AjJ#`ag$cX8vUQ@ z7E(u&L@k69a#C7|Gco9_B1ezfr0Gvo15>cTlQh_5Wl}ykB0?DpRblUKX8sk|{03MG z^DIl@8Y6X0T=T}UWGUp`lT-4@Oi1f_?e$$`Cgeq83FbI#1J6qj^PBfXk{ywqjnv<1 zckHuBHMY9I6%`hn_k82kQcksNCQgN~#&6gM7OV@Cldj2P9VqQ~wzkUvVAyD_Y@=Z# zUe|PCocXaGjcGmY<+N1aF0{|ViW|-b!!A~=3%w2NLTP1cJ9>uSkx{fvHI{-o*-^wn z2+i#X!9pRC^PAla+Z{O3#wwaAxC1d+MUICfxb0!T1AownIg$R1af3X#u{#gk-x+j2 zIOzVap!*>~_jd=~-xG8{)T2a(gioCpg->IR6nk&J56f#KvAhm5a03?|<5b?GX zQi&`Jr=T<-%fbo7BI8jY?mONVv_a4gLHh*#DaadQbIG#G{yC%JKJwJrTQo`BW(ay# z&_Y49sFwX(CvKk!+9~LWyjKpkQ)W~J;uKv3#BzdGh%>?tK?`*fbi1Hof+h-@E{M*X zwgf0vreLwohOy)PvWTjH8-o06l}iy!tTY+V|MjBUBq+i|OPwxf}{7n2Iz z)sFZC^BUFt@figW0N0>b!69(cirprjWNyO99vMOV%tv4+r_vg+avKf8?%+}BhtQFd zW3kqm_7QLmY9i&_PtY(yV+Fk~i0pO#r9Rv%aRk3&ax3C4$mA@lt36~XmTrblnno)5 z5*#e-3Lp3vrKn{rqah0#o1-ZfGHl6MHap+j*3d=e0Ltl&x$IrOcK`z60} zDQj5TQ8q9lJ3>J<4+YZ%wXe`ZaZJ~!del_%y{TwY{8IAra+EY@4$Fjo6=~+Qqa)VDL7U4-Nvg;;VBDGr?$Bd zg9U!inj{&G};X30OfA0}D>OL(!9{PtP z?oLHAPyyGoram0|Ftdx806AfJLXRIabbGz)^SVFdOxu#g1xu&y(F&g2A@8^^~Pj5<>i zrM$kByev!Bu1fCznNU}frQMTRGmfMSgp8}ksFn+1aUBj8i?c(IK$YA^#j3{^aYI<^Ht>X0zo3!Lkf1MClIX_})m8`BoAsD(vz#u$&Q$ZSip zL0eda^VE=b*mSJrMQuc;IxW(%%{uezj-E%O9&W>n1g#PDxuEX^Ib)s5AvQNkP`n^& z|7;AAGA&MjVdA)MSXr0!ico9fV==iwYvP-!Jir?GtE}F{zHbtA-&DU3UK4+{^^mer zGdDV2Q8JRrT~UglG(j1HvIV^)C{UBoTl4-Rdr8B@p@le&wT@*C#i5yGX%gdyQd(dT zy)d6aw7I?AfGwa!+e97tO_or$iB1qS11QKks;8vr{=Q^#NffUXRY~ljVlp@U0*8uf z4X&yI7&h^65yu4j#zzJ=_mjD1HQKg0XNJ%@xD;-`-1_*> zNhiVoODOG?Q=*uv1&&>r@Z$owmq;Yrk%l~yNF%Ns={P&m$#7ATPO&4MMsfBwoEn{h z5RrfmqrDB~lWkK~v{f21#>1NIn?!G!Z#>EGnkpCjMW_ryx~E3x;6ZkqIyk4XeZ=0L zIJgsM!n80IT=TTO9)lVV{>`hiboDka)re>TvABN+f zsw9T^veH8$C$*2LLnm@l4&kUOYYrWsilgZ?Zo5wd?Ngb$ABfG-M}eFP0Ib5E@Z)Sa z9aA2cxMFY~qdG_iXCQ2qW0Zv|1I!uZrql;c9BRvKxbT`}GM{qdNceN&UI*e@WHp-! zKjy%x@M=w}2-grg(-p@^qf}8zsu(_1N2SJ)BbD zG#bCCJCmp?c&lV)sGkfcH8a&oTnLJ5&+_PebF(wmsaf_L=FDgkrP}T6z*`a*_S1~z z(Q|Q2_x8FD@aJo9;Fcx!d!JGnLe}g&>}iwAOBmFLA+D337ZcMB3tIlD1kv?vmDy zb57vPq%?zTe~7^Pd_b@qrns}%c?F2e$5{sVfw*lI^j|>-1(g-4T1^n0M#=us7X%pj z1tkmWCup1?5rGR3gi8&fW;Pp-RMPEs6ou3(8SNVm?F&7$swhP$n|KF$naTM!FhPhZ_QF_n-`6RVutLdxN~+l1mX;!7RcF6VX)f^g4PS7j~?K- zUed32z>&UnfC+jWF25COwu$eFZ7N*XrY!KO{l~|i6Ob56FHx#ECC1JgZ^PwI?j!O0 zkO%n4nsorGTRvGwLgZV5>ntdOH;00}u{NL;x+jg6=0dq8e-1fOK+B={!rg8gRzo6< zm+})DFFw?WgXi&Y%nmFW<#K9-M_eW^0&zJl0b(U$oji3^k)OovfAXF)FCHxw`Z^%? z#n~4*OrD-mr7aC&fOjaJ^g&-l3`73sIQcJCz%lZvqj$9hWPjW8UMMB{p_J%$adVdc z(K!oTqUTFFULvTKJf&|AaGgpQ6d>M?Ny9r?I)gqwwML}bZG7p~Fc77VBnKH`OSW7d zmm(%SE=?}ZxYQYr+TPKy6oXNpcF;N;RrIDLaTNp+mr zG*CMUT7=J>ix^nSgtyAWvvCKVLP;PBQ$+-0Et2>olWai=DMh0>O-h|8y#j%eUJ(?S zE)wxZu}5-t{B!bqY3Ug14J2nRhiTtZ1JY8riEpXk_Ys`1Y6pIT6_R;yW6Apt5VtV$ zh}+OML3;!_R{C&hVKoI^2E@L!5Vu5e>m_b<959FRfIOWlZchuEC+Gt~0qxnPD*j#6 zl|s8=X^_XG!7P?i`9_fB&JH-aliFBGYI7s}3y7OpgfyQEf%xea;�t8Y%EoXQXhC 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%0DN1rY{c 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%0A@+Qyn!m3IxyRt|;D&$el=aHWpBub!Zo++0OLxzk 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

Wu|3>eeyu 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 diff --git a/vendor/box3d/lib/darwin/libbox3d.a b/vendor/box3d/lib/darwin/libbox3d.a index 712d53de5..491d6a685 100644 --- a/vendor/box3d/lib/darwin/libbox3d.a +++ b/vendor/box3d/lib/darwin/libbox3d.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b000b0b69028af14d6a481b6bf6ca3b70d2c3a29cd9e73eab8b96e0deffa07d -size 2524600 +oid sha256:92ad74c3967667704cb7589ae6c64612a66112ea12ce4462b849f7aac4bc689f +size 2551264 diff --git a/vendor/box3d/lib/linux-amd64/libbox3d.a b/vendor/box3d/lib/linux-amd64/libbox3d.a index ac6223456..402424fa2 100644 --- a/vendor/box3d/lib/linux-amd64/libbox3d.a +++ b/vendor/box3d/lib/linux-amd64/libbox3d.a @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:948651aca53740a4a47a8251b68982b839fa62da91689035132be1c273cbd7da -size 1536158 +oid sha256:d698fbbe655db1d1ec6f52dcc23bfed4a2c981fa88040ba449f9f83609edba88 +size 3137140 diff --git a/vendor/box3d/src/include/box3d/base.h b/vendor/box3d/src/include/box3d/base.h index 25828b3fa..30cee4604 100644 --- a/vendor/box3d/src/include/box3d/base.h +++ b/vendor/box3d/src/include/box3d/base.h @@ -38,7 +38,7 @@ #ifdef __cplusplus #define B3_API extern "C" BOX3D_EXPORT #define B3_INLINE inline - + #define B3_ALIGN_AS(N) alignas(N) #if defined( _MSC_VER ) #define B3_FORCE_INLINE __forceinline #elif defined( __GNUC__ ) || defined( __clang__ ) @@ -52,6 +52,7 @@ #else #define B3_API BOX3D_EXPORT #define B3_INLINE static inline + #define B3_ALIGN_AS(N) _Alignas(N) #if defined( _MSC_VER ) #define B3_FORCE_INLINE static __forceinline @@ -67,6 +68,13 @@ #endif // clang-format on +// This is used to validate arguments for functions similar to printf. +#if defined( __GNUC__ ) || defined( __clang__ ) +#define B3_PRINTF_FORMAT( INDEX1, INDEX2 ) __attribute__( ( format( printf, INDEX1, INDEX2 ) ) ) +#else +#define B3_PRINTF_FORMAT( INDEX1, INDEX2 ) +#endif + #if defined( BOX3D_VALIDATE ) && !defined( NDEBUG ) #define B3_ENABLE_VALIDATION 1 #else @@ -124,7 +132,7 @@ B3_API void b3SetAssertFcn( b3AssertFcn* assertFcn ); /// Internal assertion handler. Allows for host intervention. B3_API int b3InternalAssert( const char* condition, const char* fileName, int lineNumber ); /// Assert that a condition is true. -#define B3_ASSERT( condition ) \ +#define B3_ASSERT( condition ) \ ( (void)( ( !!( condition ) ) || ( b3InternalAssert( #condition, __FILE__, (int)( __LINE__ ) ), 0 ) ) ) #else #define B3_ASSERT( ... ) ( (void)0 ) diff --git a/vendor/box3d/src/include/box3d/box3d.h b/vendor/box3d/src/include/box3d/box3d.h index 05b69dd63..d9938107c 100644 --- a/vendor/box3d/src/include/box3d/box3d.h +++ b/vendor/box3d/src/include/box3d/box3d.h @@ -524,31 +524,31 @@ B3_API b3WorldTransform b3Body_GetTransform( b3BodyId bodyId ); /// Set the world transform of a body. This acts as a teleport and is fairly expensive. /// @note Generally you should create a body with the intended transform. -/// @see b3BodyDef::position and b3BodyDef::rotation +/// @see b3BodyDef::position and b3BodyDef::rotation. B3_API void b3Body_SetTransform( b3BodyId bodyId, b3Pos position, b3Quat rotation ); -/// Get a local point on a body given a world point +/// Get a local point on a body given a world point. B3_API b3Vec3 b3Body_GetLocalPoint( b3BodyId bodyId, b3Pos worldPoint ); -/// Get a world point on a body given a local point +/// Get a world point on a body given a local point. B3_API b3Pos b3Body_GetWorldPoint( b3BodyId bodyId, b3Vec3 localPoint ); -/// Get a local vector on a body given a world vector +/// Get a local vector on a body given a world vector. B3_API b3Vec3 b3Body_GetLocalVector( b3BodyId bodyId, b3Vec3 worldVector ); -/// Get a world vector on a body given a local vector +/// Get a world vector on a body given a local vector. B3_API b3Vec3 b3Body_GetWorldVector( b3BodyId bodyId, b3Vec3 localVector ); /// Get the linear velocity of a body's center of mass. Usually in meters per second. B3_API b3Vec3 b3Body_GetLinearVelocity( b3BodyId bodyId ); -/// Get the angular velocity of a body in radians per second +/// Get the angular velocity of a body in radians per second. B3_API b3Vec3 b3Body_GetAngularVelocity( b3BodyId bodyId ); -/// Set the linear velocity of a body. Usually in meters per second. +/// Set the linear velocity of a body at the center of mass. Usually in meters per second. B3_API void b3Body_SetLinearVelocity( b3BodyId bodyId, b3Vec3 linearVelocity ); -/// Set the angular velocity of a body in radians per second +/// Set the angular velocity of a body in radians per second. B3_API void b3Body_SetAngularVelocity( b3BodyId bodyId, b3Vec3 angularVelocity ); /// Set the velocity to reach the given transform after a given time step. @@ -710,6 +710,14 @@ B3_API void b3Body_SetBullet( b3BodyId bodyId, bool flag ); /// Is this body a bullet? B3_API bool b3Body_IsBullet( b3BodyId bodyId ); +/// Allow this body to rotate fast. Useful for axially symmetric bodies, such as vehicle wheels. +/// Normally rotation speed is clamped to improve CCD. However, this clamping is unnecessary for +/// bodies that only rotate fast around an axis of symmetry. +B3_API void b3Body_AllowFastRotation( b3BodyId bodyId, bool flag ); + +/// Is this body allowed to rotate fast? +B3_API bool b3Body_IsFastRotationAllowed( b3BodyId bodyId ); + /// Enable or disable contact recycling for this body. Contact recycling is a performance optimization /// that reuses contact manifolds when bodies move slightly. Disabling it can avoid ghost collisions /// on characters at the cost of higher per-step work. Existing contacts retain their prior setting; @@ -777,6 +785,10 @@ B3_API int b3Body_CollideMover( b3BodyId bodyId, b3BodyPlaneResult* bodyPlanes, * @defgroup shape Shape * Functions to create, destroy, and access. * Shapes bind raw geometry to bodies and hold material properties including friction and restitution. + * You may add multiple shapes to a single body. There are no hard limits on shape count per body. + * + * When you create a shape on a body the center of mass moves. This can lead to the body linear velocity + * changing if the angular velocity is non-zero. * @{ */ @@ -816,8 +828,10 @@ B3_API b3ShapeId b3CreateMeshShape( b3BodyId bodyId, const b3ShapeDef* def, cons /// @return the shape id for accessing the shape B3_API b3ShapeId b3CreateHeightFieldShape( b3BodyId bodyId, const b3ShapeDef* def, const b3HeightFieldData* heightField ); -/// Compound shapes are only allowed on static bodies. -B3_API b3ShapeId b3CreateCompoundShape( b3BodyId bodyId, b3ShapeDef* def, const b3CompoundData* compound ); +/// Baked compound shapes are only allowed on static bodies. +/// Note: runtime compounds are achieved by adding multiple shapes to a body. +/// Runtime compounds can be dynamic and/or kinematic. +B3_API b3ShapeId b3CreateBakedCompoundShape( b3BodyId bodyId, b3ShapeDef* def, const b3CompoundData* compound ); /// Destroy a shape. You may defer the body mass update which can improve performance if several shapes on a /// body are destroyed at once. diff --git a/vendor/box3d/src/include/box3d/collision.h b/vendor/box3d/src/include/box3d/collision.h index 1ba0070a6..809afb921 100644 --- a/vendor/box3d/src/include/box3d/collision.h +++ b/vendor/box3d/src/include/box3d/collision.h @@ -44,7 +44,8 @@ B3_API uint64_t b3DynamicTree_GetCategoryBits( b3DynamicTree* tree, int proxyId B3_API b3TreeStats b3DynamicTree_Query( const b3DynamicTree* tree, b3AABB aabb, uint64_t maskBits, bool requireAllBits, b3TreeQueryCallbackFcn* callback, void* context ); -/// Query an AABB for the closest object. The callback function is called for each proxy that might be closest to the supplied point. +/// Query an AABB for the closest object. The callback function is called for each proxy that might be closest to the supplied +/// point. /// @param tree the dynamic tree to query /// @param point the query point /// @param maskBits nodes are skipped if the bit-wise AND with the node category bits is zero @@ -163,6 +164,17 @@ B3_INLINE const b3HullHalfEdge* b3GetHullEdges( const b3HullData* hull ) return (const b3HullHalfEdge*)( (intptr_t)hull + hull->edgeOffset ); } +/// Get read only hull planes. +B3_INLINE const b3Plane* b3GetHullPlanes( const b3HullData* hull ) +{ + if ( hull->planeOffset == 0 ) + { + return NULL; + } + + return (const b3Plane*)( (intptr_t)hull + hull->planeOffset ); +} + /// Get read only hull faces. B3_INLINE const b3HullFace* b3GetHullFaces( const b3HullData* hull ) { @@ -174,15 +186,30 @@ B3_INLINE const b3HullFace* b3GetHullFaces( const b3HullData* hull ) return (const b3HullFace*)( (intptr_t)hull + hull->faceOffset ); } -/// Get read only hull planes. -B3_INLINE const b3Plane* b3GetHullPlanes( const b3HullData* hull ) +/// Get read only SOA vertices. This is an array of vertices with all x values, +/// y values, and z values as separate arrays. The array lengths are padded to +/// a multiple of 4. The padded values are repeats of the first value. +B3_INLINE const float* b3GetHullSoaVertices( const b3HullData* hull ) { - if ( hull->planeOffset == 0 ) + if ( hull->soaVertexOffset == 0 ) { return NULL; } - return (const b3Plane*)( (intptr_t)hull + hull->planeOffset ); + return (const float*)( (intptr_t)hull + hull->soaVertexOffset ); +} + +/// Get read only SOA unit normal vectors. This is an array of normals with all x values, +/// y values, and z values as separate arrays. The array lengths are padded to +/// a multiple of 4. The padded values are repeats of the first value. +B3_INLINE const float* b3GetHullSoaNormals( const b3HullData* hull ) +{ + if ( hull->soaNormalOffset == 0 ) + { + return NULL; + } + + return (const float*)( (intptr_t)hull + hull->soaNormalOffset ); } /// Create a tessellated cylinder as a hull. @@ -426,14 +453,12 @@ B3_API b3CompoundData* b3CreateCompound( const b3CompoundDef* def ); /// Destroy a compound shape. B3_API void b3DestroyCompound( b3CompoundData* compound ); -/// If bytes is null then this returns the number of required bytes. This clones all the -/// data into the bytes buffer. This is expected to run offline or asynchronously. -/// This mutates the compound to nullify pointers, leaving the compound in an unusable state. +/// Cast the provided compound data to bytes, setting the internal pointers to null. +/// Use this before serializing the compound bytes. B3_API uint8_t* b3ConvertCompoundToBytes( b3CompoundData* compound ); -/// Convert bytes to compound. This does not clone. The bytes must remain in scope while the -/// compound is used. This is done to improve run-time performance and allow for instancing. -/// The bytes are mutated to fixup pointers. +/// Cast the provided bytes to compound data, setting up internal pointers. +/// Use this after de-serializing the compound bytes. B3_API b3CompoundData* b3ConvertBytesToCompound( uint8_t* bytes, int byteCount ); /**@}*/ // compound @@ -610,17 +635,17 @@ B3_API void b3CollideHullAndCapsule( b3LocalManifold* manifold, int capacity, co B3_API void b3CollideHulls( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, const b3HullData* hullB, b3Transform transformBtoA, b3SATCache* cache ); -/// Collide a capsule and a triangle. -B3_API void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const b3Capsule* capsuleA, - const b3Vec3* triangleB, b3SimplexCache* cache ); +/// Collide a triangle and capsule. Normal points from triangle to capsule. +B3_API void b3CollideTriangleAndCapsule( b3LocalManifold* manifold, int capacity, const b3Vec3* triangleA, + const b3Capsule* capsuleB, b3SimplexCache* cache ); -/// Collide a hull and a triangle. -B3_API void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, b3Vec3 v1, b3Vec3 v2, - b3Vec3 v3, int triangleFlags, b3SATCache* cache, bool enableSpeculative ); +/// Collide a triangle and hull. Normal points from triangle to hull. +B3_API void b3CollideTriangleAndHull( b3LocalManifold* manifold, int capacity, b3Vec3 v1, b3Vec3 v2, b3Vec3 v3, int triangleFlags, + const b3HullData* hullB, b3SATCache* cache, bool enableSpeculative ); -/// Collide a sphere and a triangle. -B3_API void b3CollideSphereAndTriangle( b3LocalManifold* manifold, int capacity, const b3Sphere* sphereA, - const b3Vec3* triangleB ); +/// Collide a triangle and sphere. Normal points from triangle to sphere. +B3_API void b3CollideTriangleAndSphere( b3LocalManifold* manifold, int capacity, const b3Vec3* triangleA, + const b3Sphere* sphereB ); /**@}*/ // collision diff --git a/vendor/box3d/src/include/box3d/config.h b/vendor/box3d/src/include/box3d/config.h index 2790fc0b8..1309827c9 100644 --- a/vendor/box3d/src/include/box3d/config.h +++ b/vendor/box3d/src/include/box3d/config.h @@ -29,3 +29,7 @@ // so this suits embedding more than shipping Box3D as its own DLL. //#define BOX3D_EXPORT MYENGINE_API +// Enable assertions when NDEBUG is defined +// #define B3_ENABLE_ASSERT + +// #define B3_RESTITUTION_ITERATIONS diff --git a/vendor/box3d/src/include/box3d/constants.h b/vendor/box3d/src/include/box3d/constants.h index 87dd56d7e..3ac61067a 100644 --- a/vendor/box3d/src/include/box3d/constants.h +++ b/vendor/box3d/src/include/box3d/constants.h @@ -52,8 +52,14 @@ B3_API float b3GetStallThreshold( void ); // @warning modifying this can have a significant impact on stability #define B3_LINEAR_SLOP ( 0.005f * b3GetLengthUnitsPerMeter() ) +/// The minimum length of a capsules. Very short capsules should be created as spheres +/// to avoid numerical problems. #define B3_MIN_CAPSULE_LENGTH ( B3_LINEAR_SLOP ) +/// Minimum contact point friction weight, lower bound for speculative points. Made small +/// enough to be washed away by weights that hit 1. +#define B3_MIN_FRICTION_WEIGHT ( 1e-10f ) + /// The distance between shapes where they are considered overlapped. This is needed /// because GJK may return small positive values for overlapped shapes in degenerate /// configurations. @@ -100,11 +106,34 @@ B3_API float b3GetStallThreshold( void ); /// The maximum number of contact points between two touching shapes. #define B3_MAX_MANIFOLD_POINTS 4 +/// The number of iterations for gyroscopic torques. +#ifndef B3_GYROSCOPIC_ITERATIONS +#define B3_GYROSCOPIC_ITERATIONS 1 +#endif + +/// The maximum number of convex hull vertices. This is fixed for performance reasons. +#define B3_MAX_HULL_VERTICES 128 + +/// The maximum number of convex hull faces. +#define B3_MAX_HULL_FACES 128 + +/// The maximum number of convex hull edges. Full edges, not half-edges. +#define B3_MAX_HULL_EDGES 128 + +/// Relative tolerance used to determine if two edges are parallel. +#define B3_PARALLEL_EDGE_TOL 0.005f + /// The maximum number points to use for shape cast proxies (swept point cloud). -#define B3_MAX_SHAPE_CAST_POINTS 64 +#define B3_MAX_SHAPE_CAST_POINTS B3_MAX_HULL_VERTICES /// These generous limits allow for easy hashing. See b3ShapePairKey. #define B3_SHAPE_POWER 22 #define B3_CHILD_POWER ( 64 - 2 * B3_SHAPE_POWER ) #define B3_MAX_SHAPES ( 1 << B3_SHAPE_POWER ) #define B3_MAX_CHILD_SHAPES ( 1 << B3_CHILD_POWER ) + +/// Increase this if your application needs more accurate restitution. Doing so will +/// slow down the simulation. Must be 1 or more. +#ifndef B3_RESTITUTION_ITERATIONS +#define B3_RESTITUTION_ITERATIONS 1 +#endif diff --git a/vendor/box3d/src/include/box3d/id.h b/vendor/box3d/src/include/box3d/id.h index 447fd34ed..9f05e1287 100644 --- a/vendor/box3d/src/include/box3d/id.h +++ b/vendor/box3d/src/include/box3d/id.h @@ -96,13 +96,14 @@ static const b3JointId b3_nullJointId = B3_NULL_ID; static const b3ContactId b3_nullContactId = B3_NULL_ID; /// Macro to determine if any id is null. -#define B3_IS_NULL( id ) ( id.index1 == 0 ) +#define B3_IS_NULL( id ) ( ( id ).index1 == 0 ) /// Macro to determine if any id is non-null. -#define B3_IS_NON_NULL( id ) ( id.index1 != 0 ) +#define B3_IS_NON_NULL( id ) ( ( id ).index1 != 0 ) /// Compare two ids for equality. Doesn't work for b3WorldId. Don't mix types. -#define B3_ID_EQUALS( id1, id2 ) ( id1.index1 == id2.index1 && id1.world0 == id2.world0 && id1.generation == id2.generation ) +#define B3_ID_EQUALS( id1, id2 ) \ + ( ( id1 ).index1 == ( id2 ).index1 && ( id1 ).world0 == ( id2 ).world0 && ( id1 ).generation == ( id2 ).generation ) /// Store a world id into a uint32_t. B3_ID_INLINE uint32_t b3StoreWorldId( b3WorldId id ) diff --git a/vendor/box3d/src/include/box3d/types.h b/vendor/box3d/src/include/box3d/types.h index 40e685357..2f9483a4c 100644 --- a/vendor/box3d/src/include/box3d/types.h +++ b/vendor/box3d/src/include/box3d/types.h @@ -419,6 +419,9 @@ typedef struct b3SurfaceMaterial /// carry a b3DebugMaterial preset, see b3MakeDebugColor. /// @see b3HexColor uint32_t customColor; + + /// Explicit padding. Must be zero. + uint32_t padding; } b3SurfaceMaterial; /// Use this to initialize your surface material @@ -490,6 +493,7 @@ typedef struct b3ShapeDef bool isSensor; /// Enable sensor events for this shape. This applies to sensors and non-sensors. False by default, even for sensors. + /// Only convex shapes may act as sensor visitors. bool enableSensorEvents; /// Enable contact events for this shape. Only applies to kinematic and dynamic bodies. Ignored for sensors. False by default. @@ -1930,8 +1934,7 @@ typedef struct b3Capsule * @{ */ -/// A hull vertex. Identified by a half-edge with this -/// vertex as its tail. +/// A hull vertex. Identified by a half-edge with this vertex as its tail. typedef struct b3HullVertex { /// A half-edge that has this vertex as the origin @@ -1965,7 +1968,7 @@ typedef struct b3HullFace } b3HullFace; /// 64-bit hull version. Useful for validating serialized data. -#define B3_HULL_VERSION 0x9D4716CE3793900Eull +#define B3_HULL_VERSION 0xDA5150191B994C01ull /// A convex hull. /// @note This data structure has data hanging off the end and cannot be directly copied. @@ -2016,11 +2019,17 @@ typedef struct b3HullData /// The face count. Hulls faces are convex polygons. int faceCount; + /// Offset of the face plane array in bytes from the struct address. + int planeOffset; + /// Offset of the face array in bytes from the struct address. int faceOffset; - /// Offset of the face plane array in bytes from the struct address. - int planeOffset; + /// Offset of structure of array (SOA) vertices + int soaVertexOffset; + + /// Offset of structure of array (SOA) unit normal vectors + int soaNormalOffset; /// Explicit padding. Hull identity is a content hash and memcmp over raw bytes, /// so there must be no unnamed padding for struct copies to scramble. @@ -2035,9 +2044,15 @@ typedef struct b3BoxHull b3HullVertex boxVertices[8]; ///< Box vertices. b3Vec3 boxPoints[8]; ///< Box points. b3HullHalfEdge boxEdges[24]; ///< Box half-edges. - b3HullFace boxFaces[6]; ///< Box faces. - uint8_t padding[2]; ///< Explicit padding, see b3HullData::padding. b3Plane boxPlanes[6]; ///< Box face planes. + b3HullFace boxFaces[6]; ///< Box faces. + uint8_t padding[10]; ///< Explicit padding, see b3HullData::padding. + float vx[8]; ///< vertex x + float vy[8]; ///< vertex y + float vz[8]; ///< vertex z + float nx[8]; ///< normal x, padded to multiple of 4 + float ny[8]; ///< normal y, padded to multiple of 4 + float nz[8]; ///< normal z, padded to multiple of 4 } b3BoxHull; /**@}*/ // hull @@ -2048,13 +2063,13 @@ typedef struct b3BoxHull * @{ */ -/// This is used to create a re-usable collision mesh +/// This is used to create a re-usable collision mesh. typedef struct b3MeshDef { /// Triangle vertices b3Vec3* vertices; - /// Triangle vertex indices. 3 for each triangle. + /// Triangle vertex indices. 3 for each triangle. CCW winding. int32_t* indices; /// Triangle material index. 1 per triangle. Indexes into b3ShapeDef::materials. @@ -2407,14 +2422,14 @@ typedef struct b3CompoundDef int sphereCount; } b3CompoundDef; -/// The compound version depends on the tree, mesh, and hull versions. -#define B3_COMPOUND_VERSION ( 0x830778DB07086EB4ull ^ B3_DYNAMIC_TREE_VERSION ^ B3_MESH_VERSION ^ B3_HULL_VERSION ) +/// The baked compound version depends on the tree, mesh, and hull versions. +#define B3_COMPOUND_VERSION ( 0xB11DCE70FAD5622Bull ^ B3_DYNAMIC_TREE_VERSION ^ B3_MESH_VERSION ^ B3_HULL_VERSION ) /// Meshes used in compounds have limited space for materials. If you have /// a mesh with many materials, you can use it outside of the compound. #define B3_MAX_COMPOUND_MESH_MATERIALS 4 -/// The runtime data for a baked compound shape. This is a potentially large yet highly optimized +/// The data for a baked compound shape. This is a potentially large yet highly optimized /// data structure. It can contain thousands of child shapes, yet at runtime it populates /// into the world as a single shape in the runtime broad-phase. /// This data structure has data living off the end and must be accessed using offsets. @@ -2530,10 +2545,10 @@ typedef struct b3ChildShape /// Tagged union. union { - b3Capsule capsule; ///< Capsule. + b3Capsule capsule; ///< Capsule. const b3HullData* hull; ///< Hull. - b3Mesh mesh; ///< Mesh. - b3Sphere sphere; ///< Sphere. + b3Mesh mesh; ///< Mesh. + b3Sphere sphere; ///< Sphere. }; /// Transform of the shape into compound local space. @@ -2943,12 +2958,12 @@ typedef struct b3DebugShape /// Tagged union. union { - const b3Capsule* capsule; ///< Capsule shape. + const b3Capsule* capsule; ///< Capsule shape. const b3CompoundData* compound; ///< Compound shape. const b3HeightFieldData* heightField; ///< Height-field shape. - const b3HullData* hull; ///< Convex hull shape. - const b3Mesh* mesh; ///< Mesh shape with scale. - const b3Sphere* sphere; ///< Sphere shape. + const b3HullData* hull; ///< Convex hull shape. + const b3Mesh* mesh; ///< Mesh shape with scale. + const b3Sphere* sphere; ///< Sphere shape. }; } b3DebugShape; @@ -2957,8 +2972,10 @@ typedef struct b3DebugShape /// it stays accurate far from the origin. Shift into your own camera frame inside the callbacks. typedef struct b3DebugDraw { - /// Draws a shape and returns true if drawing should continue - bool ( *DrawShapeFcn )( void* userShape, b3WorldTransform transform, b3HexColor color, void* context ); + /// Draws a user shape. The userShape pointer is owned by the application and is known to Box3D as + /// an opaque pointer returned from b3CreateDebugShapeCallback. When this is called the drawn shape has + /// passed a culling test against drawingBounds below. + void ( *DrawShapeFcn )( void* userShape, b3WorldTransform transform, b3HexColor color, void* context ); /// Draw a line segment. void ( *DrawSegmentFcn )( b3Pos p1, b3Pos p2, b3HexColor color, void* context ); @@ -3018,7 +3035,7 @@ typedef struct b3DebugDraw bool drawContacts; /// Draw contact anchor A or B - int drawAnchorA; + bool drawAnchorA; /// Option to visualize the graph coloring used for contacts and joints bool drawGraphColors; @@ -3032,9 +3049,6 @@ typedef struct b3DebugDraw /// Option to draw contact normal forces bool drawContactForces; - /// Option to draw contact friction forces - bool drawFrictionForces; - /// Option to draw islands as bounding boxes bool drawIslands; diff --git a/vendor/box3d/src/src/CMakeLists.txt b/vendor/box3d/src/src/CMakeLists.txt index 0460f85ba..3f43e7da1 100644 --- a/vendor/box3d/src/src/CMakeLists.txt +++ b/vendor/box3d/src/src/CMakeLists.txt @@ -33,6 +33,7 @@ set(BOX3D_SOURCE_FILES dynamic_tree.c height_field.c hull.c + hull.h id_pool.c id_pool.h island.c @@ -154,7 +155,8 @@ if (BOX3D_PROFILE) endif() if(BOX3D_VALIDATE) - message(STATUS "Box3D validation ON") + # Only effective when NDEBUG is undefined, see base.h + message(STATUS "Box3D validation ON (debug builds)") target_compile_definitions(box3d PRIVATE BOX3D_VALIDATE) endif() @@ -169,8 +171,11 @@ if (BOX3D_DOUBLE_PRECISION) target_compile_definitions(box3d PUBLIC BOX3D_DOUBLE_PRECISION) endif() +# Enable asserts in release with debug info +target_compile_definitions(box3d PUBLIC "$<$:B3_ENABLE_ASSERT>") + if (MSVC) - message(STATUS "Box3D on MSVC") + message(STATUS "Box3D on MSVC") if (BUILD_SHARED_LIBS) # this is needed by DLL users to import Box3D symbols target_compile_definitions(box3d INTERFACE BOX3D_DLL) @@ -179,9 +184,6 @@ if (MSVC) # Visual Studio won't load the natvis unless it is in the project target_sources(box3d PRIVATE box3d.natvis) - # Enable asserts in release with debug info - target_compile_definitions(box3d PUBLIC "$<$:B3_ENABLE_ASSERT>") - # Warnings Wall is problematic in mixed C/C++, so using W4 target_compile_options(box3d PRIVATE /W4) # target_compile_options(box3d PRIVATE /wd4820 /wd5045 /wd4061 /wd4711 /wd4514 /wd4365 /wd5219 /wd5039) diff --git a/vendor/box3d/src/src/block_allocator.c b/vendor/box3d/src/src/block_allocator.c index 4c1f1544e..ebc6d7942 100644 --- a/vendor/box3d/src/src/block_allocator.c +++ b/vendor/box3d/src/src/block_allocator.c @@ -9,6 +9,10 @@ b3BlockAllocator b3CreateBlockAllocator( int elementSize, int initialCount ) { B3_ASSERT( elementSize >= (int)sizeof( void* ) ); + // The free list stores a pointer inside each element, so the stride must keep every element aligned. + // Blocks come from b3Alloc, so a stride that is a multiple of B3_ALIGNMENT aligns all elements. + elementSize = ( ( elementSize - 1 ) | ( B3_ALIGNMENT - 1 ) ) + 1; + b3BlockAllocator allocator = { 0 }; b3Array_Create( allocator.blocks ); @@ -81,6 +85,7 @@ void b3FreeElement( b3BlockAllocator* allocator, void* element ) B3_ASSERT( allocator != NULL ); B3_ASSERT( element != NULL ); B3_ASSERT( allocator->allocationCount > 0 ); + B3_ASSERT( ( (uintptr_t)element & ( B3_ALIGNMENT - 1 ) ) == 0 ); allocator->allocationCount -= 1; diff --git a/vendor/box3d/src/src/block_allocator.h b/vendor/box3d/src/src/block_allocator.h index e9922d012..1c62ed8b4 100644 --- a/vendor/box3d/src/src/block_allocator.h +++ b/vendor/box3d/src/src/block_allocator.h @@ -26,7 +26,7 @@ typedef struct b3BlockAllocator int allocationCount; } b3BlockAllocator; -// Element must be large enough to hold a pointer +// Element must be large enough to hold a pointer. The element size is rounded up to B3_ALIGNMENT. b3BlockAllocator b3CreateBlockAllocator( int elementSize, int initialCount ); void b3DestroyBlockAllocator( b3BlockAllocator* allocator ); diff --git a/vendor/box3d/src/src/body.c b/vendor/box3d/src/src/body.c index b78642c6c..bce16dea0 100644 --- a/vendor/box3d/src/src/body.c +++ b/vendor/box3d/src/src/body.c @@ -253,8 +253,6 @@ b3BodyId b3CreateBody( b3WorldId worldId, const b3BodyDef* def ) bodyState->angularVelocity = def->angularVelocity; bodyState->deltaRotation = b3Quat_identity; bodyState->flags = bodySim->flags; - - bodySim->maxAngularVelocity = b3Length( def->angularVelocity ) + 5.0f; } if ( bodyId == world->bodies.count ) @@ -2305,6 +2303,37 @@ bool b3Body_IsBullet( b3BodyId bodyId ) return ( body->flags & b3_isBullet ) != 0; } +void b3Body_AllowFastRotation(b3BodyId bodyId, bool flag) +{ + b3World* world = b3GetUnlockedWorld( bodyId.world0 ); + if ( world == NULL ) + { + return; + } + + B3_REC( world, BodyAllowFastRotation, bodyId, flag ); + + uint32_t newFlag = flag ? b3_allowFastRotation : 0; + + b3Body* body = b3GetBodyFullId( world, bodyId ); + if ( ( body->flags & b3_allowFastRotation ) == newFlag ) + { + return; + } + + body->flags &= ~b3_allowFastRotation; + body->flags |= newFlag; + + b3SyncBodyFlags( world, body ); +} + +bool b3Body_IsFastRotationAllowed(b3BodyId bodyId) +{ + b3World* world = b3GetWorld( bodyId.world0 ); + b3Body* body = b3GetBodyFullId( world, bodyId ); + return ( body->flags & b3_allowFastRotation ) != 0; +} + void b3Body_EnableContactRecycling( b3BodyId bodyId, bool flag ) { b3World* world = b3GetUnlockedWorld( bodyId.world0 ); diff --git a/vendor/box3d/src/src/body.h b/vendor/box3d/src/src/body.h index 5eebf67ab..ae90105da 100644 --- a/vendor/box3d/src/src/body.h +++ b/vendor/box3d/src/src/body.h @@ -208,7 +208,6 @@ typedef struct b3BodySim float minExtent; b3Vec3 maxExtent; - float maxAngularVelocity; float linearDamping; float angularDamping; float gravityScale; diff --git a/vendor/box3d/src/src/compound.c b/vendor/box3d/src/src/compound.c index 29da3c662..1df1f1e82 100644 --- a/vendor/box3d/src/src/compound.c +++ b/vendor/box3d/src/src/compound.c @@ -3,7 +3,7 @@ #include "compound.h" -#include "hull_map.h" +#include "hull.h" #include "math_internal.h" #include "shape.h" @@ -226,13 +226,19 @@ static bool b3CompareMeshes( const b3MeshData* mesh1, const b3MeshData* mesh2 ) #define FREE_FN b3Free #include "verstable.h" +_Static_assert( sizeof( b3SurfaceMaterial ) == 40, "review padding" ); + static inline uint64_t b3HashMaterial( const b3SurfaceMaterial* material ) { + B3_ASSERT( material->padding == 0 ); + return vt_wyhash( material, sizeof( b3SurfaceMaterial ) ); } static bool b3CompareMaterials( const b3SurfaceMaterial* mat1, const b3SurfaceMaterial* mat2 ) { + B3_ASSERT( mat1->padding == 0 && mat2->padding == 0); + if ( mat1 == mat2 ) { return true; @@ -276,7 +282,7 @@ b3CompoundData* b3CreateCompound( const b3CompoundDef* def ) int sphereCount = def->sphereCount; b3CompoundSphere* sphereInstances = b3AllocZeroed( sphereCount * sizeof( b3CompoundSphere ) ); - // Determine material capacity + // Determine material capacity. int materialCapacity = convexCount; for ( int i = 0; i < def->meshCount; ++i ) { @@ -296,10 +302,10 @@ b3CompoundData* b3CreateCompound( const b3CompoundDef* def ) const b3CompoundCapsuleDef* capsuleDef = def->capsules + i; capsuleInstances[i].capsule = capsuleDef->capsule; - // Look for an existing material + // Look for an existing material. b3MaterialMap_itr materialItr = b3MaterialMap_get_or_insert( &materialMap, &capsuleDef->material, materialCount ); - // Get the shared material index + // Get the shared material index. int materialIndex = materialItr.data->val; capsuleInstances[i].materialIndex = materialIndex; @@ -333,10 +339,10 @@ b3CompoundData* b3CreateCompound( const b3CompoundDef* def ) b3DynamicTree_CreateProxy( &tree, aabb, ~0ull, childIndex ); childIndex += 1; - // Look for an existing material + // Look for an existing material. b3MaterialMap_itr materialItr = b3MaterialMap_get_or_insert( &materialMap, &hullDef->material, materialCount ); - // Get the shared material index + // Get the shared material index. int materialIndex = materialItr.data->val; hullInstances[i].materialIndex = materialIndex; @@ -395,11 +401,11 @@ b3CompoundData* b3CreateCompound( const b3CompoundDef* def ) for ( int j = 0; j < meshDef->materialCount; ++j ) { - // Look for an existing material + // Look for an existing material. b3MaterialMap_itr materialItr = b3MaterialMap_get_or_insert( &materialMap, &meshDef->materials[j], materialCount ); - // Get the shared material index + // Get the shared material index. int materialIndex = materialItr.data->val; meshInstances[i].materialIndices[j] = materialIndex; @@ -411,17 +417,17 @@ b3CompoundData* b3CreateCompound( const b3CompoundDef* def ) } } - // Look for an existing matching mesh + // Look for an existing matching mesh. b3MeshMap_itr itr = b3MeshMap_get_or_insert( &meshMap, meshData, sharedMeshCount ); - // Get the shared mesh index + // Get the shared mesh index. int sharedMeshIndex = itr.data->val; - // Create mesh instance + // Create mesh instance. meshInstances[i].transform = def->meshes[i].transform; meshInstances[i].scale = def->meshes[i].scale; - // The offset isn't known yet, so store the index of the shared mesh + // The offset isn't known yet, so store the index of the shared mesh. meshInstances[i].meshOffset = sharedMeshIndex; // Is this a new mesh? @@ -443,10 +449,10 @@ b3CompoundData* b3CreateCompound( const b3CompoundDef* def ) const b3CompoundSphereDef* sphereDef = def->spheres + i; sphereInstances[i].sphere = sphereDef->sphere; - // Look for an existing material + // Look for an existing material. b3MaterialMap_itr materialItr = b3MaterialMap_get_or_insert( &materialMap, &sphereDef->material, materialCount ); - // Get the shared material index + // Get the shared material index. int materialIndex = materialItr.data->val; sphereInstances[i].materialIndex = materialIndex; @@ -467,58 +473,55 @@ b3CompoundData* b3CreateCompound( const b3CompoundDef* def ) b3DynamicTree_Rebuild( &tree, true ); - int byteCount = sizeof( b3CompoundData ); - - // Tree nodes - todo 64 byte alignment - int nodeOffset = byteCount; - byteCount += tree.nodeCapacity * sizeof( b3TreeNode ); - - int materialOffset = byteCount; - byteCount += materialCount * sizeof( b3SurfaceMaterial ); - - int capsuleOffset = byteCount; - byteCount += def->capsuleCount * sizeof( b3CompoundCapsule ); + // Tree nodes + size_t byteCount = b3AlignUp8( sizeof( b3CompoundData ) ); + int nodeOffset = (int)byteCount; + byteCount += b3AlignUp8( tree.nodeCapacity * sizeof( b3TreeNode ) ); + int materialOffset = (int)byteCount; + byteCount += b3AlignUp8( materialCount * sizeof( b3SurfaceMaterial ) ); + int capsuleOffset = (int)byteCount; + byteCount += b3AlignUp8( def->capsuleCount * sizeof( b3CompoundCapsule ) ); // Hull data layout has another level of indirection to allow for tight data packing // 1. hull instance array : hull count array of b3HullInstance with individual hull transforms and offsets // 2. heterogeneous array of shared hull data : each shared hull can have a different byte count, so direct indexing is not // possible - int hullArrayOffset = byteCount; + int hullArrayOffset = (int)byteCount; // Array of hull instances - byteCount += hullCount * sizeof( b3HullInstance ); + byteCount += b3AlignUp8( hullCount * sizeof( b3HullInstance ) ); // Packed shared hull blobs for ( int i = 0; i < sharedHullCount; ++i ) { - sharedHulls[i].hullOffset = byteCount; - byteCount += sharedHulls[i].hull->byteCount; + sharedHulls[i].hullOffset = (int)byteCount; + byteCount += b3AlignUp8( sharedHulls[i].hull->byteCount ); } // Mesh data layout has another level of indirection to allow for tight data packing // 1. mesh instance array : mesh count array of b3MeshInstance with individual mesh transform, scale, and offset // 2. heterogeneous array of shared mesh data : each shared mesh can have a different byte count, so direct indexing is not // possible - int meshArrayOffset = byteCount; + int meshArrayOffset = (int)byteCount; // Array of mesh instances - byteCount += meshCount * sizeof( b3MeshInstance ); + byteCount += b3AlignUp8( meshCount * sizeof( b3MeshInstance ) ); // Packed shared mesh blobs for ( int i = 0; i < sharedMeshCount; ++i ) { - sharedMeshes[i].meshOffset = byteCount; - byteCount += sharedMeshes[i].meshData->byteCount; + sharedMeshes[i].meshOffset = (int)byteCount; + byteCount += b3AlignUp8( sharedMeshes[i].meshData->byteCount ); } - int sphereOffset = byteCount; - byteCount += def->sphereCount * sizeof( b3CompoundSphere ); + int sphereOffset = (int)byteCount; + byteCount += b3AlignUp8( def->sphereCount * sizeof( b3CompoundSphere ) ); b3CompoundData* compound = b3Alloc( byteCount ); memset( compound, 0, byteCount ); compound->version = B3_COMPOUND_VERSION; - compound->byteCount = byteCount; + compound->byteCount = (int)byteCount; compound->nodeOffset = nodeOffset; memcpy( &compound->tree, &tree, sizeof( b3DynamicTree ) ); diff --git a/vendor/box3d/src/src/contact.c b/vendor/box3d/src/src/contact.c index 92e38b018..1506bdbe5 100644 --- a/vendor/box3d/src/src/contact.c +++ b/vendor/box3d/src/src/contact.c @@ -745,6 +745,16 @@ bool b3UpdateContact( b3World* world, int workerIndex, b3Contact* contact, b3Sha childShapeA.type = child.type; + // Handle child material for non-meshes. + if ( child.type != b3_meshShape ) + { + B3_ASSERT( 0 <= child.materialIndices[0] && child.materialIndices[0] < shapeA->materialCount ); + const b3SurfaceMaterial* parentMaterials = b3GetShapeMaterials( shapeA ); + childShapeA.material = parentMaterials[child.materialIndices[0]]; + childShapeA.materials = NULL; + childShapeA.materialCount = 1; + } + if ( child.type == b3_capsuleShape ) { childShapeA.capsule = child.capsule; diff --git a/vendor/box3d/src/src/contact_solver.c b/vendor/box3d/src/src/contact_solver.c index 501f85876..48de40973 100644 --- a/vendor/box3d/src/src/contact_solver.c +++ b/vendor/box3d/src/src/contact_solver.c @@ -10,14 +10,13 @@ #include "math_internal.h" #include "physics_world.h" #include "platform.h" +#include "simd.h" #include "solver_set.h" #if B3_ENABLE_VALIDATION #include "shape.h" #endif -#define FIXED_ANCHORS 1 - // contact separation for sub-stepping // s = s0 + dot(cB + rB - cA - rA, normal) // normal is held constant @@ -38,6 +37,9 @@ void b3PrepareContacts_Mesh( b3SolverBlock block, b3StepContext* context ) float warmStartScale = world->enableWarmStarting ? 1.0f : 0.0f; + // Used for friction center weighting. + float invTau = 1.0f / B3_SPECULATIVE_DISTANCE; + // Need to use spans in order to find the associated b2Contact, which is per color b3ContactPrepareSpan* spans = context->contactPrepareSpans; b3ManifoldConstraint* manifoldBase = context->manifoldConstraints; @@ -77,7 +79,7 @@ void b3PrepareContacts_Mesh( b3SolverBlock block, b3StepContext* context ) int localIndex = index - colorStart; B3_ASSERT( 0 <= localIndex && localIndex < spans[colorIndex].count ); int contactId = specs[localIndex].contactId; - b3Contact* contact = b3Array_Get( world->contacts, contactId ); + b3Contact* contact = b3Array_Get( world->contacts, contactId ); B3_ASSERT( contact->contactId == contactId ); int indexA = contact->bodySimIndexA; @@ -86,13 +88,13 @@ void b3PrepareContacts_Mesh( b3SolverBlock block, b3StepContext* context ) #if B3_ENABLE_VALIDATION if ( indexA != B3_NULL_INDEX ) { - b3Body* bodyA = b3Array_Get( world->bodies, contact->edges[0].bodyId ); + b3Body* bodyA = b3Array_Get( world->bodies, contact->edges[0].bodyId ); B3_ASSERT( indexA == bodyA->localIndex ); } if ( indexB != B3_NULL_INDEX ) { - b3Body* bodyB = b3Array_Get( world->bodies, contact->edges[1].bodyId ); + b3Body* bodyB = b3Array_Get( world->bodies, contact->edges[1].bodyId ); B3_ASSERT( indexB == bodyB->localIndex ); } #endif @@ -184,6 +186,7 @@ void b3PrepareContacts_Mesh( b3SolverBlock block, b3StepContext* context ) b3Vec3 centerA = b3Vec3_zero; b3Vec3 centerB = b3Vec3_zero; + float totalFrictionWeight = 0.0f; for ( int pointIndex = 0; pointIndex < pointCount; ++pointIndex ) { @@ -193,7 +196,9 @@ void b3PrepareContacts_Mesh( b3SolverBlock block, b3StepContext* context ) b3ManifoldPoint* mp = manifold->points + pointIndex; cp->rA = mp->anchorA; cp->rB = mp->anchorB; - cp->baseSeparation = mp->separation - b3Dot( b3Sub( cp->rB, cp->rA ), normal ); + + float s = mp->separation; + cp->baseSeparation = s - b3Dot( b3Sub( cp->rB, cp->rA ), normal ); cp->normalImpulse = warmStartScale * mp->normalImpulse; cp->totalNormalImpulse = 0.0f; @@ -210,15 +215,22 @@ void b3PrepareContacts_Mesh( b3SolverBlock block, b3StepContext* context ) b3Vec3 vrB = b3Add( vB, b3Cross( wB, rB ) ); cp->relativeVelocity = b3Dot( normal, b3Sub( vrB, vrA ) ); - centerA = b3Add( centerA, rA ); - centerB = b3Add( centerB, rB ); + // C0 friction center decay. Needed to prevent spinning top drift (GyroscopicPrecession sample). + // Contacts with separation greater than twice the speculative distance only matter for CCD and + // should not contribute to the friction center. They are not important for jitter reduction. Closer + // points may begin to touch on and off, so the friction center needs to move smoothly. + // Epsilon to avoid a branch below (or divide by zero). Small enough to get washed out normally. + float weight = b3ClampFloat( 2.0f - s * invTau, B3_MIN_FRICTION_WEIGHT, 1.0f ); + centerA = b3MulAdd( centerA, weight, rA ); + centerB = b3MulAdd( centerB, weight, rB ); + totalFrictionWeight += weight; } - float invCount = 1.0f / pointCount; - centerA = b3MulSV( invCount, centerA ); - centerB = b3MulSV( invCount, centerB ); - constraint->originA = centerA; - constraint->originB = centerB; + float invWeight = 1.0f / totalFrictionWeight; + centerA = b3MulSV( invWeight, centerA ); + centerB = b3MulSV( invWeight, centerB ); + constraint->centerA = centerA; + constraint->centerB = centerB; for ( int pointIndex = 0; pointIndex < pointCount; ++pointIndex ) { @@ -265,7 +277,7 @@ void b3WarmStartContacts_Mesh( b3SolverBlock block, b3StepContext* context ) { b3World* world = context->world; b3GraphColor* color = world->constraintGraph.colors + block.colorIndex; - b3SolverSet* awakeSet = b3Array_Get( world->solverSets, b3_awakeSet ); + b3SolverSet* awakeSet = b3Array_Get( world->solverSets, b3_awakeSet ); b3BodyState* states = awakeSet->bodyStates.data; b3ContactConstraint* constraints = color->contactConstraints; @@ -319,8 +331,8 @@ void b3WarmStartContacts_Mesh( b3SolverBlock block, b3StepContext* context ) // Central friction { - b3Vec3 rA = constraint->originA; - b3Vec3 rB = constraint->originB; + b3Vec3 rA = constraint->centerA; + b3Vec3 rB = constraint->centerB; b3Vec3 impulse = b3MulSV( constraint->frictionImpulse.x, constraint->tangent1 ); impulse = b3Add( impulse, b3MulSV( constraint->frictionImpulse.y, constraint->tangent2 ) ); @@ -515,8 +527,8 @@ void b3SolveContacts_Mesh( b3SolverBlock block, b3StepContext* context, bool use b3Vec3 tangent2 = constraint->tangent2; // Fixed anchor points for applying impulses - b3Vec3 rA = constraint->originA; - b3Vec3 rB = constraint->originB; + b3Vec3 rA = constraint->centerA; + b3Vec3 rB = constraint->centerB; // Relative tangent velocity at contact b3Vec3 vrA = b3Add( vA, b3Cross( wA, rA ) ); @@ -756,8 +768,8 @@ void b3StoreImpulses_Mesh( b3SolverBlock block, b3StepContext* context, int work mp->totalNormalImpulse = cp->totalNormalImpulse; mp->normalVelocity = cp->relativeVelocity; - if ( checkHitEvents && flagged == false && - mp->normalVelocity < negHitThreshold && mp->totalNormalImpulse > 0.0f ) + if ( checkHitEvents && flagged == false && mp->normalVelocity < negHitThreshold && + mp->totalNormalImpulse > 0.0f ) { b3SetBit( hitEventBitSet, contact->contactId ); hasHitEvents = true; @@ -774,30 +786,6 @@ void b3StoreImpulses_Mesh( b3SolverBlock block, b3StepContext* context, int work taskContext->hasHitEvents = hasHitEvents; } -#if defined( B3_SIMD_NEON ) - -#include - -// wide float holds 4 numbers -typedef float32x4_t b3FloatW; - -#elif defined( B3_SIMD_SSE2 ) - -#include - -// wide float holds 4 numbers -typedef __m128 b3FloatW; - -#else - -// scalar math -typedef struct b3FloatW -{ - float x, y, z, w; -} b3FloatW; - -#endif - // Wide vec2 typedef struct b3Vec2W { @@ -829,372 +817,6 @@ typedef struct b3SymMatrix3W b3FloatW cxx, cxy, cxz, cyy, cyz, czz; } b3SymMatrix3W; -#if defined( B3_SIMD_NEON ) - -static inline b3FloatW b3ZeroW( void ) -{ - return vdupq_n_f32( 0.0f ); -} - -static inline b3FloatW b3SplatW( float scalar ) -{ - return vdupq_n_f32( scalar ); -} - -static inline b3FloatW b3NegW( b3FloatW a ) -{ - return vnegq_f32( a ); -} - -static inline b3FloatW b3SetW( float a, float b, float c, float d ) -{ - float32_t array[4] = { a, b, c, d }; - return vld1q_f32( array ); -} - -static inline b3FloatW b3AddW( b3FloatW a, b3FloatW b ) -{ - return vaddq_f32( a, b ); -} - -static inline b3FloatW b3SubW( b3FloatW a, b3FloatW b ) -{ - return vsubq_f32( a, b ); -} - -static inline b3FloatW b3MulW( b3FloatW a, b3FloatW b ) -{ - return vmulq_f32( a, b ); -} - -static inline b3FloatW b3DivW( b3FloatW a, b3FloatW b ) -{ - return vdivq_f32( a, b ); -} - -static inline b3FloatW b3SqrtW( b3FloatW a ) -{ - return vsqrtq_f32( a ); -} - -// Cannot use real FMA because it doesn't match the non-SIMD path -static inline b3FloatW b3MulAddW( b3FloatW a, b3FloatW b, b3FloatW c ) -{ - return vaddq_f32( a, vmulq_f32( b, c ) ); -} - -// static inline b3FloatW b3MulSubW( b3FloatW a, b3FloatW b, b3FloatW c ) -//{ -// return vsubq_f32( a, vmulq_f32( b, c ) ); -// } - -static inline b3FloatW b3MinW( b3FloatW a, b3FloatW b ) -{ - return vminq_f32( a, b ); -} - -static inline b3FloatW b3MaxW( b3FloatW a, b3FloatW b ) -{ - return vmaxq_f32( a, b ); -} - -// clamp a to [-b, b] -static inline b3FloatW b3SymClampW( b3FloatW a, b3FloatW b ) -{ - b3FloatW nb = b3NegW( b ); - b3FloatW c = b3MaxW( nb, a ); - return b3MinW( c, b ); -} - -static inline b3FloatW b3OrW( b3FloatW a, b3FloatW b ) -{ - return vreinterpretq_f32_u32( vorrq_u32( vreinterpretq_u32_f32( a ), vreinterpretq_u32_f32( b ) ) ); -} - -static inline b3FloatW b3GreaterThanW( b3FloatW a, b3FloatW b ) -{ - return vreinterpretq_f32_u32( vcgtq_f32( a, b ) ); -} - -static inline b3FloatW b3EqualsW( b3FloatW a, b3FloatW b ) -{ - return vreinterpretq_f32_u32( vceqq_f32( a, b ) ); -} - -static inline bool b3AllZeroW( b3FloatW a ) -{ - // Create a zero vector for comparison - b3FloatW zero = vdupq_n_f32( 0.0f ); - - // Compare the input vector with zero - uint32x4_t cmp_result = vceqq_f32( a, zero ); - -// Check if all comparison results are non-zero using vminvq -#ifdef __ARM_FEATURE_SVE - // ARM v8.2+ has horizontal minimum instruction - return vminvq_u32( cmp_result ) != 0; -#else - // For older ARM architectures, we need to manually check all lanes - return vgetq_lane_u32( cmp_result, 0 ) != 0 && vgetq_lane_u32( cmp_result, 1 ) != 0 && vgetq_lane_u32( cmp_result, 2 ) != 0 && - vgetq_lane_u32( cmp_result, 3 ) != 0; -#endif -} - -// component-wise returns mask ? b : a -static inline b3FloatW b3BlendW( b3FloatW a, b3FloatW b, b3FloatW mask ) -{ - uint32x4_t mask32 = vreinterpretq_u32_f32( mask ); - return vbslq_f32( mask32, b, a ); -} - -#elif defined( B3_SIMD_SSE2 ) - -static inline b3FloatW b3ZeroW( void ) -{ - return _mm_setzero_ps(); -} - -static inline b3FloatW b3SplatW( float scalar ) -{ - return _mm_set1_ps( scalar ); -} - -static inline b3FloatW b3NegW( b3FloatW a ) -{ - // Create a mask with the sign bit set for each element - __m128 mask = _mm_set1_ps( -0.0f ); - - // XOR the input with the mask to negate each element - return _mm_xor_ps( a, mask ); -} - -static inline b3FloatW b3SetW( float a, float b, float c, float d ) -{ - return _mm_setr_ps( a, b, c, d ); -} - -static inline b3FloatW b3AddW( b3FloatW a, b3FloatW b ) -{ - return _mm_add_ps( a, b ); -} - -static inline b3FloatW b3SubW( b3FloatW a, b3FloatW b ) -{ - return _mm_sub_ps( a, b ); -} - -static inline b3FloatW b3MulW( b3FloatW a, b3FloatW b ) -{ - return _mm_mul_ps( a, b ); -} - -static inline b3FloatW b3DivW( b3FloatW a, b3FloatW b ) -{ - return _mm_div_ps( a, b ); -} - -static inline b3FloatW b3SqrtW( b3FloatW a ) -{ - return _mm_sqrt_ps( a ); -} - -static inline b3FloatW b3MulAddW( b3FloatW a, b3FloatW b, b3FloatW c ) -{ - return _mm_add_ps( a, _mm_mul_ps( b, c ) ); -} - -// static inline b3FloatW b3MulSubW( b3FloatW a, b3FloatW b, b3FloatW c ) -//{ -// return _mm_sub_ps( a, _mm_mul_ps( b, c ) ); -// } - -static inline b3FloatW b3MinW( b3FloatW a, b3FloatW b ) -{ - return _mm_min_ps( a, b ); -} - -static inline b3FloatW b3MaxW( b3FloatW a, b3FloatW b ) -{ - return _mm_max_ps( a, b ); -} - -// clamp a to [-b, b] -static inline b3FloatW b3SymClampW( b3FloatW a, b3FloatW b ) -{ - b3FloatW nb = b3NegW( b ); - b3FloatW c = b3MaxW( nb, a ); - return b3MinW( c, b ); -} - -static inline b3FloatW b3OrW( b3FloatW a, b3FloatW b ) -{ - return _mm_or_ps( a, b ); -} - -static inline b3FloatW b3GreaterThanW( b3FloatW a, b3FloatW b ) -{ - return _mm_cmpgt_ps( a, b ); -} - -static inline b3FloatW b3EqualsW( b3FloatW a, b3FloatW b ) -{ - return _mm_cmpeq_ps( a, b ); -} - -static inline bool b3AllZeroW( b3FloatW a ) -{ - // Compare each element with zero - b3FloatW zero = _mm_setzero_ps(); - b3FloatW cmp = _mm_cmpeq_ps( a, zero ); - - // Create a mask from the comparison results - int mask = _mm_movemask_ps( cmp ); - - // If all elements are zero, the mask will be 0xF (1111 in binary) - return mask == 0xF; -} - -// component-wise returns mask ? b : a -static inline b3FloatW b3BlendW( b3FloatW a, b3FloatW b, b3FloatW mask ) -{ - return _mm_or_ps( _mm_and_ps( mask, b ), _mm_andnot_ps( mask, a ) ); -} - -#else - -static inline b3FloatW b3ZeroW( void ) -{ - return (b3FloatW){ 0.0f, 0.0f, 0.0f, 0.0f }; -} - -static inline b3FloatW b3SplatW( float scalar ) -{ - return (b3FloatW){ scalar, scalar, scalar, scalar }; -} - -static inline b3FloatW b3NegW( b3FloatW a ) -{ - return (b3FloatW){ -a.x, -a.y, -a.z, -a.w }; -} - -static inline b3FloatW b3AddW( b3FloatW a, b3FloatW b ) -{ - return (b3FloatW){ a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w }; -} - -static inline b3FloatW b3SubW( b3FloatW a, b3FloatW b ) -{ - return (b3FloatW){ a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w }; -} - -static inline b3FloatW b3MulW( b3FloatW a, b3FloatW b ) -{ - return (b3FloatW){ a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w }; -} - -static inline b3FloatW b3DivW( b3FloatW a, b3FloatW b ) -{ - return (b3FloatW){ a.x / b.x, a.y / b.y, a.z / b.z, a.w / b.w }; -} - -static inline b3FloatW b3SqrtW( b3FloatW a ) -{ - return (b3FloatW){ sqrtf( a.x ), sqrtf( a.y ), sqrtf( a.z ), sqrtf( a.w ) }; -} - -static inline b3FloatW b3MulAddW( b3FloatW a, b3FloatW b, b3FloatW c ) -{ - return (b3FloatW){ a.x + b.x * c.x, a.y + b.y * c.y, a.z + b.z * c.z, a.w + b.w * c.w }; -} - -// static inline b3FloatW b3MulSubW( b3FloatW a, b3FloatW b, b3FloatW c ) -//{ -// return { a.x - b.x * c.x, a.y - b.y * c.y, a.z - b.z * c.z, a.w - b.w * c.w }; -// } - -// static inline b3FloatW b3MinW( b3FloatW a, b3FloatW b ) -//{ -// b3FloatW r; -// r.x = a.x <= b.x ? a.x : b.x; -// r.y = a.y <= b.y ? a.y : b.y; -// r.z = a.z <= b.z ? a.z : b.z; -// r.w = a.w <= b.w ? a.w : b.w; -// return r; -// } - -static inline b3FloatW b3MaxW( b3FloatW a, b3FloatW b ) -{ - b3FloatW r; - r.x = a.x >= b.x ? a.x : b.x; - r.y = a.y >= b.y ? a.y : b.y; - r.z = a.z >= b.z ? a.z : b.z; - r.w = a.w >= b.w ? a.w : b.w; - return r; -} - -// clamp a to [-b, b] -static inline b3FloatW b3SymClampW( b3FloatW a, b3FloatW b ) -{ - b3FloatW r; - r.x = a.x <= b.x ? a.x : b.x; - r.y = a.y <= b.y ? a.y : b.y; - r.z = a.z <= b.z ? a.z : b.z; - r.w = a.w <= b.w ? a.w : b.w; - r.x = r.x <= -b.x ? -b.x : r.x; - r.y = r.y <= -b.y ? -b.y : r.y; - r.z = r.z <= -b.z ? -b.z : r.z; - r.w = r.w <= -b.w ? -b.w : r.w; - return r; -} - -static inline b3FloatW b3OrW( b3FloatW a, b3FloatW b ) -{ - b3FloatW r; - r.x = a.x != 0.0f || b.x != 0.0f ? 1.0f : 0.0f; - r.y = a.y != 0.0f || b.y != 0.0f ? 1.0f : 0.0f; - r.z = a.z != 0.0f || b.z != 0.0f ? 1.0f : 0.0f; - r.w = a.w != 0.0f || b.w != 0.0f ? 1.0f : 0.0f; - return r; -} - -static inline b3FloatW b3GreaterThanW( b3FloatW a, b3FloatW b ) -{ - b3FloatW r; - r.x = a.x > b.x ? 1.0f : 0.0f; - r.y = a.y > b.y ? 1.0f : 0.0f; - r.z = a.z > b.z ? 1.0f : 0.0f; - r.w = a.w > b.w ? 1.0f : 0.0f; - return r; -} - -static inline b3FloatW b3EqualsW( b3FloatW a, b3FloatW b ) -{ - b3FloatW r; - r.x = a.x == b.x ? 1.0f : 0.0f; - r.y = a.y == b.y ? 1.0f : 0.0f; - r.z = a.z == b.z ? 1.0f : 0.0f; - r.w = a.w == b.w ? 1.0f : 0.0f; - return r; -} - -static inline bool b3AllZeroW( b3FloatW a ) -{ - return a.x == 0.0f && a.y == 0.0f && a.z == 0.0f && a.w == 0.0f; -} - -// component-wise returns mask ? b : a -static inline b3FloatW b3BlendW( b3FloatW a, b3FloatW b, b3FloatW mask ) -{ - b3FloatW r; - r.x = mask.x != 0.0f ? b.x : a.x; - r.y = mask.y != 0.0f ? b.y : a.y; - r.z = mask.z != 0.0f ? b.z : a.z; - r.w = mask.w != 0.0f ? b.w : a.w; - return r; -} - -#endif - // s * a static inline b3Vec3W b3MulSVW( b3FloatW s, b3Vec3W a ) { @@ -1342,6 +964,8 @@ typedef struct b3ContactConstraintWide int indexA[B3_SIMD_WIDTH]; int indexB[B3_SIMD_WIDTH]; + int pointCounts[B3_SIMD_WIDTH]; + b3FloatW invMassA, invMassB; b3SymMatrix3W invIA, invIB; b3Vec3W normal; @@ -1350,7 +974,8 @@ typedef struct b3ContactConstraintWide b3Vec3W tangent1; b3Vec3W tangent2; - b3Vec3W originA, originB; + // Friction centers + b3Vec3W centerA, centerB; b3FloatW twistMass; b3FloatW twistImpulse; b3SymMatrix2W tangentMass; @@ -1629,6 +1254,7 @@ void b3PrepareContacts_Convex( b3SolverBlock block, b3StepContext* context ) b3Softness staticSoftness = context->staticSoftness; float warmStartScale = world->enableWarmStarting ? 1.0f : 0.0f; + float invTau = 1.0f / B3_SPECULATIVE_DISTANCE; int wideIndex = block.startIndex; int endWideIndex = block.startIndex + block.count; @@ -1664,7 +1290,7 @@ void b3PrepareContacts_Convex( b3SolverBlock block, b3StepContext* context ) } int contactId = contactIds[contactIndex]; - b3Contact* contact = b3Array_Get( world->contacts, contactId ); + b3Contact* contact = b3Array_Get( world->contacts, contactId ); B3_ASSERT( contact->manifoldCount == 1 ); b3Manifold* manifold = contact->manifolds + 0; @@ -1779,8 +1405,11 @@ void b3PrepareContacts_Convex( b3SolverBlock block, b3StepContext* context ) ( (float*)&constraint->impulseScale )[lane] = soft.impulseScale; int pointCount = manifold->pointCount; - b3Vec3 originA = b3Vec3_zero; - b3Vec3 originB = b3Vec3_zero; + constraint->pointCounts[lane] = pointCount; + + b3Vec3 centerA = b3Vec3_zero; + b3Vec3 centerB = b3Vec3_zero; + float totalFrictionWeight = 0.0f; for ( int pointIndex = 0; pointIndex < pointCount; ++pointIndex ) { @@ -1789,8 +1418,14 @@ void b3PrepareContacts_Convex( b3SolverBlock block, b3StepContext* context ) b3Vec3 rA = mp->anchorA; b3Vec3 rB = mp->anchorB; - originA = b3Add( originA, rA ); - originB = b3Add( originB, rB ); + float s = mp->separation; + + // C0 friction center decay. Needed to prevent spinning top drift (GyroscopicPrecession sample). + // See details in b3PrepareContacts_Mesh. This code should stay in sync. + float weight = b3ClampFloat( 2.0f - s * invTau, B3_MIN_FRICTION_WEIGHT, 1.0f ); + centerA = b3MulAdd( centerA, weight, rA ); + centerB = b3MulAdd( centerB, weight, rB ); + totalFrictionWeight += weight; ( (float*)&cp->anchorAs.X )[lane] = rA.x; ( (float*)&cp->anchorAs.Y )[lane] = rA.y; @@ -1800,7 +1435,7 @@ void b3PrepareContacts_Convex( b3SolverBlock block, b3StepContext* context ) ( (float*)&cp->anchorBs.Y )[lane] = rB.y; ( (float*)&cp->anchorBs.Z )[lane] = rB.z; - float baseSeparation = mp->separation - b3Dot( b3Sub( rB, rA ), normal ); + float baseSeparation = s - b3Dot( b3Sub( rB, rA ), normal ); ( (float*)&cp->baseSeparations )[lane] = baseSeparation; ( (float*)&cp->normalImpulses )[lane] = warmStartScale * mp->normalImpulse; @@ -1817,29 +1452,29 @@ void b3PrepareContacts_Convex( b3SolverBlock block, b3StepContext* context ) ( (float*)&cp->relativeVelocities )[lane] = b3Dot( normal, b3Sub( vrB, vrA ) ); } - float invCount = 1.0f / pointCount; - originA = b3MulSV( invCount, originA ); - originB = b3MulSV( invCount, originB ); + float invWeight = 1.0f / totalFrictionWeight; + centerA = b3MulSV( invWeight, centerA ); + centerB = b3MulSV( invWeight, centerB ); - ( (float*)&constraint->originA.X )[lane] = originA.x; - ( (float*)&constraint->originA.Y )[lane] = originA.y; - ( (float*)&constraint->originA.Z )[lane] = originA.z; - ( (float*)&constraint->originB.X )[lane] = originB.x; - ( (float*)&constraint->originB.Y )[lane] = originB.y; - ( (float*)&constraint->originB.Z )[lane] = originB.z; + ( (float*)&constraint->centerA.X )[lane] = centerA.x; + ( (float*)&constraint->centerA.Y )[lane] = centerA.y; + ( (float*)&constraint->centerA.Z )[lane] = centerA.z; + ( (float*)&constraint->centerB.X )[lane] = centerB.x; + ( (float*)&constraint->centerB.Y )[lane] = centerB.y; + ( (float*)&constraint->centerB.Z )[lane] = centerB.z; for ( int pointIndex = 0; pointIndex < pointCount; ++pointIndex ) { const b3ManifoldPoint* mp = manifold->points + pointIndex; b3ContactConstraintPointWide* cp = constraint->points + pointIndex; - ( (float*)&cp->leverArms )[lane] = b3Distance( mp->anchorA, originA ); + ( (float*)&cp->leverArms )[lane] = b3Distance( mp->anchorA, centerA ); } - b3Vec3 rtA1 = b3Cross( originA, tangent1 ); - b3Vec3 rtA2 = b3Cross( originA, tangent2 ); + b3Vec3 rtA1 = b3Cross( centerA, tangent1 ); + b3Vec3 rtA2 = b3Cross( centerA, tangent2 ); - b3Vec3 rtB1 = b3Cross( originB, tangent1 ); - b3Vec3 rtB2 = b3Cross( originB, tangent2 ); + b3Vec3 rtB1 = b3Cross( centerB, tangent1 ); + b3Vec3 rtB2 = b3Cross( centerB, tangent2 ); { b3Matrix2 k; @@ -1919,8 +1554,14 @@ void b3WarmStartContacts_Convex( b3SolverBlock block, b3StepContext* context ) b3BodyStateW bA = b3GatherBodies( states, c->indexA ); b3BodyStateW bB = b3GatherBodies( states, c->indexB ); + _Static_assert( B3_SIMD_WIDTH == 4, "width" ); + int pointCount1 = b3MaxInt( c->pointCounts[0], c->pointCounts[1] ); + int pointCount2 = b3MaxInt( c->pointCounts[2], c->pointCounts[3] ); + int pointCount = b3MaxInt( pointCount1, pointCount2 ); + B3_VALIDATE( 0 < pointCount && pointCount <= B3_MAX_MANIFOLD_POINTS ); + // Normal impulses - for ( int j = 0; j < B3_MAX_MANIFOLD_POINTS; ++j ) + for ( int j = 0; j < pointCount; ++j ) { b3ContactConstraintPointWide* cp = c->points + j; @@ -1940,8 +1581,8 @@ void b3WarmStartContacts_Convex( b3SolverBlock block, b3StepContext* context ) // Central friction { - b3Vec3W rA = c->originA; - b3Vec3W rB = c->originB; + b3Vec3W rA = c->centerA; + b3Vec3W rB = c->centerB; b3Vec3W impulse = b3MulSVW( c->frictionImpulse.x, c->tangent1 ); impulse = b3MulAddSVW( impulse, c->frictionImpulse.y, c->tangent2 ); @@ -1987,6 +1628,12 @@ void b3SolveContacts_Convex( b3SolverBlock block, b3StepContext* context, bool u { b3ContactConstraintWide* c = constraints + wideIndex; + _Static_assert( B3_SIMD_WIDTH == 4, "width" ); + int pointCount1 = b3MaxInt( c->pointCounts[0], c->pointCounts[1] ); + int pointCount2 = b3MaxInt( c->pointCounts[2], c->pointCounts[3] ); + int pointCount = b3MaxInt( pointCount1, pointCount2 ); + B3_VALIDATE( 0 < pointCount && pointCount <= B3_MAX_MANIFOLD_POINTS ); + b3BodyStateW bA = b3GatherBodies( states, c->indexA ); b3BodyStateW bB = b3GatherBodies( states, c->indexB ); @@ -2009,8 +1656,7 @@ void b3SolveContacts_Convex( b3SolverBlock block, b3StepContext* context, bool u b3FloatW totalNormalImpulse = b3ZeroW(); b3FloatW totalTwistLimit = b3ZeroW(); - // todo_erin use the max point count of the four manifolds - for ( int pointIndex = 0; pointIndex < B3_MAX_MANIFOLD_POINTS; ++pointIndex ) + for ( int pointIndex = 0; pointIndex < pointCount; ++pointIndex ) { b3ContactConstraintPointWide* cp = c->points + pointIndex; @@ -2120,8 +1766,8 @@ void b3SolveContacts_Convex( b3SolverBlock block, b3StepContext* context, bool u b3Vec3W tangent2 = c->tangent2; // Fixed anchor points for applying impulses - b3Vec3W rA = c->originA; - b3Vec3W rB = c->originB; + b3Vec3W rA = c->centerA; + b3Vec3W rB = c->centerB; // Relative tangent velocity at contact b3Vec3W vrA = b3AddVW( bA.v, b3CrossW( bA.w, rA ) ); @@ -2197,6 +1843,12 @@ void b3ApplyRestitution_Convex( b3SolverBlock block, b3StepContext* context ) continue; } + _Static_assert( B3_SIMD_WIDTH == 4, "width" ); + int pointCount1 = b3MaxInt( c->pointCounts[0], c->pointCounts[1] ); + int pointCount2 = b3MaxInt( c->pointCounts[2], c->pointCounts[3] ); + int pointCount = b3MaxInt( pointCount1, pointCount2 ); + B3_VALIDATE( 0 < pointCount && pointCount <= B3_MAX_MANIFOLD_POINTS ); + // Single gather for all manifolds b3BodyStateW bA = b3GatherBodies( states, c->indexA ); b3BodyStateW bB = b3GatherBodies( states, c->indexB ); @@ -2205,7 +1857,7 @@ void b3ApplyRestitution_Convex( b3SolverBlock block, b3StepContext* context ) // by the calculations below. b3FloatW restitutionMask = b3EqualsW( c->restitution, zero ); - for ( int pointIndex = 0; pointIndex < B3_MAX_MANIFOLD_POINTS; ++pointIndex ) + for ( int pointIndex = 0; pointIndex < pointCount; ++pointIndex ) { b3ContactConstraintPointWide* cp = c->points + pointIndex; @@ -2372,7 +2024,7 @@ void b3PrepareContacts_Overflow( b3StepContext* context ) b3GraphColor* color = graph->colors + B3_OVERFLOW_INDEX; uint16_t count = (uint16_t)color->contacts.count; - if (count == 0) + if ( count == 0 ) { return; } diff --git a/vendor/box3d/src/src/contact_solver.h b/vendor/box3d/src/src/contact_solver.h index fab17ee53..d85f2331a 100644 --- a/vendor/box3d/src/src/contact_solver.h +++ b/vendor/box3d/src/src/contact_solver.h @@ -19,13 +19,13 @@ typedef struct b3ManifoldConstraintPoint typedef struct b3ManifoldConstraint { - // todo use pointer buffer b3ManifoldConstraintPoint points[4]; int pointCount; b3Vec3 normal; b3Vec3 tangent1; b3Vec3 tangent2; - b3Vec3 originA, originB; + // Friction centers + b3Vec3 centerA, centerB; float twistMass; float twistImpulse; b3Matrix2 tangentMass; diff --git a/vendor/box3d/src/src/convex_manifold.c b/vendor/box3d/src/src/convex_manifold.c index 2422567c4..d3b998ae5 100644 --- a/vendor/box3d/src/src/convex_manifold.c +++ b/vendor/box3d/src/src/convex_manifold.c @@ -1,9 +1,10 @@ -// SPDX-FileCopyrightText: 2025 Erin Catto +// SPDX-FileCopyrightText: 2026 Erin Catto // SPDX-License-Identifier: MIT #include "algorithm.h" #include "manifold.h" #include "shape.h" +#include "simd.h" #include "box3d/base.h" #include "box3d/collision.h" @@ -12,31 +13,6 @@ #include #include -static inline bool b3IsMinkowskiFaceIsolated( b3Vec3 a, b3Vec3 b, b3Vec3 n ) -{ - // An isolated edge (e.g. like in a capsule) defines a circle through the - // origin on the Gauss map. So testing for overlap between this circle and - // the arc AB simplifies to a simple plane test. - float an = b3Dot( a, n ); - float bn = b3Dot( b, n ); - - return an * bn <= 0.0f; -} - -// bxa = cross(b, a) and dxc = cross(d, c) -// but in practice we use the edge vector between the faces for robustness -static inline bool b3IsMinkowskiFace( b3Vec3 a, b3Vec3 b, b3Vec3 bxa, b3Vec3 c, b3Vec3 d, b3Vec3 dxc ) -{ - // Two edges build a face on the Minkowski sum if the associated arcs ab and cd intersect on the Gauss map. - // The associated arcs are defined by the adjacent face normals of each edge. - float cba = b3Dot( c, bxa ); - float dba = b3Dot( d, bxa ); - float adc = b3Dot( a, dxc ); - float bdc = b3Dot( b, dxc ); - - return cba * dba < 0.0f && adc * bdc < 0.0f && cba * bdc > 0.0f; -} - static int b3ClipSegment( b3ClipVertex segment[2], b3Plane plane ) { int vertexCount = 0; @@ -106,8 +82,8 @@ static int b3ClipSegmentToHullFace( b3ClipVertex segment[2], const b3HullData* h return 2; } -static b3FaceQuery b3QueryFaceDirectionHullAndCapsule( const b3HullData* hull, const b3Capsule* capsule, - b3Transform capsuleTransform ) +static b3SeparatingAxis b3QueryFaceDirectionHullAndCapsule( const b3HullData* hull, const b3Capsule* capsule, + b3Transform capsuleTransform ) { int maxFaceIndex = -1; int maxVertexIndex = -1; @@ -134,62 +110,32 @@ static b3FaceQuery b3QueryFaceDirectionHullAndCapsule( const b3HullData* hull, c } } - return (b3FaceQuery){ + return (b3SeparatingAxis){ + .normal = planes[maxFaceIndex].normal, .separation = maxFaceSeparation, - .faceIndex = (uint8_t)maxFaceIndex, - .vertexIndex = (uint8_t)maxVertexIndex, + .indexA = (uint8_t)maxFaceIndex, + .indexB = (uint8_t)maxVertexIndex, }; } -static b3FaceQuery b3QueryFaceDirections( const b3HullData* hullA, const b3HullData* hullB, b3Transform relativeTransform ) -{ - // We perform all computations in local space of the second hull - b3Transform transform = b3InvertTransform( relativeTransform ); - const b3Plane* planesA = b3GetHullPlanes( hullA ); - const b3Vec3* pointsB = b3GetHullPoints( hullB ); - - int maxFaceIndex = -1; - int maxVertexIndex = -1; - float maxFaceSeparation = -FLT_MAX; - - for ( int faceIndex = 0; faceIndex < hullA->faceCount; ++faceIndex ) - { - b3Plane plane = b3TransformPlane( transform, planesA[faceIndex] ); - - int vertexIndex = b3FindHullSupportVertex( hullB, b3Neg( plane.normal ) ); - b3Vec3 support = pointsB[vertexIndex]; - float separation = b3PlaneSeparation( plane, support ); - if ( separation > maxFaceSeparation ) - { - maxFaceIndex = faceIndex; - maxVertexIndex = vertexIndex; - maxFaceSeparation = separation; - } - } - - return (b3FaceQuery){ - .separation = maxFaceSeparation, - .faceIndex = (uint8_t)maxFaceIndex, - .vertexIndex = (uint8_t)maxVertexIndex, - }; -} - -static b3EdgeQuery b3QueryEdgeDirectionHullAndCapsule( const b3HullData* hull, const b3Capsule* capsule, - b3Transform capsuleTransform ) +static b3SeparatingAxis b3QueryEdgeDirectionHullAndCapsule( const b3HullData* hull, const b3Capsule* capsule, + b3Transform capsuleTransform ) { // Find axis of minimum penetration + b3Vec3 maxNormal = b3Vec3_zero; float maxSeparation = -FLT_MAX; - int maxIndex1 = -1; - int maxIndex2 = -1; + int maxIndexA = B3_NULL_INDEX; + int maxIndexB = B3_NULL_INDEX; // We perform all computations in local space of the hull - b3Vec3 p1 = b3TransformPoint( capsuleTransform, capsule->center1 ); - b3Vec3 q1 = b3TransformPoint( capsuleTransform, capsule->center2 ); - b3Vec3 e1 = b3Sub( q1, p1 ); + b3Vec3 pA = b3TransformPoint( capsuleTransform, capsule->center1 ); + b3Vec3 qA = b3TransformPoint( capsuleTransform, capsule->center2 ); + b3Vec3 eA = b3Sub( qA, pA ); const b3HullHalfEdge* edges = b3GetHullEdges( hull ); const b3Vec3* points = b3GetHullPoints( hull ); const b3Plane* planes = b3GetHullPlanes( hull ); + float squaredTolerance = B3_PARALLEL_EDGE_TOL * B3_PARALLEL_EDGE_TOL; for ( int index = 0; index < hull->edgeCount; index += 2 ) { @@ -197,111 +143,60 @@ static b3EdgeQuery b3QueryEdgeDirectionHullAndCapsule( const b3HullData* hull, c const b3HullHalfEdge* twin = edges + index + 1; B3_ASSERT( edge->twin == index + 1 && twin->twin == index ); - b3Vec3 p2 = points[edge->origin]; - b3Vec3 q2 = points[twin->origin]; - b3Vec3 e2 = b3Sub( q2, p2 ); + b3Vec3 qB = points[twin->origin]; + b3Vec3 uB = planes[edge->face].normal; + b3Vec3 vB = planes[twin->face].normal; - b3Vec3 u2 = planes[edge->face].normal; - b3Vec3 v2 = planes[twin->face].normal; + // An isolated edge (e.g. like in a capsule) defines a circle through the + // origin on the Gauss map. So testing for overlap between this circle and + // the arc AB simplifies to a plane test. + float cba = b3Dot( uB, eA ); + float dba = b3Dot( vB, eA ); - if ( b3IsMinkowskiFaceIsolated( u2, v2, e1 ) ) + if ( cba * dba < 0.0f ) { - // We can pass any point on the edge and choose - // the edge centers for better numerical precision. - b3Vec3 c1 = b3MulSV( 0.5f, b3Add( q1, p1 ) ); - b3Vec3 c2 = hull->center; - float separation = b3EdgeEdgeSeparation( q1, e1, c1, q2, e2, c2 ); + // Avoid nearly parallel edges that may lead to invalid separation values at the noise floor. + if ( b3MaxFloat( cba * cba, dba * dba ) < squaredTolerance * b3LengthSquared( eA ) ) + { + continue; + } + + // The intersection of the arcs on the Gauss map is the edge pair axis. Cast the + // arc of hull B (from uB to vB) against the plane containing the arc of hull A: + // dot(uB + t * (vB - uB), eA) == 0 + // then + // t = cba / (cba - dba) + // + // The signs of cba and dba differ (Minkowski test), so the division is safe. + // + // The axis generated points from B to A by construction since it lands between + // two face normals on B. This removes the need to orient the separation axis + // using the hull centers. + // + // The axis is perpendicular to both edges so I can use qA and qB as arbitrary + // points on edgeA and edgeB to measure the separation. + + float t = cba / ( cba - dba ); + b3Vec3 axis = b3Lerp( uB, vB, t ); + B3_VALIDATE( b3LengthSquared( axis ) > 1000.0f * FLT_MIN ); + axis = b3Normalize( axis ); + float separation = b3Dot( axis, b3Sub( qA, qB ) ); + if ( separation > maxSeparation ) { // Note: We don't exit early if we find a separating axis here since we want to // find the best one for caching and account for the convex radius later. + maxNormal = axis; maxSeparation = separation; - maxIndex1 = 0; - maxIndex2 = index; + maxIndexA = 0; + maxIndexB = index; } } } // Save result - return (b3EdgeQuery){ - .separation = maxSeparation, - .indexA = (uint8_t)maxIndex1, - .indexB = (uint8_t)maxIndex2, - }; -} - -static b3EdgeQuery b3QueryEdgeDirections( const b3HullData* hullA, const b3HullData* hullB, b3Transform transformBtoA ) -{ - // Find axis of minimum penetration - float maxSeparation = -FLT_MAX; - int maxIndexA = B3_NULL_INDEX; - int maxIndexB = B3_NULL_INDEX; - - const b3HullHalfEdge* edgesA = b3GetHullEdges( hullA ); - const b3Vec3* pointsA = b3GetHullPoints( hullA ); - const b3Plane* planesA = b3GetHullPlanes( hullA ); - const b3HullHalfEdge* edgesB = b3GetHullEdges( hullB ); - const b3Vec3* pointsB = b3GetHullPoints( hullB ); - const b3Plane* planesB = b3GetHullPlanes( hullB ); - - // Work in frame A - b3Matrix3 matrix = b3MakeMatrixFromQuat( transformBtoA.q ); - - // Arranged to minimize transform operations - for ( int indexB = 0; indexB < hullB->edgeCount; indexB += 2 ) - { - const b3HullHalfEdge* edgeB = edgesB + indexB; - const b3HullHalfEdge* twinB = edgesB + indexB + 1; - B3_ASSERT( edgeB->twin == indexB + 1 && twinB->twin == indexB ); - - b3Vec3 qB = pointsB[twinB->origin]; - b3Vec3 eB = b3MulMV( matrix, b3Sub( qB, pointsB[edgeB->origin] ) ); - qB = b3Add( b3MulMV( matrix, qB ), transformBtoA.p ); - - b3Vec3 uB = b3MulMV( matrix, planesB[edgeB->face].normal ); - b3Vec3 vB = b3MulMV( matrix, planesB[twinB->face].normal ); - - for ( int indexA = 0; indexA < hullA->edgeCount; indexA += 2 ) - { - const b3HullHalfEdge* edgeA = edgesA + indexA; - const b3HullHalfEdge* twinA = edgesA + indexA + 1; - B3_ASSERT( edgeA->twin == indexA + 1 && twinA->twin == indexA ); - - b3Vec3 qA = pointsA[twinA->origin]; - b3Vec3 eA = b3Sub( qA, pointsA[edgeA->origin] ); - b3Vec3 uA = planesA[edgeA->face].normal; - b3Vec3 vA = planesA[twinA->face].normal; - - bool isMinkowski; - { - // Two edges build a face on the Minkowski sum if the associated arcs AB and CD intersect on the Gauss map. - // The associated arcs are defined by the adjacent face normals of each edge. - float cba = b3Dot( uB, eA ); - float dba = b3Dot( vB, eA ); - float adc = -b3Dot( uA, eB ); - float bdc = -b3Dot( vA, eB ); - - isMinkowski = cba * dba < 0.0f && adc * bdc < 0.0f && cba * bdc > 0.0f; - } - - if ( isMinkowski ) - { - b3Vec3 centerA = hullA->center; - b3Vec3 centerB = b3TransformPoint( transformBtoA, hullB->center ); - float separation = b3EdgeEdgeSeparation( qA, eA, centerA, qB, eB, centerB ); - - if ( separation > maxSeparation ) - { - // Continues to find the maximum separating axis - maxSeparation = separation; - maxIndexA = indexA; - maxIndexB = indexB; - } - } - } - } - - return (b3EdgeQuery){ + return (b3SeparatingAxis){ + .normal = maxNormal, .separation = maxSeparation, .indexA = maxIndexA, .indexB = maxIndexB, @@ -810,13 +705,13 @@ void b3CollideCapsules( b3LocalManifold* manifold, int capacity, const b3Capsule } static bool b3BuildHullFaceAndCapsuleContact( b3LocalManifold* manifold, const b3HullData* hullA, const b3Capsule* capsuleB, - b3Transform transformBtoA, b3FaceQuery query ) + b3Transform transformBtoA, b3SeparatingAxis query ) { // Work in shapeA coordinates const b3Plane* planes = b3GetHullPlanes( hullA ); // Clip the capsule edge against the side planes of the reference face - int refFace = query.faceIndex; + int refFace = query.indexA; b3Plane refPlane = planes[refFace]; b3ClipVertex segmentB[2]; @@ -863,21 +758,8 @@ static bool b3BuildHullFaceAndCapsuleContact( b3LocalManifold* manifold, const b return false; } -static inline float b3DeepestPointSeparation( const b3LocalManifold* manifold ) -{ - // Deepest point - float minSeparation = FLT_MAX; - int pointCount = manifold->pointCount; - for ( int i = 0; i < pointCount; ++i ) - { - minSeparation = b3MinFloat( minSeparation, manifold->points[i].separation ); - } - - return minSeparation; -} - static bool b3BuildHullAndCapsuleEdgeContact( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, - const b3Capsule* capsuleB, b3Transform transformBtoA, b3EdgeQuery query ) + const b3Capsule* capsuleB, b3Transform transformBtoA, b3SeparatingAxis query ) { if ( capacity < 1 ) { @@ -895,19 +777,11 @@ static bool b3BuildHullAndCapsuleEdgeContact( b3LocalManifold* manifold, int cap const b3HullHalfEdge* edge2 = edges + query.indexB; const b3HullHalfEdge* twin2 = edges + edge2->twin; - b3Vec3 ch = hullA->center; b3Vec3 ph = points[edge2->origin]; b3Vec3 qh = points[twin2->origin]; b3Vec3 eh = b3Sub( qh, ph ); - b3Vec3 normal = b3Cross( ec, eh ); - normal = b3Normalize( normal ); - - // Normal should point outward from hull - if ( b3Dot( normal, b3Sub( ph, ch ) ) < 0.0f ) - { - normal = b3Neg( normal ); - } + b3Vec3 normal = query.normal; b3SegmentDistanceResult result = b3LineDistance( ph, eh, pc, ec ); @@ -918,7 +792,6 @@ static bool b3BuildHullAndCapsuleEdgeContact( b3LocalManifold* manifold, int cap } b3Vec3 point = b3MulSV( 0.5f, b3Add( b3MulSub( result.point1, capsuleB->radius, normal ), result.point2 ) ); - float separation = b3Dot( normal, b3Sub( result.point2, result.point1 ) ); B3_VALIDATE( b3AbsFloat( separation - query.separation ) < B3_LINEAR_SLOP ); @@ -1031,14 +904,14 @@ void b3CollideHullAndCapsule( b3LocalManifold* manifold, int capacity, const b3H // Deep penetration - b3FaceQuery faceQuery = b3QueryFaceDirectionHullAndCapsule( hullA, capsuleB, transformBtoA ); + b3SeparatingAxis faceQuery = b3QueryFaceDirectionHullAndCapsule( hullA, capsuleB, transformBtoA ); if ( faceQuery.separation > capsuleB->radius ) { // We found a separating axis return; } - b3EdgeQuery edgeQuery = b3QueryEdgeDirectionHullAndCapsule( hullA, capsuleB, transformBtoA ); + b3SeparatingAxis edgeQuery = b3QueryEdgeDirectionHullAndCapsule( hullA, capsuleB, transformBtoA ); if ( edgeQuery.separation > capsuleB->radius ) { // We found a separating axis @@ -1048,21 +921,24 @@ void b3CollideHullAndCapsule( b3LocalManifold* manifold, int capacity, const b3H // Create face contact float faceSeparation = faceQuery.separation - capsuleB->radius; b3BuildHullFaceAndCapsuleContact( manifold, hullA, capsuleB, transformBtoA, faceQuery ); - if ( manifold->pointCount > 1 ) + B3_VALIDATE( manifold->pointCount == 0 || manifold->pointCount == 2 ); + if ( manifold->pointCount == 2 ) { - // If ( Out.PointCount <= 1 ) -> Compare with unclipped separation - // If ( Out.PointCount > 1 ) -> Be aggressive and compare with clipped separation - // Face contact can be empty if it does not realize the axis of minimum penetration - faceSeparation = b3DeepestPointSeparation( manifold ); + // This becomes the clipped separation. + faceSeparation = b3MinFloat( manifold->points[0].separation, manifold->points[1].separation ); + } + + // Is there a valid edge-edge axis? + if ( edgeQuery.indexA == B3_NULL_INDEX ) + { + return; } - B3_VALIDATE( faceSeparation <= 0.0f ); // Face contact can be empty if it does not realize the axis of minimum penetration. // Create edge contact if face contact fails or edge contact is significantly better! - const float kRelEdgeTolerance = 0.90f; - const float kAbsTolerance = 0.5f * B3_LINEAR_SLOP; + float linearSlop = B3_LINEAR_SLOP; float edgeSeparation = edgeQuery.separation - capsuleB->radius; - if ( manifold->pointCount == 0 || edgeSeparation > kRelEdgeTolerance * faceSeparation + kAbsTolerance ) + if ( manifold->pointCount == 0 || edgeSeparation > faceSeparation + linearSlop ) { // Edge contact b3BuildHullAndCapsuleEdgeContact( manifold, capacity, hullA, capsuleB, transformBtoA, edgeQuery ); @@ -1108,20 +984,24 @@ static int b3BuildPolygon( b3ClipVertex* out, b3Transform transform, const b3Hul } static bool b3BuildFaceAContact( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, const b3HullData* hullB, - b3Transform transformBtoA, b3FaceQuery query, b3SATCache* cache ) + b3Transform transformBtoA, b3SeparatingAxis query, b3SATCache* cache ) { + B3_VALIDATE( query.type == b3_faceAxisA ); + B3_VALIDATE( 0 <= query.indexA && query.indexA < hullA->faceCount ); + B3_VALIDATE( 0 <= query.indexB && query.indexB < hullB->vertexCount ); + const b3HullFace* facesA = b3GetHullFaces( hullA ); const b3HullHalfEdge* edgesA = b3GetHullEdges( hullA ); const b3Plane* planesA = b3GetHullPlanes( hullA ); const b3Vec3* pointsA = b3GetHullPoints( hullA ); // Reference face - int refFace = query.faceIndex; + int refFace = query.indexA; b3Plane refPlane = planesA[refFace]; // Find incident face b3Vec3 refNormalInB = b3InvRotateVector( transformBtoA.q, refPlane.normal ); - int incFace = b3FindIncidentFace( hullB, refNormalInB, query.vertexIndex ); + int incFace = b3FindIncidentFace( hullB, refNormalInB, query.indexB ); // Build clip polygon from incident face in frame A b3ClipVertex buffer1[B3_MAX_CLIP_POINTS], buffer2[B3_MAX_CLIP_POINTS]; @@ -1198,19 +1078,30 @@ static bool b3BuildFaceAContact( b3LocalManifold* manifold, int capacity, const // Save cache cache->separation = minSeparation; cache->type = (uint8_t)b3_faceAxisA; - cache->indexA = (uint8_t)query.faceIndex; - cache->indexB = (uint8_t)query.vertexIndex; + cache->indexA = (uint8_t)query.indexA; + cache->indexB = (uint8_t)query.indexB; return true; } static bool b3BuildFaceBContact( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, const b3HullData* hullB, - b3Transform transformBtoA, b3FaceQuery query, b3SATCache* cache ) + b3Transform transformBtoA, b3SeparatingAxis query, b3SATCache* cache ) { + B3_VALIDATE( query.type == b3_faceAxisB ); + b3Transform transformAtoB = b3InvertTransform( transformBtoA ); - bool touching = b3BuildFaceAContact( manifold, capacity, hullB, hullA, transformAtoB, query, cache ); + b3SeparatingAxis flippedQuery = { + .normal = b3Neg( query.normal ), + .separation = query.separation, + .indexA = query.indexB, + .indexB = query.indexA, + .type = b3_faceAxisA, + }; + + bool touching = b3BuildFaceAContact( manifold, capacity, hullB, hullA, transformAtoB, flippedQuery, cache ); if ( touching == false ) { + *cache = (b3SATCache){ 0 }; return false; } @@ -1219,9 +1110,6 @@ static bool b3BuildFaceBContact( b3LocalManifold* manifold, int capacity, const // Transform and flip normal so it points from A to B, even though the B has the reference face. manifold->normal = b3Neg( b3MulMV( matrix, manifold->normal ) ); - cache->type = (uint8_t)b3_faceAxisB; - cache->indexA = (uint8_t)query.vertexIndex; - cache->indexB = (uint8_t)query.faceIndex; // Transform points from frame B to frame A. // Also flip the pairs to ensure correct matches. @@ -1232,12 +1120,20 @@ static bool b3BuildFaceBContact( b3LocalManifold* manifold, int capacity, const pt->pair = b3FlipPair( pt->pair ); } + cache->type = (uint8_t)b3_faceAxisB; + cache->indexA = (uint8_t)query.indexA; + cache->indexB = (uint8_t)query.indexB; + return true; } -static bool b3BuildEdgeContact( b3LocalManifold* manifold, const b3HullData* hullA, const b3HullData* hullB, b3Transform transformBtoA, - b3EdgeQuery query, b3SATCache* cache ) +static bool b3BuildEdgeContact( b3LocalManifold* manifold, const b3HullData* hullA, const b3HullData* hullB, + b3Transform transformBtoA, b3SeparatingAxis query, b3SATCache* cache ) { + B3_VALIDATE( query.type == b3_edgePairAxis ); + B3_VALIDATE( 0 <= query.indexA && query.indexA < hullA->edgeCount ); + B3_VALIDATE( 0 <= query.indexB && query.indexB < hullB->edgeCount ); + // Work in shapeA coordinates const b3HullHalfEdge* edgesA = b3GetHullEdges( hullA ); const b3Vec3* pointsA = b3GetHullPoints( hullA ); @@ -1249,7 +1145,6 @@ static bool b3BuildEdgeContact( b3LocalManifold* manifold, const b3HullData* hul const b3HullHalfEdge* edgeA = edgesA + query.indexA; const b3HullHalfEdge* twinA = edgesA + edgeA->twin; - b3Vec3 centerA = hullA->center; b3Vec3 pA = pointsA[edgeA->origin]; b3Vec3 qA = pointsA[twinA->origin]; b3Vec3 eA = b3Sub( qA, pA ); @@ -1260,14 +1155,7 @@ static bool b3BuildEdgeContact( b3LocalManifold* manifold, const b3HullData* hul b3Vec3 qB = b3TransformPoint( transformBtoA, pointsB[twinB->origin] ); b3Vec3 eB = b3Sub( qB, pB ); - b3Vec3 normal = b3Cross( eA, eB ); - normal = b3Normalize( normal ); - - if ( b3Dot( normal, b3Sub( pA, centerA ) ) < 0.0f ) - { - normal = b3Neg( normal ); - } - + b3Vec3 normal = query.normal; b3SegmentDistanceResult result = b3LineDistance( pA, eA, pB, eB ); if ( b3IsWithinSegments( &result ) == false ) @@ -1278,10 +1166,6 @@ static bool b3BuildEdgeContact( b3LocalManifold* manifold, const b3HullData* hul // This can slide off the end from caching float separation = b3Dot( normal, b3Sub( result.point2, result.point1 ) ); - - // todo I suspect this could trip if the cache becomes invalid - // B3_VALIDATE( b3AbsFloat( separation - query.separation ) < B3_LINEAR_SLOP ); - b3Vec3 point = b3MulSV( 0.5f, b3Add( result.point1, result.point2 ) ); // Result in frame A @@ -1302,8 +1186,1101 @@ static bool b3BuildEdgeContact( b3LocalManifold* manifold, const b3HullData* hul return true; } -void b3CollideHulls( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, const b3HullData* hullB, b3Transform transformBtoA, - b3SATCache* cache ) +// Transform a SoA point/normal stream (already split into X/Y/Z) by out = -(R*v (+t)). +// The inputs come straight from the hull's stored SoA arrays, so there's no transpose here. +// IsPoint is a template arg so the translation add is only emitted for points. +static inline void b3NegativeTransformFromSoA( b3Matrix3* R, b3Vec3 p, const float* inX, const float* inY, const float* inZ, + int n, float* outX, float* outY, float* outZ, bool isPoint ) +{ + B3_VALIDATE( ( (uintptr_t)outX & 0xF ) == 0 ); + B3_VALIDATE( ( (uintptr_t)outY & 0xF ) == 0 ); + B3_VALIDATE( ( (uintptr_t)outZ & 0xF ) == 0 ); + + // row-column + b3FloatW r00 = b3SplatW( R->cx.x ); + b3FloatW r01 = b3SplatW( R->cy.x ); + b3FloatW r02 = b3SplatW( R->cz.x ); + b3FloatW r10 = b3SplatW( R->cx.y ); + b3FloatW r11 = b3SplatW( R->cy.y ); + b3FloatW r12 = b3SplatW( R->cz.y ); + b3FloatW r20 = b3SplatW( R->cx.z ); + b3FloatW r21 = b3SplatW( R->cy.z ); + b3FloatW r22 = b3SplatW( R->cz.z ); + + b3FloatW tx = b3ZeroW(); + b3FloatW ty = b3ZeroW(); + b3FloatW tz = b3ZeroW(); + + if ( isPoint ) + { + tx = b3SplatW( p.x ); + ty = b3SplatW( p.y ); + tz = b3SplatW( p.z ); + } + + for ( int i = 0; i < n; i += 4 ) + { + b3FloatW x = b3LoadW( inX + i ); + b3FloatW y = b3LoadW( inY + i ); + b3FloatW z = b3LoadW( inZ + i ); + + // Rotate four vectors at a time + b3FloatW ox = b3Dot3W( r00, r01, r02, x, y, z ); + b3FloatW oy = b3Dot3W( r10, r11, r12, x, y, z ); + b3FloatW oz = b3Dot3W( r20, r21, r22, x, y, z ); + + if ( isPoint ) + { + ox = b3AddW( ox, tx ); + oy = b3AddW( oy, ty ); + oz = b3AddW( oz, tz ); + } + + b3StoreW( outX + i, b3NegW( ox ) ); + b3StoreW( outY + i, b3NegW( oy ) ); + b3StoreW( outZ + i, b3NegW( oz ) ); + } +} + +_Static_assert( B3_MAX_HULL_VERTICES == 128, "must be 128" ); + +#define B3_HULL_BIT_COUNT 7 + +// SIMD support point calculation using a SoA vertex array padded with repeats of the first vertex +// to a multiple of 4. +// +// This minimizes (bias - dot), where the caller is expected to provide a bias that makes this always positive. +// It can be direction dependent. The bias should be just big enough to ensure the value if positive because +// an excessive bias causes a precision loss in the support calculation. +// +// The vertex index is embedded in the low B3_HULL_BIT_COUNT mantissa bits of the value. By minimizing a value that +// is always positive, the minimum carries the smallest index so that padded SoA values will never win. This is +// purpose of using the bias instead of maximizing the dot directly. +// +// The support is then recomputed exactly as dot(normal, vertex), without the embedded index. +// todo consider using this for GJK +static inline void b3GetSupportWide( b3Vec3 normal, const float* vx, const float* vy, const float* vz, int n, float bias, + float* support, int* vertexIndex ) +{ + const b3FloatW nx = b3SplatW( normal.x ); + const b3FloatW ny = b3SplatW( normal.y ); + const b3FloatW nz = b3SplatW( normal.z ); + const b3FloatW biasV = b3SplatW( bias ); + + // Start the minimum at a large value. + b3FloatW minValue = b3SplatW( B3_HUGE ); + + // Tail lanes hold vertex 0 with index bits >= vertexCount, so they never become the min value. + for ( int i = 0; i < n; i += 4 ) + { + b3FloatW x = b3LoadW( vx + i ); + b3FloatW y = b3LoadW( vy + i ); + b3FloatW z = b3LoadW( vz + i ); + b3FloatW d = b3AddW( b3MulW( nz, z ), b3AddW( b3MulW( ny, y ), b3MulW( nx, x ) ) ); + + // This is always positive. + b3FloatW value = b3SubW( biasV, d ); + b3FloatW augmentedValue = b3EmbedIndexW( value, i, B3_HULL_BIT_COUNT ); + minValue = b3MinW( minValue, augmentedValue ); + } + + // One horizontal min, the winning lane's value and index bits ride through. + int vi = b3MinIndexW( minValue, B3_HULL_BIT_COUNT ); + + // Exact support for the chosen vertex. + *vertexIndex = vi; + + // Dot product + *support = normal.x * vx[vi] + normal.y * vy[vi] + normal.z * vz[vi]; +} + +#define NE ( B3_MAX_HULL_EDGES + 4 ) +#define NF ( B3_MAX_HULL_FACES + 4 ) +#define NV ( B3_MAX_HULL_VERTICES + 4 ) + +// SIMD separating axis test based on an implementation developed by Cairn Overturf. +// See his article: https://cairno.substack.com/p/improvements-to-the-separating-axis +b3AxisQuery b3ComputeSeparatingAxis( const b3HullData* hullA, const b3HullData* hullB, b3Transform xfB, bool earlyReturn ) +{ + b3Matrix3 R = b3MakeMatrixFromQuat( xfB.q ); + b3Matrix3 invR = b3Transpose( R ); + + float speculativeDistance = B3_SPECULATIVE_DISTANCE; + + b3AxisQuery res = { + .faceA = + { + .normal = b3Vec3_zero, + .separation = -INFINITY, + .indexA = B3_NULL_INDEX, + .indexB = B3_NULL_INDEX, + .type = b3_faceAxisA, + }, + .faceB = + { + .normal = b3Vec3_zero, + .separation = -INFINITY, + .indexA = B3_NULL_INDEX, + .indexB = B3_NULL_INDEX, + .type = b3_faceAxisB, + }, + .edge = + { + .normal = b3Vec3_zero, + .separation = -INFINITY, + .indexA = B3_NULL_INDEX, + .indexB = B3_NULL_INDEX, + .type = b3_edgePairAxis, + }, + .separatedFeature = b3_invalidAxis, + }; + + int faceCountA = hullA->faceCount; + const b3Plane* planesA = b3GetHullPlanes( hullA ); + + int soaVertexCountB = ( hullB->vertexCount + 3 ) & ~3; + const float* vxB = b3GetHullSoaVertices( hullB ); + const float* vyB = vxB + soaVertexCountB; + const float* vzB = vyB + soaVertexCountB; + + b3Vec3 cB = b3AABB_Center( hullB->aabb ); + b3Vec3 hB = b3AABB_Extents( hullB->aabb ); + + // Test A's face planes against B's vertices. + for ( int i = 0; i < faceCountA; ++i ) + { + b3Plane plane = planesA[i]; + b3Vec3 direction = b3Neg( b3MulMV( invR, plane.normal ) ); + float planeSeparation = b3Dot( plane.normal, xfB.p ) - plane.offset; + float biasB = b3Dot( direction, cB ) + 1.0625f * b3Dot( b3Abs( direction ), hB ); + float support; + int vertexIndex; + b3GetSupportWide( direction, vxB, vyB, vzB, soaVertexCountB, biasB, &support, &vertexIndex ); + float separation = planeSeparation - support; + if ( separation > res.faceA.separation ) + { + res.faceA.normal = plane.normal; + res.faceA.separation = separation; + res.faceA.indexA = i; + res.faceA.indexB = vertexIndex; + if ( separation > speculativeDistance && earlyReturn ) + { + res.separatedFeature = b3_faceAxisA; + return res; + } + } + } + + int faceCountB = hullB->faceCount; + const b3Plane* planesB = b3GetHullPlanes( hullB ); + + int soaVertexCountA = ( hullA->vertexCount + 3 ) & ~3; + const float* vxA = b3GetHullSoaVertices( hullA ); + const float* vyA = vxA + soaVertexCountA; + const float* vzA = vyA + soaVertexCountA; + + b3Vec3 cA = b3AABB_Center( hullA->aabb ); + b3Vec3 hA = b3AABB_Extents( hullA->aabb ); + + // Test B's face planes against A's vertices. + for ( int i = 0; i < faceCountB; ++i ) + { + b3Plane plane = planesB[i]; + b3Vec3 direction = b3Neg( b3MulMV( R, plane.normal ) ); + float planeSeparation = b3Dot( direction, xfB.p ) - plane.offset; + float biasA = b3Dot( direction, cA ) + 1.0625f * b3Dot( b3Abs( direction ), hA ); + float support; + int vertexIndex; + b3GetSupportWide( direction, vxA, vyA, vzA, soaVertexCountA, biasA, &support, &vertexIndex ); + float separation = planeSeparation - support; + if ( separation > res.faceB.separation ) + { + res.faceB.normal = direction; + res.faceB.separation = separation; + res.faceB.indexA = vertexIndex; + res.faceB.indexB = i; + // This points from A to B and is in frame A + if ( separation > speculativeDistance && earlyReturn ) + { + res.separatedFeature = b3_faceAxisB; + return res; + } + } + } + + // Transform B into A's space once, into SoA arrays. Extra space so + // tail can be set to zero in all cases. + _Static_assert( ( B3_MAX_HULL_EDGES & 3 ) == 0, "must be multiple of 4" ); + _Static_assert( ( B3_MAX_HULL_FACES & 3 ) == 0, "must be multiple of 4" ); + _Static_assert( ( B3_MAX_HULL_VERTICES & 3 ) == 0, "must be multiple of 4" ); + + // The alignments below are not necessary, but they don't hurt. + + // B face normals in A space, negated. + _Alignas( 16 ) float bFNx[NF]; + _Alignas( 16 ) float bFNy[NF]; + _Alignas( 16 ) float bFNz[NF]; + + // B vertices in A space, negated. + _Alignas( 16 ) float bWx[NV]; + _Alignas( 16 ) float bWy[NV]; + _Alignas( 16 ) float bWz[NV]; + + int soaFaceCountB = ( faceCountB + 3 ) & ~3; + const float* nxB = b3GetHullSoaNormals( hullB ); + const float* nyB = nxB + soaFaceCountB; + const float* nzB = nyB + soaFaceCountB; + + b3NegativeTransformFromSoA( &R, xfB.p, nxB, nyB, nzB, soaFaceCountB, bFNx, bFNy, bFNz, false ); + b3NegativeTransformFromSoA( &R, xfB.p, vxB, vyB, vzB, soaVertexCountB, bWx, bWy, bWz, true ); + + // Per B edge data. C and D are the two face normals, v0 a vertex, DC the edge vector. + _Alignas( 16 ) float bCx[NE]; + _Alignas( 16 ) float bCy[NE]; + _Alignas( 16 ) float bCz[NE]; + _Alignas( 16 ) float bDx[NE]; + _Alignas( 16 ) float bDy[NE]; + _Alignas( 16 ) float bDz[NE]; + _Alignas( 16 ) float bV0x[NE]; + _Alignas( 16 ) float bV0y[NE]; + _Alignas( 16 ) float bV0z[NE]; + _Alignas( 16 ) float bDCx[NE]; + _Alignas( 16 ) float bDCy[NE]; + _Alignas( 16 ) float bDCz[NE]; + + int halfEdgeCountB = hullB->edgeCount; + const b3HullHalfEdge* halfEdgesB = b3GetHullEdges( hullB ); + int nb = 0; + for ( int i = 0; i < halfEdgeCountB; i += 2 ) + { + const b3HullHalfEdge* edge = halfEdgesB + i; + const b3HullHalfEdge* twin = edge + 1; + int f0 = edge->face; + int f1 = twin->face; + int v0 = edge->origin; + int v1 = twin->origin; + + bCx[nb] = bFNx[f0]; + bCy[nb] = bFNy[f0]; + bCz[nb] = bFNz[f0]; + bDx[nb] = bFNx[f1]; + bDy[nb] = bFNy[f1]; + bDz[nb] = bFNz[f1]; + bV0x[nb] = bWx[v0]; + bV0y[nb] = bWy[v0]; + bV0z[nb] = bWz[v0]; + bDCx[nb] = bWx[v1] - bWx[v0]; + bDCy[nb] = bWy[v1] - bWy[v0]; + bDCz[nb] = bWz[v1] - bWz[v0]; + nb += 1; + } + + // Per A edge data, already in A's space so just gathered. n0 and n1 are the two face + // normals, d the edge vector av1-av0, v0 the first vertex. Tol is the + // parallel edge tolerance, scaled by the edge length. + _Alignas( 16 ) float aN0x[NE]; + _Alignas( 16 ) float aN0y[NE]; + _Alignas( 16 ) float aN0z[NE]; + _Alignas( 16 ) float aN1x[NE]; + _Alignas( 16 ) float aN1y[NE]; + _Alignas( 16 ) float aN1z[NE]; + // dir = av1 - av0 + _Alignas( 16 ) float aDx[NE]; + _Alignas( 16 ) float aDy[NE]; + _Alignas( 16 ) float aDz[NE]; + _Alignas( 16 ) float aV0x[NE]; + _Alignas( 16 ) float aV0y[NE]; + _Alignas( 16 ) float aV0z[NE]; + _Alignas( 16 ) float aTol[NE]; + + int halfEdgeCountA = hullA->edgeCount; + const b3HullHalfEdge* halfEdgesA = b3GetHullEdges( hullA ); + int na = 0; + + float squaredTol = B3_PARALLEL_EDGE_TOL * B3_PARALLEL_EDGE_TOL; + for ( int i = 0; i < halfEdgeCountA; i += 2 ) + { + const b3HullHalfEdge* edge = halfEdgesA + i; + const b3HullHalfEdge* twin = edge + 1; + + b3Vec3 A = planesA[edge->face].normal; + b3Vec3 B = planesA[twin->face].normal; + aN0x[na] = A.x; + aN0y[na] = A.y; + aN0z[na] = A.z; + aN1x[na] = B.x; + aN1y[na] = B.y; + aN1z[na] = B.z; + + int v0 = edge->origin; + int v1 = twin->origin; + + aDx[na] = vxA[v1] - vxA[v0]; + aDy[na] = vyA[v1] - vyA[v0]; + aDz[na] = vzA[v1] - vzA[v0]; + aV0x[na] = vxA[v0]; + aV0y[na] = vyA[v0]; + aV0z[na] = vzA[v0]; + + aTol[na] = squaredTol * ( aDx[na] * aDx[na] + aDy[na] * aDy[na] + aDz[na] * aDz[na] ); + na += 1; + } + + // Zero the tail lanes. + b3FloatW zero = b3ZeroW(); + b3StoreW( aN0x + na, zero ); + b3StoreW( aN0y + na, zero ); + b3StoreW( aN0z + na, zero ); + b3StoreW( aN1x + na, zero ); + b3StoreW( aN1y + na, zero ); + b3StoreW( aN1z + na, zero ); + b3StoreW( aDx + na, zero ); + b3StoreW( aDy + na, zero ); + b3StoreW( aDz + na, zero ); + b3StoreW( aV0x + na, zero ); + b3StoreW( aV0y + na, zero ); + b3StoreW( aV0z + na, zero ); + b3StoreW( aTol + na, zero ); + + int edgeCountB = halfEdgeCountB / 2; + +#if defined( B3_SIMD_NONE ) + + // The SIMD emulated version of this code is very slow. This is a purely scalar version + // for platforms that don't have SIMD capability. It is much faster than SIMD emulation. + // WARNING: this math needs to match the SIMD version for cross platform determinism. + + const float EPS = -0.0001f; + + for ( int j = 0; j < edgeCountB; ++j ) + { + float Cx = bCx[j]; + float Cy = bCy[j]; + float Cz = bCz[j]; + float Dx = bDx[j]; + float Dy = bDy[j]; + float Dz = bDz[j]; + float DCx = bDCx[j]; + float DCy = bDCy[j]; + float DCz = bDCz[j]; + float bv0x = bV0x[j]; + float bv0y = bV0y[j]; + float bv0z = bV0z[j]; + + for ( int i = 0; i < na; ++i ) + { + // CBA = C.dir, DBA = D.dir, where dir = B_x_A + float CBA = Cx * aDx[i] + ( Cy * aDy[i] + Cz * aDz[i] ); + float DBA = Dx * aDx[i] + ( Dy * aDy[i] + Dz * aDz[i] ); + if ( CBA * DBA >= EPS ) + { + continue; + } + + // ADC = n0.DC, BDC = n1.DC, where DC = D_x_C + float ADC = aN0x[i] * DCx + ( aN0y[i] * DCy + aN0z[i] * DCz ); + float BDC = aN1x[i] * DCx + ( aN1y[i] * DCy + aN1z[i] * DCz ); + if ( ADC * BDC >= EPS || CBA * BDC >= EPS ) + { + continue; + } + + // Reject near parallel edges + float maxCD = b3MaxFloat( CBA * CBA, DBA * DBA ); + if ( maxCD <= aTol[i] ) + { + continue; + } + + // t = -CBA / (DBA - CBA) + float t = -CBA / ( DBA - CBA ); + + // normal = lerp(t, C, D) = C + (D-C)*t + float nx = Cx + t * ( Dx - Cx ); + float ny = Cy + t * ( Dy - Cy ); + float nz = Cz + t * ( Dz - Cz ); + float len2 = nx * nx + ( ny * ny + nz * nz ); + float inv = 1.0f / sqrtf( len2 ); + nx *= inv; + ny *= inv; + nz *= inv; + + // separation = -dot(normal, av0 + bv0) + float sx = aV0x[i] + bv0x; + float sy = aV0y[i] + bv0y; + float sz = aV0z[i] + bv0z; + + float separation = -( sx * nx + ( sy * ny + sz * nz ) ); + if ( separation > res.edge.separation ) + { + res.edge.normal = (b3Vec3){ nx, ny, nz }; + res.edge.separation = separation; + + // Half edge index + res.edge.indexA = 2 * i; + res.edge.indexB = 2 * j; + + if ( separation > speculativeDistance && earlyReturn ) + { + res.separatedFeature = b3_edgePairAxis; + return res; + } + } + } + } + +#else + + // Edge phase, one B edge against four A edges at a time, no transforms in the loop. + const b3FloatW EPS = b3SplatW( -0.0001f ); + const b3FloatW INF = b3SplatW( INFINITY ); + + for ( int j = 0; j < edgeCountB; ++j ) + { + const b3FloatW Cx = b3SplatW( bCx[j] ); + const b3FloatW Cy = b3SplatW( bCy[j] ); + const b3FloatW Cz = b3SplatW( bCz[j] ); + const b3FloatW Dx = b3SplatW( bDx[j] ); + const b3FloatW Dy = b3SplatW( bDy[j] ); + const b3FloatW Dz = b3SplatW( bDz[j] ); + const b3FloatW DCx = b3SplatW( bDCx[j] ); + const b3FloatW DCy = b3SplatW( bDCy[j] ); + const b3FloatW DCz = b3SplatW( bDCz[j] ); + const b3FloatW bv0x = b3SplatW( bV0x[j] ); + const b3FloatW bv0y = b3SplatW( bV0y[j] ); + const b3FloatW bv0z = b3SplatW( bV0z[j] ); + + for ( int i = 0; i < na; i += 4 ) + { + b3FloatW n0x = b3LoadW( aN0x + i ); + b3FloatW n0y = b3LoadW( aN0y + i ); + b3FloatW n0z = b3LoadW( aN0z + i ); + b3FloatW n1x = b3LoadW( aN1x + i ); + b3FloatW n1y = b3LoadW( aN1y + i ); + b3FloatW n1z = b3LoadW( aN1z + i ); + b3FloatW dx = b3LoadW( aDx + i ); + b3FloatW dy = b3LoadW( aDy + i ); + b3FloatW dz = b3LoadW( aDz + i ); + b3FloatW v0x = b3LoadW( aV0x + i ); + b3FloatW v0y = b3LoadW( aV0y + i ); + b3FloatW v0z = b3LoadW( aV0z + i ); + b3FloatW tol = b3LoadW( aTol + i ); + + // CBA = C.dir, DBA = D.dir, where dir = B_x_A + b3FloatW CBA = b3Dot3W( Cx, Cy, Cz, dx, dy, dz ); + b3FloatW DBA = b3Dot3W( Dx, Dy, Dz, dx, dy, dz ); + // ADC = n0.DC, BDC = n1.DC, where DC = D_x_C + b3FloatW ADC = b3Dot3W( n0x, n0y, n0z, DCx, DCy, DCz ); + b3FloatW BDC = b3Dot3W( n1x, n1y, n1z, DCx, DCy, DCz ); + + // Gauss map arc crossing test, CBA*DBAsupport only turns negative just before returning, + // so this never skips a lane that would trigger the early out. + b3FloatW improves = b3GreaterThanW( separation, b3SplatW( res.edge.separation ) ); + if ( b3AnyTrueW( improves ) == false ) + { + continue; + } + + _Alignas( 16 ) float sA[4]; + _Alignas( 16 ) float nxA[4]; + _Alignas( 16 ) float nyA[4]; + _Alignas( 16 ) float nzA[4]; + b3StoreW( sA, separation ); + b3StoreW( nxA, nx ); + b3StoreW( nyA, ny ); + b3StoreW( nzA, nz ); + + // Reduce in lane order so ties keep the first edge and the early out takes the first + // improving support below zero. Padded tail lanes carry +INF support, so they never + // update or index a->edges out of range. + for ( int lane = 0; lane < 4; lane++ ) + { + int ei = i + lane; + float s = sA[lane]; + if ( s > res.edge.separation ) + { + res.edge.normal = (b3Vec3){ nxA[lane], nyA[lane], nzA[lane] }; + res.edge.separation = s; + + // Half edge index + res.edge.indexA = 2 * ei; + res.edge.indexB = 2 * j; + + if ( s > speculativeDistance && earlyReturn ) + { + res.separatedFeature = b3_edgePairAxis; + return res; + } + } + } + } + } +#endif + + return res; +} + +#undef NE +#undef NF +#undef NV + +#define B3_SIMD_COLLIDE_HULLS 1 + +#if B3_SIMD_COLLIDE_HULLS == 1 + +void b3CollideHulls( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, const b3HullData* hullB, + b3Transform transformBtoA, b3SATCache* cache ) +{ + manifold->pointCount = 0; + + if ( capacity < 4 ) + { + return; + } + + // Work in shapeA coordinates + float speculativeDistance = B3_SPECULATIVE_DISTANCE; + + float linearSlop = B3_LINEAR_SLOP; + const b3HullHalfEdge* edgesA = b3GetHullEdges( hullA ); + const b3Plane* planesA = b3GetHullPlanes( hullA ); + const b3Vec3* pointsA = b3GetHullPoints( hullA ); + + const b3HullHalfEdge* edgesB = b3GetHullEdges( hullB ); + const b3Plane* planesB = b3GetHullPlanes( hullB ); + const b3Vec3* pointsB = b3GetHullPoints( hullB ); + + cache->hit = 0; + + // Attempt to use the cache to speed up collision + switch ( cache->type ) + { + case b3_invalidAxis: + break; + + case b3_faceAxisA: + { + B3_ASSERT( cache->indexA < hullA->faceCount ); + + // Check for separation using cached face + b3Plane plane = planesA[cache->indexA]; + b3Vec3 searchDirectionInB = b3Neg( b3InvRotateVector( transformBtoA.q, plane.normal ) ); + + // todo use b3GetSupportWide + int vertexIndex = b3FindHullSupportVertex( hullB, searchDirectionInB ); + b3Vec3 support = b3TransformPoint( transformBtoA, pointsB[vertexIndex] ); + float separation = b3PlaneSeparation( plane, support ); + + if ( separation >= speculativeDistance ) + { + // Cache hit, shapes are separated + cache->hit = 1; + return; + } + + // Attempt face contact using cached feature + b3SeparatingAxis faceQuery; + faceQuery.normal = plane.normal; + faceQuery.separation = 0.0f; + faceQuery.indexA = cache->indexA; + faceQuery.indexB = vertexIndex; + faceQuery.type = b3_faceAxisA; + + b3SATCache localCache = { 0 }; + bool touching = b3BuildFaceAContact( manifold, capacity, hullA, hullB, transformBtoA, faceQuery, &localCache ); + if ( touching == true && b3AbsFloat( cache->separation - localCache.separation ) < linearSlop ) + { + // Cache hit, contact points generated + cache->hit = 1; + return; + } + } + break; + + case b3_faceAxisB: + { + B3_ASSERT( cache->indexB < hullB->faceCount ); + + // Check for separation using cached face + b3Plane plane = planesB[cache->indexB]; + b3Vec3 searchDirectionInA = b3Neg( b3RotateVector( transformBtoA.q, plane.normal ) ); + + // todo use b3GetSupportWide + int vertexIndex = b3FindHullSupportVertex( hullA, searchDirectionInA ); + b3Vec3 support = b3InvTransformPoint( transformBtoA, pointsA[vertexIndex] ); + float separation = b3PlaneSeparation( plane, support ); + + if ( separation >= speculativeDistance ) + { + // Cache hit, shapes are separated + cache->hit = 1; + return; + } + + // Attempt face contact using cached feature + b3SeparatingAxis faceQuery; + faceQuery.normal = b3Neg( plane.normal ); + faceQuery.separation = 0.0f; + faceQuery.indexA = vertexIndex; + faceQuery.indexB = cache->indexB; + faceQuery.type = b3_faceAxisB; + + b3SATCache localCache = { 0 }; + bool touching = b3BuildFaceBContact( manifold, capacity, hullA, hullB, transformBtoA, faceQuery, &localCache ); + if ( touching == true && b3AbsFloat( cache->separation - localCache.separation ) < linearSlop ) + { + // Cache hit, contact points generated + cache->hit = 1; + return; + } + } + break; + + case b3_edgePairAxis: + { + int indexA = cache->indexA; + const b3HullHalfEdge* edge1 = edgesA + indexA; + const b3HullHalfEdge* twin1 = edgesA + indexA + 1; + B3_ASSERT( edge1->twin == indexA + 1 && twin1->twin == indexA ); + + b3Vec3 pA = pointsA[edge1->origin]; + b3Vec3 qA = pointsA[twin1->origin]; + b3Vec3 eA = b3Sub( qA, pA ); + + b3Vec3 uA = planesA[edge1->face].normal; + b3Vec3 vA = planesA[twin1->face].normal; + + int indexB = cache->indexB; + const b3HullHalfEdge* edge2 = edgesB + indexB; + const b3HullHalfEdge* twin2 = edgesB + indexB + 1; + B3_ASSERT( edge2->twin == indexB + 1 && twin2->twin == indexB ); + + b3Vec3 pB = b3TransformPoint( transformBtoA, pointsB[edge2->origin] ); + b3Vec3 qB = b3TransformPoint( transformBtoA, pointsB[twin2->origin] ); + b3Vec3 eB = b3Sub( qB, pB ); + + b3Vec3 uB = b3RotateVector( transformBtoA.q, planesB[edge2->face].normal ); + b3Vec3 vB = b3RotateVector( transformBtoA.q, planesB[twin2->face].normal ); + + // flipping the signs of u2 and v2 + // cross(v2, u2) == cross(-v2, -u2) + // so we still use -e2 + // but we can also use e1 = cross(u1, v1) and e2 = cross(u2, v2) + float cba = b3Dot( uB, eA ); + float dba = b3Dot( vB, eA ); + float adc = -b3Dot( uA, eB ); + float bdc = -b3Dot( vA, eB ); + + if ( cba * dba < 0.0f && adc * bdc < 0.0f && cba * bdc > 0.0f ) + { + // Avoid nearly parallel edges that may lead to invalid separation values at the noise floor. + float squaredTolerance = B3_PARALLEL_EDGE_TOL * B3_PARALLEL_EDGE_TOL; + if ( b3MaxFloat( cba * cba, dba * dba ) >= squaredTolerance * b3LengthSquared( eA ) ) + { + // Transform reference center of the first hull into local space of the second hull + float t = cba / ( cba - dba ); + b3Vec3 axis = b3Lerp( uB, vB, t ); + B3_VALIDATE( b3LengthSquared( axis ) > 1000.0f * FLT_MIN ); + axis = b3Normalize( axis ); + float separation = b3Dot( axis, b3Sub( qA, qB ) ); + + if ( separation > speculativeDistance ) + { + // Cache hit, shapes are separated + cache->hit = 1; + return; + } + + // Try to rebuild contact from last features + b3SeparatingAxis edgeQuery = { 0 }; + edgeQuery.normal = b3Neg( axis ); + edgeQuery.separation = 0.0f; + edgeQuery.indexA = cache->indexA; + edgeQuery.indexB = cache->indexB; + edgeQuery.type = b3_edgePairAxis; + + b3SATCache localCache = { 0 }; + bool touching = b3BuildEdgeContact( manifold, hullA, hullB, transformBtoA, edgeQuery, &localCache ); + + // This separation tolerance may have a big impact on performance in some benchmarks. + if ( touching && b3AbsFloat( cache->separation - localCache.separation ) < linearSlop ) + { + // Cache hit, contact point generated + cache->hit = 1; + return; + } + } + } + } + break; + + // This case is for testing + case b3_manualFaceAxisA: + { + b3AxisQuery axisQuery = b3ComputeSeparatingAxis( hullA, hullB, transformBtoA, false ); + b3SeparatingAxis faceQuery = axisQuery.faceA; + b3BuildFaceAContact( manifold, capacity, hullA, hullB, transformBtoA, faceQuery, cache ); + return; + } + + // This case is for testing + case b3_manualFaceAxisB: + { + b3AxisQuery axisQuery = b3ComputeSeparatingAxis( hullA, hullB, transformBtoA, false ); + b3SeparatingAxis faceQuery = axisQuery.faceB; + b3BuildFaceBContact( manifold, capacity, hullA, hullB, transformBtoA, faceQuery, cache ); + return; + } + + // This case is for testing + case b3_manualEdgePairAxis: + { + b3AxisQuery axisQuery = b3ComputeSeparatingAxis( hullA, hullB, transformBtoA, false ); + b3SeparatingAxis edgeQuery = axisQuery.edge; + if ( edgeQuery.indexA != B3_NULL_INDEX ) + { + b3BuildEdgeContact( manifold, hullA, hullB, transformBtoA, edgeQuery, cache ); + } + return; + } + + default: + B3_ASSERT( false ); + break; + } + + manifold->pointCount = 0; + *cache = (b3SATCache){ 0 }; + + b3AxisQuery axisQuery = b3ComputeSeparatingAxis( hullA, hullB, transformBtoA, true ); + + if ( axisQuery.separatedFeature != b3_invalidAxis ) + { + // We found a separating axis + cache->type = axisQuery.separatedFeature; + + if ( axisQuery.separatedFeature == b3_faceAxisA ) + { + B3_VALIDATE( axisQuery.faceA.separation > speculativeDistance ); + cache->separation = axisQuery.faceA.separation; + cache->indexA = (uint8_t)axisQuery.faceA.indexA; + cache->indexB = (uint8_t)axisQuery.faceA.indexB; + } + else if ( axisQuery.separatedFeature == b3_faceAxisB ) + { + B3_VALIDATE( axisQuery.faceB.separation > speculativeDistance ); + cache->separation = axisQuery.faceB.separation; + cache->indexA = (uint8_t)axisQuery.faceB.indexA; + cache->indexB = (uint8_t)axisQuery.faceB.indexB; + } + else + { + B3_ASSERT( axisQuery.separatedFeature == b3_edgePairAxis ); + B3_VALIDATE( axisQuery.edge.separation > speculativeDistance ); + cache->separation = axisQuery.edge.separation; + cache->indexA = (uint8_t)axisQuery.edge.indexA; + cache->indexB = (uint8_t)axisQuery.edge.indexB; + } + return; + } + + B3_VALIDATE( axisQuery.faceA.separation <= speculativeDistance || axisQuery.faceB.separation <= speculativeDistance || + axisQuery.edge.separation <= speculativeDistance ); + + if ( axisQuery.faceA.separation > axisQuery.faceB.separation ) + { + b3SeparatingAxis faceQuery = axisQuery.faceA; + B3_VALIDATE( 0 <= faceQuery.indexA && faceQuery.indexA < hullA->faceCount ); + B3_VALIDATE( 0 <= faceQuery.indexB && faceQuery.indexB < hullB->vertexCount ); + + // Face contact A + b3BuildFaceAContact( manifold, capacity, hullA, hullB, transformBtoA, faceQuery, cache ); + + B3_VALIDATE( cache->indexA < hullA->faceCount ); + B3_VALIDATE( cache->indexB < hullB->vertexCount ); + } + else + { + b3SeparatingAxis faceQuery = axisQuery.faceB; + B3_VALIDATE( 0 <= faceQuery.indexA && faceQuery.indexA < hullA->vertexCount ); + B3_VALIDATE( 0 <= faceQuery.indexB && faceQuery.indexB < hullB->faceCount ); + + // Face contact B + b3BuildFaceBContact( manifold, capacity, hullA, hullB, transformBtoA, faceQuery, cache ); + + B3_VALIDATE( cache->indexA < hullA->vertexCount ); + B3_VALIDATE( cache->indexB < hullB->faceCount ); + } + + b3SeparatingAxis edgeQuery = axisQuery.edge; + + if ( edgeQuery.indexA == B3_NULL_INDEX ) + { + // There are no valid edge pairs (all edges parallel) + return; + } + + float clipSeparation = cache->separation; + float edgeTol = linearSlop; + + // Face contact can be empty if it does not realize the axis of minimum penetration. + // Create edge contact if face contact fails or edge contact is significantly better! + if ( manifold->pointCount == 0 || edgeQuery.separation > clipSeparation + edgeTol ) + { + B3_ASSERT( 0 <= edgeQuery.indexA && edgeQuery.indexA < hullA->edgeCount ); + B3_ASSERT( 0 <= edgeQuery.indexB && edgeQuery.indexB < hullB->edgeCount ); + + // Edge contact + b3LocalManifold edgeManifold = { 0 }; + b3LocalManifoldPoint edgePoint = { 0 }; + edgeManifold.points = &edgePoint; + + b3SATCache edgeCache = { 0 }; + b3BuildEdgeContact( &edgeManifold, hullA, hullB, transformBtoA, edgeQuery, &edgeCache ); + + // It is possible with speculation to have vertex-vertex collision that is missed by SAT, + // so edge contact yields no points. In that case perhaps the face contact has some points. + if ( edgeManifold.pointCount == 1 ) + { + // Copy edge manifold out, being careful to preserve manifold point buffer. + b3LocalManifoldPoint* points = manifold->points; + *manifold = edgeManifold; + manifold->points = points; + manifold->points[0] = edgePoint; + *cache = edgeCache; + } + } +} + +#else + +// todo this code has gone stale, will be deleted soon + +typedef struct b3FaceQuery +{ + float separation; + int faceIndex; + int vertexIndex; +} b3FaceQuery; + +typedef struct b3EdgeQuery +{ + b3Vec3 normal; + float separation; + int indexA; + int indexB; +} b3EdgeQuery; + +// Old non-SIMD version. Keeping this for testing and comparisons + +static b3FaceQuery b3QueryFaceDirections( const b3HullData* hullA, const b3HullData* hullB, b3Transform relativeTransform ) +{ + // We perform all computations in local space of the second hull + b3Transform transform = b3InvertTransform( relativeTransform ); + const b3Plane* planesA = b3GetHullPlanes( hullA ); + const b3Vec3* pointsB = b3GetHullPoints( hullB ); + + int maxFaceIndex = -1; + int maxVertexIndex = -1; + float maxFaceSeparation = -FLT_MAX; + float speculativeDistance = B3_SPECULATIVE_DISTANCE; + + for ( int faceIndex = 0; faceIndex < hullA->faceCount; ++faceIndex ) + { + b3Plane plane = b3TransformPlane( transform, planesA[faceIndex] ); + int vertexIndex = b3FindHullSupportVertex( hullB, b3Neg( plane.normal ) ); + b3Vec3 support = pointsB[vertexIndex]; + + float separation = b3PlaneSeparation( plane, support ); + if ( separation > maxFaceSeparation ) + { + maxFaceIndex = faceIndex; + maxVertexIndex = vertexIndex; + maxFaceSeparation = separation; + + if ( separation >= speculativeDistance ) + { + return (b3FaceQuery){ + .separation = maxFaceSeparation, + .faceIndex = (uint8_t)maxFaceIndex, + .vertexIndex = (uint8_t)maxVertexIndex, + }; + } + } + } + + return (b3FaceQuery){ + .separation = maxFaceSeparation, + .faceIndex = (uint8_t)maxFaceIndex, + .vertexIndex = (uint8_t)maxVertexIndex, + }; +} + +static b3EdgeQuery b3QueryEdgeDirections( const b3HullData* hullA, const b3HullData* hullB, b3Transform transformBtoA ) +{ + // Find axis of minimum penetration + b3Vec3 maxNormal = b3Vec3_zero; + float maxSeparation = -FLT_MAX; + int maxIndexA = B3_NULL_INDEX; + int maxIndexB = B3_NULL_INDEX; + + const b3HullHalfEdge* edgesA = b3GetHullEdges( hullA ); + const b3Vec3* pointsA = b3GetHullPoints( hullA ); + const b3Plane* planesA = b3GetHullPlanes( hullA ); + const b3HullHalfEdge* edgesB = b3GetHullEdges( hullB ); + const b3Vec3* pointsB = b3GetHullPoints( hullB ); + const b3Plane* planesB = b3GetHullPlanes( hullB ); + + // Work in frame A + b3Matrix3 matrix = b3MakeMatrixFromQuat( transformBtoA.q ); + float speculativeDistance = B3_SPECULATIVE_DISTANCE; + float squaredTolerance = B3_PARALLEL_EDGE_TOL * B3_PARALLEL_EDGE_TOL; + + // Arranged to minimize transform operations + for ( int indexB = 0; indexB < hullB->edgeCount; indexB += 2 ) + { + const b3HullHalfEdge* edgeB = edgesB + indexB; + const b3HullHalfEdge* twinB = edgesB + indexB + 1; + B3_ASSERT( edgeB->twin == indexB + 1 && twinB->twin == indexB ); + + b3Vec3 qB = pointsB[twinB->origin]; + b3Vec3 eB = b3MulMV( matrix, b3Sub( qB, pointsB[edgeB->origin] ) ); + qB = b3Add( b3MulMV( matrix, qB ), transformBtoA.p ); + + b3Vec3 uB = b3MulMV( matrix, planesB[edgeB->face].normal ); + b3Vec3 vB = b3MulMV( matrix, planesB[twinB->face].normal ); + + for ( int indexA = 0; indexA < hullA->edgeCount; indexA += 2 ) + { + const b3HullHalfEdge* edgeA = edgesA + indexA; + const b3HullHalfEdge* twinA = edgesA + indexA + 1; + B3_ASSERT( edgeA->twin == indexA + 1 && twinA->twin == indexA ); + + b3Vec3 qA = pointsA[twinA->origin]; + b3Vec3 eA = b3Sub( qA, pointsA[edgeA->origin] ); + b3Vec3 uA = planesA[edgeA->face].normal; + b3Vec3 vA = planesA[twinA->face].normal; + + // See "Collision Detection of Convex Polyhedra Based on Duality Transformation" + // Two edges build a face on the Minkowski sum if the associated arcs AB and CD intersect on the Gauss map. + // The associated arcs are defined by the adjacent face normals of each edge. + + // These are signed volumes with an edge optimization to avoid cross products + // eA parallel to cross(vA, uA) + // eB parallel to cross(vB, uB) + // Since only signs are tested, length doesn't matter. + + float cba = b3Dot( uB, eA ); + float dba = b3Dot( vB, eA ); + float adc = -b3Dot( uA, eB ); + float bdc = -b3Dot( vA, eB ); + + if ( cba * dba < 0.0f && adc * bdc < 0.0f && cba * bdc > 0.0f ) + { + // Avoid nearly parallel edges that may lead to invalid separation values at the noise floor. + if ( b3MaxFloat( cba * cba, dba * dba ) < squaredTolerance * b3LengthSquared( eA ) ) + { + continue; + } + + // The intersection of the arcs on the Gauss map is the edge pair axis. Cast the + // arc of hull B (from uB to vB) against the plane containing the arc of hull A: + // dot(uB + t * (vB - uB), eA) == 0 + // then + // t = cba / (cba - dba) + // + // The signs of cba and dba differ (Minkowski test), so the division is safe. + // + // The axis generated points from B to A by construction since it lands between + // two face normals on B. This removes the need to orient the separation axis + // using the hull centers. + // + // The axis is perpendicular to both edges so I can use qA and qB as arbitrary + // points on edgeA and edgeB to measure the separation. + float t = cba / ( cba - dba ); + b3Vec3 axis = b3Lerp( uB, vB, t ); + B3_VALIDATE( b3LengthSquared( axis ) > 1000.0f * FLT_MIN ); + axis = b3Normalize( axis ); + float separation = b3Dot( axis, b3Sub( qA, qB ) ); + + if ( separation > maxSeparation ) + { + // Continues to find the maximum separating axis + // Flip normal so it points from A to B + maxNormal = b3Neg( axis ); + maxSeparation = separation; + maxIndexA = indexA; + maxIndexB = indexB; + + if ( separation >= speculativeDistance ) + { + // Cache hit, shapes are separated + return (b3EdgeQuery){ + .normal = maxNormal, + .separation = maxSeparation, + .indexA = maxIndexA, + .indexB = maxIndexB, + }; + } + } + } + } + } + + return (b3EdgeQuery){ + .normal = maxNormal, + .separation = maxSeparation, + .indexA = maxIndexA, + .indexB = maxIndexB, + }; +} + +void b3CollideHulls( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, const b3HullData* hullB, + b3Transform transformBtoA, b3SATCache* cache ) { manifold->pointCount = 0; @@ -1405,55 +2382,64 @@ void b3CollideHulls( b3LocalManifold* manifold, int capacity, const b3HullData* case b3_edgePairAxis: { - int index1 = cache->indexA; - const b3HullHalfEdge* edge1 = edgesA + index1; - const b3HullHalfEdge* twin1 = edgesA + index1 + 1; - B3_ASSERT( edge1->twin == index1 + 1 && twin1->twin == index1 ); + int indexA = cache->indexA; + const b3HullHalfEdge* edge1 = edgesA + indexA; + const b3HullHalfEdge* twin1 = edgesA + indexA + 1; + B3_ASSERT( edge1->twin == indexA + 1 && twin1->twin == indexA ); - b3Vec3 p1 = pointsA[edge1->origin]; - b3Vec3 q1 = pointsA[twin1->origin]; - b3Vec3 e1 = b3Sub( q1, p1 ); + b3Vec3 pA = pointsA[edge1->origin]; + b3Vec3 qA = pointsA[twin1->origin]; + b3Vec3 eA = b3Sub( qA, pA ); - b3Vec3 u1 = planesA[edge1->face].normal; - b3Vec3 v1 = planesA[twin1->face].normal; + b3Vec3 uA = planesA[edge1->face].normal; + b3Vec3 vA = planesA[twin1->face].normal; - int index2 = cache->indexB; - const b3HullHalfEdge* edge2 = edgesB + index2; - const b3HullHalfEdge* twin2 = edgesB + index2 + 1; - B3_ASSERT( edge2->twin == index2 + 1 && twin2->twin == index2 ); + int indexB = cache->indexB; + const b3HullHalfEdge* edge2 = edgesB + indexB; + const b3HullHalfEdge* twin2 = edgesB + indexB + 1; + B3_ASSERT( edge2->twin == indexB + 1 && twin2->twin == indexB ); - b3Vec3 p2 = b3TransformPoint( transformBtoA, pointsB[edge2->origin] ); - b3Vec3 q2 = b3TransformPoint( transformBtoA, pointsB[twin2->origin] ); - b3Vec3 e2 = b3Sub( q2, p2 ); + b3Vec3 pB = b3TransformPoint( transformBtoA, pointsB[edge2->origin] ); + b3Vec3 qB = b3TransformPoint( transformBtoA, pointsB[twin2->origin] ); + b3Vec3 eB = b3Sub( qB, pB ); - b3Vec3 u2 = b3RotateVector( transformBtoA.q, planesB[edge2->face].normal ); - b3Vec3 v2 = b3RotateVector( transformBtoA.q, planesB[twin2->face].normal ); + b3Vec3 uB = b3RotateVector( transformBtoA.q, planesB[edge2->face].normal ); + b3Vec3 vB = b3RotateVector( transformBtoA.q, planesB[twin2->face].normal ); // flipping the signs of u2 and v2 // cross(v2, u2) == cross(-v2, -u2) // so we still use -e2 // but we can also use e1 = cross(u1, v1) and e2 = cross(u2, v2) - bool isMinkowski = b3IsMinkowskiFace( u1, v1, e1, b3Neg( u2 ), b3Neg( v2 ), e2 ); - if ( isMinkowski == true ) + float cba = b3Dot( uB, eA ); + float dba = b3Dot( vB, eA ); + float adc = -b3Dot( uA, eB ); + float bdc = -b3Dot( vA, eB ); + + if ( cba * dba < 0.0f && adc * bdc < 0.0f && cba * bdc > 0.0f ) { - // Transform reference center of the first hull into local space of the second hull - b3Vec3 c1 = hullA->center; - b3Vec3 c2 = b3TransformPoint( transformBtoA, hullB->center ); - - float separation = b3EdgeEdgeSeparation( p1, e1, c1, p2, e2, c2 ); - if ( separation > speculativeDistance ) + // Avoid nearly parallel edges that may lead to invalid separation values at the noise floor. + float squaredTolerance = B3_PARALLEL_EDGE_TOL * B3_PARALLEL_EDGE_TOL; + if ( b3MaxFloat( cba * cba, dba * dba ) >= squaredTolerance * b3LengthSquared( eA ) ) { - // Cache hit, shapes are separated - return; - } + // Transform reference center of the first hull into local space of the second hull + float t = cba / ( cba - dba ); + b3Vec3 axis = b3Lerp( uB, vB, t ); + B3_VALIDATE( b3LengthSquared( axis ) > 1000.0f * FLT_MIN ); + axis = b3Normalize( axis ); + float separation = b3Dot( axis, b3Sub( qA, qB ) ); + + if ( separation > speculativeDistance ) + { + // Cache hit, shapes are separated + return; + } - // if ( cache->separation <= speculativeDistance ) - { // Try to rebuild contact from last features - b3EdgeQuery edgeQuery; + b3EdgeQuery edgeQuery = { 0 }; + edgeQuery.normal = b3Neg( axis ); + edgeQuery.separation = 0.0f; edgeQuery.indexA = cache->indexA; edgeQuery.indexB = cache->indexB; - edgeQuery.separation = 0.0f; b3SATCache localCache = { 0 }; bool touching = b3BuildEdgeContact( manifold, hullA, hullB, transformBtoA, edgeQuery, &localCache ); @@ -1598,3 +2584,5 @@ void b3CollideHulls( b3LocalManifold* manifold, int capacity, const b3HullData* } } } + +#endif diff --git a/vendor/box3d/src/src/core.h b/vendor/box3d/src/src/core.h index 3aaf196b1..005e2d6ac 100644 --- a/vendor/box3d/src/src/core.h +++ b/vendor/box3d/src/src/core.h @@ -57,7 +57,12 @@ #define B3_SIMD_WIDTH 4 //#pragma message("B3_SIMD_SSE2") #elif defined( B3_CPU_ARM ) + // ARMv7 Neon doesn't have divide or sqrt so cannot be used. + #if defined( __aarch64__ ) || defined( _M_ARM64 ) #define B3_SIMD_NEON + #else + #define B3_SIMD_NONE + #endif #define B3_SIMD_WIDTH 4 //#pragma message("B3_SIMD_NEON") #elif defined( B3_CPU_WASM ) @@ -132,6 +137,7 @@ void* b3AllocZeroed( size_t size ); void b3Free( void* mem, size_t size ); void* b3GrowAlloc( void* oldMem, int oldSize, int newSize ); +B3_PRINTF_FORMAT( 1, 2 ) void b3Log( const char* format, ... ); // Geometry content hashes reserve zero to mean unhashed diff --git a/vendor/box3d/src/src/height_field.c b/vendor/box3d/src/src/height_field.c index 1b0307fe9..69c2474e9 100644 --- a/vendor/box3d/src/src/height_field.c +++ b/vendor/box3d/src/src/height_field.c @@ -749,7 +749,7 @@ b3CastOutput b3ShapeCastHeightField( const b3HeightFieldData* heightField, const // nextFractionX / nextFractionZ advance in units of the clamped sweep // [minFraction, maxFraction], but bestFraction is a fraction of the full input // translation. Precompute the affine map from clamped space to input space so - // the loop termination test compares like with like — otherwise it can exit + // the loop termination test compares like with like. Otherwise it can exit // early and miss a closer hit in a later cell. float gridFractionScale = input->maxFraction * ( maxFraction - minFraction ); float gridFractionOffset = input->maxFraction * minFraction; @@ -1382,7 +1382,7 @@ b3HeightFieldData* b3CreateGrid( int rowCount, int columnCount, b3Vec3 scale, bo } b3HeightFieldData* b3CreateWave( int rowCount, int columnCount, b3Vec3 scale, float rowFrequency, float columnFrequency, - bool makeHoles ) + bool makeHoles ) { int heightCount = rowCount * columnCount; float* heights = (float*)b3Alloc( heightCount * sizeof( float ) ); @@ -1390,14 +1390,18 @@ b3HeightFieldData* b3CreateWave( int rowCount, int columnCount, b3Vec3 scale, fl float omegaZ = 2.0f * B3_PI * rowFrequency; float omegaX = 2.0f * B3_PI * columnFrequency; + b3CosSin cs = { 0 }; + for ( int i = 0; i < rowCount; ++i ) { - float rowHeight = sinf( omegaZ * i ); + cs = b3ComputeCosSin( omegaZ * i ); + float rowHeight = cs.sine; for ( int j = 0; j < columnCount; ++j ) { int k = i * columnCount + j; - float columnHeight = sinf( omegaX * j ); + cs = b3ComputeCosSin( omegaX * j ); + float columnHeight = cs.sine; heights[k] = rowHeight * columnHeight; } } diff --git a/vendor/box3d/src/src/hull.c b/vendor/box3d/src/src/hull.c index 75bace9f9..ea3ed7532 100644 --- a/vendor/box3d/src/src/hull.c +++ b/vendor/box3d/src/src/hull.c @@ -4,7 +4,7 @@ // Dirk Gregorius contributed portions of this code #include "algorithm.h" -#include "hull_map.h" +#include "hull.h" #include "math_internal.h" #include "shape.h" @@ -26,8 +26,8 @@ #define B3_MARK_VISIBLE 0 #define B3_MARK_DELETE 1 -// Final hull is index-encoded with uint8_t, so vertex/edge/face counts are capped at UINT8_MAX. -#define B3_HULL_LIMIT UINT8_MAX +// Final hull is index-encoded with uint8_t, so vertex/edge/face counts are capped at 256. +#define B3_HULL_MAX_COUNT ( UINT8_MAX + 1 ) typedef struct b3QHListNode { @@ -120,12 +120,16 @@ typedef struct b3HullBuilder b3QHHalfEdge* edgeBase; int edgeCapacity; int edgeCount; - b3QHHalfEdge* edgeFreeHead; // LIFO free list; overlays edge->next + + // LIFO free list. Built with edge->next. + b3QHHalfEdge* edgeFreeHead; b3QHFace* faceBase; int faceCapacity; int faceCount; - b3QHFace* faceFreeHead; // LIFO free list; overlays face->link.next + + // LIFO free list. Built with face->link.next. + b3QHFace* faceFreeHead; // Reusable scratch buffers. b3QHHalfEdge** horizon; @@ -145,7 +149,6 @@ typedef struct b3HullBuilder int horizonStackCapacity; // Final counts of the constructed hull (vertexList / faceList / half-edges around faces). - // Populated by CleanHull; zero until then. int finalVertexCount; int finalHalfEdgeCount; int finalFaceCount; @@ -300,17 +303,18 @@ static b3QHFace* b3HullBuilder_NewFace( b3HullBuilder* b, b3QHVertex* v1, b3QHVe return face; } -// Remove face from faceList if still linked, clear its edge pointer, then push onto faceFreeHead. -// Uses face->link.next as the free-list next pointer (link.prev stays NULL, so b3QHList_Contains -// returns false on a free slot, as required by the retire-guard in ResolveFaces). +// Remove face and add to free list. static void b3HullBuilder_RetireFace( b3HullBuilder* b, b3QHFace* face ) { + // Sometimes a cone face gets merged and never added to the list. if ( b3QHList_Contains( &face->link ) ) { b3QHList_Remove( &face->link ); } + face->edge = NULL; - // link.prev is already NULL after Remove (or was never set). link.next holds free-list ptr. + // link.prev is already NULL after Remove (or was never set). + B3_VALIDATE( face->link.prev == NULL ); face->link.next = (b3QHListNode*)b->faceFreeHead; b->faceFreeHead = face; } @@ -1232,7 +1236,7 @@ static void b3HullBuilder_ResolveVertices( b3HullBuilder* b ) static void b3HullBuilder_ResolveFaces( b3HullBuilder* b ) { // Splice deleted faces out of the face list. Faces already retired by AbsorbFaces are no - // longer on faceList, so we guard with b3QHList_Contains before removing. + // longer on faceList, so guard with b3QHList_Contains before removing. b3QHListNode* node = b->faceList.link.next; while ( node != &b->faceList.link ) { @@ -1242,7 +1246,21 @@ static void b3HullBuilder_ResolveFaces( b3HullBuilder* b ) if ( face->mark == B3_MARK_DELETE && b3QHList_Contains( &face->link ) ) { B3_ASSERT( B3_LIST_EMPTY( &face->conflictListHead.link ) ); - b3QHList_Remove( &face->link ); + + // Each half-edge is owned by exactly one face, so ring walks over the + // dead region retire every interior edge exactly once. Merge deleted + // faces are already off the face list. + b3QHHalfEdge* start = face->edge; + b3QHHalfEdge* edge = start; + do + { + b3QHHalfEdge* next = edge->next; + b3HullBuilder_RetireEdge( b, edge ); + edge = next; + } + while ( edge != start ); + + b3HullBuilder_RetireFace( b, face ); } } @@ -1421,12 +1439,13 @@ static bool b3HullBuilder_Construct( b3HullBuilder* b, const b3Vec3* points, int } b3HullBuilder_ComputeTolerance( b, pointCount, shiftedPoints ); - if ( !b3HullBuilder_BuildInitialHull( b, pointCount, shiftedPoints ) ) + bool haveInitialHull = b3HullBuilder_BuildInitialHull( b, pointCount, shiftedPoints ); + if ( haveInitialHull == false ) { return false; } - int budget = b3ClampInt( maxVertexCount - 4, 0, B3_HULL_LIMIT - 4 ); + int budget = b3ClampInt( maxVertexCount - 4, 0, B3_HULL_MAX_COUNT - 4 ); b3QHVertex* vertex = b3HullBuilder_NextConflictVertex( b ); while ( vertex && budget > 0 ) @@ -1447,8 +1466,10 @@ static bool b3HullBuilder_Construct( b3HullBuilder* b, const b3Vec3* points, int typedef struct b3HullWorkSizes { - int N; // pointCount - int M; // clamped maxVertexCount, in [4, B3_HULL_LIMIT] + // Input point count + int N; + // Output point limit + int M; int vertexCapacity; int edgeCapacity; int faceCapacity; @@ -1478,39 +1499,19 @@ static b3HullWorkSizes b3ComputeHullWorkSizes( int pointCount, int clampedMaxCou s.vertexCapacity = pointCount + 4; // Edges and faces use free-list recycling; capacity is proportional to live hull size. - // edgeCapacity: peak is ~twice live edges plus cone edges; floor 48. - s.edgeCapacity = 24 * s.M - 48; - if ( s.edgeCapacity < 48 ) - { - s.edgeCapacity = 48; - } + // edgeCapacity: peak is ~twice live edges plus cone edges. Minimum 48. + s.edgeCapacity = b3MaxInt( 48, 24 * s.M - 48 ); - // faceCapacity: peak intermediate state live faces (<=2*M-4) plus full cone (<=3*M-6); floor 16. - s.faceCapacity = 5 * s.M - 10; - if ( s.faceCapacity < 16 ) - { - s.faceCapacity = 16; - } + // faceCapacity: peak intermediate state live faces (<=2*M-4) plus full cone (<=3*M-6). Minimum 16. + s.faceCapacity = b3MaxInt( 16, 5 * s.M - 10 ); - // Horizon/cone bounded by current half-edge count; mergedFaces by face count. - s.horizonCapacity = 3 * s.M - 6; - if ( s.horizonCapacity < 6 ) - { - s.horizonCapacity = 6; - } + // Horizon/cone bounded by current half-edge count. Merged faces by face count. + s.horizonCapacity = b3MaxInt( 6, 3 * s.M - 6 ); s.coneCapacity = s.horizonCapacity; - s.mergedFacesCapacity = 2 * s.M - 4; - if ( s.mergedFacesCapacity < 4 ) - { - s.mergedFacesCapacity = 4; - } + s.mergedFacesCapacity = b3MaxInt( 4, 2 * s.M - 4 ); // Horizon DFS depth is bounded by the number of live faces (Euler: <=2*M-4). - s.horizonStackCapacity = 2 * s.M - 4; - if ( s.horizonStackCapacity < 4 ) - { - s.horizonStackCapacity = 4; - } + s.horizonStackCapacity = b3MaxInt( 4, 2 * s.M - 4 ); size_t offset = 0; @@ -1607,6 +1608,24 @@ static b3HullHalfEdge* b3GetHullEdgesWrite( b3HullData* hull ) return (b3HullHalfEdge*)( (intptr_t)hull + hull->edgeOffset ); } +static float* b3GetHullSoaVerticesWrite( b3HullData* hull ) +{ + if ( hull->soaVertexOffset == 0 ) + { + return NULL; + } + return (float*)( (intptr_t)hull + hull->soaVertexOffset ); +} + +static float* b3GetHullSoaNormalsWrite( b3HullData* hull ) +{ + if ( hull->soaNormalOffset == 0 ) + { + return NULL; + } + return (float*)( (intptr_t)hull + hull->soaNormalOffset ); +} + int b3FindHullSupportVertex( const b3HullData* hull, b3Vec3 direction ) { int bestIndex = B3_NULL_INDEX; @@ -2028,7 +2047,7 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou } b3Vec3 origin = points[0]; - int clampedMaxCount = b3ClampInt( maxVertexCount, 4, B3_HULL_LIMIT ); + int clampedMaxCount = b3ClampInt( maxVertexCount, 4, B3_MAX_HULL_VERTICES ); // Single allocation for all working memory. b3HullWorkSizes sizes = b3ComputeHullWorkSizes( pointCount, clampedMaxCount ); @@ -2040,40 +2059,41 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou b3Vec3* shiftedPoints = (b3Vec3*)( work + sizes.offsetShiftedPoints ); bool ok = b3HullBuilder_Construct( &builder, points, pointCount, clampedMaxCount, origin, shiftedPoints ); - if ( !ok ) + if ( ok == false ) { b3Free( work, sizes.totalBytes ); return NULL; } - if ( builder.finalVertexCount >= B3_HULL_LIMIT ) + if ( builder.finalVertexCount > B3_MAX_HULL_VERTICES ) { - b3Log( "hull final vertex count of %d exceeds limit of %d", builder.finalVertexCount, B3_HULL_LIMIT ); + b3Log( "hull final vertex count of %d exceeds limit of %d", builder.finalVertexCount, B3_MAX_HULL_VERTICES ); b3Free( work, sizes.totalBytes ); return NULL; } - if ( builder.finalFaceCount >= B3_HULL_LIMIT ) + if ( builder.finalFaceCount > B3_MAX_HULL_FACES ) { - b3Log( "hull final face count of %d exceeds limit of %d", builder.finalFaceCount, B3_HULL_LIMIT ); + b3Log( "hull final face count of %d exceeds limit of %d", builder.finalFaceCount, B3_MAX_HULL_FACES ); b3Free( work, sizes.totalBytes ); return NULL; } - if ( builder.finalHalfEdgeCount >= B3_HULL_LIMIT ) + int maxHalfEdgeCount = 2 * B3_MAX_HULL_EDGES; + if ( builder.finalHalfEdgeCount > maxHalfEdgeCount ) { - b3Log( "hull final half edge count of %d exceeds limit of %d", builder.finalHalfEdgeCount, B3_HULL_LIMIT ); + b3Log( "hull final half edge count of %d exceeds limit of %d", builder.finalHalfEdgeCount, maxHalfEdgeCount ); b3Free( work, sizes.totalBytes ); return NULL; } - // Walk lists into temp arrays bounded by B3_HULL_LIMIT, stamping finalIndex on each node so + // Walk lists into temp arrays bounded by B3_HULL_MAX_COUNT, stamping finalIndex on each node so // the resolution pass below is O(E + F) instead of O(E^2 + F^2). - const b3QHVertex* tempVertices[B3_HULL_LIMIT]; + const b3QHVertex* tempVertices[B3_HULL_MAX_COUNT]; int vertexCount = 0; for ( b3QHListNode* node = builder.vertexList.link.next; node != &builder.vertexList.link; node = node->next ) { - B3_ASSERT( vertexCount <= B3_HULL_LIMIT - 1 ); + B3_ASSERT( vertexCount < B3_HULL_MAX_COUNT ); b3QHVertex* vertex = (b3QHVertex*)node; vertex->finalIndex = vertexCount; @@ -2081,15 +2101,14 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou } // Collect edges in twin-paired order (i, i+1) by stamping each pair as we discover it. - // Replaces b3SortEdges' O(E^2) twin pairing. - const b3QHFace* tempFaces[B3_HULL_LIMIT]; - const b3QHHalfEdge* tempEdges[B3_HULL_LIMIT]; + const b3QHFace* tempFaces[B3_HULL_MAX_COUNT]; + const b3QHHalfEdge* tempEdges[B3_HULL_MAX_COUNT]; int faceCount = 0; int edgeCount = 0; for ( b3QHListNode* faceNode = builder.faceList.link.next; faceNode != &builder.faceList.link; faceNode = faceNode->next ) { - B3_ASSERT( faceCount <= B3_HULL_LIMIT - 1 ); + B3_ASSERT( faceCount < B3_HULL_MAX_COUNT ); b3QHFace* face = (b3QHFace*)faceNode; face->finalIndex = faceCount; @@ -2100,7 +2119,7 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou { if ( edge->finalIndex < 0 ) { - B3_ASSERT( edgeCount + 1 <= B3_HULL_LIMIT - 1 ); + B3_ASSERT( edgeCount + 1 < B3_HULL_MAX_COUNT ); edge->finalIndex = edgeCount; tempEdges[edgeCount++] = edge; @@ -2112,6 +2131,9 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou while ( edge != face->edge ); } + int soaVertexCount = ( vertexCount + 3 ) & ~3; + int soaNormalCount = ( faceCount + 3 ) & ~3; + // Allocate the hull. Arrays hang off the end. size_t byteCount = b3AlignUp8( sizeof( b3HullData ) ); int vertexOffset = (int)byteCount; @@ -2120,10 +2142,14 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou byteCount += b3AlignUp8( vertexCount * (int)sizeof( b3Vec3 ) ); int edgeOffset = (int)byteCount; byteCount += b3AlignUp8( edgeCount * (int)sizeof( b3HullHalfEdge ) ); - int faceOffset = (int)byteCount; - byteCount += b3AlignUp8( faceCount * (int)sizeof( b3HullFace ) ); int planeOffset = (int)byteCount; byteCount += b3AlignUp8( faceCount * (int)sizeof( b3Plane ) ); + int faceOffset = (int)byteCount; + byteCount += b3AlignUp8( faceCount * (int)sizeof( b3HullFace ) ); + int soaVertexOffset = (int)byteCount; + byteCount += b3AlignUp8( 3 * soaVertexCount * (int)sizeof( float ) ); + int soaNormalOffset = (int)byteCount; + byteCount += b3AlignUp8( 3 * soaNormalCount * (int)sizeof( float ) ); b3HullData* hull = b3Alloc( byteCount ); memset( hull, 0, byteCount ); @@ -2132,8 +2158,10 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou hull->vertexOffset = vertexOffset; hull->pointOffset = pointOffset; hull->edgeOffset = edgeOffset; - hull->faceOffset = faceOffset; hull->planeOffset = planeOffset; + hull->faceOffset = faceOffset; + hull->soaVertexOffset = soaVertexOffset; + hull->soaNormalOffset = soaNormalOffset; hull->vertexCount = vertexCount; hull->edgeCount = edgeCount; @@ -2146,11 +2174,29 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou b3HullFace* faces = (b3HullFace*)( (intptr_t)hull + hull->faceOffset ); b3Vec3* finalPoints = b3GetHullPointsWrite( hull ); b3Plane* planes = b3GetHullPlanesWrite( hull ); + float* soaVertices = b3GetHullSoaVerticesWrite( hull ); + float* soaNormals = b3GetHullSoaNormalsWrite( hull ); + + float* vx = soaVertices; + float* vy = vx + soaVertexCount; + float* vz = vy + soaVertexCount; for ( int index = 0; index < vertexCount; ++index ) { vertices[index].edge = 0; - finalPoints[index] = tempVertices[index]->position; + b3Vec3 p = tempVertices[index]->position; + finalPoints[index] = p; + + vx[index] = p.x; + vy[index] = p.y; + vz[index] = p.z; + } + + for ( int index = vertexCount; index < soaVertexCount; ++index ) + { + vx[index] = vx[0]; + vy[index] = vy[0]; + vz[index] = vz[0]; } for ( int index = 0; index < edgeCount; ++index ) @@ -2169,6 +2215,10 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou vertices[edge->origin->finalIndex].edge = (uint8_t)index; } + float* nx = soaNormals; + float* ny = nx + soaNormalCount; + float* nz = ny + soaNormalCount; + for ( int index = 0; index < faceCount; ++index ) { const b3QHFace* face = tempFaces[index]; @@ -2176,6 +2226,18 @@ b3HullData* b3CreateHull( const b3Vec3* points, int pointCount, int maxVertexCou faces[index].edge = (uint8_t)face->edge->finalIndex; planes[index] = face->plane; + + b3Vec3 n = face->plane.normal; + nx[index] = n.x; + ny[index] = n.y; + nz[index] = n.z; + } + + for ( int index = faceCount; index < soaNormalCount; ++index ) + { + nx[index] = 0.0f; + ny[index] = 0.0f; + nz[index] = 0.0f; } // All builder pointers are dead from here on. @@ -2238,9 +2300,10 @@ bool b3CompareHullData( const b3HullData* hull1, const b3HullData* hull2 ) // Hull identity covers every byte, so the structs carry explicit padding. These lock // the layout, re-audit padding if a size changes. -_Static_assert( sizeof( b3HullData ) == 136, "unexpected hull data size" ); -_Static_assert( sizeof( b3BoxHull ) == 440, "unexpected box hull size" ); +_Static_assert( sizeof( b3HullData ) == 144, "unexpected hull data size" ); +_Static_assert( sizeof( b3BoxHull ) == 648, "unexpected box hull size" ); +// Implement b3HullMap. #define NAME b3HullMap #define KEY_TY const b3HullData* #define VAL_TY int @@ -2269,7 +2332,7 @@ b3HullData* b3CloneAndTransformHull( const b3HullData* original, b3Transform tra return NULL; } - b3HullData* hull = (b3HullData*)b3Alloc( original->byteCount ); + b3HullData* hull = b3Alloc( original->byteCount ); memcpy( hull, original, original->byteCount ); b3Vec3 safeScale = b3SafeScale( scale ); @@ -2286,9 +2349,9 @@ b3HullData* b3CloneAndTransformHull( const b3HullData* original, b3Transform tra { const b3HullFace* face = faces + i; - uint8_t startEdgeIndex = face->edge; - uint8_t currentEdgeIndex = startEdgeIndex; - uint8_t prevEdgeIndex = UINT8_MAX; + int startEdgeIndex = face->edge; + int currentEdgeIndex = startEdgeIndex; + int prevEdgeIndex = B3_NULL_INDEX; do { @@ -2304,7 +2367,7 @@ b3HullData* b3CloneAndTransformHull( const b3HullData* original, b3Transform tra } while ( currentEdgeIndex != startEdgeIndex ); - B3_ASSERT( prevEdgeIndex != UINT8_MAX ); + B3_ASSERT( prevEdgeIndex != B3_NULL_INDEX ); currentEdgeIndex = startEdgeIndex; @@ -2312,7 +2375,7 @@ b3HullData* b3CloneAndTransformHull( const b3HullData* original, b3Transform tra { b3HullHalfEdge* edge = edges + currentEdgeIndex; uint8_t nextIndex = edge->next; - edge->next = prevEdgeIndex; + edge->next = (uint8_t)prevEdgeIndex; if ( currentEdgeIndex < edge->twin ) { @@ -2339,12 +2402,32 @@ b3HullData* b3CloneAndTransformHull( const b3HullData* original, b3Transform tra b3Matrix3 matrix = b3MakeMatrixFromQuat( transform.q ); b3Vec3* points = b3GetHullPointsWrite( hull ); + int soaVertexCount = ( vertexCount + 3 ) & ~3; + float* vx = b3GetHullSoaVerticesWrite( hull ); + float* vy = vx + soaVertexCount; + float* vz = vy + soaVertexCount; + for ( int i = 0; i < vertexCount; ++i ) { - points[i] = b3Add( b3MulMV( matrix, b3Mul( safeScale, points[i] ) ), transform.p ); + b3Vec3 p = b3Add( b3MulMV( matrix, b3Mul( safeScale, points[i] ) ), transform.p ); + points[i] = p; + vx[i] = p.x; + vy[i] = p.y; + vz[i] = p.z; + } + + for ( int i = vertexCount; i < soaVertexCount; ++i ) + { + vx[i] = vx[0]; + vy[i] = vy[0]; + vz[i] = vz[0]; } b3Plane* planes = b3GetHullPlanesWrite( hull ); + int soaNormalCount = ( faceCount + 3 ) & ~3; + float* nx = b3GetHullSoaNormalsWrite( hull ); + float* ny = nx + soaNormalCount; + float* nz = ny + soaNormalCount; for ( int i = 0; i < faceCount; ++i ) { @@ -2390,6 +2473,17 @@ b3HullData* b3CloneAndTransformHull( const b3HullData* original, b3Transform tra normal = b3MulSV( 1.0f / area, normal ); planes[i] = b3MakePlaneFromNormalAndPoint( normal, centroid ); + + nx[i] = normal.x; + ny[i] = normal.y; + nz[i] = normal.z; + } + + for ( int i = faceCount; i < soaNormalCount; ++i ) + { + nx[i] = 0.0f; + ny[i] = 0.0f; + nz[i] = 0.0f; } b3UpdateHullBounds( hull ); @@ -2641,8 +2735,10 @@ static const b3BoxHull s_boxHull = { .vertexOffset = offsetof( b3BoxHull, boxVertices ), .pointOffset = offsetof( b3BoxHull, boxPoints ), .edgeOffset = offsetof( b3BoxHull, boxEdges ), - .faceOffset = offsetof( b3BoxHull, boxFaces ), .planeOffset = offsetof( b3BoxHull, boxPlanes ), + .faceOffset = offsetof( b3BoxHull, boxFaces ), + .soaVertexOffset = offsetof( b3BoxHull, vx ), + .soaNormalOffset = offsetof( b3BoxHull, nx ), }, .boxVertices = { @@ -2677,6 +2773,8 @@ static const b3BoxHull s_boxHull = { b3BoxHull b3MakeTransformedBoxHull( float hx, float hy, float hz, b3Transform transform ) { + B3_ASSERT( b3IsValidTransform( transform ) ); + b3BoxHull boxHull = s_boxHull; float minH = 0.2f * B3_LINEAR_SLOP; @@ -2710,6 +2808,61 @@ b3BoxHull b3MakeTransformedBoxHull( float hx, float hy, float hz, b3Transform tr boxHull.boxPoints[6] = b3TransformPoint( transform, (b3Vec3){ -h.x, -h.y, -h.z } ); boxHull.boxPoints[7] = b3TransformPoint( transform, (b3Vec3){ h.x, -h.y, -h.z } ); + // SOA + boxHull.vx[0] = boxHull.boxPoints[0].x; + boxHull.vx[1] = boxHull.boxPoints[1].x; + boxHull.vx[2] = boxHull.boxPoints[2].x; + boxHull.vx[3] = boxHull.boxPoints[3].x; + boxHull.vx[4] = boxHull.boxPoints[4].x; + boxHull.vx[5] = boxHull.boxPoints[5].x; + boxHull.vx[6] = boxHull.boxPoints[6].x; + boxHull.vx[7] = boxHull.boxPoints[7].x; + + boxHull.vy[0] = boxHull.boxPoints[0].y; + boxHull.vy[1] = boxHull.boxPoints[1].y; + boxHull.vy[2] = boxHull.boxPoints[2].y; + boxHull.vy[3] = boxHull.boxPoints[3].y; + boxHull.vy[4] = boxHull.boxPoints[4].y; + boxHull.vy[5] = boxHull.boxPoints[5].y; + boxHull.vy[6] = boxHull.boxPoints[6].y; + boxHull.vy[7] = boxHull.boxPoints[7].y; + + boxHull.vz[0] = boxHull.boxPoints[0].z; + boxHull.vz[1] = boxHull.boxPoints[1].z; + boxHull.vz[2] = boxHull.boxPoints[2].z; + boxHull.vz[3] = boxHull.boxPoints[3].z; + boxHull.vz[4] = boxHull.boxPoints[4].z; + boxHull.vz[5] = boxHull.boxPoints[5].z; + boxHull.vz[6] = boxHull.boxPoints[6].z; + boxHull.vz[7] = boxHull.boxPoints[7].z; + + boxHull.nx[0] = boxHull.boxPlanes[0].normal.x; + boxHull.nx[1] = boxHull.boxPlanes[1].normal.x; + boxHull.nx[2] = boxHull.boxPlanes[2].normal.x; + boxHull.nx[3] = boxHull.boxPlanes[3].normal.x; + boxHull.nx[4] = boxHull.boxPlanes[4].normal.x; + boxHull.nx[5] = boxHull.boxPlanes[5].normal.x; + boxHull.nx[6] = 0.0f; + boxHull.nx[7] = 0.0f; + + boxHull.ny[0] = boxHull.boxPlanes[0].normal.y; + boxHull.ny[1] = boxHull.boxPlanes[1].normal.y; + boxHull.ny[2] = boxHull.boxPlanes[2].normal.y; + boxHull.ny[3] = boxHull.boxPlanes[3].normal.y; + boxHull.ny[4] = boxHull.boxPlanes[4].normal.y; + boxHull.ny[5] = boxHull.boxPlanes[5].normal.y; + boxHull.ny[6] = 0.0f; + boxHull.ny[7] = 0.0f; + + boxHull.nz[0] = boxHull.boxPlanes[0].normal.z; + boxHull.nz[1] = boxHull.boxPlanes[1].normal.z; + boxHull.nz[2] = boxHull.boxPlanes[2].normal.z; + boxHull.nz[3] = boxHull.boxPlanes[3].normal.z; + boxHull.nz[4] = boxHull.boxPlanes[4].normal.z; + boxHull.nz[5] = boxHull.boxPlanes[5].normal.z; + boxHull.nz[6] = 0.0f; + boxHull.nz[7] = 0.0f; + boxHull.base.hash = 0; boxHull.base.hash = b3NonZeroHash( b3Hash( B3_HASH_INIT, (uint8_t*)&boxHull, sizeof( b3BoxHull ) ) ); @@ -2784,6 +2937,8 @@ void b3ScaleBox( b3Vec3* halfWidths, b3Transform* transform, b3Vec3 postScale, f // todo use new hull scaling technique b3BoxHull b3MakeScaledBoxHull( b3Vec3 halfWidths, b3Transform transform, b3Vec3 postScale ) { + B3_ASSERT( b3IsValidTransform( transform ) ); + b3Vec3 h = halfWidths; b3Transform xf = transform; b3ScaleBox( &h, &xf, postScale, 4.0f * B3_LINEAR_SLOP ); diff --git a/vendor/box3d/src/src/hull_map.h b/vendor/box3d/src/src/hull.h similarity index 77% rename from vendor/box3d/src/src/hull_map.h rename to vendor/box3d/src/src/hull.h index 5b50c56eb..a1077bb52 100644 --- a/vendor/box3d/src/src/hull_map.h +++ b/vendor/box3d/src/src/hull.h @@ -12,8 +12,8 @@ uint64_t b3HashHullData( const b3HullData* hull ); bool b3CompareHullData( const b3HullData* hull1, const b3HullData* hull2 ); -// Map keyed by hull content. The world hull database stores a reference count, -// compound baking stores a byte offset. Implementation lives in hull.c. +// Map keyed by hull content. The world hull database uses the value as a reference count, +// while compound baking stores uses the value as a byte offset. Implementation is in hull.c. #define NAME b3HullMap #define KEY_TY const b3HullData* #define VAL_TY int diff --git a/vendor/box3d/src/src/island.c b/vendor/box3d/src/src/island.c index 625a1b345..6a1790923 100644 --- a/vendor/box3d/src/src/island.c +++ b/vendor/box3d/src/src/island.c @@ -498,7 +498,7 @@ void b3SplitIsland( b3World* world, int baseId ) } } - // Early return — island is still fully connected, no split needed. + // Island is still fully connected, no split needed. if ( componentCount == 1 ) { baseIsland->constraintRemoveCount = 0; diff --git a/vendor/box3d/src/src/manifold.c b/vendor/box3d/src/src/manifold.c index 40e60ad57..f15db6c03 100644 --- a/vendor/box3d/src/src/manifold.c +++ b/vendor/box3d/src/src/manifold.c @@ -10,58 +10,6 @@ #include "box3d/math_functions.h" -// p1 : origin on edge 1 -// e1 : edge 1 -// c1 : shape 1 centroid -// p2 : origin on edge 2 -// e2 : edge 2 -// c2 : shape 2 centroid -float b3EdgeEdgeSeparation( b3Vec3 p1, b3Vec3 e1, b3Vec3 c1, b3Vec3 p2, b3Vec3 e2, b3Vec3 c2 ) -{ - // Build search direction - b3Vec3 u = b3Cross( e1, e2 ); - float length = b3Length( u ); - - // Skip near parallel edges: |e1 x e1| = sin(alpha) * |e1| * |e2| - const float kTolerance = 0.005f; - if ( length < kTolerance * sqrtf( b3LengthSquared( e1 ) * b3LengthSquared( e2 ) ) ) - { - return -FLT_MAX; - } - - if ( length * length < 1000.0f * FLT_MIN ) - { - return -FLT_MAX; - } - - b3Vec3 n = b3MulSV( 1.0f / length, u ); - - // Make sure normal points away from the first shape - // For a triangle, it is possible that N is aligned with the triangle normal and the sign - // value can be close to zero and flicker between small negative and positive values, leading to - // an incorrect separation value. So we assume the other hull has some volume and pick the most - // significant sign value to orient N. - float sign1 = b3Dot( n, b3Sub( p1, c1 ) ); - float sign2 = b3Dot( n, b3Sub( p2, c2 ) ); - if ( b3AbsFloat( sign1 ) > b3AbsFloat( sign2 ) ) - { - if ( sign1 < 0.0f ) - { - n = b3Neg( n ); - } - } - else - { - if ( sign2 > 0.0f ) - { - n = b3Neg( n ); - } - } - - // s = Dot(n, p2) - d = Dot(n, p2) - Dot(n, p1) = Dot(n, p2 - p1) - return b3Dot( n, b3Sub( p2, p1 ) ); -} - // This was extended to make the wedge shape get the correct incident face. // Instead of looking directly for the most anti-parallel face, we first find the closest vertex (passed in). // Then we look for all edges coming out of that vertex and look for the edge that is @@ -69,6 +17,8 @@ float b3EdgeEdgeSeparation( b3Vec3 p1, b3Vec3 e1, b3Vec3 c1, b3Vec3 p2, b3Vec3 e // Then from that edge, we select the adjacent face that is most anti-parallel to the reference normal. int b3FindIncidentFace( const b3HullData* hull, b3Vec3 refNormal, int vertexIndex ) { + B3_ASSERT( 0 <= vertexIndex && vertexIndex < hull->vertexCount ); + const b3HullVertex* vertices = b3GetHullVertices( hull ); const b3HullHalfEdge* edges = b3GetHullEdges( hull ); const b3Plane* planes = b3GetHullPlanes( hull ); diff --git a/vendor/box3d/src/src/manifold.h b/vendor/box3d/src/src/manifold.h index 9e529ab97..fca3cde0b 100644 --- a/vendor/box3d/src/src/manifold.h +++ b/vendor/box3d/src/src/manifold.h @@ -8,19 +8,22 @@ #define B3_MAX_CLIP_POINTS 64 -typedef struct b3FaceQuery -{ - float separation; - int faceIndex; - int vertexIndex; -} b3FaceQuery; - -typedef struct b3EdgeQuery +typedef struct b3SeparatingAxis { + b3Vec3 normal; float separation; int indexA; int indexB; -} b3EdgeQuery; + b3SeparatingFeature type; +} b3SeparatingAxis; + +typedef struct b3AxisQuery +{ + b3SeparatingAxis faceA; + b3SeparatingAxis faceB; + b3SeparatingAxis edge; + b3SeparatingFeature separatedFeature; +} b3AxisQuery; typedef struct b3ClipVertex { @@ -35,7 +38,6 @@ typedef enum b3FeatureOwner b3_featureShapeB = 1 } b3FeatureOwner; -float b3EdgeEdgeSeparation( b3Vec3 p1, b3Vec3 e1, b3Vec3 c1, b3Vec3 p2, b3Vec3 e2, b3Vec3 c2 ); int b3FindIncidentFace( const b3HullData* hull, b3Vec3 refNormal, int vertexIndex ); b3FeaturePair b3MakeFeaturePair( b3FeatureOwner owner1, int index1, b3FeatureOwner owner2, int index2 ); @@ -43,6 +45,8 @@ b3FeaturePair b3FlipPair( b3FeaturePair pair ); int b3ClipPolygon( b3ClipVertex* out, b3ClipVertex* polygon, int count, b3Plane clipPlane, int edge, b3Plane refPlane ); +b3AxisQuery b3ComputeSeparatingAxis( const b3HullData* hullA, const b3HullData* hullB, b3Transform xfB, bool earlyReturn ); + #if B3_ENABLE_VALIDATION bool b3ValidatePolygon( b3ClipVertex* polygon, int count ); #endif @@ -55,3 +59,27 @@ static inline uint32_t b3MakeFeatureId( b3FeaturePair pair ) return ( (uint32_t)pair.owner1 << 24 ) | ( (uint32_t)pair.index1 << 16 ) | ( (uint32_t)pair.owner2 << 8 ) | (uint32_t)pair.index2; } + +static inline b3SeparatingAxis b3GetBestAxis( const b3AxisQuery* query ) +{ + B3_VALIDATE( query->faceA.type == b3_faceAxisA ); + B3_VALIDATE( query->edge.type == b3_edgePairAxis ); + B3_VALIDATE( query->faceB.type == b3_faceAxisB ); + + if ( query->faceA.separation > query->faceB.separation ) + { + if ( query->edge.separation > query->faceA.separation ) + { + return query->edge; + } + + return query->faceA; + } + + if ( query->edge.separation > query->faceB.separation ) + { + return query->edge; + } + + return query->faceB; +} diff --git a/vendor/box3d/src/src/math_internal.h b/vendor/box3d/src/src/math_internal.h index 4d152c5fc..d975c65dc 100644 --- a/vendor/box3d/src/src/math_internal.h +++ b/vendor/box3d/src/src/math_internal.h @@ -61,6 +61,7 @@ b3Matrix3 b3BoxInertia( float mass, b3Vec3 min, b3Vec3 max ); int b3GetProxySupport( const b3ShapeProxy* proxy, b3Vec3 axis ); int b3GetPointSupport( const b3Vec3* points, int count, b3Vec3 axis ); +// Align up to 8 byte alignment. static inline size_t b3AlignUp8( size_t x ) { return ( x + 7u ) & ~(size_t)7u; diff --git a/vendor/box3d/src/src/mesh.c b/vendor/box3d/src/src/mesh.c index c03489955..acfbda0e1 100644 --- a/vendor/box3d/src/src/mesh.c +++ b/vendor/box3d/src/src/mesh.c @@ -928,7 +928,8 @@ static int b3BuildRecursive( b3Array( b3MeshNode ) * nodes, int count, b3Primiti node->data.asNode.childOffset = rightIndex - index; node->lowerBound = aabb.lowerBound; node->upperBound = aabb.upperBound; - // triangleOffset is leaf-only, but lives outside the union — zero it so mesh->hash is deterministic + + // Zero so mesh->hash is deterministic node->triangleOffset = 0; return index; @@ -1321,14 +1322,17 @@ b3MeshData* b3CreateWaveMesh( int xCount, int zCount, float cellWidth, float amp float omegaX = 2.0f * B3_PI * columnFrequency * cellWidth; float x = -0.5f * xWidth; + b3CosSin cs = { 0 }; for ( int ix = 0; ix <= xCount; ++ix ) { - float rowHeight = sinf( omegaX * ix ); + cs = b3ComputeCosSin( omegaX * ix ); + float rowHeight = cs.sine; float z = -0.5f * zWidth; for ( int iz = 0; iz <= zCount; ++iz ) { - float columnHeight = sinf( omegaZ * iz ); + cs = b3ComputeCosSin( omegaZ * iz ); + float columnHeight = cs.sine; float y = amplitude * rowHeight * columnHeight; vertices.data[index] = (b3Vec3){ x, y, z }; @@ -1482,7 +1486,7 @@ b3MeshData* b3CreateBoxMesh( b3Vec3 center, b3Vec3 extent, bool identifyEdges ) return b3CreateMesh( &def, NULL, 0 ); } -b3MeshData* b3CreateHollowBoxMesh(b3Vec3 center, b3Vec3 extent) +b3MeshData* b3CreateHollowBoxMesh( b3Vec3 center, b3Vec3 extent ) { float x = extent.x; float y = extent.y; diff --git a/vendor/box3d/src/src/mesh_contact.c b/vendor/box3d/src/src/mesh_contact.c index a7163477a..60158e4b9 100644 --- a/vendor/box3d/src/src/mesh_contact.c +++ b/vendor/box3d/src/src/mesh_contact.c @@ -608,7 +608,7 @@ bool b3ComputeMeshManifolds( b3World* world, int workerIndex, b3Contact* contact switch ( shapeB->type ) { case b3_capsuleShape: - b3CollideCapsuleAndTriangle( manifold, pointCapacity, &shapeB->capsule, vertices, &cache->simplexCache ); + b3CollideTriangleAndCapsule( manifold, pointCapacity, vertices, &shapeB->capsule, &cache->simplexCache ); break; case b3_hullShape: @@ -619,14 +619,14 @@ bool b3ComputeMeshManifolds( b3World* world, int workerIndex, b3Contact* contact cache->satCache = (b3SATCache){ 0 }; } - b3CollideHullAndTriangle( manifold, pointCapacity, hullB, vertices[0], vertices[1], vertices[2], triangle.flags, + b3CollideTriangleAndHull( manifold, pointCapacity, vertices[0], vertices[1], vertices[2], triangle.flags, hullB, &cache->satCache, enableSpeculative ); context->satCallCount += 1; context->satCacheHitCount += cache->satCache.hit; break; case b3_sphereShape: - b3CollideSphereAndTriangle( manifold, pointCapacity, &shapeB->sphere, vertices ); + b3CollideTriangleAndSphere( manifold, pointCapacity, vertices, &shapeB->sphere ); break; default: diff --git a/vendor/box3d/src/src/parallel_for.c b/vendor/box3d/src/src/parallel_for.c index 07d1c3fdc..c16ac18f0 100644 --- a/vendor/box3d/src/src/parallel_for.c +++ b/vendor/box3d/src/src/parallel_for.c @@ -77,7 +77,8 @@ void b3ParallelFor( b3World* world, b3ParallelForCallback* callback, int itemCou // Target multiple blocks per worker to reduce thread stalls. // block size grows once items exceed maxBlockCount * minRange // so the block count stays bounded and per-block sync overhead stays low. - int blocksPerWorker = 4; + // Benchmarking shows 32 is optimal for the convex pile benchmark and others. + int blocksPerWorker = 32; int maxBlockCount = blocksPerWorker * workerCount; int blockSize; diff --git a/vendor/box3d/src/src/physics_world.c b/vendor/box3d/src/src/physics_world.c index f0dc19e2d..4309e085b 100644 --- a/vendor/box3d/src/src/physics_world.c +++ b/vendor/box3d/src/src/physics_world.c @@ -11,7 +11,7 @@ #include "contact.h" #include "core.h" #include "ctz.h" -#include "hull_map.h" +#include "hull.h" #include "island.h" #include "joint.h" #include "parallel_for.h" @@ -41,18 +41,21 @@ const b3HullData* b3AddHullToDatabase( b3World* world, const b3HullData* src ) { b3HullMap* database = world->hullDatabase; - // Compare by content so an unowned query hull finds the shared copy. + // Compare by content to de-duplicate. Not trusting the hash. b3HullMap_itr itr = b3HullMap_get( database, src ); if ( b3HullMap_is_end( itr ) == false ) { + // Bump reference count. itr.data->val += 1; return itr.data->key; } - b3HullData* owned = b3CloneHull( src ); - B3_ASSERT( owned != NULL ); - b3HullMap_insert( database, owned, 1 ); - return owned; + b3HullData* clone = b3CloneHull( src ); + B3_ASSERT( clone != NULL ); + + // Start with reference count of 1. + b3HullMap_insert( database, clone, 1 ); + return clone; } const b3HullData* b3AddOwnedHullToDatabase( b3World* world, b3HullData* owned ) @@ -1426,20 +1429,20 @@ void b3World_Draw( b3WorldId worldId, b3DebugDraw* draw, uint64_t maskBits ) const char* name = b3FindName( &world->names, body->nameId ); if ( name != NULL ) { - draw->DrawStringFcn( p, name, b3_colorOrange, draw->context ); + draw->DrawStringFcn( p, name, b3_colorWhite, draw->context ); } } if ( draw->drawMass && body->type == b3_dynamicBody ) { - b3Vec3 offset = { 0.1f, 0.1f, 0.1f }; + b3Vec3 offset = { 0.05f, 0.05f, 0.05f }; b3WorldTransform transform = { bodySim->center, bodySim->transform.q }; draw->DrawTransformFcn( transform, draw->context ); b3Pos p = b3TransformWorldPoint( transform, offset ); char buffer[32]; - snprintf( buffer, 32, " %.2f", body->mass ); + snprintf( buffer, 32, "%.2f", body->mass ); draw->DrawStringFcn( p, buffer, b3_colorWhite, draw->context ); } @@ -1523,8 +1526,10 @@ void b3World_Draw( b3WorldId worldId, b3DebugDraw* draw, uint64_t maskBits ) b3Vec3 normal = manifold->normal; // Average the anchors not the world points so the friction center stays exact far from the origin - b3Pos contactCenter = draw->drawAnchorA == 1 ? bodySimA->center : bodySimB->center; - b3Vec3 anchorSum = b3Vec3_zero; + b3Pos contactCenter = draw->drawAnchorA ? bodySimA->center : bodySimB->center; + b3Vec3 frictionAnchor = b3Vec3_zero; + float totalWeight = 0.0f; + float invTau = 1.0f / B3_SPECULATIVE_DISTANCE; const b3ManifoldPoint* points = manifold->points; for ( int pointIndex = 0; pointIndex < manifold->pointCount; ++pointIndex ) @@ -1533,10 +1538,13 @@ void b3World_Draw( b3WorldId worldId, b3DebugDraw* draw, uint64_t maskBits ) char buffer[32]; - b3Vec3 anchor = draw->drawAnchorA == 1 ? mp->anchorA : mp->anchorB; + b3Vec3 anchor = draw->drawAnchorA ? mp->anchorA : mp->anchorB; b3Pos p = b3OffsetPos( contactCenter, anchor ); - anchorSum = b3Add( anchorSum, anchor ); + // See similar friction anchor weights in b3PrepareContacts_Mesh. + float weight = b3ClampFloat( 2.0f - mp->separation * invTau, B3_MIN_FRICTION_WEIGHT, 1.0f ); + frictionAnchor = b3MulAdd( frictionAnchor, weight, anchor ); + totalWeight += weight; if ( draw->drawContactNormals ) { @@ -1599,9 +1607,8 @@ void b3World_Draw( b3WorldId worldId, b3DebugDraw* draw, uint64_t maskBits ) { // Hack inv_dt for single step debugging float inv_dt = world->inv_dt > 0.0f ? world->inv_dt : 60.0f; - - b3Vec3 avgAnchor = b3MulSV( 1.0f / manifold->pointCount, anchorSum ); - b3Pos p1 = b3OffsetPos( contactCenter, avgAnchor ); + frictionAnchor = b3MulSV( 1.0f / totalWeight, frictionAnchor ); + b3Pos p1 = b3OffsetPos( contactCenter, frictionAnchor ); b3Vec3 frictionForce = b3MulSV( 0.5f * inv_dt, manifold->frictionImpulse ); b3Pos p2 = b3OffsetPos( p1, b3MulSV( draw->forceScale, frictionForce ) ); draw->DrawSegmentFcn( p1, p2, frictionColor, draw->context ); diff --git a/vendor/box3d/src/src/physics_world.h b/vendor/box3d/src/src/physics_world.h index 12f169561..8bd3df865 100644 --- a/vendor/box3d/src/src/physics_world.h +++ b/vendor/box3d/src/src/physics_world.h @@ -178,7 +178,7 @@ typedef struct b3World b3Array( b3Shape ) shapes; // Reference counted store of shared hull data keyed by content. Shapes hold a - // pointer to the owned copy here. Opaque to avoid leaking the verstable map + // pointer to the hull stored in the db. Type erased to avoid leaking the verstable map // type into this header. void* hullDatabase; diff --git a/vendor/box3d/src/src/recording.c b/vendor/box3d/src/src/recording.c index 4d5c5995d..341ddbf0b 100644 --- a/vendor/box3d/src/src/recording.c +++ b/vendor/box3d/src/src/recording.c @@ -799,23 +799,15 @@ uint64_t b3Hash64Blob( const uint8_t* bytes, int n ) static uint32_t b3RegistryPush( b3GeometryRegistry* reg, b3GeometryHashMap* map, b3GeometryHashMap_itr itr, bool hashPresent, b3GeometryKind kind, uint64_t contentHash, uint8_t* bytes, int byteCount ) { - if ( reg->count >= reg->capacity ) - { - int newCap = reg->capacity < 8 ? 8 : reg->capacity * 2; - reg->entries = (b3GeometryEntry*)b3GrowAlloc( reg->entries, reg->capacity * (int)sizeof( b3GeometryEntry ), - newCap * (int)sizeof( b3GeometryEntry ) ); - reg->capacity = newCap; - } - - uint32_t id = (uint32_t)reg->count; - b3GeometryEntry* entry = reg->entries + reg->count; + uint32_t id = (uint32_t)reg->entries.count; + b3GeometryEntry* entry = b3Array_Emplace( reg->entries ); entry->contentHash = contentHash; entry->id = id; entry->kind = kind; entry->byteCount = byteCount; - entry->bytes = bytes; // take ownership + // Take ownership. + entry->bytes = bytes; entry->hashNext = hashPresent ? (int)itr.data->val : B3_NULL_INDEX; - reg->count++; if ( hashPresent ) { @@ -832,11 +824,11 @@ static b3GeometryHashMap* b3RegistryMap( b3GeometryRegistry* reg ) { if ( reg->dedupMap == NULL ) { - b3GeometryHashMap* fresh = (b3GeometryHashMap*)b3Alloc( sizeof( b3GeometryHashMap ) ); + b3GeometryHashMap* fresh = b3Alloc( sizeof( b3GeometryHashMap ) ); b3GeometryHashMap_init( fresh ); reg->dedupMap = fresh; } - return (b3GeometryHashMap*)reg->dedupMap; + return reg->dedupMap; } uint32_t b3InternGeometry( b3GeometryRegistry* reg, b3GeometryKind kind, uint64_t contentHash, uint8_t* bytes, int byteCount ) @@ -848,12 +840,12 @@ uint32_t b3InternGeometry( b3GeometryRegistry* reg, b3GeometryKind kind, uint64_ if ( hashPresent ) { // Walk every entry sharing this hash so a collision still finds the identical blob. - for ( int idx = (int)itr.data->val; idx != B3_NULL_INDEX; idx = reg->entries[idx].hashNext ) + for ( int index = (int)itr.data->val; index != B3_NULL_INDEX; index = reg->entries.data[index].hashNext ) { - b3GeometryEntry* e = reg->entries + idx; + b3GeometryEntry* e = reg->entries.data + index; if ( e->byteCount == byteCount && memcmp( e->bytes, bytes, (size_t)byteCount ) == 0 ) { - // Duplicate: the caller transferred ownership; return existing id + // Duplicate. Free bytes because the caller transferred ownership. Return existing id. b3Free( bytes, (size_t)byteCount ); return e->id; } @@ -873,22 +865,18 @@ uint32_t b3AppendGeometry( b3GeometryRegistry* reg, b3GeometryKind kind, uint64_ void b3FreeRegistry( b3GeometryRegistry* reg ) { - for ( int i = 0; i < reg->count; ++i ) + for ( int i = 0; i < reg->entries.count; ++i ) { - b3Free( reg->entries[i].bytes, (size_t)reg->entries[i].byteCount ); - } - if ( reg->entries != NULL ) - { - b3Free( reg->entries, (size_t)( reg->capacity * (int)sizeof( b3GeometryEntry ) ) ); + b3Free( reg->entries.data[i].bytes, (size_t)reg->entries.data[i].byteCount ); } + + b3Array_Destroy( reg->entries ); + if ( reg->dedupMap != NULL ) { b3GeometryHashMap_cleanup( (b3GeometryHashMap*)reg->dedupMap ); b3Free( reg->dedupMap, sizeof( b3GeometryHashMap ) ); } - reg->entries = NULL; - reg->count = 0; - reg->capacity = 0; reg->dedupMap = NULL; } @@ -955,10 +943,10 @@ void b3RecInternTag( b3Recording* rec, uint64_t key, uint64_t id, const char* na // the tag table stops after the geometry entries and ignores the trailing tag bytes. void b3RecWriteRegistry( b3Recording* rec ) { - b3RecW_U32( &rec->buffer, (uint32_t)rec->registry.count ); - for ( int i = 0; i < rec->registry.count; ++i ) + b3RecW_U32( &rec->buffer, (uint32_t)rec->registry.entries.count ); + for ( int i = 0; i < rec->registry.entries.count; ++i ) { - b3GeometryEntry* e = rec->registry.entries + i; + b3GeometryEntry* e = rec->registry.entries.data + i; b3RecW_U8( &rec->buffer, (uint8_t)e->kind ); b3RecW_U32( &rec->buffer, (uint32_t)e->byteCount ); b3RecBufAppend( &rec->buffer, e->bytes, e->byteCount ); @@ -977,7 +965,7 @@ void b3RecWriteRegistry( b3Recording* rec ) b3Recording* b3CreateRecording( int byteCapacity ) { - b3Recording* rec = (b3Recording*)b3Alloc( sizeof( b3Recording ) ); + b3Recording* rec = b3Alloc( sizeof( b3Recording ) ); *rec = (b3Recording){ 0 }; int initCap = byteCapacity > 0 ? byteCapacity : 65536; @@ -1196,7 +1184,7 @@ b3Recording* b3LoadRecordingFromFile( const char* path ) uint32_t b3RecInternHull( b3Recording* rec, const b3HullData* hull ) { int byteCount = hull->byteCount; - uint8_t* bytes = (uint8_t*)b3Alloc( (size_t)byteCount ); + uint8_t* bytes = b3Alloc( (size_t)byteCount ); memcpy( bytes, hull, (size_t)byteCount ); uint64_t h = b3Hash64Blob( bytes, byteCount ); return b3InternGeometry( &rec->registry, b3_geometryHull, h, bytes, byteCount ); @@ -1205,7 +1193,7 @@ uint32_t b3RecInternHull( b3Recording* rec, const b3HullData* hull ) uint32_t b3RecInternMesh( b3Recording* rec, const b3MeshData* mesh ) { int byteCount = mesh->byteCount; - uint8_t* bytes = (uint8_t*)b3Alloc( (size_t)byteCount ); + uint8_t* bytes = b3Alloc( (size_t)byteCount ); memcpy( bytes, mesh, (size_t)byteCount ); uint64_t h = b3Hash64Blob( bytes, byteCount ); return b3InternGeometry( &rec->registry, b3_geometryMesh, h, bytes, byteCount ); @@ -1214,7 +1202,7 @@ uint32_t b3RecInternMesh( b3Recording* rec, const b3MeshData* mesh ) uint32_t b3RecInternHeightField( b3Recording* rec, const b3HeightFieldData* hf ) { int byteCount = hf->byteCount; - uint8_t* bytes = (uint8_t*)b3Alloc( (size_t)byteCount ); + uint8_t* bytes = b3Alloc( (size_t)byteCount ); memcpy( bytes, hf, (size_t)byteCount ); uint64_t h = b3Hash64Blob( bytes, byteCount ); return b3InternGeometry( &rec->registry, b3_geometryHeightField, h, bytes, byteCount ); @@ -1223,7 +1211,7 @@ uint32_t b3RecInternHeightField( b3Recording* rec, const b3HeightFieldData* hf ) uint32_t b3RecInternCompound( b3Recording* rec, const b3CompoundData* compound ) { int byteCount = compound->byteCount; - uint8_t* bytes = (uint8_t*)b3Alloc( (size_t)byteCount ); + uint8_t* bytes = b3Alloc( (size_t)byteCount ); memcpy( bytes, compound, (size_t)byteCount ); // Null the tree node pointer in the copy so the canonical bytes are pointer-free. // b3ConvertBytesToCompound fixes it back on load via nodeOffset. diff --git a/vendor/box3d/src/src/recording.h b/vendor/box3d/src/src/recording.h index 3ba2fd3bb..19a96c572 100644 --- a/vendor/box3d/src/src/recording.h +++ b/vendor/box3d/src/src/recording.h @@ -3,6 +3,7 @@ #pragma once +#include "container.h" #include "core.h" #include "box3d/id.h" @@ -50,10 +51,10 @@ typedef struct b3World b3World; #define B3_REC_VERSION_MAJOR 4 // Minor tracks op-stream additions that keep the 48 byte header shape. -// Minor version 3 added name cache. -#define B3_REC_VERSION_MINOR 3 +// Minor version 4 added b3Shape_SetMeshMaterial, b3Shape_SetHull, b3Shape_SetMesh +#define B3_REC_VERSION_MINOR 4 -// File header, fixed 48 bytes, little-endian. Contains the registry locator so the player +// File header, fixed 48 bytes. Contains the registry locator so the player // can load geometry before replaying any ops. typedef struct b3RecHeader { @@ -106,13 +107,13 @@ typedef struct b3GeometryEntry int hashNext; } b3GeometryEntry; +b3DeclareArray( b3GeometryEntry ); + // Growable array of geometry entries. Ids are array indices, so the array is serialized in order. // dedupMap maps content hash to entry id for O(1) dedup; it is opaque here and owned by recording.c. typedef struct b3GeometryRegistry { - b3GeometryEntry* entries; - int count; - int capacity; + b3Array( b3GeometryEntry ) entries; void* dedupMap; } b3GeometryRegistry; @@ -126,7 +127,7 @@ typedef struct b3GeometryRegistry typedef struct b3RecTag { // hash of (id, queryName) - uint64_t key; + uint64_t key; uint64_t id; char queryName[B3_MAX_QUERY_NAME_LENGTH + 1]; } b3RecTag; diff --git a/vendor/box3d/src/src/recording_ops.inl b/vendor/box3d/src/src/recording_ops.inl index b8a3625da..3f0cf4260 100644 --- a/vendor/box3d/src/src/recording_ops.inl +++ b/vendor/box3d/src/src/recording_ops.inl @@ -68,6 +68,7 @@ B3_REC_OP( 0x36, BodySetMotionLocks, RET_NONE, ARG( BODYID, body ) ARG( LOCKS, l B3_REC_OP( 0x37, BodySetBullet, RET_NONE, ARG( BODYID, body ) ARG( BOOL, flag ) ) B3_REC_OP( 0x38, BodyEnableContactRecycling, RET_NONE, ARG( BODYID, body ) ARG( BOOL, flag ) ) B3_REC_OP( 0x39, BodyEnableHitEvents, RET_NONE, ARG( BODYID, body ) ARG( BOOL, flag ) ) +B3_REC_OP( 0x3A, BodyAllowFastRotation, RET_NONE, ARG( BODYID, body ) ARG( BOOL, flag ) ) // Shape create/destroy B3_REC_OP( 0x40, CreateSphereShape, RET_SHAPEID, ARG( BODYID, body ) ARG( SHAPEDEF, def ) ARG( SPHERE, sphere ) ) @@ -90,9 +91,11 @@ B3_REC_OP( 0x57, ShapeEnablePreSolveEvents, RET_NONE, ARG( SHAPEID, shape ) ARG( B3_REC_OP( 0x58, ShapeEnableHitEvents, RET_NONE, ARG( SHAPEID, shape ) ARG( BOOL, flag ) ) B3_REC_OP( 0x59, ShapeSetSphere, RET_NONE, ARG( SHAPEID, shape ) ARG( SPHERE, sphere ) ) B3_REC_OP( 0x5A, ShapeSetCapsule, RET_NONE, ARG( SHAPEID, shape ) ARG( CAPSULE, capsule ) ) -B3_REC_OP( 0x5B, ShapeApplyWind, RET_NONE, - ARG( SHAPEID, shape ) ARG( VEC3, wind ) ARG( F32, drag ) ARG( F32, lift ) ARG( F32, maxSpeed ) ARG( BOOL, wake ) ) +B3_REC_OP( 0x5B, ShapeApplyWind, RET_NONE, ARG( SHAPEID, shape ) ARG( VEC3, wind ) ARG( F32, drag ) ARG( F32, lift ) ARG( F32, maxSpeed ) ARG( BOOL, wake ) ) B3_REC_OP( 0x5C, ShapeSetName, RET_NONE, ARG( SHAPEID, shape ) ARG( STR, name ) ) +B3_REC_OP( 0x5D, ShapeSetMeshMaterial, RET_NONE, ARG( SHAPEID, shape ) ARG( MATERIAL, material ) ARG( I32, index ) ) +B3_REC_OP( 0x5E, ShapeSetHull, RET_NONE, ARG( SHAPEID, shape ) ARG( GEOMID, geometryId ) ) +B3_REC_OP( 0x5F, ShapeSetMesh, RET_NONE, ARG( SHAPEID, shape ) ARG( GEOMID, geometryId ) ARG( VEC3, scale ) ) // Joint create and destroy B3_REC_OP( 0x90, CreateParallelJoint, RET_JOINTID, ARG( WORLDID, world ) ARG( PARALLELJOINTDEF, def ) ) diff --git a/vendor/box3d/src/src/recording_replay.c b/vendor/box3d/src/src/recording_replay.c index 584912d59..f2f578d07 100644 --- a/vendor/box3d/src/src/recording_replay.c +++ b/vendor/box3d/src/src/recording_replay.c @@ -957,6 +957,11 @@ static void b3RecDispatch_BodySetBullet( const b3RecArgs_BodySetBullet* a, b3Rec b3Body_SetBullet( b3RecMakeBodyId( rdr, a->body ), a->flag ); } +static void b3RecDispatch_BodyAllowFastRotation( const b3RecArgs_BodyAllowFastRotation* a, b3RecReader* rdr ) +{ + b3Body_AllowFastRotation( b3RecMakeBodyId( rdr, a->body ), a->flag ); +} + static void b3RecDispatch_BodyEnableContactRecycling( const b3RecArgs_BodyEnableContactRecycling* a, b3RecReader* rdr ) { b3Body_EnableContactRecycling( b3RecMakeBodyId( rdr, a->body ), a->flag ); @@ -1019,7 +1024,7 @@ static void b3RecDispatch_CreateMeshShape( const b3RecArgs_CreateMeshShape* a, b return; } b3RegistrySlot* slot = rdr->slots + id; - const b3MeshData* mesh = (const b3MeshData*)b3RecGetLiveMesh( slot ); + const b3MeshData* mesh = b3RecGetLiveMesh( slot ); b3BodyId bodyId = b3RecMakeBodyId( rdr, a->body ); b3ShapeId gotId = b3CreateMeshShape( bodyId, &a->def, mesh, a->scale ); b3RecCheckShapeId( rdr, gotId, recId ); @@ -1071,7 +1076,7 @@ static void b3RecDispatch_CreateCompoundShape( const b3RecArgs_CreateCompoundSha b3BodyId bodyId = b3RecMakeBodyId( rdr, a->body ); // b3CreateCompoundShape takes a non-const def pointer; cast away const for the scratch def b3ShapeDef shapeDef = a->def; - b3ShapeId gotId = b3CreateCompoundShape( bodyId, &shapeDef, compound ); + b3ShapeId gotId = b3CreateBakedCompoundShape( bodyId, &shapeDef, compound ); b3RecCheckShapeId( rdr, gotId, recId ); } @@ -1105,6 +1110,11 @@ static void b3RecDispatch_ShapeSetSurfaceMaterial( const b3RecArgs_ShapeSetSurfa b3Shape_SetSurfaceMaterial( b3RecMakeShapeId( rdr, a->shape ), a->material ); } +static void b3RecDispatch_ShapeSetMeshMaterial( const b3RecArgs_ShapeSetMeshMaterial* a, b3RecReader* rdr ) +{ + b3Shape_SetMeshMaterial( b3RecMakeShapeId( rdr, a->shape ), a->material, a->index ); +} + static void b3RecDispatch_ShapeSetFilter( const b3RecArgs_ShapeSetFilter* a, b3RecReader* rdr ) { b3Shape_SetFilter( b3RecMakeShapeId( rdr, a->shape ), a->filter, a->invokeContacts ); @@ -1140,6 +1150,35 @@ static void b3RecDispatch_ShapeSetCapsule( const b3RecArgs_ShapeSetCapsule* a, b b3Shape_SetCapsule( b3RecMakeShapeId( rdr, a->shape ), &a->capsule ); } +static void b3RecDispatch_ShapeSetHull( const b3RecArgs_ShapeSetHull* a, b3RecReader* rdr ) +{ + uint32_t id = a->geometryId; + if ( id >= (uint32_t)rdr->slotCount ) + { + printf( "b3ReplayFile: hull geometryId %u out of range\n", id ); + rdr->ok = false; + return; + } + b3RegistrySlot* slot = rdr->slots + id; + b3ShapeId shapeId = b3RecMakeShapeId( rdr, a->shape ); + b3Shape_SetHull( shapeId, (const b3HullData*)slot->bytes ); +} + +static void b3RecDispatch_ShapeSetMesh( const b3RecArgs_ShapeSetMesh* a, b3RecReader* rdr ) +{ + uint32_t id = a->geometryId; + if ( id >= (uint32_t)rdr->slotCount ) + { + printf( "b3ReplayFile: mesh geometryId %u out of range\n", id ); + rdr->ok = false; + return; + } + b3RegistrySlot* slot = rdr->slots + id; + b3ShapeId shapeId = b3RecMakeShapeId( rdr, a->shape ); + const b3MeshData* mesh = b3RecGetLiveMesh( slot ); + b3Shape_SetMesh( shapeId, mesh, a->scale ); +} + static void b3RecDispatch_ShapeApplyWind( const b3RecArgs_ShapeApplyWind* a, b3RecReader* rdr ) { b3Shape_ApplyWind( b3RecMakeShapeId( rdr, a->shape ), a->wind, a->drag, a->lift, a->maxSpeed, a->wake ); @@ -2576,12 +2615,12 @@ static void b3RecCaptureKeyframe( b3RecPlayer* player ) b3World* world = b3GetWorldFromId( player->rdr.replayWorldId ); b3RecBuffer buf = { 0 }; - int regCountBefore = player->keyframeRec->registry.count; + int regCountBefore = player->keyframeRec->registry.entries.count; B3_UNUSED( regCountBefore ); b3SerializeWorld( world, &buf, player->keyframeRec ); // Registry must not grow: all geometry was pre-seeded and the registry dedups exactly. - B3_ASSERT( player->keyframeRec->registry.count == regCountBefore ); + B3_ASSERT( player->keyframeRec->registry.entries.count == regCountBefore ); size_t bodyBytes = (size_t)player->bodyIdCount * sizeof( b3BodyId ); size_t newBytes = (size_t)buf.capacity + bodyBytes; diff --git a/vendor/box3d/src/src/sensor.c b/vendor/box3d/src/src/sensor.c index 0cd23a460..056708a3b 100644 --- a/vendor/box3d/src/src/sensor.c +++ b/vendor/box3d/src/src/sensor.c @@ -107,9 +107,8 @@ static bool b3SensorQueryCallback( int proxyId, uint64_t userData, void* context b3World* world = queryContext->world; b3Shape* otherShape = b3Array_Get( world->shapes, shapeId ); - // Mesh vs mesh is not supported - if ( ( otherShape->type == b3_meshShape || otherShape->type == b3_heightShape ) && - ( sensorShape->type == b3_meshShape || sensorShape->type == b3_heightShape ) ) + // Visitors must be convex. + if ( b3IsConvex( otherShape->type ) == false ) { return true; } diff --git a/vendor/box3d/src/src/shape.c b/vendor/box3d/src/src/shape.c index e4d9d9e0c..eabc1eb55 100644 --- a/vendor/box3d/src/src/shape.c +++ b/vendor/box3d/src/src/shape.c @@ -424,7 +424,7 @@ b3ShapeId b3CreateHeightFieldShape( b3BodyId bodyId, const b3ShapeDef* def, cons return shapeId; } -b3ShapeId b3CreateCompoundShape( b3BodyId bodyId, b3ShapeDef* def, const b3CompoundData* compound ) +b3ShapeId b3CreateBakedCompoundShape( b3BodyId bodyId, b3ShapeDef* def, const b3CompoundData* compound ) { b3ShapeId shapeId = b3CreateShape( bodyId, def, compound, b3_compoundShape, b3Transform_identity, b3Vec3_one, false ); if ( shapeId.index1 != 0 ) @@ -1295,6 +1295,8 @@ void b3Shape_SetMeshMaterial( b3ShapeId shapeId, b3SurfaceMaterial surfaceMateri B3_ASSERT( 0 <= index && index < shape->materialCount ); B3_ASSERT( shape->type != b3_compoundShape ); + + B3_REC( world, ShapeSetMeshMaterial, shapeId, surfaceMaterial, index ); b3GetShapeMaterials( shape )[index] = surfaceMaterial; } @@ -1613,6 +1615,14 @@ void b3Shape_SetHull( b3ShapeId shapeId, const b3HullData* hull ) return; } + if ( world->recording != NULL ) + { + // Intern the shared hull. + uint32_t geometryId = b3RecInternHull( world->recording, data ); + b3RecArgs_ShapeSetHull setArgs = { shapeId, geometryId }; + b3RecWrite_ShapeSetHull( world->recording, &setArgs ); + } + b3DestroyShapeAllocationForShapeChange( world, shape ); shape->hull = data; @@ -1640,6 +1650,13 @@ void b3Shape_SetMesh( b3ShapeId shapeId, const b3MeshData* meshData, b3Vec3 scal world->locked = true; + if ( world->recording != NULL ) + { + uint32_t geometryId = b3RecInternMesh( world->recording, meshData ); + b3RecArgs_ShapeSetMesh setArgs = { shapeId, geometryId, scale }; + b3RecWrite_ShapeSetMesh( world->recording, &setArgs ); + } + b3Shape* shape = b3GetShape( world, shapeId ); b3DestroyShapeAllocationForShapeChange( world, shape ); diff --git a/vendor/box3d/src/src/shape.h b/vendor/box3d/src/src/shape.h index 519ce8694..ed76dd41c 100644 --- a/vendor/box3d/src/src/shape.h +++ b/vendor/box3d/src/src/shape.h @@ -153,3 +153,8 @@ static inline bool b3ShouldQueryCollide( const b3Filter* shapeFilter, const b3Qu return ( shapeFilter->categoryBits & queryFilter->maskBits ) != 0 && ( shapeFilter->maskBits & queryFilter->categoryBits ) != 0; } + +static inline bool b3IsConvex( b3ShapeType type ) +{ + return type == b3_sphereShape || type == b3_capsuleShape || type == b3_hullShape; +} diff --git a/vendor/box3d/src/src/simd.h b/vendor/box3d/src/src/simd.h index ac7e9e8b5..6e313a0a4 100644 --- a/vendor/box3d/src/src/simd.h +++ b/vendor/box3d/src/src/simd.h @@ -7,10 +7,35 @@ #include -#if defined( B3_SIMD_SSE2 ) +#if defined( B3_SIMD_NEON ) + +#include + +// wide float holds 4 numbers +typedef float32x4_t b3FloatW; + +#elif defined( B3_SIMD_SSE2 ) #include +// wide float holds 4 numbers +typedef __m128 b3FloatW; + +#else + +#include +#include + +// scalar math +typedef struct b3FloatW +{ + float x, y, z, w; +} b3FloatW; + +#endif + +#if defined( B3_SIMD_SSE2 ) + // wide float holds 4 numbers typedef __m128 b3V32; @@ -355,3 +380,544 @@ static inline bool b3TestBoundsRayOverlap( b3V32 nodeMin, b3V32 nodeMax, b3V32 r bool b3TestBoundsTriangleOverlap( b3V32 nodeCenter, b3V32 nodeExtent, b3V32 vertex1, b3V32 vertex2, b3V32 vertex3 ); float b3IntersectRayTriangle( b3V32 rayStart, b3V32 rayDelta, b3V32 vertex1, b3V32 vertex2, b3V32 vertex3 ); + +#if defined( B3_SIMD_NEON ) + +static inline b3FloatW b3ZeroW( void ) +{ + return vdupq_n_f32( 0.0f ); +} + +static inline b3FloatW b3SplatW( float scalar ) +{ + return vdupq_n_f32( scalar ); +} + +static inline b3FloatW b3SetW( float a, float b, float c, float d ) +{ + float32_t array[4] = { a, b, c, d }; + return vld1q_f32( array ); +} + +static inline b3FloatW b3LoadW( const float* data ) +{ + return vld1q_f32( data ); +} + +static inline void b3StoreW( float* data, b3FloatW a ) +{ + vst1q_f32( data, a ); +} + +static inline b3FloatW b3NegW( b3FloatW a ) +{ + return vnegq_f32( a ); +} + +static inline b3FloatW b3AddW( b3FloatW a, b3FloatW b ) +{ + return vaddq_f32( a, b ); +} + +static inline b3FloatW b3SubW( b3FloatW a, b3FloatW b ) +{ + return vsubq_f32( a, b ); +} + +static inline b3FloatW b3MulW( b3FloatW a, b3FloatW b ) +{ + return vmulq_f32( a, b ); +} + +static inline b3FloatW b3DivW( b3FloatW a, b3FloatW b ) +{ + return vdivq_f32( a, b ); +} + +static inline b3FloatW b3SqrtW( b3FloatW a ) +{ + return vsqrtq_f32( a ); +} + +// Cannot use real FMA because it doesn't match the non-SIMD path +static inline b3FloatW b3MulAddW( b3FloatW a, b3FloatW b, b3FloatW c ) +{ + return vaddq_f32( a, vmulq_f32( b, c ) ); +} + +static inline b3FloatW b3MinW( b3FloatW a, b3FloatW b ) +{ + return vminq_f32( a, b ); +} + +static inline b3FloatW b3MaxW( b3FloatW a, b3FloatW b ) +{ + return vmaxq_f32( a, b ); +} + +// clamp a to [-b, b] +static inline b3FloatW b3SymClampW( b3FloatW a, b3FloatW b ) +{ + b3FloatW nb = b3NegW( b ); + b3FloatW c = b3MaxW( nb, a ); + return b3MinW( c, b ); +} + +static inline b3FloatW b3AndW( b3FloatW a, b3FloatW b ) +{ + return vreinterpretq_f32_u32( vandq_u32( vreinterpretq_u32_f32( a ), vreinterpretq_u32_f32( b ) ) ); +} + +static inline b3FloatW b3OrW( b3FloatW a, b3FloatW b ) +{ + return vreinterpretq_f32_u32( vorrq_u32( vreinterpretq_u32_f32( a ), vreinterpretq_u32_f32( b ) ) ); +} + +static inline b3FloatW b3GreaterThanW( b3FloatW a, b3FloatW b ) +{ + return vreinterpretq_f32_u32( vcgtq_f32( a, b ) ); +} + +static inline b3FloatW b3LessThanW( b3FloatW a, b3FloatW b ) +{ + return vreinterpretq_f32_u32( vcltq_f32( a, b ) ); +} + +static inline b3FloatW b3EqualsW( b3FloatW a, b3FloatW b ) +{ + return vreinterpretq_f32_u32( vceqq_f32( a, b ) ); +} + +static inline bool b3AllZeroW( b3FloatW a ) +{ + // Create a zero vector for comparison + b3FloatW zero = vdupq_n_f32( 0.0f ); + + // Compare the input vector with zero + uint32x4_t cmp_result = vceqq_f32( a, zero ); + +// Check if all comparison results are non-zero using vminvq +#ifdef __ARM_FEATURE_SVE + // ARM v8.2+ has horizontal minimum instruction + return vminvq_u32( cmp_result ) != 0; +#else + // For older ARM architectures, we need to manually check all lanes + return vgetq_lane_u32( cmp_result, 0 ) != 0 && vgetq_lane_u32( cmp_result, 1 ) != 0 && vgetq_lane_u32( cmp_result, 2 ) != 0 && + vgetq_lane_u32( cmp_result, 3 ) != 0; +#endif +} + +// _mm_movemask_ps equivalent, compatible with ARM v7. +static inline bool b3AnyTrueW( b3FloatW mask ) +{ + uint32x4_t m = vreinterpretq_u32_f32( mask ); + uint32x2_t p = vorr_u32( vget_low_u32( m ), vget_high_u32( m ) ); + return ( vget_lane_u32( p, 0 ) | vget_lane_u32( p, 1 ) ) != 0; +} + +// component-wise returns mask ? b : a +static inline b3FloatW b3BlendW( b3FloatW a, b3FloatW b, b3FloatW mask ) +{ + uint32x4_t mask32 = vreinterpretq_u32_f32( mask ); + return vbslq_f32( mask32, b, a ); +} + +static inline b3FloatW b3Dot3W( b3FloatW ax, b3FloatW ay, b3FloatW az, b3FloatW bx, b3FloatW by, b3FloatW bz ) +{ + return vaddq_f32( vmulq_f32( ax, bx ), vaddq_f32( vmulq_f32( ay, by ), vmulq_f32( az, bz ) ) ); +} + +static inline b3FloatW b3EmbedIndexW( b3FloatW value, int baseIndex, int bitCount ) +{ + uint32_t mask = ( 1u << bitCount ) - 1; + const int32_t lanes[4] = { 0, 1, 2, 3 }; + int32x4_t index = vaddq_s32( vdupq_n_s32( baseIndex ), vld1q_s32( lanes ) ); + uint32x4_t clearLow = vdupq_n_u32( ~mask ); + uint32x4_t bits = vorrq_u32( vandq_u32( vreinterpretq_u32_f32( value ), clearLow ), vreinterpretq_u32_s32( index ) ); + return vreinterpretq_f32_u32( bits ); +} + +static inline int b3MinIndexW( b3FloatW a, int bitCount ) +{ + float32x2_t m = vmin_f32( vget_low_f32( a ), vget_high_f32( a ) ); + m = vpmin_f32( m, m ); + uint32_t bits = vget_lane_u32( vreinterpret_u32_f32( m ), 0 ); + return (int)( bits & ( ( 1u << bitCount ) - 1 ) ); +} + +#elif defined( B3_SIMD_SSE2 ) + +static inline b3FloatW b3ZeroW( void ) +{ + return _mm_setzero_ps(); +} + +static inline b3FloatW b3SplatW( float scalar ) +{ + return _mm_set1_ps( scalar ); +} + +static inline b3FloatW b3SetW( float a, float b, float c, float d ) +{ + return _mm_setr_ps( a, b, c, d ); +} + +static inline b3FloatW b3LoadW( const float* data ) +{ + return _mm_loadu_ps( data ); +} + +static inline void b3StoreW( float* data, b3FloatW a ) +{ + _mm_storeu_ps( data, a ); +} + +static inline b3FloatW b3NegW( b3FloatW a ) +{ + // Create a mask with the sign bit set for each element + __m128 mask = _mm_set1_ps( -0.0f ); + + // XOR the input with the mask to negate each element + return _mm_xor_ps( a, mask ); +} + +static inline b3FloatW b3AddW( b3FloatW a, b3FloatW b ) +{ + return _mm_add_ps( a, b ); +} + +static inline b3FloatW b3SubW( b3FloatW a, b3FloatW b ) +{ + return _mm_sub_ps( a, b ); +} + +static inline b3FloatW b3MulW( b3FloatW a, b3FloatW b ) +{ + return _mm_mul_ps( a, b ); +} + +static inline b3FloatW b3DivW( b3FloatW a, b3FloatW b ) +{ + return _mm_div_ps( a, b ); +} + +static inline b3FloatW b3SqrtW( b3FloatW a ) +{ + return _mm_sqrt_ps( a ); +} + +// a + b * c +static inline b3FloatW b3MulAddW( b3FloatW a, b3FloatW b, b3FloatW c ) +{ + return _mm_add_ps( a, _mm_mul_ps( b, c ) ); +} + +static inline b3FloatW b3MinW( b3FloatW a, b3FloatW b ) +{ + return _mm_min_ps( a, b ); +} + +static inline b3FloatW b3MaxW( b3FloatW a, b3FloatW b ) +{ + return _mm_max_ps( a, b ); +} + +// Horizontal min over a 4-lane vector (result broadcast to all lanes). +static inline b3FloatW b3HorizontalMinW( b3FloatW v ) +{ + v = _mm_min_ps( v, _mm_shuffle_ps( v, v, _MM_SHUFFLE( 2, 3, 0, 1 ) ) ); + return _mm_min_ps( v, _mm_shuffle_ps( v, v, _MM_SHUFFLE( 1, 0, 3, 2 ) ) ); +} + +// clamp a to [-b, b] +static inline b3FloatW b3SymClampW( b3FloatW a, b3FloatW b ) +{ + b3FloatW nb = b3NegW( b ); + b3FloatW c = b3MaxW( nb, a ); + return b3MinW( c, b ); +} + +static inline b3FloatW b3AndW( b3FloatW a, b3FloatW b ) +{ + return _mm_and_ps( a, b ); +} + +static inline b3FloatW b3OrW( b3FloatW a, b3FloatW b ) +{ + return _mm_or_ps( a, b ); +} + +static inline b3FloatW b3GreaterThanW( b3FloatW a, b3FloatW b ) +{ + return _mm_cmpgt_ps( a, b ); +} + +static inline b3FloatW b3LessThanW( b3FloatW a, b3FloatW b ) +{ + return _mm_cmplt_ps( a, b ); +} + +static inline b3FloatW b3EqualsW( b3FloatW a, b3FloatW b ) +{ + return _mm_cmpeq_ps( a, b ); +} + +static inline bool b3AllZeroW( b3FloatW a ) +{ + // Compare each element with zero + b3FloatW zero = _mm_setzero_ps(); + b3FloatW cmp = _mm_cmpeq_ps( a, zero ); + + // Create a mask from the comparison results + int mask = _mm_movemask_ps( cmp ); + + // If all elements are zero, the mask will be 0xF (1111 in binary) + return mask == 0xF; +} + +static inline bool b3AnyTrueW( b3FloatW mask ) +{ + return _mm_movemask_ps( mask ) != 0; +} + +// component-wise returns mask ? b : a +static inline b3FloatW b3BlendW( b3FloatW a, b3FloatW b, b3FloatW mask ) +{ + return _mm_or_ps( _mm_and_ps( mask, b ), _mm_andnot_ps( mask, a ) ); +} + +static inline b3FloatW b3Dot3W( b3FloatW ax, b3FloatW ay, b3FloatW az, b3FloatW bx, b3FloatW by, b3FloatW bz ) +{ + return _mm_add_ps( _mm_mul_ps( ax, bx ), _mm_add_ps( _mm_mul_ps( ay, by ), _mm_mul_ps( az, bz ) ) ); +} + +// Replace the low bitCount mantissa bits of each lane with baseIndex + lane. The value must be +// positive so the embedded index sorts with the value, and ties fall to the lower index. +static inline b3FloatW b3EmbedIndexW( b3FloatW value, int baseIndex, int bitCount ) +{ + int mask = ( 1 << bitCount ) - 1; + __m128i index = _mm_add_epi32( _mm_set1_epi32( baseIndex ), _mm_setr_epi32( 0, 1, 2, 3 ) ); + __m128 clearLow = _mm_castsi128_ps( _mm_set1_epi32( ~mask ) ); + return _mm_or_ps( _mm_and_ps( value, clearLow ), _mm_castsi128_ps( index ) ); +} + +// Recovers the index embedded by b3EmbedIndexW from the lane holding the minimum. +static inline int b3MinIndexW( b3FloatW a, int bitCount ) +{ + a = _mm_min_ps( a, _mm_shuffle_ps( a, a, _MM_SHUFFLE( 2, 3, 0, 1 ) ) ); + a = _mm_min_ps( a, _mm_shuffle_ps( a, a, _MM_SHUFFLE( 1, 0, 3, 2 ) ) ); + return _mm_cvtsi128_si32( _mm_castps_si128( a ) ) & ( ( 1 << bitCount ) - 1 ); +} + +#else + +static inline b3FloatW b3ZeroW( void ) +{ + return (b3FloatW){ 0.0f, 0.0f, 0.0f, 0.0f }; +} + +static inline b3FloatW b3SplatW( float scalar ) +{ + return (b3FloatW){ scalar, scalar, scalar, scalar }; +} + +static inline b3FloatW b3SetW( float a, float b, float c, float d ) +{ + return (b3FloatW){ a, b, c, d }; +} + +static inline b3FloatW b3LoadW( const float* data ) +{ + return (b3FloatW){ data[0], data[1], data[2], data[3] }; +} + +static inline void b3StoreW( float* data, b3FloatW a ) +{ + data[0] = a.x; + data[1] = a.y; + data[2] = a.z; + data[3] = a.w; +} + +static inline b3FloatW b3NegW( b3FloatW a ) +{ + return (b3FloatW){ -a.x, -a.y, -a.z, -a.w }; +} + +static inline b3FloatW b3AddW( b3FloatW a, b3FloatW b ) +{ + return (b3FloatW){ a.x + b.x, a.y + b.y, a.z + b.z, a.w + b.w }; +} + +static inline b3FloatW b3SubW( b3FloatW a, b3FloatW b ) +{ + return (b3FloatW){ a.x - b.x, a.y - b.y, a.z - b.z, a.w - b.w }; +} + +static inline b3FloatW b3MulW( b3FloatW a, b3FloatW b ) +{ + return (b3FloatW){ a.x * b.x, a.y * b.y, a.z * b.z, a.w * b.w }; +} + +static inline b3FloatW b3DivW( b3FloatW a, b3FloatW b ) +{ + return (b3FloatW){ a.x / b.x, a.y / b.y, a.z / b.z, a.w / b.w }; +} + +static inline b3FloatW b3SqrtW( b3FloatW a ) +{ + return (b3FloatW){ sqrtf( a.x ), sqrtf( a.y ), sqrtf( a.z ), sqrtf( a.w ) }; +} + +static inline b3FloatW b3MulAddW( b3FloatW a, b3FloatW b, b3FloatW c ) +{ + return (b3FloatW){ a.x + b.x * c.x, a.y + b.y * c.y, a.z + b.z * c.z, a.w + b.w * c.w }; +} + +static inline b3FloatW b3MinW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x <= b.x ? a.x : b.x; + r.y = a.y <= b.y ? a.y : b.y; + r.z = a.z <= b.z ? a.z : b.z; + r.w = a.w <= b.w ? a.w : b.w; + return r; +} + +static inline b3FloatW b3MaxW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x >= b.x ? a.x : b.x; + r.y = a.y >= b.y ? a.y : b.y; + r.z = a.z >= b.z ? a.z : b.z; + r.w = a.w >= b.w ? a.w : b.w; + return r; +} + +// clamp a to [-b, b] +static inline b3FloatW b3SymClampW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x <= b.x ? a.x : b.x; + r.y = a.y <= b.y ? a.y : b.y; + r.z = a.z <= b.z ? a.z : b.z; + r.w = a.w <= b.w ? a.w : b.w; + r.x = r.x <= -b.x ? -b.x : r.x; + r.y = r.y <= -b.y ? -b.y : r.y; + r.z = r.z <= -b.z ? -b.z : r.z; + r.w = r.w <= -b.w ? -b.w : r.w; + return r; +} + +// Logical operations on the scalar path are 0/1 float values. Not bit-wise like SIMD. + +static inline b3FloatW b3AndW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x != 0.0f && b.x != 0.0f ? 1.0f : 0.0f; + r.y = a.y != 0.0f && b.y != 0.0f ? 1.0f : 0.0f; + r.z = a.z != 0.0f && b.z != 0.0f ? 1.0f : 0.0f; + r.w = a.w != 0.0f && b.w != 0.0f ? 1.0f : 0.0f; + return r; +} + +static inline b3FloatW b3OrW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x != 0.0f || b.x != 0.0f ? 1.0f : 0.0f; + r.y = a.y != 0.0f || b.y != 0.0f ? 1.0f : 0.0f; + r.z = a.z != 0.0f || b.z != 0.0f ? 1.0f : 0.0f; + r.w = a.w != 0.0f || b.w != 0.0f ? 1.0f : 0.0f; + return r; +} + +static inline b3FloatW b3GreaterThanW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x > b.x ? 1.0f : 0.0f; + r.y = a.y > b.y ? 1.0f : 0.0f; + r.z = a.z > b.z ? 1.0f : 0.0f; + r.w = a.w > b.w ? 1.0f : 0.0f; + return r; +} + +static inline b3FloatW b3LessThanW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x < b.x ? 1.0f : 0.0f; + r.y = a.y < b.y ? 1.0f : 0.0f; + r.z = a.z < b.z ? 1.0f : 0.0f; + r.w = a.w < b.w ? 1.0f : 0.0f; + return r; +} + +static inline b3FloatW b3EqualsW( b3FloatW a, b3FloatW b ) +{ + b3FloatW r; + r.x = a.x == b.x ? 1.0f : 0.0f; + r.y = a.y == b.y ? 1.0f : 0.0f; + r.z = a.z == b.z ? 1.0f : 0.0f; + r.w = a.w == b.w ? 1.0f : 0.0f; + return r; +} + +static inline bool b3AllZeroW( b3FloatW a ) +{ + return a.x == 0.0f && a.y == 0.0f && a.z == 0.0f && a.w == 0.0f; +} + +static inline bool b3AnyTrueW( b3FloatW mask ) +{ + return mask.x != 0.0f || mask.y != 0.0f || mask.z != 0.0f || mask.w != 0.0f; +} + +// component-wise returns mask ? b : a +static inline b3FloatW b3BlendW( b3FloatW a, b3FloatW b, b3FloatW mask ) +{ + b3FloatW r; + r.x = mask.x != 0.0f ? b.x : a.x; + r.y = mask.y != 0.0f ? b.y : a.y; + r.z = mask.z != 0.0f ? b.z : a.z; + r.w = mask.w != 0.0f ? b.w : a.w; + return r; +} + +static inline b3FloatW b3Dot3W( b3FloatW ax, b3FloatW ay, b3FloatW az, b3FloatW bx, b3FloatW by, b3FloatW bz ) +{ + b3FloatW r; + r.x = ax.x * bx.x + ( ay.x * by.x + az.x * bz.x ); + r.y = ax.y * bx.y + ( ay.y * by.y + az.y * bz.y ); + r.z = ax.z * bx.z + ( ay.z * by.z + az.z * bz.z ); + r.w = ax.w * bx.w + ( ay.w * by.w + az.w * bz.w ); + return r; +} + +static inline b3FloatW b3EmbedIndexW( b3FloatW value, int baseIndex, int bitCount ) +{ + uint32_t mask = ( 1u << bitCount ) - 1; + float lanes[4] = { value.x, value.y, value.z, value.w }; + + for ( int i = 0; i < 4; ++i ) + { + uint32_t bits; + memcpy( &bits, lanes + i, sizeof( bits ) ); + bits = ( bits & ~mask ) | (uint32_t)( baseIndex + i ); + memcpy( lanes + i, &bits, sizeof( bits ) ); + } + + return (b3FloatW){ lanes[0], lanes[1], lanes[2], lanes[3] }; +} + +static inline int b3MinIndexW( b3FloatW a, int bitCount ) +{ + float m = a.x; + m = a.y < m ? a.y : m; + m = a.z < m ? a.z : m; + m = a.w < m ? a.w : m; + + uint32_t bits; + memcpy( &bits, &m, sizeof( bits ) ); + return (int)( bits & ( ( 1u << bitCount ) - 1 ) ); +} + +#endif diff --git a/vendor/box3d/src/src/solver.c b/vendor/box3d/src/src/solver.c index a2b1be977..d8aace052 100644 --- a/vendor/box3d/src/src/solver.c +++ b/vendor/box3d/src/src/solver.c @@ -24,6 +24,8 @@ #include #include +_Static_assert( B3_RESTITUTION_ITERATIONS >= 1, "must be 1 or more" ); + // these are useful for solver testing #define ITERATIONS 1 #define RELAX_ITERATIONS 1 @@ -118,33 +120,33 @@ static void b3IntegrateVelocitiesTask( b3SolverBlock block, b3StepContext* conte b3Vec3 omega2 = omega1; // Symmetric inertia tensor: 6 unique entries (column-major) - const float i00 = inertiaLocal.cx.x; - const float i01 = inertiaLocal.cy.x; - const float i02 = inertiaLocal.cz.x; - const float i11 = inertiaLocal.cy.y; - const float i12 = inertiaLocal.cz.y; - const float i22 = inertiaLocal.cz.z; + float i00 = inertiaLocal.cx.x; + float i01 = inertiaLocal.cy.x; + float i02 = inertiaLocal.cz.x; + float i11 = inertiaLocal.cy.y; + float i12 = inertiaLocal.cz.y; + float i22 = inertiaLocal.cz.z; - for ( int gyroIteration = 0; gyroIteration < 1; ++gyroIteration ) + for ( int gyroIteration = 0; gyroIteration < B3_GYROSCOPIC_ITERATIONS; ++gyroIteration ) { - const float w1 = omega2.x; - const float w2 = omega2.y; - const float w3 = omega2.z; + float w1 = omega2.x; + float w2 = omega2.y; + float w3 = omega2.z; // Iw = I * omega2 (shared between residual and Jacobian) - const float Iw1 = i00 * w1 + i01 * w2 + i02 * w3; - const float Iw2 = i01 * w1 + i11 * w2 + i12 * w3; - const float Iw3 = i02 * w1 + i12 * w2 + i22 * w3; + float Iw1 = i00 * w1 + i01 * w2 + i02 * w3; + float Iw2 = i01 * w1 + i11 * w2 + i12 * w3; + float Iw3 = i02 * w1 + i12 * w2 + i22 * w3; - // Residual: b = I*(omega2 - omega1) + h * (omega2 × I*omega2) - const b3Vec3 dw = b3Sub( omega2, omega1 ); + // Residual: b = I * (omega2 - omega1) + h * cross(omega2, I * omega2) + b3Vec3 dw = b3Sub( omega2, omega1 ); b3Vec3 b = { i00 * dw.x + i01 * dw.y + i02 * dw.z + h * ( w2 * Iw3 - w3 * Iw2 ), i01 * dw.x + i11 * dw.y + i12 * dw.z + h * ( w3 * Iw1 - w1 * Iw3 ), i02 * dw.x + i12 * dw.y + i22 * dw.z + h * ( w1 * Iw2 - w2 * Iw1 ), }; - // Jacobian J = I + h * (skew(omega2) * I - skew(I*omega2)) + // Jacobian J = I + h * (skew(omega2) * I - skew(I * omega2)) // Jacobian derived by Erin Catto, Ph.D. Do not attempt to do this without a Ph.D. // Doubled inertia terms above fold into Iw, e.g. row 2 col 1: i00*w3 - i02*w1 - Iw3. b3Matrix3 J = { @@ -1313,6 +1315,7 @@ static void b3SolverTask( void* taskContext ) stageIndex += 1 + activeColorCount + ITERATIONS * activeColorCount + 1 + RELAX_ITERATIONS * activeColorCount; // Restitution + for ( int iteration = 0; iteration < B3_RESTITUTION_ITERATIONS; ++iteration ) { b3ApplyRestitution_Overflow( context ); @@ -1324,7 +1327,7 @@ static void b3SolverTask( void* taskContext ) b3ExecuteMainStage( stages + iterStageIndex, context, syncBits ); iterStageIndex += 1; } - // graphSyncIndex += 1; + graphSyncIndex += 1; stageIndex += activeColorCount; } @@ -1690,7 +1693,7 @@ void b3Solve( b3World* world, b3StepContext* stepContext ) // b3_stageRelax stageCount += RELAX_ITERATIONS * activeColorCount; // b3_stageRestitution - stageCount += activeColorCount; + stageCount += B3_RESTITUTION_ITERATIONS * activeColorCount; // b3_stageStoreWideImpulses stageCount += 1; // b3_stageStoreImpulses @@ -1775,8 +1778,8 @@ void b3Solve( b3World* world, b3StepContext* stepContext ) stage = b3InitColorStages( stage, b3_stageRelax, RELAX_ITERATIONS, activeColorCount, graphColorBlocks, graphBlockCounts, activeColorIndices ); // Note: joint blocks mixed in, could have joint limit restitution - stage = b3InitColorStages( stage, b3_stageRestitution, 1, activeColorCount, graphColorBlocks, graphBlockCounts, - activeColorIndices ); + stage = b3InitColorStages( stage, b3_stageRestitution, B3_RESTITUTION_ITERATIONS, activeColorCount, graphColorBlocks, + graphBlockCounts, activeColorIndices ); stage = b3InitStage( stage, b3_stageStoreWideImpulses, convexBlocks, convexPrepareDim.count, UINT8_MAX ); stage = b3InitStage( stage, b3_stageStoreImpulses, meshBlocks, meshPrepareDim.count, UINT8_MAX ); diff --git a/vendor/box3d/src/src/timer.c b/vendor/box3d/src/src/timer.c index 826b1495c..f779e3bbb 100644 --- a/vendor/box3d/src/src/timer.c +++ b/vendor/box3d/src/src/timer.c @@ -23,7 +23,8 @@ #define WIN32_LEAN_AND_MEAN 1 #endif -#include +// Lower-case windows.h intentionally for cross compiling on mingw. +#include #include static double s_invFrequency = 0.0; @@ -517,7 +518,7 @@ typedef struct b3Thread char name[NAME_LENGTH]; } b3Thread; -// macOS pthread_setname_np takes only the name — it always names the calling thread. +// macOS pthread_setname_np takes only the name, it always names the calling thread. static void b3SetCurrentThreadName( const char* name ) { if ( name == NULL || name[0] == 0 ) diff --git a/vendor/box3d/src/src/triangle_manifold.c b/vendor/box3d/src/src/triangle_manifold.c index b87973add..3de7fee23 100644 --- a/vendor/box3d/src/src/triangle_manifold.c +++ b/vendor/box3d/src/src/triangle_manifold.c @@ -18,7 +18,6 @@ typedef struct b3TriangleData { b3Vec3 v1, v2, v3; b3Vec3 e1, e2, e3; - b3Vec3 center; b3Plane plane; int flags; } b3TriangleData; @@ -51,7 +50,7 @@ static b3TriangleFeature b3GetTriangleFeature( const b3SimplexCache* cache ) return s_triangleFeatures[mask]; } -void b3CollideSphereAndTriangle( b3LocalManifold* manifold, int capacity, const b3Sphere* sphereA, const b3Vec3* triangleB ) +void b3CollideTriangleAndSphere( b3LocalManifold* manifold, int capacity, const b3Vec3* triangleA, const b3Sphere* sphereB ) { manifold->pointCount = 0; @@ -60,8 +59,8 @@ void b3CollideSphereAndTriangle( b3LocalManifold* manifold, int capacity, const return; } - b3Vec3 center = sphereA->center; - b3Vec3 v1 = triangleB[0], v2 = triangleB[1], v3 = triangleB[2]; + b3Vec3 center = sphereB->center; + b3Vec3 v1 = triangleA[0], v2 = triangleA[1], v3 = triangleA[2]; b3Plane plane = b3MakePlaneFromPoints( v1, v2, v3 ); float offset = b3PlaneSeparation( plane, center ); @@ -71,19 +70,23 @@ void b3CollideSphereAndTriangle( b3LocalManifold* manifold, int capacity, const return; } + float radius = sphereB->radius; + // Closest point on triangle to sphere center b3TrianglePoint closest = b3ClosestPointOnTriangle( v1, v2, v3, center ); // Test separating axis float squaredDistance = b3DistanceSquared( closest.point, center ); float speculativeDistance = B3_SPECULATIVE_DISTANCE; - float maxDistance = sphereA->radius + speculativeDistance; + float maxDistance = radius + speculativeDistance; if ( squaredDistance > maxDistance * maxDistance ) { return; } float distance = sqrtf( squaredDistance ); + + // Normal points from triangle to sphere b3Vec3 normal; if ( distance * distance > 1000.0f * FLT_MIN ) { @@ -95,7 +98,8 @@ void b3CollideSphereAndTriangle( b3LocalManifold* manifold, int capacity, const } // contact point mid-way - b3Vec3 contactPoint = b3MulSV( 0.5f, b3Add( b3Sub( center, b3MulSV( sphereA->radius, normal ) ), closest.point ) ); + // p = 0.5 * (c + q) - 0.5 * r * n + b3Vec3 contactPoint = b3MulSV( 0.5f, b3Add( b3Sub( center, b3MulSV( radius, normal ) ), closest.point ) ); manifold->normal = normal; manifold->pointCount = 1; @@ -104,7 +108,7 @@ void b3CollideSphereAndTriangle( b3LocalManifold* manifold, int capacity, const b3LocalManifoldPoint* mp = manifold->points + 0; mp->point = contactPoint; - mp->separation = distance - sphereA->radius; + mp->separation = distance - radius; mp->pair = b3FeaturePair_single; } @@ -157,56 +161,85 @@ static bool b3ClipSegmentToTriangleFace( b3ClipVertex segment[2], const b3Vec3* return true; } -static b3FaceQuery b3QueryTriangleFaceAndCapsule( b3Plane plane, const b3Capsule* capsule ) +static b3SeparatingAxis b3QueryTriangleFaceAndCapsule( b3Plane plane, const b3Capsule* capsule ) { float separation1 = b3PlaneSeparation( plane, capsule->center1 ); float separation2 = b3PlaneSeparation( plane, capsule->center2 ); if ( separation1 < separation2 ) { - return (b3FaceQuery){ + return (b3SeparatingAxis){ + .normal = plane.normal, .separation = separation1, - .faceIndex = 0, - .vertexIndex = 0, + .indexA = 0, + .indexB = 0, }; } - return (b3FaceQuery){ + return (b3SeparatingAxis){ + .normal = plane.normal, .separation = separation2, - .faceIndex = 0, - .vertexIndex = 1, + .indexA = 0, + .indexB = 1, }; } -static b3EdgeQuery b3QueryTriangleAndCapsuleEdges( const b3Vec3* vertices, const b3Capsule* capsule ) +static b3SeparatingAxis b3QueryTriangleAndCapsuleEdges( const b3Vec3* vertices, b3Plane plane, const b3Capsule* capsule ) { // Work in the local space of the capsule b3Vec3 p1 = capsule->center1; b3Vec3 p2 = capsule->center2; b3Vec3 capsuleEdge = b3Sub( p2, p1 ); - b3Vec3 capsuleCenter = b3Lerp( p1, p2, 0.5f ); - - b3Vec3 triangleCenter = b3MulSV( 1.0f / 3.0f, b3Add( vertices[0], b3Add( vertices[1], vertices[2] ) ) ); - // Find axis of minimum penetration + b3Vec3 maxNormal = b3Vec3_zero; float maxSeparation = -FLT_MAX; - int maxIndex1 = UINT8_MAX; - int maxIndex2 = UINT8_MAX; + int maxIndex1 = B3_NULL_INDEX; + int maxIndex2 = B3_NULL_INDEX; + float squaredTolerance = 0.005f * 0.005f; int edgeIndex = 2; b3Vec3 v1 = vertices[2]; for ( int index = 0; index < 3; ++index ) { b3Vec3 v2 = vertices[index]; - b3Vec3 triangleEdge = b3Sub( v2, v1 ); + b3Vec3 sideNormal = b3Normalize( b3Cross( triangleEdge, plane.normal ) ); + + // Pretend the triangle edge embeds a zero area face with a side normal. This + // provides a way to find an edge-edge normal that points outward from + // the triangle. + float a = b3Dot( capsuleEdge, plane.normal ); + float b = b3Dot( capsuleEdge, sideNormal ); + + // Is the capsule edge parallel to the triangle edge? If so, face contact can handle it. + if ( a * a + b * b < squaredTolerance * b3LengthSquared( capsuleEdge ) ) + { + continue; + } + + // Similar to hull vs hull (b3QueryEdgeDirections) + b3Vec3 axis; + if ( a * b <= 0.0f ) + { + float t = b / ( b - a ); + axis = b3Lerp( sideNormal, plane.normal, t ); + } + else + { + float t = b / ( a + b ); + axis = b3Lerp( sideNormal, b3Neg( plane.normal ), t ); + } + + B3_VALIDATE( b3LengthSquared( axis ) > 1000.0f * FLT_MIN ); + axis = b3Normalize( axis ); + float separation = b3Dot( axis, b3Sub( p1, v1 ) ); - float separation = b3EdgeEdgeSeparation( p1, capsuleEdge, capsuleCenter, v1, triangleEdge, triangleCenter ); if ( separation > maxSeparation ) { // Note: We don't exit early if we find a separating axis here since we want to // find the best one for caching and account for the convex radius later. + maxNormal = axis; maxSeparation = separation; maxIndex1 = edgeIndex; maxIndex2 = 0; @@ -217,10 +250,11 @@ static b3EdgeQuery b3QueryTriangleAndCapsuleEdges( const b3Vec3* vertices, const } // Save result - return (b3EdgeQuery){ + return (b3SeparatingAxis){ + .normal = maxNormal, .separation = maxSeparation, - .indexA = (uint8_t)maxIndex1, - .indexB = (uint8_t)maxIndex2, + .indexA = maxIndex1, + .indexB = maxIndex2, }; } @@ -272,8 +306,8 @@ static void b3BuildTriangleAndCapsuleFaceContact( b3LocalManifold* manifold, con pt->pair = segment[1].pair; } -static void b3BuildTriangleAndCapsuleEdgeContact( b3LocalManifold* manifold, const b3Vec3* triangle, const b3Capsule* capsule, - b3EdgeQuery query ) +static void b3BuildTriangleAndCapsuleEdgeContact( b3LocalManifold* manifold, const b3Vec3* triangle, b3Plane plane, + const b3Capsule* capsule, b3SeparatingAxis query ) { B3_ASSERT( 0 <= query.indexA && query.indexA < 3 ); @@ -283,20 +317,27 @@ static void b3BuildTriangleAndCapsuleEdgeContact( b3LocalManifold* manifold, con const b3Vec3* vs = triangle; - b3Vec3 triangleCenter = b3MulSV( 1.0f / 3.0f, b3Add( vs[0], b3Add( vs[1], vs[2] ) ) ); b3Vec3 v1 = vs[query.indexA]; b3Vec3 v2 = vs[( query.indexA + 1 ) % 3]; b3Vec3 triangleEdge = b3Sub( v2, v1 ); - b3Vec3 normal = b3Cross( capsuleEdge, triangleEdge ); - normal = b3Normalize( normal ); + b3Vec3 sideNormal = b3Normalize( b3Cross( triangleEdge, plane.normal ) ); - // Normal should point away from triangle center - if ( b3Dot( normal, b3Sub( v1, triangleCenter ) ) < 0.0f ) + // Pretend the triangle edge embeds a zero area face with a side normal. This + // provides a way to find an edge-edge normal that points outward from + // the triangle. + float a = b3Dot( capsuleEdge, plane.normal ); + float b = b3Dot( capsuleEdge, sideNormal ); + + // Is the capsule edge parallel to the triangle edge? If so, face contact can handle it. + float squaredTolerance = 0.005f * 0.005f; + if ( a * a + b * b < squaredTolerance * b3LengthSquared( capsuleEdge ) ) { - normal = b3Neg( normal ); + return; } + // Similar to hull vs hull (b3QueryEdgeDirections) + b3Vec3 normal = query.normal; b3SegmentDistanceResult result = b3LineDistance( v1, triangleEdge, p1, capsuleEdge ); if ( result.fraction1 < 0.0f || 1.0f < result.fraction1 || result.fraction2 < 0.0f || 1.0f < result.fraction2 ) @@ -306,8 +347,7 @@ static void b3BuildTriangleAndCapsuleEdgeContact( b3LocalManifold* manifold, con } b3Vec3 point = b3Lerp( b3MulSub( result.point1, capsule->radius, normal ), result.point2, 0.5f ); - - float separation = b3Dot( normal, b3Sub( result.point2, result.point1 ) ); + float separation = b3Dot( normal, b3Sub( p1, v1 ) ); B3_VALIDATE( b3AbsFloat( separation - query.separation ) < B3_LINEAR_SLOP ); manifold->normal = normal; @@ -322,7 +362,7 @@ static void b3BuildTriangleAndCapsuleEdgeContact( b3LocalManifold* manifold, con pt->pair = b3MakeFeaturePair( b3_featureShapeA, query.indexA, b3_featureShapeB, query.indexB ); } -void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const b3Capsule* capsuleA, const b3Vec3* triangleB, +void b3CollideTriangleAndCapsule( b3LocalManifold* manifold, int capacity, const b3Vec3* triangleA, const b3Capsule* capsuleB, b3SimplexCache* cache ) { manifold->pointCount = 0; @@ -332,9 +372,9 @@ void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const return; } - b3Vec3 v1 = triangleB[0], v2 = triangleB[1], v3 = triangleB[2]; + b3Vec3 v1 = triangleA[0], v2 = triangleA[1], v3 = triangleA[2]; b3Plane plane = b3MakePlaneFromPoints( v1, v2, v3 ); - b3Vec3 capsuleCenter = b3Lerp( capsuleA->center1, capsuleA->center2, 0.5f ); + b3Vec3 capsuleCenter = b3Lerp( capsuleB->center1, capsuleB->center2, 0.5f ); float offset = b3PlaneSeparation( plane, capsuleCenter ); if ( offset < 0.0f ) @@ -344,15 +384,15 @@ void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const } b3DistanceInput distanceInput; - distanceInput.proxyA = (b3ShapeProxy){ triangleB, 3, 0.0f }; - distanceInput.proxyB = (b3ShapeProxy){ &capsuleA->center1, 2, 0.0f }; + distanceInput.proxyA = (b3ShapeProxy){ triangleA, 3, 0.0f }; + distanceInput.proxyB = (b3ShapeProxy){ &capsuleB->center1, 2, 0.0f }; distanceInput.transform = b3Transform_identity; distanceInput.useRadii = false; b3DistanceOutput distanceOutput = b3ShapeDistance( &distanceInput, cache, NULL, 0 ); - - float radius = capsuleA->radius; - if ( distanceOutput.distance > radius + B3_SPECULATIVE_DISTANCE ) + float speculativeDistance = B3_SPECULATIVE_DISTANCE; + float radius = capsuleB->radius; + if ( distanceOutput.distance > radius + speculativeDistance ) { // Shapes are separated, persist the cache return; @@ -370,14 +410,14 @@ void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const { // Clip capsule segment against side planes of reference face b3ClipVertex segment[2]; - segment[0].position = capsuleA->center1; + segment[0].position = capsuleB->center1; segment[0].separation = 0.0f; segment[0].pair = b3MakeFeaturePair( b3_featureShapeA, 0, b3_featureShapeA, 0 ); - segment[1].position = capsuleA->center2; + segment[1].position = capsuleB->center2; segment[1].separation = 0.0f; segment[1].pair = b3MakeFeaturePair( b3_featureShapeA, 1, b3_featureShapeA, 1 ); - bool havePoints = b3ClipSegmentToTriangleFace( segment, triangleB, plane ); + bool havePoints = b3ClipSegmentToTriangleFace( segment, triangleA, plane ); if ( havePoints == true ) { @@ -388,6 +428,7 @@ void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const b3Vec3 point1 = b3MulSub( segment[0].position, 0.5f * ( radius + distance1 ), normal ); b3Vec3 point2 = b3MulSub( segment[1].position, 0.5f * ( radius + distance2 ), normal ); + // Normal points from triangle to capsule manifold->normal = normal; manifold->feature = b3_featureTriangleFace; manifold->pointCount = 2; @@ -406,9 +447,10 @@ void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const } } - // Create contact from closest points + // Create contact from closest points. b3Vec3 point = b3MulSV( 0.5f, b3Add( b3Sub( distanceOutput.pointA, b3MulSV( radius, delta ) ), distanceOutput.pointB ) ); + // Normal points from triangle to capsule. manifold->normal = delta; manifold->pointCount = 1; manifold->feature = b3GetTriangleFeature( cache ); @@ -423,38 +465,38 @@ void b3CollideCapsuleAndTriangle( b3LocalManifold* manifold, int capacity, const // Deep penetration - b3FaceQuery faceQuery = b3QueryTriangleFaceAndCapsule( plane, capsuleA ); + b3SeparatingAxis faceQuery = b3QueryTriangleFaceAndCapsule( plane, capsuleB ); if ( faceQuery.separation > radius ) { - // Shapes are separated + // Shapes are separated. Should be impossible for a reasonable capsule radius. return; } - b3EdgeQuery edgeQuery = b3QueryTriangleAndCapsuleEdges( triangleB, capsuleA ); + b3SeparatingAxis edgeQuery = b3QueryTriangleAndCapsuleEdges( triangleA, plane, capsuleB ); if ( edgeQuery.separation > radius ) { - // Shapes are separated + // Shapes are separated. Should be impossible for a reasonable capsule radius. return; } // Create face contact float faceSeparation = faceQuery.separation - radius; - b3BuildTriangleAndCapsuleFaceContact( manifold, triangleB, plane, capsuleA ); + b3BuildTriangleAndCapsuleFaceContact( manifold, triangleA, plane, capsuleB ); + B3_VALIDATE( manifold->pointCount == 0 || manifold->pointCount == 2 ); if ( manifold->pointCount == 2 ) { + // This becomes the clipped separation. faceSeparation = b3MinFloat( manifold->points[0].separation, manifold->points[1].separation ); } - B3_VALIDATE( faceSeparation <= 0.0f ); // Face contact can be empty if it does not realize the axis of minimum penetration. // Create edge contact if face contact fails or edge contact is significantly better! - const float kRelEdgeTolerance = 0.50f; - const float kAbsTolerance = 1.0f * B3_LINEAR_SLOP; + float linearSlop = B3_LINEAR_SLOP; float edgeSeparation = edgeQuery.separation - radius; - if ( manifold->pointCount == 0 || edgeSeparation > kRelEdgeTolerance * faceSeparation + kAbsTolerance ) + if ( manifold->pointCount == 0 || edgeSeparation > faceSeparation + linearSlop ) { // Edge contact - b3BuildTriangleAndCapsuleEdgeContact( manifold, triangleB, capsuleA, edgeQuery ); + b3BuildTriangleAndCapsuleEdgeContact( manifold, triangleA, plane, capsuleB, edgeQuery ); } } @@ -479,31 +521,35 @@ static inline int b3GetTriangleSupport( b3Vec3* points, b3Vec3 direction ) return index; } -static b3FaceQuery b3QueryTriangleFace( const b3TriangleData* triangle, const b3HullData* hull ) +static b3SeparatingAxis b3QueryTriangleFace( const b3TriangleData* triangle, const b3HullData* hull ) { const b3Vec3* hullPoints = b3GetHullPoints( hull ); b3Plane plane = triangle->plane; - int vertexIndex = b3FindHullSupportVertex( hull, b3Neg( plane.normal ) ); + b3Vec3 normal = b3Neg( plane.normal ); + int vertexIndex = b3FindHullSupportVertex( hull, normal ); b3Vec3 support = hullPoints[vertexIndex]; float separation = b3PlaneSeparation( plane, support ); - return (b3FaceQuery){ + return (b3SeparatingAxis){ + .normal = plane.normal, .separation = separation, - .faceIndex = 0, - .vertexIndex = (uint8_t)vertexIndex, + .indexA = 0, + .indexB = vertexIndex, + .type = b3_faceAxisA, }; } -static b3FaceQuery b3QueryHullFace( const b3TriangleData* triangle, const b3HullData* hull ) +static b3SeparatingAxis b3QueryHullFace( const b3TriangleData* triangle, const b3HullData* hull ) { const b3Plane* hullPlanes = b3GetHullPlanes( hull ); int faceCount = hull->faceCount; b3Vec3 trianglePoints[] = { triangle->v1, triangle->v2, triangle->v3 }; - int maxFaceIndex = -1; - int maxVertexIndex = -1; - float maxFaceSeparation = -FLT_MAX; + b3Vec3 maxNormal = b3Vec3_zero; + float maxFaceSeparation = -INFINITY; + int maxFaceIndex = B3_NULL_INDEX; + int maxVertexIndex = B3_NULL_INDEX; for ( int faceIndex = 0; faceIndex < faceCount; ++faceIndex ) { @@ -514,25 +560,32 @@ static b3FaceQuery b3QueryHullFace( const b3TriangleData* triangle, const b3Hull float separation = b3PlaneSeparation( plane, support ); if ( separation > maxFaceSeparation ) { + maxNormal = plane.normal; + maxFaceSeparation = separation; maxFaceIndex = faceIndex; maxVertexIndex = vertexIndex; - maxFaceSeparation = separation; } } - return (b3FaceQuery){ + // Normal points from triangle to hull + return (b3SeparatingAxis){ + .normal = b3Neg( maxNormal ), .separation = maxFaceSeparation, - .faceIndex = maxFaceIndex, - .vertexIndex = maxVertexIndex, + .indexA = maxVertexIndex, + .indexB = maxFaceIndex, + .type = b3_faceAxisB, }; } -static b3EdgeQuery b3TestEdgePairs( const b3TriangleData* triangle, const b3HullData* hull ) +// A: hull, B: triangle +static b3SeparatingAxis b3QueryTriangleAndHullEdges( const b3TriangleData* triangle, const b3HullData* hull ) { - b3EdgeQuery result = { - .separation = -FLT_MAX, + b3SeparatingAxis result = { + .normal = b3Vec3_zero, + .separation = -INFINITY, .indexA = B3_NULL_INDEX, .indexB = B3_NULL_INDEX, + .type = b3_edgePairAxis, }; b3Vec3 trianglePoints[] = { triangle->v1, triangle->v2, triangle->v3 }; @@ -552,6 +605,7 @@ static b3EdgeQuery b3TestEdgePairs( const b3TriangleData* triangle, const b3Hull const b3Vec3* hullPoints = b3GetHullPoints( hull ); const b3Plane* hullPlanes = b3GetHullPlanes( hull ); int edgeCount = hull->edgeCount; + float squaredTolerance = 0.005f * 0.005f; for ( int i = 0; i < edgeCount; i += 2 ) { @@ -577,14 +631,28 @@ static b3EdgeQuery b3TestEdgePairs( const b3TriangleData* triangle, const b3Hull continue; } - b3Vec3 triPoint = trianglePoints[j]; - float separation = b3EdgeEdgeSeparation( triPoint, triEdge, triangle->center, hullPoint, hullEdge, hull->center ); + // Avoid nearly parallel edges that may lead to invalid separation values at the noise floor. + if ( b3MaxFloat( cab * cab, dab * dab ) < squaredTolerance * b3LengthSquared( triEdge ) ) + { + continue; + } + + // Similar to hull vs hull (b3QueryEdgeDirections) + // dot(hullNormal1 + t * (hullNormal2 - hullNormal1), triEdge) = 0 + // Normal points out of hull by construction. + float t = cab / ( cab - dab ); + b3Vec3 axis = b3Lerp( hullNormal1, hullNormal2, t ); + B3_VALIDATE( b3LengthSquared( axis ) > 1000.0f * FLT_MIN ); + axis = b3Normalize( axis ); + float separation = b3Dot( axis, b3Sub( trianglePoints[j], hullPoint ) ); // if ( separation > result.separation && ( edgeFlags[j] & triangleFlags ) == 0 ) if ( separation > result.separation ) { // Note: We don't exit early if we find a separating axis here since we want to // find the best one for caching. + // Flip normal to point from triangle to hull. + result.normal = b3Neg( axis ); result.separation = separation; result.indexA = j; result.indexB = i; @@ -596,8 +664,12 @@ static b3EdgeQuery b3TestEdgePairs( const b3TriangleData* triangle, const b3Hull } static float b3CollideHullFace( b3LocalManifold* manifold, int pointCapacity, const b3TriangleData* triangle, - const b3HullData* hull, b3FaceQuery query, b3SATCache* cache, bool enableSpeculative ) + const b3HullData* hull, b3SeparatingAxis query, b3SATCache* cache, bool enableSpeculative ) { + B3_VALIDATE( query.type == b3_faceAxisB ); + B3_VALIDATE( 0 <= query.indexA && query.indexA < 3 ); + B3_VALIDATE( 0 <= query.indexB && query.indexB < hull->faceCount ); + manifold->pointCount = 0; const b3HullFace* hullFaces = b3GetHullFaces( hull ); @@ -606,8 +678,7 @@ static float b3CollideHullFace( b3LocalManifold* manifold, int pointCapacity, co const b3Vec3* hullPoints = b3GetHullPoints( hull ); // Reference hull face - int refFace = query.faceIndex; - b3Plane refPlane = hullPlanes[refFace]; + b3Plane refPlane = hullPlanes[query.indexB]; // Build clip polygon from triangle face (the incident face) b3ClipVertex buffer1[B3_MAX_CLIP_POINTS], buffer2[B3_MAX_CLIP_POINTS]; @@ -630,7 +701,7 @@ static float b3CollideHullFace( b3LocalManifold* manifold, int pointCapacity, co b3ClipVertex* input = buffer1; b3ClipVertex* output = buffer2; - const b3HullFace* face = hullFaces + refFace; + const b3HullFace* face = hullFaces + query.indexB; int edgeIndex = face->edge; do @@ -702,14 +773,17 @@ static float b3CollideHullFace( b3LocalManifold* manifold, int pointCapacity, co // Save cache cache->separation = minSeparation; cache->type = b3_faceAxisB; - cache->indexA = (uint8_t)query.vertexIndex; - cache->indexB = (uint8_t)query.faceIndex; + cache->indexA = (uint8_t)query.indexA; + cache->indexB = (uint8_t)query.indexB; return minSeparation; } static float b3CollideTriangleFace( b3LocalManifold* manifold, int pointCapacity, const b3TriangleData* triangle, - const b3HullData* hull, b3FaceQuery query, b3SATCache* cache, bool enableSpeculative ) + const b3HullData* hull, b3SeparatingAxis query, b3SATCache* cache, bool enableSpeculative ) { + B3_VALIDATE( query.type == b3_faceAxisA ); + B3_VALIDATE( query.indexA == 0 ); + B3_VALIDATE( 0 <= query.indexB && query.indexB < hull->vertexCount ); B3_VALIDATE( manifold->pointCount == 0 ); const b3HullFace* hullFaces = b3GetHullFaces( hull ); @@ -717,10 +791,9 @@ static float b3CollideTriangleFace( b3LocalManifold* manifold, int pointCapacity const b3Vec3* hullPoints = b3GetHullPoints( hull ); // Find incident face - B3_ASSERT( query.faceIndex == 0 ); b3Plane refPlane = triangle->plane; - int incFace = b3FindIncidentFace( hull, refPlane.normal, query.vertexIndex ); + int incFace = b3FindIncidentFace( hull, refPlane.normal, query.indexB ); // Build clip polygon from incident face b3ClipVertex buffer1[2 * B3_MAX_CLIP_POINTS], buffer2[2 * B3_MAX_CLIP_POINTS]; @@ -816,18 +889,19 @@ static float b3CollideTriangleFace( b3LocalManifold* manifold, int pointCapacity // Save cache cache->separation = minSeparation; cache->type = b3_faceAxisA; - cache->indexA = (uint8_t)query.faceIndex; - cache->indexB = (uint8_t)query.vertexIndex; + cache->indexA = (uint8_t)query.indexA; + cache->indexB = (uint8_t)query.indexB; return minSeparation; } -static void b3CollideHullAndTriangleEdges( b3LocalManifold* manifold, int capacity, b3Vec3 trianglePoint, b3Vec3 triangleEdge, - b3Vec3 triangleCenter, const b3HullData* hull, b3EdgeQuery query, b3SATCache* cache ) +static void b3CollideTriangleAndHullEdges( b3LocalManifold* manifold, int capacity, b3Vec3 trianglePoint, b3Vec3 triangleEdge, + const b3HullData* hull, b3SeparatingAxis query, b3SATCache* cache ) { + B3_VALIDATE( query.type == b3_edgePairAxis ); + B3_VALIDATE( 0 <= query.indexA && query.indexA < 3 ); + B3_VALIDATE( 0 <= query.indexB && query.indexB < hull->edgeCount ); B3_VALIDATE( query.separation <= 2.0f * B3_SPECULATIVE_DISTANCE ); - B3_ASSERT( query.indexA < 3 ); - b3Vec3 cA = triangleCenter; b3Vec3 pA = trianglePoint; b3Vec3 eA = triangleEdge; @@ -839,32 +913,6 @@ static void b3CollideHullAndTriangleEdges( b3LocalManifold* manifold, int capaci b3Vec3 qB = pointsB[twinB->origin]; b3Vec3 eB = b3Sub( qB, pB ); - b3Vec3 normal = b3Cross( eA, eB ); - normal = b3Normalize( normal ); - - // Ensure normal points outward from triangle center - float outwardA = b3Dot( normal, b3Sub( pA, cA ) ); - - // Ensure normal points towards hull center - float outwardB = b3Dot( normal, b3Sub( hull->center, pB ) ); - - // Use the largest magnitude. The triangle outward value - // may be unreliable as some angles. - if ( b3AbsFloat( outwardA ) > b3AbsFloat( outwardB ) ) - { - if ( outwardA < 0.0f ) - { - normal = b3Neg( normal ); - } - } - else - { - if ( outwardB < 0.0f ) - { - normal = b3Neg( normal ); - } - } - // Get the closest points between the infinite edge lines b3SegmentDistanceResult result = b3LineDistance( pA, eA, pB, eB ); @@ -879,7 +927,7 @@ static void b3CollideHullAndTriangleEdges( b3LocalManifold* manifold, int capaci } // This can slide off the end from caching - float separation = b3Dot( normal, b3Sub( result.point2, result.point1 ) ); + float separation = b3Dot( query.normal, b3Sub( pB, pA ) ); B3_VALIDATE( b3AbsFloat( separation - query.separation ) < B3_LINEAR_SLOP ); b3Vec3 point = b3MulSV( 0.5f, b3Add( result.point1, result.point2 ) ); @@ -895,30 +943,19 @@ static void b3CollideHullAndTriangleEdges( b3LocalManifold* manifold, int capaci cache->indexA = (uint8_t)query.indexA; cache->indexB = (uint8_t)query.indexB; - manifold->normal = normal; + manifold->normal = query.normal; manifold->pointCount = 1; b3TriangleFeature edgesFeatures[] = { b3_featureEdge1, b3_featureEdge2, b3_featureEdge3 }; manifold->feature = edgesFeatures[query.indexA]; } -// See "Collision Detection of Convex Polyhedra Based on Duality Transformation" -// Simplified for triangle versus hull -static inline bool b3IsTriangleMinkowskiFace( b3Vec3 triNormal, b3Vec3 triEdge, b3Vec3 hullNormal1, b3Vec3 hullNormal2, - b3Vec3 hullEdge ) -{ - float cab = b3Dot( hullNormal1, triEdge ); - float dab = b3Dot( hullNormal2, triEdge ); - float bcd = b3Dot( triNormal, hullEdge ); - return cab * dab < 0.0f && cab * bcd > 0.0f; -} - b3AtomicInt b3_triangleConvexCalls; b3AtomicInt b3_triangleCacheHits; -// Computes the manifold in the local space of the hull -void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3HullData* hullA, b3Vec3 v1, b3Vec3 v2, b3Vec3 v3, - int triangleFlags, b3SATCache* cache, bool enableSpeculative ) +// Triangle is in the local space of the hull for efficiency. +void b3CollideTriangleAndHull( b3LocalManifold* manifold, int capacity, b3Vec3 v1, b3Vec3 v2, b3Vec3 v3, int triangleFlags, + const b3HullData* hullB, b3SATCache* cache, bool enableSpeculative ) { manifold->pointCount = 0; manifold->feature = b3_featureNone; @@ -931,7 +968,7 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 b3Plane trianglePlane = b3MakePlaneFromPoints( v1, v2, v3 ); float linearSlop = B3_LINEAR_SLOP; - float offset = b3PlaneSeparation( trianglePlane, hullA->center ); + float offset = b3PlaneSeparation( trianglePlane, hullB->center ); if ( cache->type == b3_backsideAxis ) { // Use hysteresis to avoid jitter on wavy meshes @@ -951,7 +988,6 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 return; } - b3Vec3 triangleCenter = b3MulSV( 1.0f / 3.0f, b3Add( v1, b3Add( v2, v3 ) ) ); b3Vec3 trianglePoints[] = { v1, v2, v3 }; b3Vec3 triangleEdges[] = { b3Sub( v2, v1 ), b3Sub( v3, v2 ), b3Sub( v1, v3 ) }; @@ -962,14 +998,13 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 .e1 = triangleEdges[0], .e2 = triangleEdges[1], .e3 = triangleEdges[2], - .center = triangleCenter, .plane = trianglePlane, .flags = triangleFlags, }; - const b3HullHalfEdge* edges = b3GetHullEdges( hullA ); - const b3Plane* hullPlanes = b3GetHullPlanes( hullA ); - const b3Vec3* hullPoints = b3GetHullPoints( hullA ); + const b3HullHalfEdge* edges = b3GetHullEdges( hullB ); + const b3Plane* hullPlanes = b3GetHullPlanes( hullB ); + const b3Vec3* hullPoints = b3GetHullPoints( hullB ); float speculativeDistance = enableSpeculative ? B3_SPECULATIVE_DISTANCE : 0.0f; cache->hit = 1; @@ -981,7 +1016,7 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 { B3_ASSERT( cache->indexA == 0 ); - int vertexIndex = b3FindHullSupportVertex( hullA, b3Neg( trianglePlane.normal ) ); + int vertexIndex = b3FindHullSupportVertex( hullB, b3Neg( trianglePlane.normal ) ); b3Vec3 support = hullPoints[vertexIndex]; float separation = b3PlaneSeparation( trianglePlane, support ); if ( separation > speculativeDistance ) @@ -990,15 +1025,17 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 return; } - b3FaceQuery faceQuery; + b3SeparatingAxis faceQuery; + faceQuery.normal = trianglePlane.normal; faceQuery.separation = separation; - faceQuery.faceIndex = cache->indexA; - faceQuery.vertexIndex = vertexIndex; + faceQuery.indexA = cache->indexA; + faceQuery.indexB = vertexIndex; + faceQuery.type = b3_faceAxisA; // Read cache but don't modify it b3SATCache localCache = *cache; float clippedSeparation = - b3CollideTriangleFace( manifold, capacity, &triangle, hullA, faceQuery, &localCache, enableSpeculative ); + b3CollideTriangleFace( manifold, capacity, &triangle, hullB, faceQuery, &localCache, enableSpeculative ); if ( manifold->pointCount > 0 && b3AbsFloat( cache->separation - clippedSeparation ) < linearSlop ) { @@ -1014,7 +1051,7 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 case b3_faceAxisB: { - B3_ASSERT( cache->indexB < hullA->faceCount ); + B3_ASSERT( cache->indexB < hullB->faceCount ); b3Plane plane = hullPlanes[cache->indexB]; @@ -1049,15 +1086,17 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 if ( isDeep == false ) { // Try to rebuild contact from last features - b3FaceQuery faceQuery; + b3SeparatingAxis faceQuery; + faceQuery.normal = b3Neg( plane.normal ); faceQuery.separation = separation; - faceQuery.faceIndex = cache->indexB; - faceQuery.vertexIndex = vertexIndex; + faceQuery.indexA = vertexIndex; + faceQuery.indexB = cache->indexB; + faceQuery.type = b3_faceAxisB; // Read cache but don't modify it b3SATCache localCache = *cache; float clippedSeparation = - b3CollideHullFace( manifold, capacity, &triangle, hullA, faceQuery, &localCache, enableSpeculative ); + b3CollideHullFace( manifold, capacity, &triangle, hullB, faceQuery, &localCache, enableSpeculative ); // Cache reuse is only successful if it creates contact points and the clipped separation didn't change much. if ( manifold->pointCount > 0 && b3AbsFloat( cache->separation - clippedSeparation ) < linearSlop ) @@ -1081,7 +1120,7 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 b3Vec3 triPoint = trianglePoints[indexA]; b3Vec3 triEdge = triangleEdges[indexA]; - B3_ASSERT( cache->indexB < hullA->edgeCount - 1 ); + B3_ASSERT( cache->indexB < hullB->edgeCount - 1 ); int indexB = cache->indexB; const b3HullHalfEdge* edge2 = edges + indexB; @@ -1093,36 +1132,55 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 b3Vec3 hullNormal1 = hullPlanes[edge2->face].normal; b3Vec3 hullNormal2 = hullPlanes[twin2->face].normal; - // Confirm the edge pair is still a Minkowski face - bool isMinkowski = b3IsTriangleMinkowskiFace( trianglePlane.normal, triEdge, hullNormal1, hullNormal2, hullEdge ); - if ( isMinkowski ) + // Confirm the edge pair is still a Minkowski face. + // See "Collision Detection of Convex Polyhedra Based on Duality Transformation" + // Simplified for triangle versus hull. + float cab = b3Dot( hullNormal1, triEdge ); + float dab = b3Dot( hullNormal2, triEdge ); + float bcd = b3Dot( trianglePlane.normal, hullEdge ); + + if ( cab * dab < 0.0f && cab * bcd > 0.0f ) { - // Transform reference center of the first hull into local space of the second hull - float separation = b3EdgeEdgeSeparation( triPoint, triEdge, triangleCenter, hullPoint, hullEdge, hullA->center ); - if ( separation > speculativeDistance ) + float squaredTolerance = 0.005f * 0.005f; + + // Avoid nearly parallel edges that may lead to invalid separation values at the noise floor. + if ( b3MaxFloat( cab * cab, dab * dab ) >= squaredTolerance * b3LengthSquared( triEdge ) ) { - // Cache hit, shapes are separated - return; - } - - if ( b3AbsFloat( cache->separation - separation ) < linearSlop ) - { - // Try to rebuild contact from last features - b3EdgeQuery edgeQuery; - edgeQuery.indexA = indexA; - edgeQuery.indexB = indexB; - edgeQuery.separation = separation; - - // Read cache but don't modify it - b3SATCache localCache = *cache; - b3CollideHullAndTriangleEdges( manifold, capacity, triPoint, triEdge, triangleCenter, hullA, edgeQuery, - &localCache ); - - if ( manifold->pointCount > 0 ) + // Similar to hull vs hull (b3QueryEdgeDirections) + // dot(hullNormal1 + t * (hullNormal2 - hullNormal1), triEdge) = 0 + // Normal points out of hull by construction. + float t = cab / ( cab - dab ); + b3Vec3 axis = b3Lerp( hullNormal1, hullNormal2, t ); + B3_VALIDATE( b3LengthSquared( axis ) > 1000.0f * FLT_MIN ); + axis = b3Normalize( axis ); + float separation = b3Dot( axis, b3Sub( triPoint, hullPoint ) ); + if ( separation > speculativeDistance ) { - // Cache hit, contact point generated + // Cache hit, shapes are separated return; } + + if ( b3AbsFloat( cache->separation - separation ) < linearSlop ) + { + // Try to rebuild contact from last features + // Flip normal to point from triangle to hull + b3SeparatingAxis edgeQuery; + edgeQuery.normal = b3Neg( axis ); + edgeQuery.indexA = indexA; + edgeQuery.indexB = indexB; + edgeQuery.separation = separation; + edgeQuery.type = b3_edgePairAxis; + + // Read cache but don't modify it + b3SATCache localCache = *cache; + b3CollideTriangleAndHullEdges( manifold, capacity, triPoint, triEdge, hullB, edgeQuery, &localCache ); + + if ( manifold->pointCount > 0 ) + { + // Cache hit, contact point generated + return; + } + } } } @@ -1134,29 +1192,28 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 // This case is for testing case b3_manualFaceAxisA: { - b3FaceQuery faceQueryA = b3QueryTriangleFace( &triangle, hullA ); - b3CollideTriangleFace( manifold, capacity, &triangle, hullA, faceQueryA, cache, enableSpeculative ); + b3SeparatingAxis query = b3QueryTriangleFace( &triangle, hullB ); + b3CollideTriangleFace( manifold, capacity, &triangle, hullB, query, cache, enableSpeculative ); return; } // This case is for testing case b3_manualFaceAxisB: { - b3FaceQuery faceQueryB = b3QueryHullFace( &triangle, hullA ); - b3CollideHullFace( manifold, capacity, &triangle, hullA, faceQueryB, cache, enableSpeculative ); + b3SeparatingAxis query = b3QueryHullFace( &triangle, hullB ); + b3CollideHullFace( manifold, capacity, &triangle, hullB, query, cache, enableSpeculative ); return; } // This case is for testing case b3_manualEdgePairAxis: { - b3EdgeQuery edgeQuery = b3TestEdgePairs( &triangle, hullA ); - if ( edgeQuery.indexA != B3_NULL_INDEX ) + b3SeparatingAxis query = b3QueryTriangleAndHullEdges( &triangle, hullB ); + if ( query.indexA != B3_NULL_INDEX ) { - b3Vec3 trianglePoint = trianglePoints[edgeQuery.indexA]; - b3Vec3 triangleEdge = triangleEdges[edgeQuery.indexA]; - b3CollideHullAndTriangleEdges( manifold, capacity, trianglePoint, triangleEdge, triangleCenter, hullA, edgeQuery, - cache ); + b3Vec3 trianglePoint = trianglePoints[query.indexA]; + b3Vec3 triangleEdge = triangleEdges[query.indexA]; + b3CollideTriangleAndHullEdges( manifold, capacity, trianglePoint, triangleEdge, hullB, query, cache ); } return; } @@ -1170,29 +1227,29 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 cache->hit = 0; // Find axis of minimum penetration - b3FaceQuery faceQueryA = b3QueryTriangleFace( &triangle, hullA ); + b3SeparatingAxis faceQueryA = b3QueryTriangleFace( &triangle, hullB ); if ( faceQueryA.separation > speculativeDistance ) { // Separating axis found cache->separation = faceQueryA.separation; cache->type = b3_faceAxisA; - cache->indexA = 0; - cache->indexB = UINT8_MAX; + cache->indexA = (uint8_t)faceQueryA.indexA; + cache->indexB = (uint8_t)faceQueryA.indexB; return; } - b3FaceQuery faceQueryB = b3QueryHullFace( &triangle, hullA ); + b3SeparatingAxis faceQueryB = b3QueryHullFace( &triangle, hullB ); if ( faceQueryB.separation > speculativeDistance ) { // Separating axis found cache->separation = faceQueryB.separation; cache->type = b3_faceAxisB; - cache->indexA = UINT8_MAX; - cache->indexB = (uint8_t)faceQueryB.faceIndex; + cache->indexA = (uint8_t)faceQueryB.indexA; + cache->indexB = (uint8_t)faceQueryB.indexB; return; } - b3EdgeQuery edgeQuery = b3TestEdgePairs( &triangle, hullA ); + b3SeparatingAxis edgeQuery = b3QueryTriangleAndHullEdges( &triangle, hullB ); if ( edgeQuery.separation > speculativeDistance ) { // Separating axis found @@ -1203,21 +1260,18 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 return; } - float clippedFaceSeparation; + float clipSeparation; // Don't admit a hull face significantly opposed to the triangle face. // Need a tolerance to avoid ghost collisions. - // todo hull query skips faces that point along the triangle normal - b3Vec3 hullNormal = hullPlanes[faceQueryB.faceIndex].normal; - bool pushingDown = b3Dot( hullNormal, trianglePlane.normal ) > 0.25f; - if ( faceQueryB.separation > faceQueryA.separation + linearSlop && pushingDown == false ) + bool pushingDown = b3Dot( faceQueryB.normal, trianglePlane.normal ) < -0.25f; + if ( faceQueryB.separation >= faceQueryA.separation && pushingDown == false ) { - clippedFaceSeparation = b3CollideHullFace( manifold, capacity, &triangle, hullA, faceQueryB, cache, enableSpeculative ); + clipSeparation = b3CollideHullFace( manifold, capacity, &triangle, hullB, faceQueryB, cache, enableSpeculative ); } else { - clippedFaceSeparation = - b3CollideTriangleFace( manifold, capacity, &triangle, hullA, faceQueryA, cache, enableSpeculative ); + clipSeparation = b3CollideTriangleFace( manifold, capacity, &triangle, hullB, faceQueryA, cache, enableSpeculative ); } // Does an edge axis exist? @@ -1228,14 +1282,13 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 float maxFaceSeparation = b3MaxFloat( faceQueryA.separation, faceQueryB.separation ); if ( ( manifold->pointCount == 0 && edgeQuery.separation > maxFaceSeparation ) || - ( manifold->pointCount == 1 && edgeQuery.separation > clippedFaceSeparation + linearSlop ) ) + ( manifold->pointCount == 1 && edgeQuery.separation > clipSeparation + linearSlop ) ) { B3_ASSERT( 0 <= edgeQuery.indexA && edgeQuery.indexA < 3 ); b3Vec3 trianglePoint = trianglePoints[edgeQuery.indexA]; b3Vec3 triangleEdge = triangleEdges[edgeQuery.indexA]; manifold->pointCount = 0; - b3CollideHullAndTriangleEdges( manifold, capacity, trianglePoint, triangleEdge, triangleCenter, hullA, edgeQuery, - cache ); + b3CollideTriangleAndHullEdges( manifold, capacity, trianglePoint, triangleEdge, hullB, edgeQuery, cache ); } } @@ -1250,7 +1303,7 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 .count = 3, .radius = 0.0f, }; - input.proxyB = (b3ShapeProxy){ .points = hullPoints, .count = hullA->vertexCount, .radius = 0.0f }; + input.proxyB = (b3ShapeProxy){ .points = hullPoints, .count = hullB->vertexCount, .radius = 0.0f }; input.transform = b3Transform_identity; input.useRadii = false; @@ -1270,5 +1323,8 @@ void b3CollideHullAndTriangle( b3LocalManifold* manifold, int capacity, const b3 // This feature pair not accurate but maybe it doesn't matter manifold->points[0].pair = b3FeaturePair_single; } + + // No way to cache this scenario + *cache = (b3SATCache){ 0 }; } } diff --git a/vendor/box3d/src/src/types.c b/vendor/box3d/src/src/types.c index b199cd15d..7e2cd071e 100644 --- a/vendor/box3d/src/src/types.c +++ b/vendor/box3d/src/src/types.c @@ -80,10 +80,9 @@ b3ShapeDef b3DefaultShapeDef( void ) return def; } -static bool b3EmptyDrawShape( void* userShape, b3WorldTransform transform, b3HexColor color, void* context ) +static void b3EmptyDrawShape( void* userShape, b3WorldTransform transform, b3HexColor color, void* context ) { B3_UNUSED( userShape, transform, color, context ); - return false; } static void b3EmptyDrawSegment( b3Pos p1, b3Pos p2, b3HexColor color, void* context ) From c98f01c6b1241679808e78f755d4895fd12385d0 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Tue, 4 Aug 2026 14:20:27 +0200 Subject: [PATCH 18/21] Add box3d arm64 binary --- vendor/box3d/lib/linux-arm64/libbox3d.a | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 vendor/box3d/lib/linux-arm64/libbox3d.a diff --git a/vendor/box3d/lib/linux-arm64/libbox3d.a b/vendor/box3d/lib/linux-arm64/libbox3d.a new file mode 100644 index 000000000..114b3b1c9 --- /dev/null +++ b/vendor/box3d/lib/linux-arm64/libbox3d.a @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d7b2c7d972411df94f8fd6150653a4eaa8318051fc46b16ec5884af5b2b426f +size 1368434 From 74c006cc2053bc612d82e6a84a39f8aa797b77d4 Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Tue, 4 Aug 2026 14:32:38 +0200 Subject: [PATCH 19/21] Revert box3d arm64 lib --- .gitattributes | 1 - vendor/box3d/lib/linux-arm64/libbox3d.a | 3 --- 2 files changed, 4 deletions(-) delete mode 100644 vendor/box3d/lib/linux-arm64/libbox3d.a diff --git a/.gitattributes b/.gitattributes index d808581de..dd9d1a0c8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,7 +6,6 @@ Makefile text eol=lf vendor/box2d/lib/box2d_windows_amd64_avx2.lib filter=lfs diff=lfs merge=lfs -text vendor/box2d/lib/box2d_windows_amd64_sse2.lib filter=lfs diff=lfs merge=lfs -text vendor/box3d/lib/linux-amd64/libbox3d.a filter=lfs diff=lfs merge=lfs -text -vendor/box3d/lib/linux-arm64/libbox3d.a filter=lfs diff=lfs merge=lfs -text vendor/box3d/lib/darwin/libbox3d.a filter=lfs diff=lfs merge=lfs -text vendor/box3d/lib/box3d.lib filter=lfs diff=lfs merge=lfs -text vendor/miniaudio/lib/miniaudio.lib filter=lfs diff=lfs merge=lfs -text diff --git a/vendor/box3d/lib/linux-arm64/libbox3d.a b/vendor/box3d/lib/linux-arm64/libbox3d.a deleted file mode 100644 index 114b3b1c9..000000000 --- a/vendor/box3d/lib/linux-arm64/libbox3d.a +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0d7b2c7d972411df94f8fd6150653a4eaa8318051fc46b16ec5884af5b2b426f -size 1368434 From 328c4f45694d0c78b1dc2a991f728b2229bce97b Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Tue, 4 Aug 2026 15:11:25 +0200 Subject: [PATCH 20/21] Fix NetBSD CI --- .github/workflows/ci.yml | 6 +++--- tests/issues/run.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 17a00c36a..b3ae67161 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,9 +36,9 @@ jobs: ./odin check examples/all -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -target:netbsd_arm64 ./odin check examples/all/sdl3 -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -target:netbsd_amd64 -no-entry-point ./odin check examples/all/sdl3 -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -target:netbsd_arm64 -no-entry-point - ./odin test tests/core/normal.odin -file -all-packages -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true - ./odin test tests/core/speed.odin -file -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -o:speed -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true - ./odin test tests/vendor -all-packages -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true + ./odin test tests/core/normal.odin -file -all-packages -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -microarch:native + ./odin test tests/core/speed.odin -file -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -o:speed -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -microarch:native + ./odin test tests/vendor -all-packages -vet -vet-tabs -strict-style -vet-style -warnings-as-errors -disallow-do -define:ODIN_TEST_FANCY=false -define:ODIN_TEST_FAIL_ON_BAD_MEMORY=true -microarch:native (cd tests/issues; ./run.sh) ./odin check tests/benchmark -vet -strict-style -no-entry-point diff --git a/tests/issues/run.sh b/tests/issues/run.sh index ce97a570a..f63699262 100755 --- a/tests/issues/run.sh +++ b/tests/issues/run.sh @@ -4,7 +4,7 @@ set -eu mkdir -p build pushd build ODIN=../../../odin -COMMON="-define:ODIN_TEST_FANCY=false -file -vet -strict-style -ignore-unused-defineables" +COMMON="-define:ODIN_TEST_FANCY=false -file -vet -strict-style -ignore-unused-defineables -microarch:native" set -x From a97f6b47b60b049b6fc3bfc9d5c957c36d52b8ff Mon Sep 17 00:00:00 2001 From: Jeroen van Rijn Date: Tue, 4 Aug 2026 15:23:07 +0200 Subject: [PATCH 21/21] Don't use `-microarch:native` on `odin check` --- tests/issues/run.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/issues/run.sh b/tests/issues/run.sh index f63699262..aa66d9886 100755 --- a/tests/issues/run.sh +++ b/tests/issues/run.sh @@ -5,6 +5,8 @@ mkdir -p build pushd build ODIN=../../../odin COMMON="-define:ODIN_TEST_FANCY=false -file -vet -strict-style -ignore-unused-defineables -microarch:native" +COMMON_CHECK="-define:ODIN_TEST_FANCY=false -file -vet -strict-style -ignore-unused-defineables" + set -x @@ -73,14 +75,14 @@ else echo "SUCCESSFUL 0/1" exit 1 fi -$ODIN check ../test_issue_6484.odin -no-entry-point $COMMON -if [[ $($ODIN check ../test_issue_6874.odin $COMMON 2>&1 >/dev/null | grep -c "Error:") -eq 1 ]] ; then +$ODIN check ../test_issue_6484.odin -no-entry-point $COMMON_CHECK +if [[ $($ODIN check ../test_issue_6874.odin $COMMON_CHECK 2>&1 >/dev/null | grep -c "Error:") -eq 1 ]] ; then echo "SUCCESSFUL 1/1" else echo "SUCCESSFUL 0/1" exit 1 fi -$ODIN check ../test_issue_6979.odin -no-entry-point $COMMON +$ODIN check ../test_issue_6979.odin -no-entry-point $COMMON_CHECK $ODIN build ../test_issue_7037.odin $COMMON -o:none if [[ $($ODIN build ../test_issue_7108.odin $COMMON 2>&1 >/dev/null | grep -c "Error:") -eq 2 ]] ; then

IEDBVrUs|Mvfld{90oMTct7#-*7CgpsCl4er! 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%0A+qSpUQOnu3 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