The Javadoc for the OpenGL ES API does a good job explaining why you
can't use wrapped arrays for everything:
> http://download.oracle.com/javame/config/cldc/opt-pkgs/api/jb/jsr239/index.html
> Because these functions do not consume the data located at the given pointer 
> immediately, but only at some unspecified later time, it is not possible to 
> use an array since the Java virtual machine may relocate the array within 
> system memory.

But if you really want hardware details, here's a nice document for
the type of graphics in the Droid:
http://www.imgtec.com/factsheets/SDK/POWERVR%20SGX.OpenGL%20ES%202.0%20Application%20Development%20Recommendations.1.1f.External.pdf

There's lots of stuff for older chips like the MSM7200 in the G1 out
there as well, although you may have to look in a BREW oriented
document or two to find it.

On Sep 1, 7:31 pm, Samsyn <[email protected]> wrote:
> So, I've been a good boy (I think) and used ByteBuffers (and
> ShortBuffers and IntBuffers etc) for all the vertex lists and textures
> I feed to GLES.
>
> But can someone point me to the basic architecture of the 'typical'
> mobile GPU (or, I guess, the OpenVR Droid GPU at least).  For example,
> does a mobile GPU have its own texture/buffer memory, or does it
> always share 'system memory' ?
>
> If it's going to copy the data I give it into 'gpu ram' anyway, then
> have I just added another buffer in the bucket brigade of memory when
> I use a ByteBuffer?
>
> GLES seems perfectly happy using a direct java array for the data, but
> I imagine that does nasty things like locking memory when the GPU
> touches it, when maybe  memory outside the garbage collection heap
> doesn't have that problem (and just gets leaked when I mis-manage
> it :-)
>
> I can't say that I see any performance difference between using
> ByteBuffers or just direct java arrays.  But most of my meshes (and
> all of my textures) are created just once.  But some meshes (for
> example, particles) get regenerated every frame.  And for that, I do
> the math in a java array and then allocateDirect a suitable
> <whatever>Buffer before passing it to GLES.  That smells really awful
> to me and I guess I am just wondering how big a sin it would be to not
> use <whatever>Buffers for these dynamic meshes?
>
> I guess I just feel like I am flying blind without some GPU
> documentation to look at.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to