The current way of doing this on Linux is PRIME, which is part of DRI so maybe it works on NetBSD too? I don't know, and the only laptop I have with two GPUs doesn't run NetBSD, so I can't test, unfortunately. (It did work for me with Linux in the past, though.)
Anyway, PRIME has a per-process fine-grained graphics switching, where if you run something with the DRI_PRIME=1 env variable, it will use the dGPU.
To set it up, first list all providers with
Then, assign the provider (the dGPU) to a sink (iGPU which is connected to a display), like so:
xrandr --setprovideroffloadsink provider sink
Substitute "provider" and "sink" for either the names or indexes of the respective GPUs.
You can then test the results with something like
DRI_PRIME=1 glxinfo or
DRI_PRIME=1 glxgears, etc.
I have to credit the ArchWiki article, which is how I discrovered this years ago.