GPU 3D Draw Call Isolation for Selective Upscaling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for secondary upscaling of 3D graphics content, such as Rendered-Super-Resolution (RSR), do not effectively handle rendered text or line-based UI elements with overlaid 2D content, leading to artifacts and inefficiencies, particularly in established applications and games that do not benefit from separating 2D and 3D rendering processes.
Innovation Solution
A GPU-based method that separates 2D and 3D draw calls by creating full-resolution and reduced-resolution frame buffers, determining the type of draw call based on application profiles, shader usage, and other criteria, and upscaling 3D draw calls while maintaining 2D content at full resolution, allowing for accurate combination and output.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If RSR is applied to upscale all rendered content, then frame rate is improved, but 2D UI elements become blurry and lose precision
Solution Approach 1:
The rendering process is segmented into two separate paths: 2D draw calls are rendered at full resolution while 3D draw calls are rendered at reduced resolution and then upscaled. This segmentation allows each type of content to be processed according to its specific requirements, preventing UI blurriness while maintaining frame rate benefits for 3D content.
Solution Approach 2:
Different quality levels are applied to different parts of the rendered output: 2D UI elements maintain full resolution for crispness, while 3D graphics content is rendered at lower resolution and upscaled. This local quality differentiation optimizes both UI precision and overall frame rate performance.
2Productivity
If 2D and 3D rendering are separated, then RSR can be applied to 3D content, but device complexity increases
Solution Approach 1:
The system performs preliminary classification of draw calls into 2D and 3D categories before rendering, using application profiles and detection mechanisms. This preliminary action enables the rendering pipeline to automatically route appropriate content to the correct resolution path without requiring complex real-time decision-making during rendering.
Solution Approach 2:
The GPU automatically detects and separates 2D UI content from 3D rendering content using built-in detection mechanisms and application profiles, eliminating the need for manual developer implementation. This self-service approach reduces the burden on developers while maintaining rendering efficiency benefits.
3Adaptability or versatility
If automatic 2D/3D detection is implemented, then established games can benefit from RSR, but detection accuracy may be compromised
Solution Approach 1:
Application profiles are created in advance that contain pre-defined characteristics and signatures of 2D UI rendering patterns. During runtime, the GPU compares actual draw calls against these pre-established profiles to accurately detect 2D content, improving detection reliability without requiring complex real-time analysis.
Solution Approach 2:
The detection system uses multiple detection criteria and heuristics to identify 2D UI content, applying a series of checks that may be more comprehensive than strictly necessary. This excessive detection approach ensures high accuracy by cross-validating multiple indicators rather than relying on a single detection method.
Data Source
AI summary
A system and a method are disclosed for separating 3D content from 2D UI content for selectively upscaling 3D draw calls. A controller, coupled to a graphics pipeline, determines whether an application supports upscaling and, if so, creates a full-resolution framebuffer for rendering 2D drawcalls bound to the graphics pipeline and a reduced-resolution framebuffer for rendering 3D drawcalls bound to the graphics pipeline. A drawcall is then determined to be a 2D or a 3D drawcall. The controller stores the drawcall in the full-resolution framebuffer if the draw call is a 2D drawcall and stores the drawcall in the reduced-resolution framebuffer if the draw call is a 3D drawcall. The draw stored in the reduced-resolution framebuffer is upscaled to be a full-resolution drawcall, and the 2D draw in the full-resolution framebuffer and the upscaled 3D draw are combined to form a final output.


