Counter Strike: GO isn't utilizing my GPU at full capacity.
Counter Strike: GO isn't utilizing my GPU at full capacity.
It's accurate that your GTX 780 Direct CU II from Asus handles the game smoothly at around 280~300 fps when running at full settings. In fact, I notice no significant difference compared to when I downclocked the GPU to achieve about 120 fps, especially since your monitor operates at 120 Hz.
It's not about the drivers. I tested it with both 14.4 final and 14.6 beta versions. Naturally, anything above 120hz is nearly invisible. Still, the performance remains better. At 120fps you get about 8.3ms latency. That’s the time the engine spends converting data into a frame. Plus the extra 5ms from monitor input lag brings it to 13.3ms before the game appears. Of course, other delays from the network and controller also add up. But those are separate issues. I just wanted to highlight the engine’s response time compared to 60fps (16.6ms), 120fps (8.3ms), and 240fps (4.16ms). You can figure it out by dividing milliseconds per second by frames per second – 1000ms/60fps equals roughly 16.6ms. The Oculus VR CEO discussed this at the APU 13 presentation, but honestly, a few milliseconds aren’t what matters. What matters is seeing my GPU hit its limits. At 101fps with 48% usage, that’s definitely not the ceiling. <_<
It's highly probable the processor is the problem. For instance, if you monitored your CPU during a video conversion with multithreading enabled, the average usage would be around 30-35%. This happens because the conversion is managed by just one thread at any given moment. You might observe fluctuations like 30%, 5%, 45%, or 11%—these represent average thread activity during idle periods. Using an all-in-one CPU monitor at a low refresh rate (such as 0.1) will help you see the performance more clearly.
This might be feasible. The issue seems to lie elsewhere—specifically the DDR2 memory system, which can handle 4GB for Source engine titles. While the available RAM is sufficient, the memory bus likely limits performance. Unfortunately, there’s no straightforward way to verify this using RivaTuner or HWiNFO64, so it’s unclear if the bus speed is the real constraint for your GPU and CPU setup. There might be a method to estimate the peak achievable performance based on the 800MHz memory speed, but I’m not sure how to apply it. If you have any insights, feel free to share and help a fellow developer.
I adjusted the hardware polling interval from the standard 2000ms to 200ms, then further reduced it to 100ms—the minimum the application can handle. The outcomes show no significant change compared to the 2-second measurements, and the 0.1-second data is equally consistent. It appears the CPU isn't the main issue.
It could be that the issue isn't as clear, but as I mentioned earlier which might cause delays
Essentially you're explaining that the CPU is fully busy when polling, but drops to 60% once the polling interval arrives. Remember, the data reflects the exact moment of measurement, not an average over time. If the app collected samples every 100ms, that's how it works. Hardware polling doesn't average; it takes samples at fixed intervals.