VideoTools/internal
Stu Leak 8f73913817 fix(windows): Hide command windows in hardware detection and fix GPU detection
Issues Fixed:
1. Command Prompts During Benchmark
   - Jake reported 4 command prompt windows appearing when opening benchmark
   - Windows showing: C:\ffmpeg\bin\ffmpeg.exe for each hardware check

2. Wrong GPU Detection
   - Jake's AMD R7 900 XTX not detected
   - System incorrectly showing "13.50.53.699 Virtual Desktop" as GPU
   - Showing "Monitor" instead of actual graphics card

Root Causes:
1. sysinfo package missing ApplyNoWindow() on Windows detection commands
   - detectCPUWindows: wmic cpu query
   - detectGPUWindows: nvidia-smi + wmic VideoController queries
   - detectRAMWindows: wmic computersystem query
   - These 3-4 calls showed command windows

2. GPU Detection Not Filtering Virtual Adapters
   - wmic returns ALL video controllers (physical + virtual)
   - Code was picking first entry which was virtual adapter
   - No filtering for "Virtual Desktop", remote desktop adapters, etc.

Solutions:
1. Applied utils.ApplyNoWindow() to all Windows detection commands
   - Hides wmic, nvidia-smi command windows
   - Consistent with benchmark.go and platform.go patterns
   - No-op on Linux/macOS (cross-platform safe)

2. Enhanced GPU Detection with Virtual Adapter Filtering
   - Iterate through ALL video controllers from wmic
   - Filter out virtual/software adapters:
     * Virtual Desktop adapters
     * Microsoft Basic Display Adapter
     * Remote desktop (VNC, Parsec, TeamViewer)
   - Return first physical GPU (AMD/NVIDIA/Intel)
   - Debug logging shows skipped virtual adapters

Implementation:
- Import internal/utils in sysinfo package
- ApplyNoWindow() on 4 Windows commands:
  * wmic cpu get name,maxclockspeed
  * nvidia-smi --query-gpu=name,driver_version
  * wmic path win32_VideoController get name,driverversion
  * wmic computersystem get totalphysicalmemory
- Enhanced GPU parser with virtual adapter blacklist
- Debug logging for skipped/detected GPUs

Impact:
- No command windows during benchmark initialization (discreet operation)
- Correct physical GPU detection on systems with virtual adapters
- Should properly detect Jake's AMD R7 900 XTX

Files Changed:
- internal/sysinfo/sysinfo.go: ApplyNoWindow + GPU filtering

Reported-by: Jake (4 command prompts, wrong GPU detection)
Tested-on: Linux (build successful, no regressions)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-28 19:32:15 -05:00
..
app Format cleanup and minor fixes 2025-12-23 21:56:47 -05:00
benchmark fix(windows): Hide command prompt windows during benchmarking 2025-12-28 19:25:55 -05:00
convert Format cleanup and minor fixes 2025-12-23 21:56:47 -05:00
interlace Format cleanup and minor fixes 2025-12-23 21:56:47 -05:00
logging Refactor to modular architecture with rainbow UI (v0.1.0-dev8) 2025-11-23 14:56:37 -05:00
metadata Add queue error copy, auto naming helper, and metadata templating 2025-12-07 12:03:21 -05:00
modules Group DVD modules and add responsive menu 2025-12-24 00:08:56 -05:00
player Implement VT_Player module with frame-accurate video playback 2025-12-21 16:31:44 -05:00
queue Add rip job type 2025-12-23 21:22:37 -05:00
sysinfo fix(windows): Hide command windows in hardware detection and fix GPU detection 2025-12-28 19:32:15 -05:00
thumbnail Import json/strconv for thumbnail ffprobe parsing 2025-12-17 19:09:43 -05:00
ui fix(queue): Prevent massive goroutine leak from StripedProgress animations 2025-12-28 19:24:17 -05:00
utils Add configurable temp directory with SSD hint 2025-12-20 19:55:13 -05:00