Probable Explanation for Merged Cuirass and Greaves Performa

Post » Mon Jul 18, 2011 5:03 am

I am getting tired of seeing claims that the improvement in performance from merging cuirass and greaves is merely BS from people who put forth no arguments to defend their claim (or at best very weak arguments). We don’t know what the actual performance improvements are, however, I am going to attempt to explain a possible reason for the performance increase whatever it may be. I'll leave explaining the improvements from an artistic and design standpoints to the modelers. However, first some background information is required, though I will simplify this. You may want to grab a drink and some snacks before settling in.

The first and most important thing you need to know is that data access times vary. For those unaware, memory refers to the main memory or RAM (Random Access Memory) of a computer. What you most likely think of as memory is actually your hard disk/hard drive (HDD), this is a somewhat common misconception. For the computer to actually make use of data it actually has to have the data in the processor. This means that the data has to travel through various levels of the memory hierarchy. The memory hierarchy is from slowest to fastest access times roughly: External Storage (disk, magnetic tape, etc) -> HDD –> Main Memory (RAM)-> Video Memory (VRAM) -> Processor Cache L3/L2 -> Processor Cache L1 -> Processor Registers. All of this data is transferred between the various levels of the memory hierarchy. External storage access is at least several orders of magnitude (OoM) slower than hard disk access. Hard disk access is in turn several OoM slower than main memory, which in turn is slower than the processors cache, which is slower than the processor registers. An order of magnitude is a change by a power of 10 (powers of 2 are common in computing though time is measured with the base 10 or decimal system just like normal). For example 10^1 = 10 and 10^2 = 100, therefore the difference between 10^1 and 10^2 is one order of magnitude, so the difference between 10 and 1,000,000 is five orders of magnitude. This is why on the Xbox 360 when you install a game to the HDD it reduces loading times, when compared to having to pull the data from the disk. Once data reaches main memory it tends to stay there until it is no longer needed, so as to avoid having to access the slower parts of the memory hierarchy, and is copied to the processor or the video card depending on the type of data.

Now I’ll discuss the rendering (drawing to the screen) process, albeit very simplified. Once you have the data on the video card’s memory the video card performs the necessary processes to manipulate the data and draw an image on your screen. The data first goes to through the vertex shader where vertex information is processed. A vertex is a point connecting two or more lines generally storing at a minimum a specific coordinate in the X,Y, Z planes (3-Dimensional Space). A triangle has 3 vertices, one at each corner. A square can be made of two triangles placed together. Because they are placed together the two triangles share two vertices in common, thus this data is redundant in one triangle and we can eliminate it. Therefore, a square is made up of 4 vertices instead of 6. All 3D models are simply various combinations of millions of individual triangles. The data then goes through the rasterization process which transforms the 3D model data into a 2D image made of pixels. A pixel is simply a point, usually holding a coordinate in the X, Y planes (position in 2-Dimensional Space) and some color information. This is then fed through pixel shader where various operations, are performed to generate visual effects. From here the final information goes to the frame buffer where it is stored until it is time to draw the entire scene onto the screen.

Now that that is out of the way I’ll explain the probable reason for the improved performance by merging cuirass and greaves. When you go to render something you need to make a call to the graphics API (in the case of Xbox 360 and usually in Windows this is Microsoft’s DirectX, while the Playstation 3 uses OpenGL) Let’s pretend I have a model of a dog. When I tell the API to draw the dog on the screen, It first checks to see if the data for the dog is already in video memory, if so good the above process proceeds. If not that means I have go through the memory hierarchy, this could be fast or slow depending on if the information is already in main memory, to get the needed data and send it to the video memory. If there Is nothing in video memory all is well and we proceed as normal. However, if video memory is full, or there is not enough free memory available, we have to unload data from video memory to make room for the new data. Naturally, this creates problems if we are trying to draw many different things in one frame that do not use the same information. Drawing two dogs is easy and only needs enough memory to store the information of one dog. Drawing a dog and a cat is more complex and requires the information of the both the dog model and the cat model to be in video memory when it goes draw them. Keep in mind, however, that there are limits to what the video card can do at one time, so that while we can easily draw 2 or 5 dogs on screen with only one model in video memory, it is much more difficult to draw 50 or 100 dogs on screen even though we still only have the one model in video memory. Now, what if I want to draw a dog, a cat, and a mouse on the screen (in that order) but I only have enough video memory to store the dog and the cat. First the dog model and cat model are loaded into video memory and drawn to the frame buffer. Then some information is unloaded (whether it’s the dog or the cat model is unimportant at this point, but we'll say the dog) and the mouse model is then loaded into memory and drawn to the frame buffer. Finally, now that everything that needs to be there in this frame is drawn to the frame buffer, the image in the frame buffer is then sent to the screen. What if I want to draw two dogs, a cat, and a mouse? Well it’s much the same, if I’m smart I draw both dogs one after the other. If I however draw a dog followed by a cat and a mouse, and then the second dog I have a problem. Now I have to load the dog data and the cat data into video memory and then render them, I then unload the dog data and load the mouse data and render it, I then have unload the cat data and reload the dog data into video memory before rendering the second dog. This naturally takes more time than if I had drawn both dogs at the same time.

Wait, what does this all have to do with the cuirass and greaves? Well remember the Xbox 360 doesn’t have separate video memory, instead main memory is shared and a portion of it is dedicated as video memory. This means that the Xbox actually has less than 512 MB main memory, which in turn means more having to fetch data from slower parts of the hierarchy. Most likely when a scene is rendered each character and all of their equipment is rendered at one time for logical reasons. This means that to a render a group of bandits in a cave next to a campfire. I first have to render the cave, I then render their campfire. I next render the first bandit, a Nord in full leather armor with an axe. First I render his body, head and hair likely separate meshes. I then render his axe. Next I go to render his helmet, gloves, boots, cuirass, and finally greaves. Unfortunately all this is too much information to fit in the memory I have allocated to the video card. So before I render the cuirass I have to remove the cave and fire from memory and load in the data for the cuirass and render it. Next I unload the body and head to fit the greaves and render it. Finally, I unload the hair and load the boots to render them and so forth. I then go to draw the next bandit repeating the steps as necessary. If I combine the cuirass and greaves I have data that is roughly the size of the cuirass data + the size of the greaves data, but there is a difference. While this bit of data is larger, it only requires fetching once, as opposed to one time for each separate piece. By combining them we reduce the number of times we have to fetch more data into video memory and speed up rendering of the whole scene. This in turn allows us to render more things in a scene in the same amount of time and thus have more complex scenes. Keep in mind that this is an incredibly simplified example, but explains the issue of multiple render calls to the graphics card, and why reducing them, which in my mind is the most likely cause, results in a performance gain from the merging.
User avatar
Brandi Norton
 
Posts: 3334
Joined: Fri Feb 09, 2007 9:24 pm

Post » Mon Jul 18, 2011 6:26 am

I feel smarter now for having read such a volume of letters...
User avatar
Bambi
 
Posts: 3380
Joined: Tue Jan 30, 2007 1:20 pm

Post » Sun Jul 17, 2011 7:50 pm


-snip-

Wait, what does this all have to do with the cuirass and greaves? Well remember the Xbox 360 doesn’t have separate video memory, instead main memory is shared and a portion of it is dedicated as video memory. This means that the Xbox actually has less than 512 MB main memory, which in turn means more having to fetch data from slower parts of the hierarchy. Most likely when a scene is rendered each character and all of their equipment is rendered at one time for logical reasons. This means that to a render a group of bandits in a cave next to a campfire. I first have to render the cave, I then render their campfire. I next render the first bandit, a Nord in full leather armor with an axe. First I render his body, head and hair likely separate meshes. I then render his axe. Next I go to render his helmet, gloves, boots, cuirass, and finally greaves. Unfortunately all this is too much information to fit in the memory I have allocated to the video card. So before I render the cuirass I have to remove the cave and fire from memory and load in the data for the cuirass and render it. Next I unload the body and head to fit the greaves and render it. Finally, I unload the hair and load the boots to render them and so forth. I then go to draw the next bandit repeating the steps as necessary. If I combine the cuirass and greaves I have data that is roughly the size of the cuirass data + the size of the greaves data, but there is a difference. While this bit of data is larger, it only requires fetching once, as opposed to one time for each separate piece. By combining them we reduce the number of times we have to fetch more data into video memory and speed up rendering of the whole scene. This in turn allows us to render more things in a scene in the same amount of time and thus have more complex scenes. Keep in mind that this is an incredibly simplified example, but explains the issue of multiple render calls to the graphics card, and why reducing them, which in my mind is the most likely cause, results in a performance gain from the merging.


Okay, that cleared everything up for me. Great post!
User avatar
Chloe Mayo
 
Posts: 3404
Joined: Wed Jun 21, 2006 11:59 pm

Post » Mon Jul 18, 2011 1:43 am

It's been confirmed why cuirass and greaves are merged...in a lot less words. Good job for taking the time to write all of that though. :goodjob:
User avatar
Wane Peters
 
Posts: 3359
Joined: Tue Jul 31, 2007 9:34 pm

Post » Mon Jul 18, 2011 4:54 am

can some one sum up whats written

not another complainer i hope
User avatar
Elea Rossi
 
Posts: 3554
Joined: Tue Mar 27, 2007 1:39 am

Post » Mon Jul 18, 2011 8:56 am

can some one sum up whats written

not another complainer i hope


Better performance, cooler armor.
User avatar
Lilit Ager
 
Posts: 3444
Joined: Thu Nov 23, 2006 9:06 pm

Post » Mon Jul 18, 2011 9:51 am

The reason for merging armour is perfectly valid, I just don't agree with it at all.
User avatar
Chloé
 
Posts: 3351
Joined: Sun Apr 08, 2007 8:15 am

Post » Mon Jul 18, 2011 4:28 am

Better performance, cooler armor.


oh, well i new that already.... thanks anyway Shasow
User avatar
Roberto Gaeta
 
Posts: 3451
Joined: Tue Nov 06, 2007 2:23 am

Post » Mon Jul 18, 2011 10:39 am

Nice post. I never knew how that all worked.

I can see some "that's why consoles screw things up and they should design for PC then port that over to consoles instead of crappy console ports to PC's" posts showing up.
User avatar
N Only WhiTe girl
 
Posts: 3353
Joined: Mon Oct 30, 2006 2:30 pm

Post » Mon Jul 18, 2011 9:41 am

Beth also claims that due to the geographical and cultural location, Skyrim, most of the greaves with each armor would either not wholly be there or would be obscured from vision, anyway,, Due to skirts/kilts and such...
User avatar
DarkGypsy
 
Posts: 3309
Joined: Tue Jan 23, 2007 11:32 am

Post » Sun Jul 17, 2011 11:38 pm

Nice post. I never knew how that all worked.

I can see some "that's why consoles screw things up and they should design for PC then port that over to consoles instead of crappy console ports to PC's" posts showing up.


I'm actually happy they're porting from console since it guarantees that my computer will be able to run Skyrim for the most part.
User avatar
Brιonα Renae
 
Posts: 3430
Joined: Mon Oct 22, 2007 3:10 am

Post » Sun Jul 17, 2011 11:29 pm

can some one sum up whats written

not another complainer i hope


Something about fetching dogs and cats and a mouse overlord, I think. Just kidding. Read the post, it doesn't take too long.
User avatar
roxanna matoorah
 
Posts: 3368
Joined: Fri Oct 13, 2006 6:01 am

Post » Sun Jul 17, 2011 9:55 pm

i just like being able to have more people on screen
User avatar
Wayne Cole
 
Posts: 3369
Joined: Sat May 26, 2007 5:22 am

Post » Mon Jul 18, 2011 4:35 am

The reason for merging armour is perfectly valid, I just don't agree with it at all.

Good, at least we're admitting that now.

Personally I buy into their other explanation: it looks better. For the most part NPCs wouldn't mix and match armor to anywhere near the same extent that PCs would, and frankly I always tended to wear complete sets when I could help it anyway. It always irritated the crap out of me that Indoril armor didn't have any greaves, and I had to substitute Stahlrim, royal guard armor, or orcish armor instead. Usually orcish because the other ones looked like crap.

Anyways, if it leads to a slight performance increase and eliminates ugly armor clipping on NPCs then I'm fine with it.
User avatar
lacy lake
 
Posts: 3450
Joined: Sun Dec 31, 2006 12:13 am

Post » Mon Jul 18, 2011 7:18 am

Makes sense. I don't necessarily like it, but it makes sense. I'm hoping they at least have shirt and pants/skirts separate still, though.
User avatar
Chloe :)
 
Posts: 3386
Joined: Tue Jun 13, 2006 10:00 am

Post » Sun Jul 17, 2011 6:44 pm

Good, at least we're admitting that now.

Now...? I've always said that their reasons were valid. Right from the moment the Q&A was announced.

It's common sense that merged armour would mean better performance, just as it's common sense that a linear world would result in better performance and visuals than an open one... or that a set main character would allow for a much more compelling story and more meaningful NPC interactions.

Just because the reason is valid, doesn't mean it's the right decision to make. ;)
User avatar
Grace Francis
 
Posts: 3431
Joined: Wed Jul 19, 2006 2:51 pm

Post » Sun Jul 17, 2011 10:27 pm

in other words the pathetic 360 memory is holding everything back so they have to cut corners by removing armor pieces. thanks alot. :rolleyes: my 3 year old PC ran every graphics mod out there except for some of the obge stuff (still in beta at the time) with oblivion and ran just fine. we need new consoles NOW. they are really hurting gaming.
User avatar
Floor Punch
 
Posts: 3568
Joined: Tue May 29, 2007 7:18 am

Post » Mon Jul 18, 2011 4:40 am

bla


Sorry, but this is nonsense. You do realize that the 'cave and fire' is not just a cave and a fire - the cave alone is made of hundreds, possibly thousands of different 'objects' (TriShapes/TriStrips). Especially in exteriors there are thousands of objects. Merging greaves and cuirass is not doing anything to improve performance noticeably. There are a few triangles rendered less and one 'object' less. But in total there are up to more than 1 million triangles and a few thousand objects rendered per frame. So the difference is equal to zero.
User avatar
Johnny
 
Posts: 3390
Joined: Fri Jul 06, 2007 11:32 am

Post » Mon Jul 18, 2011 12:57 am

Cliffs: Do less things and its faster.
User avatar
Ilona Neumann
 
Posts: 3308
Joined: Sat Aug 19, 2006 3:30 am

Post » Sun Jul 17, 2011 11:54 pm



I might've missed it, but I haven't seen anyone argue that the merge would not result in any performance gains at all. Of course combining two meshes would result in at least some performance gain.

As far as performance goes, the only thing I've seen disputed, rightly in my opinion, is the claim that the merge would free up enough additional resources to allow the rendering of additional NPCs on screen. There's simply no way that eliminating a single call per NPC could free up enough resources to make that much of a difference.

It's not that Beth misrepresented the fact that resources would be saved, but that they exaggerated the extent of that savings and the benefits from that savings.
User avatar
Curveballs On Phoenix
 
Posts: 3365
Joined: Sun Jul 01, 2007 4:43 am

Post » Mon Jul 18, 2011 12:37 am

The reason for merging armour is perfectly valid, I just don't agree with it at all.


You would rather have less on screen NPCs, yet better dressed?
I see.
User avatar
Richard Thompson
 
Posts: 3302
Joined: Mon Jun 04, 2007 3:49 am

Post » Sun Jul 17, 2011 7:56 pm

You would rather have less on screen NPCs, yet better dressed?
I see.


Actually, no. With them being merged, it gives them the option to make armor look more cool.

So it would be...

"You would rather have less on screen NPCs, and worse dressed?
I see."
User avatar
matt
 
Posts: 3267
Joined: Wed May 30, 2007 10:17 am

Post » Mon Jul 18, 2011 3:50 am

Something about fetching dogs and cats and a mouse overlord, I think. Just kidding. Read the post, it doesn't take too long.


Did someone say Mouse Overlord? :whistling:

Anyway the explanation is quite detailed but many people have summarised it in 4 words and it si perfectly reasonable. Thank you this explanation
User avatar
Jani Eayon
 
Posts: 3435
Joined: Sun Mar 25, 2007 12:19 pm

Post » Sun Jul 17, 2011 8:41 pm

NO ,its to make it looks better.. yea they said it
User avatar
Danger Mouse
 
Posts: 3393
Joined: Sat Oct 07, 2006 9:55 am

Post » Sun Jul 17, 2011 7:07 pm

Actually, no. With them being merged, it gives them the option to make armor look more cool.

So it would be...

"You would rather have less on screen NPCs, and worse dressed?
I see."


*EDIT*


A fashion statement is needed here. Perhaps the OP thinks choicest mix'n'max is the way to go...
User avatar
Philip Rua
 
Posts: 3348
Joined: Sun May 06, 2007 11:53 am

Next

Return to V - Skyrim