raylib/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Le Juez Victor 7ae46fb2e6
[rlsw] Micro-optimizations, tighter pipeline and cleanup (#5673)
* auto generates all combinations of blending factors
This adds a macro system that generate a function for each possible combination of blending factors, resulting in 11*11 functions, hence 121.
This then allows for only one indirection and function call instead of two previously (assuming the first call was inlined).

* rename dispatch tables for consistency

* change blend funcs validity check
Simplifies the validation of blend functions.
Can allow `SW_SRC_ALPHA_SATURATE` as dst factor, but hey

* disables blending when it requires alpha and there is none

* review immediate rendering functions and attribute layout

* prevent state changes during immediate record

* reduce number of op for each vertex push + review primitive struct

* simplified draw functions

* review `sw_vertex_t`
removes `float screen[2]`; each step stores the transformed coordinates in `float coord[4]`.
This also simplifies vertex interpolation during triangle rasterization.

* reduces unnecessary interpolation costs during triangle rasterization + cleanup

* extends the simd color conversion to more cases

* affine interpolation per blocks

* long side check for each triangle line
My mistake in a previous commit

* style tweaks

* select the read function on texture load
This removes the per-pixel switch; it's slightly more efficient on my hardware, but probably a poor prediction
Should remain profitable or at worst the same

* use optionnal LUT for uint8_t -> float conversion

* sets internal the number of vertices post-clipping and the epsilon clipping + a little cleanup

* moves color conversion to math part

* prevents sampling if it's a depth texture that is bound
2026-03-19 23:39:52 +01:00
..
external [rlsw] Micro-optimizations, tighter pipeline and cleanup (#5673) 2026-03-19 23:39:52 +01:00
platforms REVIEWED: rlsw, use provided library information 2026-03-18 13:31:09 +01:00
CMakeLists.txt Resolveed conflicts 2026-03-13 18:55:36 +01:00
config.h Code gardening 2026-03-04 01:14:26 +01:00
Makefile Fix uninstall process to remove rcamera header file (#5671) 2026-03-18 21:09:27 +01:00
minshell.html Update minshell.html 2025-12-30 22:05:37 +01:00
raudio.c Remove trailing spaces 2026-03-13 18:50:26 +01:00
raylib.dll.rc Update year to 2025 2025-01-01 00:02:52 +01:00
raylib.dll.rc.data Update year to 2025 2025-01-01 00:02:52 +01:00
raylib.h RENAMED: rl_gputex to rltexgpu 2026-03-18 13:29:36 +01:00
raylib.ico Update raylib.ico 2024-11-14 16:40:04 +01:00
raylib.rc Update year to 2025 2025-01-01 00:02:52 +01:00
raylib.rc.data Update year to 2025 2025-01-01 00:02:52 +01:00
raymath.h Code gardening 2026-03-04 01:14:26 +01:00
rcamera.h Code gardening 2026-03-04 01:14:26 +01:00
rcore.c REVIEWED: PR #5674 2026-03-19 23:35:18 +01:00
rgestures.h Update year to 2026 2026-01-02 13:40:15 +01:00
rglfw.c Update year to 2026 2026-01-02 13:40:15 +01:00
rlgl.h Bump rlgl version to 6.0, after the low-level shaders API redesign, aligned with raylib 6.0 2026-03-17 18:33:53 +01:00
rmodels.c REVIEWED: Software renderer flag, renamed to GRAPHICS_API_OPENGL_SOFTWARE 2026-03-17 18:33:15 +01:00
rshapes.c Code gardening 2026-03-04 01:14:26 +01:00
rtext.c Remove trailing spaces 2026-03-13 18:50:26 +01:00
rtextures.c RENAMED: rl_gputex to rltexgpu 2026-03-18 13:29:36 +01:00
shell.html REVIEWED: Fullscreen request #5601 2026-03-02 13:16:43 +01:00