Optimize color computation in prepare_uinodes (#7311)
# Objective Speed up `prepare_uinodes`. The color `[f32; 4]` is being computed separately for every vertex in the UI, even though the color is the same for all 6 verticies. ## Solution Avoid recomputing the color and cache it for all 6 verticies. ## Performance On `many_buttons`, this shaved off 33% of the time in `prepare_uinodes` (7.67ms -> 5.09ms) on my local machine. 
This commit is contained in:
		
							parent
							
								
									a85b740f24
								
							
						
					
					
						commit
						7a176ae0a8
					
				| @ -523,11 +523,12 @@ pub fn prepare_uinodes( | |||||||
|             uvs = [uvs[3], uvs[2], uvs[1], uvs[0]]; |             uvs = [uvs[3], uvs[2], uvs[1], uvs[0]]; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         let color = extracted_uinode.background_color.as_linear_rgba_f32(); | ||||||
|         for i in QUAD_INDICES { |         for i in QUAD_INDICES { | ||||||
|             ui_meta.vertices.push(UiVertex { |             ui_meta.vertices.push(UiVertex { | ||||||
|                 position: positions_clipped[i].into(), |                 position: positions_clipped[i].into(), | ||||||
|                 uv: uvs[i].into(), |                 uv: uvs[i].into(), | ||||||
|                 color: extracted_uinode.background_color.as_linear_rgba_f32(), |                 color, | ||||||
|             }); |             }); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 James Liu
						James Liu