The other day I decided that I wanted to learn a little DirectX/Dirext3D programming. I downloaded one of the examples showing directX11, and it compiled and ran fine, however, my GPU whistles while the program is running. If I close out of the app, the whistling immediately stops. Restart the app, the whistling is back again, etc. I figured maybe this was just a dust issue, so I went out to the store today and bought a canister of CO2 and cleaned it out. The whistle still persists after the cleaning.
Stranger yet, the whistling seems to be controlled—I can change the pitch of the whistle by resizing the application window with my mouse. The larger I make the frame, the whistle becomes more faint, the smaller the window the higher pitch the whistle is. I also do NOT have this issue when I program in OpenGL; there is no whistle at all, in fact.
There are two things that I think could be causing this issue. 1. A DirectX/Radeon Driver is acting strangely. 2. It is a fan in the GPU speeding up to compensate for varying usage.
Here is a printout from DxDiag showing my computer specs and other goodies: http://pastebin.com/CZE0UZiZ (See Below for new updated settings after driver update)
I was just wondering if anyone can point me in the right direction as to how I could solve this issue—before I start digging around in my bios and scouring the internet for patches.
I updated my drivers; the whistling still persists. It should also be noted that the whistling is practically nonexistent when I maximize the window.
Here is the new printout from DxDiag(Updated my drivers)
I noticed in the Direct3D example they were not allowing the rendering thread a chance to sleep, so I added a simple "Sleep(1)" and this solves the whistling. However, I still want to know why this is occurring. Typically putting an endless thread to sleep like this means that the CPU gets a split second to rest, but could this also produce the whistling?
This problem is solved, technically, however it is still persistent given the correct circumstances. I hate to leave this question open like this, but I guess it will just have to be that way until I can find a valid—and proper—solution.