It still needs some work, but it's slightly better than these two shots:
Upon further investigation, the above two are the results of forgetting an exp() at the end of the luminance measurements.
In other news, I've been working on my D3D10 code as well this evening. I found an absolute beauty [lol]
D3D10 allows us to request a number of performance counters, whether this information is actually useful probably won't be known until some real hardware and drivers are available - but it does open up some interesting possibilities (dynamic load balancing?).
As part of the API you can request information/descriptions regarding the counters, resulting in something along the lines of:
Device Counter Information: Largest device dependent counter ID: 3 Number of detectable parallel units: 1 Number of simultaneous counters: 4IntializeDirect3D() - Device independant counters: Counter 1 Name: GPU Idle Units: fraction Description: A well-known counter to estimate the fractional amount of time for which the GPU was idle. Returned data type: 32 bit Floating Point Counters created: 1 Counter 2 Name: Vertex Processing Units: fraction Description: A well-known counter to estimate the fractional amount of time for which the GPU was workingon vertex processing. Returned data type: 32 bit Floating Point Counters created: 2 Counter 3 Name: Geometry Processing Units: fraction Description: A well-known counter to estimate the fractional amount of time for which the GPU was workingon geometry processing. Returned data type: 32 bit Floating Point Counters created: 2 Counter 4 Name: Pixel Processing Units: fraction Description: A well-known counter to estimate the fractional amount of time for which the GPU was workingon pixel processing. Returned data type: 32 bit Floating Point Counters created: 2 Counter 5 has no available information... Counter 6 has no available information... Counter 7 has no available information... Counter 8 has no available information... Counter 9 has no available information... Counter 10 has no available information... Counter 11 has no available information... Counter 12 has no available information... Counter 13 has no available information... Counter 14 has no available information... Counter 15 has no available information... Counter 16 has no available information... Counter 17 has no available information... Counter 18 has no available information...
Now it gets interesting when you can query for information on device dependent counters. Because there are no D3D10 devices available yet, my code just requests information on the 3 that the reference rasterizer apparently exposes:
IntializeDirect3D() - Device dependent counters: Counter 1 Name: Fweddle Counter 0 Units: fweddles Description: Fweddles occur when a snargle runs out of botyuts. The less fweddles the better. Better botyut management reduces fweddle occurance. Returned data type: 64 bit Unsigned Integer Counters created: 1 Counter 2 Name: Fweddle Counter 1 Units: fweddles Description: Fweddles occur when a snargle runs out of botyuts. The less fweddles the better. Better botyut management reduces fweddle occurance. Returned data type: 32 bit Unsigned Integer Counters created: 1 Counter 3 Name: Fweddle Counter 2 Units: fweddles Description: Fweddles occur when a snargle runs out of botyuts. The less fweddles the better. Better botyut management reduces fweddle occurance. Returned data type: 16 bit Unsigned Integer Counters created: 1
This deserves to be emphasised:
Quote:Fweddles occur when a snargle runs out of botyuts. The less fweddles the better. Better botyut management reduces fweddle occurance.
- What is a fweddle?
- What is a snargle?
- What are botyuts?
- When will I see hardware reviews with "fweddles per second" as the primary benchmark?
I guess it's just because it's early/preview code and some sort of placeholder. But still, it made me do a double-take and laugh [lol]
Jack