perf: SSE ray_tri_indexed_int (2.2x), new profiling hooks
rayTriIntersectIndexedInt (0x7C2C40): SSE Moller-Trumbore with deferred divide, matching original's epsilon thresholds. Parity-tested against original for edge hits, backfaces, parallel rays, and per-triangle t/uv. JMP-patched in weirdperformance. Added transform44 profiling hooks for ray_tri_indexed_int (0x7C2C40) and ProcessStaticObjectsCulling (0x683BF0). Bench: added rayTriIndexedInt bench with exhaustive parity tests.
This commit is contained in:
@@ -154,6 +154,7 @@ fn worldUpdateDetour(frame_count: u32) callconv(hook.cc.fastcall) void {
|
||||
// cull_sse.zig
|
||||
extern fn performSpatialCulling(u32, u32, u32) callconv(.{ .x86_thiscall = .{} }) u32;
|
||||
extern fn performCollisionDetectionSSE(u32, u32, u32) callconv(.{ .x86_thiscall = .{} }) u32;
|
||||
extern fn rayTriIntersectIndexedInt(u32, u32, u32, u32, u32, u32) callconv(.{ .x86_fastcall = .{} }) u8;
|
||||
|
||||
// silicon_sse.zig
|
||||
const sse = struct {
|
||||
@@ -225,6 +226,7 @@ fn installPatches() u32 {
|
||||
.{ .target = 0x686000, .replacement = @intFromPtr(&sse.si_frustumCullBBox), .name = "frustumCullBBox" },
|
||||
.{ .target = 0x6B8C60, .replacement = @intFromPtr(&performSpatialCulling), .name = "PerformSpatialCulling" },
|
||||
.{ .target = 0x6B88E0, .replacement = @intFromPtr(&performCollisionDetectionSSE), .name = "performCollisionDetection" },
|
||||
.{ .target = 0x7C2C40, .replacement = @intFromPtr(&rayTriIntersectIndexedInt), .name = "rayTriIndexedInt" },
|
||||
};
|
||||
|
||||
var count: u32 = 0;
|
||||
|
||||
Reference in New Issue
Block a user