|
|
Goombert
|
|
Reply #2 Posted on: August 08, 2013, 07:57:15 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Harri, I know exactly what you mean, clearing the vectors on the OpenGL 3 model once the data is sent to the GPU, literally makes no difference in its ram usage, and I do not know why.
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
|
Goombert
|
|
Reply #4 Posted on: August 09, 2013, 05:28:08 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Yah that is what Josh told me before that numbers are a very small portion of RAM, I want to find out what it is though.
Also, Harri, I ran my sprite test in each graphics system, all it is, is one object going from 0 to 50,000 draw_sprite calls and then back to 0 and back up showing you your fps. Here is the ram performance...
Direct3D9 used 25,000 K OpenGL1 used 18,700 K OpenGL3 used 65,000 K
>: You definitely need to optimize something there, once you do we should definitely be outperforming GM81 if not having the same RAM usage.
|
|
« Last Edit: August 09, 2013, 06:03:00 am by Robert B Colton »
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
TheExDeus
|
|
Reply #5 Posted on: August 09, 2013, 09:41:46 am |
|
|
Joined: Apr 2008
Posts: 1860
|
I don't plan to "optimize" that, as the ram usage is already an optimization. If I limited the size of the VBO vector, then it would impact the performance (not a large impact, but still an impact, especially when a lot of sprites are batched). When you create software there is always a choice between performance and memory and I chose performance. For example, I doubt GM8 or 8.1 can match GL3 performance.
The best I can do is add an option. Probably a function (because we cannot easily create options in IDE) that would set the maximum VBO buffer size. By default it will be unlimited, but the user will be able to set it (even add it as an option in the game) and it will reduce ram usage together with FPS. Another thing I can do is reduce the vector when there is large difference in drawing (like you draw 50k sprites at one time, but then draw 1k for the next 30min and so the vector waiting for the 49k will take up ram without use). Maybe I will add a coefficient, like when the maximum VBO buffer size in a draw event doesn't suppress 75% of the allocated size, then resize it to that 75%. Also clearing the buffer on room change could be beneficial, but it would create a small stutter when suddenly drawing a lot of sprites.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #6 Posted on: August 09, 2013, 02:19:16 pm |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Harri, I just don't get the large ram usage, how can that not be fixed? DX does it with 3fps faster than your VBO too. This goes back again, to why I think OpenGL sucks for something supposedly low level.
|
|
« Last Edit: August 10, 2013, 05:12:25 am by Robert B Colton »
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
|