From 25da8e9d44ee8422d00a56631ef3f9a6bcc7411d Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Thu, 16 Oct 2025 02:22:02 -0700 Subject: [PATCH] raylib: fix crash from too many colors (#36382) * fix * bump --- selfdrive/ui/onroad/model_renderer.py | 8 ++++++-- system/ui/lib/shader_polygon.py | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/selfdrive/ui/onroad/model_renderer.py b/selfdrive/ui/onroad/model_renderer.py index 125053f17e..1e4fbbb783 100644 --- a/selfdrive/ui/onroad/model_renderer.py +++ b/selfdrive/ui/onroad/model_renderer.py @@ -226,8 +226,12 @@ class ModelRenderer(Widget): i += 1 + (1 if (i + 2) < max_len else 0) # Store the gradient in the path object - self._exp_gradient.colors = segment_colors - self._exp_gradient.stops = gradient_stops + self._exp_gradient = Gradient( + start=(0.0, 1.0), # Bottom of path + end=(0.0, 0.0), # Top of path + colors=segment_colors, + stops=gradient_stops, + ) def _update_lead_vehicle(self, d_rel, v_rel, point, rect): speed_buff, lead_buff = 10.0, 40.0 diff --git a/system/ui/lib/shader_polygon.py b/system/ui/lib/shader_polygon.py index 44c26c80e5..28585b08ba 100644 --- a/system/ui/lib/shader_polygon.py +++ b/system/ui/lib/shader_polygon.py @@ -5,7 +5,7 @@ from dataclasses import dataclass from typing import Any, Optional, cast from openpilot.system.ui.lib.application import gui_app -MAX_GRADIENT_COLORS = 15 # includes stops as well +MAX_GRADIENT_COLORS = 20 # includes stops as well @dataclass @@ -48,8 +48,8 @@ uniform vec4 fillColor; uniform int useGradient; uniform vec2 gradientStart; // e.g. vec2(0, 0) uniform vec2 gradientEnd; // e.g. vec2(0, screenHeight) -uniform vec4 gradientColors[15]; -uniform float gradientStops[15]; +uniform vec4 gradientColors[20]; +uniform float gradientStops[20]; uniform int gradientColorCount; vec4 getGradientColor(vec2 p) {