Wait for DRM presentation before releasing frame callbacks

Cancel callback-only timers when a frame is submitted and defer callback delivery until retirement. Cover a delayed timer and missed presentation deadline in the scheduler tests.

Clean up shader argument borrows and shell region decoding to pass Clippy.
This commit is contained in:
Samuel Onoja committed 2026-10-01 17:32:17 +01:00
1 parent a40b899b8c
commit 3d0c85c70a
7 files changed
+76 -28

No files matched your search

+2 -2
View File
@@ -322,7 +322,7 @@ pub(super) fn blur_program(state: &mut Ferese, renderer: &mut GlesRenderer) -> O
if let Some(program) = state.blur_programs.get(&context) {
return Some(program.clone());
}
match renderer.compile_custom_texture_shader(&corner_shader(BLUR_SHADER), &blur_uniform_names()) {
match renderer.compile_custom_texture_shader(corner_shader(BLUR_SHADER), &blur_uniform_names()) {
Ok(program) => {
let program = BlurProgram(program);
state.blur_programs.insert(context, program.clone());
@@ -394,7 +394,7 @@ pub(super) fn material_program(state: &mut Ferese, renderer: &mut GlesRenderer)
UniformName::new("shadow_rect", UniformType::_4f),
UniformName::new("shadow_values", UniformType::_2f),
];
match renderer.compile_custom_pixel_shader(&corner_shader(MATERIAL_SHADER), &uniforms) {
match renderer.compile_custom_pixel_shader(corner_shader(MATERIAL_SHADER), &uniforms) {
Ok(program) => {
let program = MaterialProgram(program);
state.material_programs.insert(context, program.clone());