Virtual Surface Atlasing for Memory-Constrained Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional display techniques are inefficient for devices with limited memory resources, leading to slow animation and lag in scenarios involving multiple visuals, as they require significant computing device resources to create and manage multiple buffers for each visual.
Innovation Solution
The implementation of atlasing and virtual surface techniques, which allow for the creation of a virtual surface with an area larger than needed for display, enabling efficient memory management and resource reduction by breaking visuals into tiles and rendering them ahead of time, using an allocator module to manage logical surfaces and an update manager to handle updates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional display techniques create separate buffers for each visual, then each visual can be rendered independently, but memory consumption increases significantly
Solution Approach 1:
The patent merges multiple visual buffers into a single shared buffer (atlas), where multiple logical surfaces are packed together in memory. This combining approach reduces the total number of separate buffer allocations while maintaining the ability to render different visuals independently by specifying their respective regions within the shared buffer.
Solution Approach 2:
The shared buffer is segmented into multiple logical surfaces through virtual surface technology. Each logical surface represents a portion of the shared buffer that can be independently updated and rendered, allowing individual visual management while sharing the underlying physical memory resources.
2Ease of operation
If multiple separate buffers are allocated for each visual, then updates can be performed independently, but the number of surfaces created increases resource usage
Solution Approach 1:
The shared buffer serves multiple functions simultaneously - it acts as a single physical memory allocation while supporting multiple logical surfaces that can be independently updated. The system manages this multi-functionality through an atlas manager that tracks which regions of the shared buffer correspond to which logical surfaces.
Solution Approach 2:
The patent introduces an intermediary layer (the atlas management system) between the application and the physical buffer. This intermediary manages the mapping between multiple logical surfaces and the single shared buffer, handling updates efficiently by coordinating changes across the logical-to-physical surface mapping without requiring separate physical buffers.
3Reliability
If traditional techniques allocate sufficient memory for all visuals, then all visuals can be displayed simultaneously, but devices with limited memory resources cannot support this approach
Solution Approach 1:
The patent transitions from a one-to-one mapping (one buffer per visual) to a many-to-one mapping (multiple logical surfaces to one shared buffer). This dimensional change in resource allocation allows the system to support multiple visuals simultaneously while using less total memory, making it compatible with devices having limited memory resources.
Data Source
AI summary
Atlasing and virtual surface techniques are described. In one or more implementations, virtual surface functionality is exposed by an operating system for access by one or more applications of the computing device. A virtual surface is created in response to a request from the one or more applications to be used to render visuals for display by a display device. The virtual surface is allocated in memory of the computing device by the exposed virtual surface functionality to have an area that is larger than an area to be used to display the visuals from the one or more applications.


