frustum culling

Started by raft, January 12, 2011, 01:32:02 AM

Previous topic - Next topic

EgonOlsen

I've uploaded a new jar here: http://www.jpct.net/jpct-ae/download/alpha/jpct_ae.jar

That should fix the near-plane-blitting-issue in most situations. The problem is/was, that the blitting happens in fixed point coordinates while the near plane is defined in float.
In addition, this jar includes a change for animated objects. In former versions, animated objects reverted to simple vertex arrays even when VBOs were enabled, because i had a problem with updating the meshes otherwise. This should be fixed now. VBOs are also default now, because on current hardware, it makes no sense not to. Isn't the play field in Jumpy actually one large "animated" object? Maybe this version can improve performance somewhat with this!? .(or maybe it doesn't even work...please give it a try and let me know... ;)

raft

Quote from: EgonOlsen on January 13, 2011, 11:00:50 PM
Isn't the play field in Jumpy actually one large "animated" object? Maybe this version can improve performance somewhat with this!? .(or maybe it doesn't even work...please give it a try and let me know... ;)
right, indeed a few large objects. static tiles, dynamic tiles, dynamic items..

this jar works ok, but performs worse on N1. on my test level it was:
* doing nothing: 31 fps
* moving around and collecting items: down to 20 fps

with new jar:
* doing nothing: 26 fps
* moving around and collecting items: down to 13 fps

maybe it's just N1?

EgonOlsen

Try to default back to vertex arrays by setting Config.useVBO=false; and see if that is faster again.

raft

yes, it's definetely faster this way. so we conclude to what, every device has a different nature ???

oh, and can you please provide me a test jar that that is mentioned in this post:

EgonOlsen

Well, i guess i'll set the default back to false then. Not enabling VBOs on a device that could do faster with them enabled doesn't hurt as much as this, so it's the better default. On my phone, the setting just doesn't matter...it's all the same performance wise.

I've updated the jar with the timing output. Enable it with Config.timingOutput=true;. Let me know if you need more data for other operations.

raft

thanks, provides very valuable information for me ;D

EgonOlsen

Sooo...is it a bottleneck or not?

Another question about the performance characteristics of your game: You are touching the object3d only if something changes, don't you? So no change in geometry...no vertex upload...correct?

raft

possibly it's the lagging factor but not too bad. at least on N1. there are few logs that take two digit milliseconds.

correct, i touch objects when i change them. 2 things trigger an upload:
* hide a subobject (less frequent)
* move a subobject (need to be done every frame) possibly this is the causing the noticable lag

EgonOlsen

I don't have access to the emulator ATM, so...when compiling the object for the level geometry, does it say that it uses mapped access or direct?

raft

i'm not sure what you mean. here is the complete log while loading level zero

I/jPCT-AE (15089): Memory usage before compacting: 6627 KB used out of 14727 KB
D/dalvikvm(15089): GC freed 2050 objects / 170312 bytes in 68ms
D/dalvikvm(15089): GC freed 258 objects / 22952 bytes in 59ms
I/Jumpy3D (15089): disposing game
I/jPCT-AE (15089): Memory usage after compacting: 6439 KB used out of 14727 KB
I/jPCT-AE (15089): Adding Lightsource: 0
I/Jumpy3D (15089): level loaded: 0
I/jPCT-AE (15089): Memory usage before compacting: 7918 KB used out of 14727 KB
D/dalvikvm(15089): GC freed 8130 objects / 416024 bytes in 84ms
D/dalvikvm(15089): GC freed 39 objects / 1312 bytes in 77ms
I/jPCT-AE (15089): Memory usage after compacting: 7511 KB used out of 14727 KB
I/Jumpy3D (15089): compiling all objects
I/jPCT-AE (15089): [ 1295014446088 ] - WARNING: Object object243 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 96 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (2304 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 241/object243 compiled to indexed fixed point data using 144 vertices in 5ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 72 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (1728 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 241/object243 compiled to indexed fixed point data using 108 vertices in 4ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 960 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (23040 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 241/object243 compiled to indexed fixed point data using 1440 vertices in 38ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 96 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (2304 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 241/object243 compiled to indexed fixed point data using 144 vertices in 6ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 72 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (1728 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 241/object243 compiled to indexed fixed point data using 108 vertices in 4ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 72 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (1728 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 241/object243 compiled to indexed fixed point data using 108 vertices in 4ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 72 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (1728 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 241/object243 compiled to indexed fixed point data using 108 vertices in 5ms!
I/jPCT-AE (15089): Object 241/object243 compiled to 7 subobjects in 115ms!
I/jPCT-AE (15089): [ 1295014446205 ] - WARNING: Object object244 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 340 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (8160 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 242/object244 compiled to indexed fixed point data using 816 vertices in 19ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Remapping 1020 vertex indices!
I/jPCT-AE (15089): Creating vertex cache (24480 bytes)!
I/jPCT-AE (15089): Vertex indices will be mapped!
I/jPCT-AE (15089): Subobject of object 242/object244 compiled to indexed fixed point data using 1224 vertices in 34ms!
I/jPCT-AE (15089): Object 242/object244 compiled to 2 subobjects in 68ms!
I/jPCT-AE (15089): [ 1295014446274 ] - WARNING: Object object245 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 243/object245 compiled to flat fixed point data using 2988 vertices in 18ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 243/object245 compiled to flat fixed point data using 72 vertices in 1ms!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 243/object245 compiled to flat fixed point data using 900 vertices in 6ms!
I/jPCT-AE (15089): Object 243/object245 compiled to 3 subobjects in 56ms!
I/jPCT-AE (15089): [ 1295014446330 ] - WARNING: Object object246 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Object 244/object246 precompiled!
I/jPCT-AE (15089): [ 1295014446330 ] - WARNING: Object object247 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Object 245/object247 precompiled!
I/jPCT-AE (15089): [ 1295014446331 ] - WARNING: Object object248 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Object 246/object248 precompiled!
I/jPCT-AE (15089): [ 1295014446331 ] - WARNING: Object object249 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Object 247/object249 precompiled!
I/jPCT-AE (15089): [ 1295014446332 ] - WARNING: Object object250 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Object 248/object250 precompiled!
I/jPCT-AE (15089): [ 1295014446332 ] - WARNING: Object object251 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Object 249/object251 precompiled!
I/jPCT-AE (15089): [ 1295014446332 ] - WARNING: Object object252 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 250/object252 compiled to flat fixed point data using 240 vertices in 2ms!
I/jPCT-AE (15089): Object 250/object252 compiled to 1 subobjects in 4ms!
I/jPCT-AE (15089): [ 1295014446342 ] - WARNING: Object object253 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 251/object253 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 251/object253 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): Object 141/object143 precompiled!
I/jPCT-AE (15089): Object 142/object144 precompiled!
I/jPCT-AE (15089): Object 143/object145 precompiled!
I/jPCT-AE (15089): Object 144/object146 precompiled!
I/jPCT-AE (15089): Object 145/object147 precompiled!
I/jPCT-AE (15089): Object 146/object148 precompiled!
I/jPCT-AE (15089): Object 147/object149 precompiled!
I/jPCT-AE (15089): Object 148/object150 precompiled!
I/jPCT-AE (15089): Object 149/object151 precompiled!
I/jPCT-AE (15089): Object 150/object152 precompiled!
I/jPCT-AE (15089): Object 151/object153 precompiled!
I/jPCT-AE (15089): [ 1295014446385 ] - WARNING: Object object254 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 252/object254 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 252/object254 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): Object 152/object154 precompiled!
I/jPCT-AE (15089): Object 153/object155 precompiled!
I/jPCT-AE (15089): Object 154/object156 precompiled!
I/jPCT-AE (15089): Object 155/object157 precompiled!
I/jPCT-AE (15089): Object 156/object158 precompiled!
I/jPCT-AE (15089): Object 157/object159 precompiled!
I/jPCT-AE (15089): [ 1295014446389 ] - WARNING: Object object255 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 253/object255 compiled to flat fixed point data using 6 vertices in 0ms!
I/jPCT-AE (15089): Object 253/object255 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): Object 158/object160 precompiled!
I/jPCT-AE (15089): Object 159/object161 precompiled!
I/jPCT-AE (15089): [ 1295014446391 ] - WARNING: Object object256 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 254/object256 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 254/object256 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): Object 160/object162 precompiled!
I/jPCT-AE (15089): Object 161/object163 precompiled!
I/jPCT-AE (15089): Object 162/object164 precompiled!
I/jPCT-AE (15089): Object 163/object165 precompiled!
I/jPCT-AE (15089): Object 164/object166 precompiled!
I/jPCT-AE (15089): Object 165/object167 precompiled!
I/jPCT-AE (15089): Object 166/object168 precompiled!
I/jPCT-AE (15089): Object 167/object169 precompiled!
I/jPCT-AE (15089): Object 168/object170 precompiled!
I/jPCT-AE (15089): Object 169/object171 precompiled!
I/jPCT-AE (15089): Object 170/object172 precompiled!
I/jPCT-AE (15089): Object 171/object173 precompiled!
I/jPCT-AE (15089): Object 172/object174 precompiled!
I/jPCT-AE (15089): Object 173/object175 precompiled!
I/jPCT-AE (15089): Object 174/object176 precompiled!
I/jPCT-AE (15089): Object 175/object177 precompiled!
I/jPCT-AE (15089): Object 176/object178 precompiled!
I/jPCT-AE (15089): Object 177/object179 precompiled!
I/jPCT-AE (15089): Object 178/object180 precompiled!
I/jPCT-AE (15089): Object 179/object181 precompiled!
I/jPCT-AE (15089): Object 180/object182 precompiled!
I/jPCT-AE (15089): Object 181/object183 precompiled!
I/jPCT-AE (15089): Object 182/object184 precompiled!
I/jPCT-AE (15089): Object 183/object185 precompiled!
I/jPCT-AE (15089): Object 184/object186 precompiled!
I/jPCT-AE (15089): Object 185/object187 precompiled!
I/jPCT-AE (15089): Object 186/object188 precompiled!
I/jPCT-AE (15089): Object 187/object189 precompiled!
I/jPCT-AE (15089): Object 188/object190 precompiled!
I/jPCT-AE (15089): Object 189/object191 precompiled!
I/jPCT-AE (15089): Object 190/object192 precompiled!
I/jPCT-AE (15089): Object 191/object193 precompiled!
I/jPCT-AE (15089): Object 192/object194 precompiled!
I/jPCT-AE (15089): Object 193/object195 precompiled!
I/jPCT-AE (15089): Object 194/object196 precompiled!
I/jPCT-AE (15089): Object 195/object197 precompiled!
I/jPCT-AE (15089): Object 196/object198 precompiled!
I/jPCT-AE (15089): Object 197/object199 precompiled!
I/jPCT-AE (15089): Object 198/object200 precompiled!
I/jPCT-AE (15089): [ 1295014446407 ] - WARNING: Object object257 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 255/object257 compiled to flat fixed point data using 6 vertices in 0ms!
I/jPCT-AE (15089): Object 255/object257 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): [ 1295014446409 ] - WARNING: Object object258 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 256/object258 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 256/object258 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): [ 1295014446411 ] - WARNING: Object object259 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 257/object259 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 257/object259 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): Object 199/object201 precompiled!
I/jPCT-AE (15089): Object 200/object202 precompiled!
I/jPCT-AE (15089): Object 201/object203 precompiled!
I/jPCT-AE (15089): Object 202/object204 precompiled!
I/jPCT-AE (15089): Object 203/object205 precompiled!
I/jPCT-AE (15089): Object 'object247' shares compiled data with object 'object119'
I/jPCT-AE (15089): Object 'object148' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object168' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object180' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object151' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object147' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object200' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object153' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object172' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object190' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object196' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object182' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object150' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object205' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object170' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object183' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object171' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object152' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object155' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object202' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object174' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object157' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object185' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object191' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object154' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object167' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object146' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object159' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object173' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object181' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object201' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object189' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object169' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object195' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object149' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object156' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object184' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object166' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object199' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object194' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object179' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object198' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object145' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object197' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object203' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object188' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object158' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object161' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object193' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object177' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object187' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object164' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object160' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object175' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object163' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object192' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object176' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object186' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object204' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object144' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object251' shares compiled data with object 'object119'
I/jPCT-AE (15089): Object 'object143' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object165' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object178' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object162' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object250' shares compiled data with object 'object119'
I/jPCT-AE (15089): Object 204/object206 precompiled!
I/jPCT-AE (15089): Object 205/object207 precompiled!
I/jPCT-AE (15089): [ 1295014446742 ] - WARNING: Object object260 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 258/object260 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 258/object260 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): Object 206/object208 precompiled!
I/jPCT-AE (15089): [ 1295014446746 ] - WARNING: Object object261 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 259/object261 compiled to flat fixed point data using 6 vertices in 0ms!
I/jPCT-AE (15089): Object 259/object261 compiled to 1 subobjects in 2ms!
I/jPCT-AE (15089): [ 1295014446748 ] - WARNING: Object object262 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 260/object262 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 260/object262 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): Object 207/object209 precompiled!
I/jPCT-AE (15089): Object 'object206' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object209' shares compiled data with object 'object11'
I/jPCT-AE (15089): Object 'object208' shares compiled data with object 'object11'
I/jPCT-AE (15089): [ 1295014446957 ] - WARNING: Object object263 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 261/object263 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 261/object263 compiled to 1 subobjects in 2ms!
I/jPCT-AE (15089): [ 1295014449958 ] - WARNING: Object object264 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 262/object264 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 262/object264 compiled to 1 subobjects in 2ms!
I/jPCT-AE (15089): [ 1295014449961 ] - WARNING: Object object265 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 263/object265 compiled to flat fixed point data using 6 vertices in 0ms!
I/jPCT-AE (15089): Object 263/object265 compiled to 1 subobjects in 1ms!
I/jPCT-AE (15089): [ 1295014449963 ] - WARNING: Object object266 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 264/object266 compiled to flat fixed point data using 6 vertices in 1ms!
I/jPCT-AE (15089): Object 264/object266 compiled to 1 subobjects in 3ms!
I/jPCT-AE (15089): [ 1295014450213 ] - WARNING: Object object267 hasn't been build yet. Forcing build()!
I/jPCT-AE (15089): Checking for triangle strip...
I/jPCT-AE (15089): Not a triangle strip at position 1!
I/jPCT-AE (15089): Subobject of object 265/object267 compiled to flat fixed point data using 6 vertices in 0ms!
I/jPCT-AE (15089): Object 265/object267 compiled to 1 subobjects in 2ms!

EgonOlsen

I meant this one:


Vertex indices will be mapped!


Thanks for the info. I was just thinking about some optimization idea, but i guess it wouldn't work anyway.

EgonOlsen

You might want to give the jar in this directory a try: http://www.jpct.net/jpct-ae/download/tmp/test/

It adds support for an accelerated buffer copying via libgdx's native libs. The parts of libgdx needed for this can be found in the zip in case you don't want to download the complete libgdx.

Let me know if it works and does something good for performance.

raft

it works but i didnt notice any particular speed up during game play. upload timing logs seems to stay low but only a few entry is logged so i cant say for sure what's going on later.

btw, i didnt notice any log saying something like "native upload enabled". i first tried new jar without libgdx jars and waited for a crash but that didnt happen. then added jars, set Config.disableNativeBufferCopies to false but i'm not sure if it's actually used. only difference i noticed is, old way continuosly logs uploading times, native one logs a few times.

EgonOlsen

The jar works with and without libgdx. There should appear a line in the logs that indicates if it's used or not. It starts with LIBGDX...
The lack of log messages might be caused by the fact that the libgdx path uses another render backend and i might have forgotten to add the timing log to it.

raft

i'll profile the application. uploading doesn't seem to be bottleneck here