v0.2.0 759cc92

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"

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 8

Tags 42

↑↓ moveenter openesc close