OK, you've made it absolutely clear that non-direct buffers are definately a no-no :) Anyway, I will stick to VBOs (which, as Jack explained, do not need direct buffers at all). I hope this thread will be helpful to others as much as it was for me.
Dmitry On 7 авг, 01:07, fadden <fad...@android.com> wrote: > On Aug 5, 8:17 pm, "Dmitry.Skiba" <dmitry.sk...@gmail.com> wrote: > > > By the way, to guarantee that non-direct buffer will not be moved be > > GC one can hack up a JNI lib wich will 'pin' needed buffers for the > > lifetime of an application :) > > Actually, you can't. The VM has the option to pin or copy the data in > the virtual heap. > > If you'd like to see this in action, try this (requires emulator or > rooted device): > > % adb shell setprop dalvik.vm.checkjni true > % adb shell setprop dalvik.vm.jniopts forcecopy > % adb shell stop ; adb shell start > > The JNI "forcecopy" mode forces the VM to make a copy of data rather > than pin it in place. This is less efficient due to the additional > data copying, but it does allow the GC to move memory around, and will > expose situations where pointers are being kept inappropriately. > > The forcecopy stuff also adds guard regions around the allocated > blocks to check for overruns, fills the memory with a garbage pattern > before freeing it to expose use-after-free, and checksums read-only > stuff like String data to ensure code is not inadvertently modifying > it. > > If you're not using direct buffers where they are required, your > application will likely freak out when "forcecopy" is enabled. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---