devc1 wrote:
You may be right, but I tried it. With my OS (in my current pc), I also use write combining, AVX to clear the screen multiple times and I don't see anything near the 60 FPS. Windows with 1% Processor usage on each processes it keeps up with a smooth 60 fps in my Nvidia GPU (Quadro 2000) without its driver, it says (Basic Display Adapter) and thats's what I wan't to understand.
Is Windows clearing the whole screen? It takes less time to update less of the screen.
Are you doing anything that can hurt write-combining performance? For example, you should write the entire framebuffer sequentially - or at least the parts you want to update - and you shouldn't read the framebuffer or access any uncached memory, MMIO, or I/O ports.
Are you using AVX correctly? Mixing AVX and SSE will hurt performance if you do it incorrectly. Using AVX at all can also reduce the CPU frequency, which could potentially hurt performance if you're not executing very many AVX instructions.
devc1 wrote:
Fun Fact : In my old laptop, I enumerated the GPU (I remember intel g45) and found some BAR starting at like 0xC00000000 and Another BAR. I tried to search specification and I found nothing, tried to write to the first BAR and nothing, then spammed 0xFF on the second bar and the screen is just a mess of different colors !
Here are the manuals. It's hard to say what happened without knowing which MMIO range you were accessing.
devc1 wrote:
I think there is something universal (not between all GPU but between families of GPUs) because GOP and VESA are really slow and intended for Pre-OS Phase, how SSE will make 60FPS good graphics in an old computer with core 2 duo.
There isn't anything like that.