rendering-config.yaml RawHistoryFolder
1# Rendering Configuration Contract
2# Defines the interface for GPU/CPU rendering configuration
3
4version: "1.0.0"
5component: "RenderingConfig"
6
7# Configuration Interface
8config:
9 rendering_mode:
10 type: "enum"
11 values:
12 - name: "auto"
13 description: "Automatically detect GPU availability and use if present"
14 default: true
15 - name: "gpu"
16 description: "Force GPU acceleration (fail if unavailable)"
17 default: false
18 - name: "cpu"
19 description: "Force software rendering (disable GPU)"
20 default: false
21
22 settings:
23 enable_2d_canvas:
24 type: "boolean"
25 default: true
26 description: "Enable hardware acceleration for 2D canvas"
27
28 enable_webgl:
29 type: "boolean"
30 default: true
31 description: "Enable WebGL for 3D content"
32
33 draw_compositing_indicators:
34 type: "boolean"
35 default: false
36 description: "Show GPU compositing borders (debug)"
37
38# CLI Interface
39cli:
40 flags:
41 - name: "--rendering-mode"
42 type: "string"
43 values: ["auto", "gpu", "cpu"]
44 default: "auto"
45 description: "Set rendering mode"
46
47 - name: "--disable-gpu"
48 type: "boolean"
49 default: false
50 description: "Shorthand for --rendering-mode=cpu"
51
52 - name: "--force-gpu"
53 type: "boolean"
54 default: false
55 description: "Shorthand for --rendering-mode=gpu"
56
57 - name: "--debug-gpu"
58 type: "boolean"
59 default: false
60 description: "Enable GPU compositing indicators"
61
62# Environment Variables
63environment:
64 - name: "DUMBER_RENDERING_MODE"
65 values: ["auto", "gpu", "cpu"]
66 description: "Override rendering mode"
67
68 - name: "WEBKIT_DISABLE_COMPOSITING_MODE"
69 values: ["1", "0"]
70 description: "WebKit native disable flag"
71
72# Status API
73status:
74 endpoint: "/api/rendering/status"
75 response:
76 mode:
77 type: "string"
78 enum: ["auto", "gpu", "cpu"]
79
80 gpu_active:
81 type: "boolean"
82 description: "Whether GPU acceleration is currently active"
83
84 gpu_available:
85 type: "boolean"
86 description: "Whether GPU hardware is available"
87
88 vulkan_enabled:
89 type: "boolean"
90 description: "Whether Vulkan renderer is active"
91
92 errors:
93 type: "array"
94 items:
95 type: "object"
96 properties:
97 code: "string"
98 message: "string"
99 fallback_used: "boolean"
100
101 performance:
102 type: "object"
103 properties:
104 fps: "number"
105 cpu_usage_percent: "number"
106 gpu_usage_percent: "number"
107 memory_mb: "integer"
108
109# Validation Rules
110validation:
111 startup:
112 - check: "GPU availability if mode=gpu"
113 error: "GPU acceleration requested but not available"
114 action: "fail_startup"
115
116 - check: "Vulkan support if GPU active"
117 warning: "Vulkan not available, using OpenGL"
118 action: "log_warning"
119
120 - check: "Driver compatibility"
121 error: "GPU driver incompatible"
122 action: "fallback_to_cpu"
123
124 runtime:
125 - check: "GPU memory < 500MB"
126 warning: "High GPU memory usage"
127 action: "log_metric"
128
129 - check: "FPS > 30"
130 warning: "Low frame rate detected"
131 action: "log_metric"
132
133# Error Codes
134errors:
135 GPU_NOT_AVAILABLE:
136 code: "E001"
137 message: "GPU hardware not detected"
138 severity: "error"
139
140 VULKAN_INIT_FAILED:
141 code: "E002"
142 message: "Failed to initialize Vulkan renderer"
143 severity: "warning"
144
145 DRIVER_INCOMPATIBLE:
146 code: "E003"
147 message: "GPU driver version incompatible"
148 severity: "error"
149
150 MEMORY_EXCEEDED:
151 code: "W001"
152 message: "GPU memory usage exceeded threshold"
153 severity: "warning"