Forums - adreno 200 pantech vega PTL21 phone and glDrawElements limits

7 posts / 0 new
Last post
adreno 200 pantech vega PTL21 phone and glDrawElements limits
peter.wilkes
Join Date: 13 Sep 12
Posts: 9
Posted: Thu, 2012-09-13 22:54

hello,

I have a preview version of a Pantech PTL 21 vega phone. it uses a adreno 200 processor.  In my game (using opengl ES 1.0) if i call glDrawElements with more then 512 * 3 for the  "count" parameters my entire geometry does not draw only some section or none at all. After 2 days of searching for this error i came here and downloaded the adreno profiler hoping to get some insight into why my geometry isn't showing. On the profiler the capture shows the geometry but on the device there is no geometry. if i break my single glDrawElements into a loop foreach(512 *3) the geometry draws perfectly fine. We have shipped this title on many other devices (tegra, powervr) all android devices and have received no complaints.

Is there some upper bound limit to the glDrawElements for this processor? if there is how can i test for it in my code?

  • Up0
  • Down0
peter.wilkes
Join Date: 13 Sep 12
Posts: 9
Posted: Sun, 2012-09-23 22:35

anyone home here?

this forum maintained?

  • Up0
  • Down0
Mark_Feldman Moderator
Join Date: 4 Jan 12
Posts: 58
Posted: Mon, 2012-09-24 11:30

Hi..

You might want to include some code snippets so we can get a better understanding of the geometry setup and parameters used.

 

Count refers to the number of indicies, not primitives.  You can refer to the following link for details on glDrawElements..

http://www.opengl.org/sdk/docs/man/xhtml/glDrawElements.xml

 

Adreno 200 hardware would definitely support draws with more than than 512 primitives defined.  Use the following to get the exact amounts:

glGetIntegerv(GL_MAX_ELEMENTS_INDICES,&maxi);
glGetIntegerv(GL_MAX_ELEMENTS_VERTICES,&maxv);

  • Up0
  • Down0
Mark_Feldman Moderator
Join Date: 4 Jan 12
Posts: 58
Posted: Tue, 2012-09-25 07:58

Hi ..  thanks for the code snippets...

One thing to make sure is that the stride parameter in the glVertexPointer, glTExCoordPointer, and glColorPointer calls, matches the byte difference in the allocated structure.  How is the array passed in to drawObject allocated?  Can you confirm that the array element size is the same as sizeof(Point3D)?

 

 

 

  • Up0
  • Down0
peter.wilkes
Join Date: 13 Sep 12
Posts: 9
Posted: Tue, 2012-09-25 15:26

yes can confirm the array element size is the same as sizeof(Point3D) as i said this shows the geometry fine in adreno profiling tools. shows fine on iOS using opengl es 1.0, shows fine on tegra 2, 3 using opengl es 1.0, even shows fine on a samsung galaxy 3 which according to my debugger is using an adreno 200 processor. it only seems to manifest itself on this pantech phone. I have port numerous games to android/iOS using opengl never experienced a problem with this code until this pantech phone. all ours games exhibit this problem and only exhibit it using this phone. I would swear that it was either a bad fab run by you guys or a bad fab run by pantech, however since i cant confirm that i am here. your tools show the correct behavior when using this device. your chipset on this phone does not.

 

  • Up0
  • Down0
Mark_Feldman Moderator
Join Date: 4 Jan 12
Posts: 58
Posted: Wed, 2012-09-26 08:22

This does seem like an issue that worth a closer look by our graphics team.  It's possible that it's an issue that has been fixed in a later driver than what's already installed on the pantech device.  Wonder if you've tried running your app on other Adreno 200 devices.

Would it be possible to provide us an apk that reproduces the problem? (put on an ftp site for download?)

  • Up0
  • Down0
Mark_Feldman Moderator
Join Date: 4 Jan 12
Posts: 58
Posted: Thu, 2012-09-27 08:33

Thanks for the links.  I was hoping for a simple/concise way to duplicate the problem you're seeing.  Are there any explict instructions to use to get to the problem?

 

Also is there an email I can use to directly contact you?

 

 

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.