Pre-compiled Shader Chunk Assembly for Avionics Certification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In safety-critical graphics applications like avionics, the use of programmable GPUs with run-time compiled shader programs poses challenges for verification and certification due to their complexity, including the presence of branches and loops, which are difficult to verify against safety standards.
Innovation Solution
The method involves selecting and concatenating pre-compiled shader chunks to emulate a fixed-function graphics pipeline on programmable graphics hardware, eliminating the need for run-time compilation and simplifying the verification process by avoiding branches and loops in the shader program.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If run-time compiled shader programs are used on programmable GPUs, then graphics performance and flexibility are improved, but verification and certification against safety standards become difficult
Solution Approach 1:
The shader program is segmented into multiple pre-compiled shader chunks that can be independently verified and certified. Each chunk represents a discrete functional unit (vertex processing, fragment processing, etc.) that can be validated separately against safety standards, eliminating the need to verify the entire complex run-time compiler.
Solution Approach 2:
Shader chunks are pre-compiled and verified before runtime execution. The verification and certification process is performed in advance on the shader chunks, rather than attempting to verify the complex run-time compilation process. This preliminary verification ensures safety while maintaining runtime performance.
2Adaptability or versatility
If shader source code is stored within an application and compiled at run-time, then shader functionality becomes independent of particular GPU types, but the compiled shader code becomes difficult to verify
Solution Approach 1:
The shader functionality is divided into standardized shader chunks that can be independently verified. Each chunk is designed to work with specific GPU architectures, allowing verification to be performed on each segment rather than the entire heterogeneous system.
Solution Approach 2:
A shader chunk selection and assembly mechanism serves as an intermediary between the application layer and the GPU execution layer. This intermediary selects appropriate pre-verified shader chunks based on the target GPU type and assembles them into a complete shader program, maintaining versatility while preserving verifiability.
3Reliability
If fixed-function graphics pipelines are used, then verification and certification are simplified, but flexibility and adaptability are reduced
Solution Approach 1:
The system transitions from static fixed-function pipelines to dynamic assembly of pre-verified shader chunks. The shader program can be dynamically configured by selecting different combinations of verified chunks, providing flexibility while maintaining the verifiability benefits of pre-compilation.
Solution Approach 2:
The approach changes the verification parameter from runtime compilation behavior to pre-computed shader chunk properties. By verifying shader chunks based on their compiled characteristics rather than their source code compilation process, the system achieves both flexibility and verifiability.
Data Source
AI summary
Methods, systems, and computer-readable media for rendering graphics using a graphics pipeline for emulating a fixed-function graphics pipeline, including selecting a first pre-compiled shader chunk from a set of pre-compiled shader chunks, selecting at least one second pre-compiled shader chunk from the set of pre-compiled shader chunks, and, concatenating the first shader chunk with the at least one second shader chunk, wherein each shader chunk corresponds to a fixed-function graphics function.


