Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

N19h7m4r3

macrumors 65816
Dec 15, 2012
1,191
8
Small testing of D3 on my early 2013 rMBP with 650M under OS X Mavericks.

Maxed out 1920x1080: 25-30FPS
Probably going to be like 20 - 25 FPS if ran on 2560x1440 screen.

Now don't know what to say when compared to CNET nMP results for D700

Run it at 2560x1600, I think you'll get lower FPS than you think.

I still think there's some drivers and firmware stuff going on. The D700 is slower than the old 5780 in D3 it seems.
 

antonis

macrumors 68020
Jun 10, 2011
2,085
1,009
We really don't know if both GPUs are used (the CNET's article doesn't state that when posting the game results). If these are the results of a single GPU, we don't even know if dual GPUs will be supported in the future (at least for non-PRO apps like D3).

Mind, also, that blizzard hasn't supported OpenGL 4.x yet. So, as for the currently-posted game results, it's just "too little, too early".
 

MacsRgr8

macrumors G3
Sep 8, 2002
8,284
1,753
The Netherlands
Back to the X-Plane 10:

I have the maxed out 2013 iMac 27" and play X-Plane 10 quite a lot.
(i7 3.5 GHz, 32 GB RAM, 1 TB SSD, GeForce GTX 780M 4 GB VRAM)

The best "stress test" I have for X-Plane 10:

X-Plane 10.25 64 bits, and loading:

- Pay ware KLGA & KJFK
- KEWR
- ManhattanX (converted)
- SkyMaxxPro
- WorldTraffic
- couple of other plugins

... and play around with the settings.

The iMac holds well, using up 3 GB VRAM (around 14 GB of RAM) and with my pretty high settings (extreme resolution, HDR enabled, 2560 x 1440 rez.) getting around 20 FPS. I don't fly around New York that much, so I can keep these settings and get > 25 FPS around other highly detailed scenery.

If I try to max out X-Plane 10 with above mentioned scenery, the FPS drop to about 10 (uncheck the texture compression and the VRAM used by X-Plane exceeds 6 GB >>> you get around 1 FPS...).

I'm pretty sure that the best nMP config available for X-Plane (highest GPU clock, Dual D700) will not be able to max out the settings and have >25 FPS.

Not until:
1. X-Plane will be able to make use of both D700's
2. CPU's get faster....
 

chris.k

macrumors member
May 22, 2013
91
1
YSSY
I'm tempted to put the XP10 demo on a USB drive and take it down to the Apple Store next week and run the built-in "time demos" from the command line.

Interested to see how well the AMD drivers deal with object instancing.
 

leman

macrumors Core
Oct 14, 2008
19,189
19,046
Small testing of D3 on my early 2013 rMBP with 650M under OS X Mavericks.

Maxed out 1920x1080: 25-30FPS
Probably going to be like 20 - 25 FPS if ran on 2560x1440 screen.

Now don't know what to say when compared to CNET nMP results for D700

You expect only a 25% fps drop when increasing pixel amount by almost 80%? Thats quite optimistic.

We really don't know if both GPUs are used

We do actually. Its most certainly single GPU, I very much doubt that Blizzard's engine supports multiple GPUs. On OS X, to take advantage of multiple GPUs, you have to do it yourself (there is no driver magic like SLI/crossfire).

Mind, also, that blizzard hasn't supported OpenGL 4.x yet. So, as for the currently-posted game results, it's just "too little, too early".

Why do you think that OpenGL 4x will be any faster? More specifically, what features of OpenGL 4x do you believe to bring performance benefits to games like Diablo?

X-Plane 10 uses the CPU big time!

Well, X-Plane's engine just seems to be lazily coded. I never played the simulator, but I remember in one thread people where showing some insane VRAM usage with high-res texture maps. Basically, this means that the engine doesn't even do a simple on-demand LOD mip-map streaming.
 

chris.k

macrumors member
May 22, 2013
91
1
YSSY
X-Plane can use both the CPU and GPU heavily depending on what part of the scene it's trying to draw:

http://developer.x-plane.com/2011/12/tips-for-better-frame-rates-pt-1/

http://developer.x-plane.com/2011/10/x-plane-10-and-gpu-power/

For example, I am CPU-limited due to the number of Objects I'm asking the sim to draw at higher detail levels (XP10 has a built in 'fps' counter which shows you if your GPU or CPU is pinned aka the ratio between them). When I crank the object count, my CPU/GPU ratio goes rather high (meaning that the GPU is generally 'waiting around' to be told stuff to draw) while dropping to 20-25 FPS.

The majority of the time I am not fill-rate limited on my GTX670.

XP also does do LOD mip-maps with it's DDS textures; but it is loaded into the Videocard fully. There's no benefit to copying the texture real-time across the Bus to the video card when one gets "closer" to the texture as implied. That just adds additional load to the CPU & PCIe bus - It's better to load the entire mip-mapped DDS texture into VRAM, as the video card can make mincemeat out of painting the texture at different resolutions.

Water reflections also can saturate the CPU+Bus; as you're effectively drawing things twice. (once in the regular plane, and one in the reflected plane).

http://developer.x-plane.com/2010/05/water-reflections-use-the-cpu/

- CK.

Summary: XP10 indeed can hammer the CPU as much as it can depending on the art asset it's trying to draw, or the effect its trying to generate (objects, water reflections, shadows, etc). Getting a higher-end video card may not necessarily increase your framerate, unless you were fill-rate limited to begin with. ( http://developer.x-plane.com/2012/01/mobile-gpus-and-fill-rate/ )
 
Last edited:

leman

macrumors Core
Oct 14, 2008
19,189
19,046
XP also does do LOD mip-maps with it's DDS textures; but it is loaded into the Videocard fully. There's no benefit to copying the texture real-time across the Bus to the video card when one gets "closer" to the texture as implied. That just adds additional load to the CPU & PCIe bus - It's better to load the entire mip-mapped DDS texture into VRAM, as the video card can make mincemeat out of painting the texture at different resolutions.

There is a huge benefit once high-res detailed textures come into play. By uploading the mipmap levels 0 and 1 only when they are needed, you can easily reduce your VRAM usage by 60% or more. The additional bus load due to texture copies is negligible in context of a flight simulator, with its easily predictable camera position. Furthermore, this technique will actually reduce the bus load because you are only moving large texture when they are actually needed instead of when a new chunk becomes visible.
 

chris.k

macrumors member
May 22, 2013
91
1
YSSY
There is a huge benefit once high-res detailed textures come into play. By uploading the mipmap levels 0 and 1 only when they are needed, you can easily reduce your VRAM usage by 60% or more. The additional bus load due to texture copies is negligible in context of a flight simulator, with its easily predictable camera position. Furthermore, this technique will actually reduce the bus load because you are only moving large texture when they are actually needed instead of when a new chunk becomes visible.

I'll pass on your comments to the developers. You can discuss this with them if you'd like. I'm just and end user - it sounds like you have much more experience in OpenGL development than I do.

I am only stating how it works today. If you feel like improving the engine, the devs I'm sure will value your input.

FWIW, most users have giant VRAM Videocards, so my feeling is that obtaining VRAM efficiencies is moot since we all crank our texture resolutions to the highest our HW can do. I normally sit at ~2Gb with all the high-res textures loaded.

The textures for a large area are loaded once, and moving to another area is loaded asynchronously as you pass into a further away area. Hence yes, the initial texture load is greater initially, but drops to zero as you fly through an area. It takes about an 1/2 hour of flying to cross a tile to trigger another texture load.

Edit: You are also making an Assumption that a particular texture is only used in one location. The majority of the textures that XP10 loads are used all over the same area (repeated ground patterns).. so again I dont see the benefit in loading different LODs dynamically, since the user is most likely sitting "on top of" a high-res ground texture to begin with, which will need the higher LOD "right now".. as well as as he flies over the area and the same pattern is needed again and again.

In that case, wouldn't you be copying high LOD, low LOD, high LOD, low LOD as the user pans his head around? a slight turn of my head may require the higher LOD as my view then changes to reveal the texture that was occluded just 1 frame before?

Anyways. I'm not an OGL coder. I'll pass on your suggestion to the developers.
 
Last edited:

chris.k

macrumors member
May 22, 2013
91
1
YSSY
Aha, It seems that textures do allow for dynamic locading into VRAM as the user gets closer to the texture.

This is from the X-Plane develoepr's docs. There's an optional attribute one can define for things like draped orthophotos, which appears to dynamically load DDS MIPs based on the distance:

____________________

LOAD_CENTER

This command establishes that this texture will be used at a certain location, specified by the lat/lon taken to be the texture's center. By also specifying the textures size (in pixels) and approximate terrain size when placed (in meters), X-Plane will load the texture with variable resolution based on the general distance from the user to the texture. As the user flies, X-plane will periodically reload the texture.

LOAD_CENTER affects loading of the base texture and night texture if it exists. A texture that uses LOAD_CENTER should only be referenced once by one art resource per DSF tile. For optimal performance, the texture should be in DDS format, so that reloads at lower resolution are fast.

LOAD_CENTER LOAD_CENTER 42.70321 -72.34234 4000 1024

____________________


So it looks like the onus is on us scenery developers to implement this for things like draped polygons.

Still wont work for repeated objects - i.e. Since objects can appear anywhere and many re-use the same texture file, (i.e. a house closeby and a house farther away, may share the same texture file), I can't see how one can dynamically figure out which texture needs to be copied in.... but for a non-repeating texture which is in a very specific location, yes, it appears that that X-Plane does support dynamic LOD-loading.

Hrmph, I learn something new every day....
 

leman

macrumors Core
Oct 14, 2008
19,189
19,046
In that case, wouldn't you be copying high LOD, low LOD, high LOD, low LOD as the user pans his head around? a slight turn of my head may require the higher LOD as my view then changes to reveal the texture that was occluded just 1 frame before?

Firstly, all the lower detail mipmaps are loaded at all time. I am talking only about really high-detail textures. With those, you only need the maximal level when the textured tile is literally 'in your face'. I have seen somewhere that XPlane can support high-detail textures with resolutions of 10pixels/meter. What this means basically is that you need to keep the highest-level mipmap as long as one meter maps to more than 5 pixels somewhere on the screen. This is probably only the case with takeoff/landing and some specific camera angles. On a full-HD screen, 5 pixels mean 380x216 meters - basically, as long as you can see further away than that, you don't need the highest-level map for at least some parts of the scene.

Now here is where the determinism of a flight simulator comes into play. Because the position of the aircraft chances relatively slowly in relation to the size of the world, its quite easy to predict which scenery from which camera angles (and thus which texture levels) will be visible in high detail by the user in the next few seconds. A 'smart' LOD engine will then upload the high-res texture of those scenes only.

Of course, I have never worked on a flight simulator and I know that the goals of such applications are quite different from those of normal games. Still, sometimes its not a bad idea to learn something from modern game engines. Current gaming titles push millions of polygons per second, with enormous gigabyte-large virtual textures and tons of per-fragment computations - and they manage to do it very efficiently. In comparison, CAD etc. is often very inefficient (there has been some comparisons of algorithms which show that some CAD-specific techniques can be as fast on gaming hardware as on a professional one - when one does not rely on a ancient, obscure OpenGL setting).
 

Alchemist

macrumors regular
Dec 22, 2004
141
102
UK
X-Plane Benchmarks

I've been getting fed up of the lack of useful hard data that's pertinent to me as a potential nMP buyer. As such I headed over to my local store today to see if I could run some tests. The store had the below model:

- Xeon 6c @ 3.5GHz
- 16GB RAM
- 256GB PCI-E Flash
- Dual FirePro D500 3GB

It was hooked up to a 27" Thunderbolt Display

My main aim was to gauge Lightroom performance, but I figured I'd take the X-Plane demo along on a stick and see if I could run some tests. I intended to stay for a couple of hours, but ended up staying most of the day trying one thing or another! The staff were extremely helpful and accommodating and very interested, particularly in X-Plane which they seemed to view as some crazy whizztastical magic. They also had a tricked out iMac 27" in store with the below config so I thought I'd try that also for comparison purposes:

- i7 @ 3.5GHz (Haswell)
- 8GB RAM
- 3TB Fusion Drive
- NVIDIA 780M 4GB

Finally, when I got home I ran the same tests on my Mid 2011 iMac under both 10.8.5 and then (after upgrading) 10.9.1. I did all the tests in a fresh user account. My machine has the following spec:

- i7 4c @ 3.4GHz (Sandy Bridge)
- 16GB RAM
- 256 SSD (Used for all tests)
- 2TB HDD
- AMD Radeon HD 6970M 1GB

I'm planning to write these findings up in a bit more detail, with some accompanying graphs but I thought I'd share them with you now in their raw state.



New Mac Pro (Late 2013) - Xeon 6c @ 3.5GHz, 16GB RAM, 256GB PCI-E Flash, Dual AMD Firepro D500 3GB

Mac OS X 10.9.0
CPU type: 526772277 (unknown PowerPC) CPU speed (mhz): 3500 Bus speed (mhz): 100 RAM (MB): 16384

OpenGL Vendor : ATI Technologies Inc.
OpenGL Render : ATI Radeon HD - FirePro D500 OpenGL Engine
OpenGL Version : 2.1 ATI-1.16.37 (210/0)


C4 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=92.8, frames=5734, fps=61.81
GPU LOAD: time=92.8, wait=2.6, load=2.8%

FRAMERATE TEST: time=92.8, frames=5860, fps=63.16
GPU LOAD: time=92.8, wait=2.7, load=2.9%

Test 2

FRAMERATE TEST: time=92.9, frames=3455, fps=37.18
GPU LOAD: time=92.9, wait=1.9, load=2.0%

Test 3

FRAMERATE TEST: time=94.2, frames=2148, fps=22.80
GPU LOAD: time=94.2, wait=1.3, load=1.4%

Test 4

FRAMERATE TEST: time=96.7, frames=1958, fps=20.25
GPU LOAD: time=96.7, wait=1.1, load=1.1%

Test 5

FRAMERATE TEST: time=92.8, frames=7001, fps=75.46
GPU LOAD: time=92.8, wait=4.2, load=4.5%



747 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=140.6, frames=6853, fps=48.75
GPU LOAD: time=140.6, wait=2.9, load=2.1%

FRAMERATE TEST: time=140.6, frames=6858, fps=48.77
GPU LOAD: time=140.6, wait=2.9, load=2.1%

Test 2

FRAMERATE TEST: time=140.8, frames=4751, fps=33.74
GPU LOAD: time=140.8, wait=2.0, load=1.4%

Test 3

FRAMERATE TEST: time=142.8, frames=3338, fps=23.38
GPU LOAD: time=142.8, wait=1.7, load=1.2%

Test 4

FRAMERATE TEST: time=144.5, frames=3279, fps=22.69
GPU LOAD: time=144.5, wait=1.4, load=1.0%

Test 5

FRAMERATE TEST: time=140.6, frames=7589, fps=53.96
GPU LOAD: time=140.6, wait=3.7, load=2.6%




iMac (Late 2013) - iMac 27” (Late 2013) - Core i7 @ 3.5GHz, 8GB RAM, 3TB Fusion Drive, NVIDIA GeForce GTX780M 4GB

Mac OS X 10.9.1
CPU type: 280134364 (unknown PowerPC) CPU speed (mhz): 3500 Bus speed (mhz): 100 RAM (MB): 8192

OpenGL Vendor : NVIDIA Corporation
OpenGL Render : NVIDIA GeForce GTX 780M OpenGL Engine
OpenGL Version : 2.1 NVIDIA-8.18.22 310.40.05f01 (210/0)


C4 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=92.8, frames=8625, fps=92.91
GPU LOAD: time=92.8, wait=6.3, load=6.7%

FRAMERATE TEST: time=92.8, frames=8497, fps=91.55
GPU LOAD: time=92.8, wait=6.2, load=6.7%

Test 2

FRAMERATE TEST: time=92.8, frames=5443, fps=58.63
GPU LOAD: time=92.8, wait=2.4, load=2.6%

Test 3

FRAMERATE TEST: time=93.4, frames=2833, fps=30.34
GPU LOAD: time=93.4, wait=1.5, load=1.6%

Test 4

FRAMERATE TEST: time=93.4, frames=2829, fps=30.30
GPU LOAD: time=93.4, wait=1.3, load=1.4%

Test 5

FRAMERATE TEST: time=92.8, frames=9842, fps=106.06
GPU LOAD: time=92.8, wait=5.9, load=6.3%



747 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=140.6, frames=9118, fps=64.84
GPU LOAD: time=140.6, wait=3.4, load=2.5%

FRAMERATE TEST: time=140.6, frames=9261, fps=65.85
GPU LOAD: time=140.6, wait=3.6, load=2.5%

Test 2

FRAMERATE TEST: time=140.6, frames=6735, fps=47.89
GPU LOAD: time=140.6, wait=3.0, load=2.2%

Test 3

FRAMERATE TEST: time=141.2, frames=4279, fps=30.30
GPU LOAD: time=141.2, wait=2.1, load=1.5%

Test 4

FRAMERATE TEST: time=141.2, frames=4260, fps=30.16
GPU LOAD: time=141.2, wait=1.9, load=1.3%

Test 5

FRAMERATE TEST: time=140.6, frames=9579, fps=68.11
GPU LOAD: time=140.6, wait=4.1, load=2.9%




iMac (Mid 2011) OS X 10.9.1 - iMac 27” (Mid 2011) - Core i7 @ 3.4GHz, 16GB RAM, using 256GB SSD, AMD Radeon HD6750 1GB

Mac OS X 10.9.1
CPU type: 1418770316 (unknown PowerPC) CPU speed (mhz): 3400 Bus speed (mhz): 100 RAM (MB): 16384

OpenGL Vendor : ATI Technologies Inc.
OpenGL Render : ATI Radeon HD 6970M OpenGL Engine
OpenGL Version : 2.1 ATI-1.14.21 (210/0)


C4 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=92.8, frames=6338, fps=68.31
GPU LOAD: time=92.8, wait=3.2, load=3.4%

FRAMERATE TEST: time=92.8, frames=6286, fps=67.74
GPU LOAD: time=92.8, wait=3.3, load=3.5%

Test 2

FRAMERATE TEST: time=92.8, frames=3928, fps=42.33
GPU LOAD: time=92.8, wait=2.4, load=2.6%

Test 3

FRAMERATE TEST: time=104.9, frames=1863, fps=17.77
GPU LOAD: time=104.9, wait=10.8, load=10.3%

Test 4

FRAMERATE TEST: time=125.2, frames=1847, fps=14.75
GPU LOAD: time=125.2, wait=16.9, load=13.5%

Test 5

FRAMERATE TEST: time=92.8, frames=7356, fps=79.26
GPU LOAD: time=92.8, wait=4.1, load=4.4%



747 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=140.6, frames=7643, fps=54.35
GPU LOAD: time=140.6, wait=3.5, load=2.5%

FRAMERATE TEST: time=140.6, frames=7586, fps=53.95
GPU LOAD: time=140.6, wait=3.5, load=2.5%

Test 2

FRAMERATE TEST: time=140.7, frames=5284, fps=37.56
GPU LOAD: time=140.7, wait=6.6, load=4.7%

Test 3

FRAMERATE TEST: time=153.9, frames=3216, fps=20.89
GPU LOAD: time=153.9, wait=10.9, load=7.1%

Test 4

FRAMERATE TEST: time=180.5, frames=3177, fps=17.60
GPU LOAD: time=180.5, wait=16.7, load=9.3%

Test 5

FRAMERATE TEST: time=140.6, frames=8112, fps=57.69
GPU LOAD: time=140.6, wait=4.3, load=3.1%




iMac (Mid 2011) - iMac 27” (Mid 2011) OS X 10.8.5 - Core i7 @ 3.4GHz, 16GB RAM, using 256GB SSD, AMD Radeon HD6750 1GB

Mac OS X 10.8.5
CPU type: 1418770316 (unknown PowerPC) CPU speed (mhz): 3400 Bus speed (mhz): 100 RAM (MB): 16384

OpenGL Vendor : ATI Technologies Inc.
OpenGL Render : ATI Radeon HD 6970M OpenGL Engine
OpenGL Version : 2.1 ATI-1.8.19 (210/0)


C4 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=92.8, frames=6186, fps=66.66
GPU LOAD: time=92.8, wait=4.1, load=4.4%

FRAMERATE TEST: time=92.8, frames=6160, fps=66.39
GPU LOAD: time=92.8, wait=4.2, load=4.5%

Test 2

FRAMERATE TEST: time=92.8, frames=3809, fps=41.05
GPU LOAD: time=92.8, wait=2.6, load=2.8%

Test 3

FRAMERATE TEST: time=103.5, frames=1879, fps=18.15
GPU LOAD: time=103.5, wait=1.7, load=1.6%

Test 4

FRAMERATE TEST: time=125.7, frames=1850, fps=14.71
GPU LOAD: time=125.7, wait=1.6, load=1.2%

Test 5

FRAMERATE TEST: time=92.8, frames=7313, fps=78.82
GPU LOAD: time=92.8, wait=4.9, load=5.3%



747 Tests

Test 1 (Ran this twice to ensure I was getting repeatable results)

FRAMERATE TEST: time=140.6, frames=7404, fps=52.65
GPU LOAD: time=140.6, wait=4.6, load=3.3%

FRAMERATE TEST: time=140.6, frames=7412, fps=52.71
GPU LOAD: time=140.6, wait=4.6, load=3.3%

Test 2

FRAMERATE TEST: time=140.7, frames=5268, fps=37.45
GPU LOAD: time=140.7, wait=3.3, load=2.4%

Test 3

FRAMERATE TEST: time=178.8, frames=3115, fps=17.42
GPU LOAD: time=178.8, wait=6.7, load=3.8%

Test 4

FRAMERATE TEST: time=168.9, frames=3169, fps=18.76

Test 5

FRAMERATE TEST: time=140.6, frames=7984, fps=56.77
GPU LOAD: time=140.6, wait=5.6, load=4.0%


Hope this is of some help! I'll drop back once I've put these results into a more digestible format.
 

velocityg4

macrumors 604
Dec 19, 2004
7,329
4,717
Georgia
Even without crossfire ... with also think the duals would run faster. Has bootcamp been confirmed? I would think that might help considerably.

According to Anandtech Crossfire X is supported on the nMP in Windows. While it is not under OS X. Under OS X the GPUs are split so that one displays graphics on screen while the other does the compute workload. For a game to use both GPUs the developer must specifically program the game to utilize both cards. Which won't ever happen. At least not unless the iMac and Macbook start coming standard with multiple cards.

So if you want gaming performance you must boot into Windows.

http://www.anandtech.com/show/7603/mac-pro-review-late-2013/9
 

elvisizer

macrumors 6502
May 29, 2003
310
24
San Jose
For a game to use both GPUs the developer must specifically program the game to utilize both cards. Which won't ever happen.

I'd hesitate to make that blanket statement. I'm sure that'll be true in general, but Xplane is already a pretty hardcore/niche product itself- I wouldn't be surprised at all to see them put some effort into dual GPU support on OS X.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.