Dasharo / dasharo-issues

The Dasharo issue tracker
https://dasharo.com/
24 stars 0 forks source link

Poor discrete graphics performance #1009

Open mkopec opened 4 weeks ago

mkopec commented 4 weeks ago

Component

Dasharo firmware

Device

NovaCustom V54 14th Gen, NovaCustom V56 14th Gen

Dasharo version

v0.9.1-rc3

Dasharo Tools Suite version

n/a

Test case ID

n/a

Brief summary

Default power limits are too conservative. GPU-Z reports power throttling at merely 20W.

How reproducible

100%

How to reproduce

Expected behavior

GPU power draw should be at around 80W on AC and 40W on battery

Actual behavior

Power is limited to ~20W, causing worse performance than just using the integrated GPU.

Screenshots

No response

Additional context

No response

Solutions you've tried

No response

mkopec commented 3 weeks ago

Looks like nvidia-powerd on Linux and the counterpart on Windows can't read the processor power budget and fails to enable dynamic power boost. I think this may be the problem.

Aug 21 11:48:23 ubuntu-V560TND systemd[1]: Started nvidia-powerd.service - nvidia-powerd service.
Aug 21 11:48:23 ubuntu-V560TND /usr/bin/nvidia-powerd[1017]: nvidia-powerd version:1.0(build 1)
Aug 21 11:48:24 ubuntu-V560TND /usr/bin/nvidia-powerd[1017]: Failed to get Processor Power Budget
Aug 21 11:48:24 ubuntu-V560TND /usr/bin/nvidia-powerd[1017]: Failed to start GPU Boost controller
Aug 21 11:48:24 ubuntu-V560TND /usr/bin/nvidia-powerd[1017]: Failed to initialize Dynamic Boost
Aug 21 11:48:24 ubuntu-V560TND /usr/bin/nvidia-powerd[1017]: Failed to detach GPU id 256
Aug 21 11:48:24 ubuntu-V560TND systemd[1]: nvidia-powerd.service: Main process exited, code=exited, status=1/FAILURE
Aug 21 11:48:24 ubuntu-V560TND systemd[1]: nvidia-powerd.service: Failed with result 'exit-code'.

strace suggests it fails right after reading some MSRs, so it's possible it just doesn't support Meteor Lake yet:

powerd-strace.log.txt

but it's hard to say without access to source or documentation

mkopec commented 3 weeks ago

I got Intel DTT to detect the dGPU and apply a power share policy, but apparently DTT only works when the dGPU is at <= 50% usage, so it disengages when gaming for example. NVIDIA Dynamic Boost is supposed to take over at this point according to DTT docs.

Nvidia control panel on Windows detects Dynamic Boost in the control panel, unfortunately nvidia-powerd still crashes without any errors :(

Despite all that the GPU is still limited to ~30W (depends on GPU variant) resulting in performance about the same as the iGPU. I don't know what else is missing.

Insyde firmware has a NvdGPUPei module, I'm not yet sure what it does, it could be required in Dasharo as well.

We currently don't execute the GPU's option ROM, because it causes breakage in UEFI rendering and breaks the iGPU in Windows altogether. I guess we may need it to fix this issue.

philipandag commented 5 days ago

The performance is still bad on v0.9.1-rc5. ~35fps in furmark on V540TND

wessel-novacustom commented 4 days ago

The performance is still bad on v0.9.1-rc5. ~35fps in furmark on V540TND

Are you running kernel 6.8 or the manually installed 6.9?

I have seen that the NVIDIA graphics card is no longer active after installing kernel 6.9 ...

philipandag commented 4 days ago

I have been testing it on Windows for exactly the reason you mentioned. NVIDIA drivers don't work on 6.9 kernels, 6.10 kernels don't boot at all on Ubuntu, kernel 6.8 causes "bricks" on almost every suspend.

wessel-novacustom commented 4 days ago

Yeah, same here for the kernels we tried so far.