Pass RenderContext around in the Renderer

Created on 9 April 2025, 9 days ago

Problem/Motivation

To enable async rendering, we need to be able to leave and re-enter placeholder rendering using Fiber::suspend()/resume() or their equivalent Revolt wrappers.

This means that we need to pass RenderContext objects around by reference as much as possible, without relying on the static variable in Renderer.

There are several calls to ::executeInRenderContext() in the renderer which call known methods on itself - these could instead pass the render context down and process it, without altering the stack itself, or at least that ought to be possible.

We won't be able to remove the stack entirely until at least ✨ Improve query and cache API so that render() doesn't have to be called to add query cache metadata Active is fixed but we can work through the various cases in multiple issues until there's no calls left.

Steps to reproduce

Proposed resolution

Remaining tasks

User interface changes

Introduced terminology

API changes

Data model changes

Release notes snippet

πŸ“Œ Task
Status

Active

Version

11.0 πŸ”₯

Component

render system

Created by

πŸ‡¬πŸ‡§United Kingdom catch

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Production build 0.71.5 2024