fix: show live GPU/resolution info in System Information

- desktop: Resolution/Graphics fields now read from video frontbuffer
  and gpu.activeDriverName instead of static multiboot/hardcoded values
- gpu: markAvailable sets ActiveName when no driver is active yet, so
  the initial VBE boot driver is reported before any setMode call
- kernel: whitespace cleanup
This commit is contained in:
2026-03-07 20:16:26 +00:00
parent e52b4a9763
commit ecca496978
3 changed files with 8 additions and 5 deletions
+4 -4
View File
@@ -300,12 +300,12 @@ begin
addInfoRow(content, cw, 'CPU Clock', clk_str); addInfoRow(content, cw, 'CPU Clock', clk_str);
mem_str := stringConcat(intToString(((multibootinfo^.mem_upper + 1000) div 1024) + 1), ' MB'); mem_str := stringConcat(intToString(((multibootinfo^.mem_upper + 1000) div 1024) + 1), ' MB');
addInfoRow(content, cw, 'Memory', mem_str); addInfoRow(content, cw, 'Memory', mem_str);
res_str := stringConcat(intToString(multibootinfo^.framebuffer_width), 'x'); res_str := stringConcat(intToString(video.frontBufferWidth), 'x');
res_str := stringConcat(res_str, intToString(multibootinfo^.framebuffer_height)); res_str := stringConcat(res_str, intToString(video.frontBufferHeight));
res_str := stringConcat(res_str, 'x'); res_str := stringConcat(res_str, 'x');
res_str := stringConcat(res_str, intToString(multibootinfo^.framebuffer_bpp)); res_str := stringConcat(res_str, intToString(video.frontBufferBpp));
addInfoRow(content, cw, 'Resolution', res_str); addInfoRow(content, cw, 'Resolution', res_str);
addInfoRow(content, cw, 'Graphics', 'VESA VBE'); addInfoRow(content, cw, 'Graphics', gpu.activeDriverName);
addSeparator(content, cw); addSeparator(content, cw);
+3
View File
@@ -138,6 +138,9 @@ begin
for i := 0 to DriverCount - 1 do begin for i := 0 to DriverCount - 1 do begin
if strings.stringEquals(Drivers[i].Name, name) then begin if strings.stringEquals(Drivers[i].Name, name) then begin
Drivers[i].Available := true; Drivers[i].Available := true;
{ If no driver is active yet, default to this one }
if ActiveName = nil then
ActiveName := name;
syslog.log('GPU', 'Driver now available: '); syslog.log('GPU', 'Driver now available: ');
syslog.writestringln(name); syslog.writestringln(name);
pop_trace; pop_trace;
+1 -1
View File
@@ -254,7 +254,7 @@ begin
{ Enable preemptive context switching (replaces ISR_32) } { Enable preemptive context switching (replaces ISR_32) }
contextswitcher.init; contextswitcher.init;
{ All work is now driven by timer interrupts — idle the CPU } { All work is now driven by timer interrupts — idle the CPU }
syslog.logln('KERNEL', 'All tasks registered. Halting into idle.'); syslog.logln('KERNEL', 'All tasks registered. Halting into idle.');
kernel.yield(); kernel.yield();