JDK-8103523 : FX 8 3D: Change Mesh's indexBuffer type from unsigned int to unsigned short
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: 8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-05-16
  • Updated: 2015-06-16
  • Resolved: 2013-05-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8Fixed
Related Reports
Relates :  
Description
While doing the Raspberry Pi porting work, we realized that Pi doesn't support uint indices and OpenGL ES 2 doesn't require it:

"Indexing support with ubyte and ushort indices is supported. Support for uint indices is not required
by OpenGL ES 2.0."

We will have to specify that indices, points and texcoords be limited to 64K. We will need to provide method to query max. vertices in future release when we add uint for platform that support it.  
Comments
Created RT-30594 to evaluate undoing the restriction.
23-05-2013

I just spoke with Jasper. Looks like we already have models that exceeded 65536 per mesh. Seems like we will have to undo some of the fix (restriction) and let Pi fall if the data exceeded the limit.
23-05-2013

[@ Richard] Besides #ifdef it also required an extra data copy and casting in the native layer to do the type conversion.
23-05-2013

We will support unsigned int in the future, maybe as soon as Van Ness. This restriction is mainly a scheduling issue, there is extra work needed to support both types.
23-05-2013

Great questions Alex & John. It seems to me that we should not limit ourselves on Desktop. Chien, I don't see a link in this issue to the changeset (well, not an open link anyway :-)). What challenges are there to having different limits? Is this just an #define on the native level?
23-05-2013

I understand the need to support embedded devices such as the Raspberry Pi, and fully support this initiative. However, is it possible to have different restrictions for embedded devices such as the Raspberry Pi, and desktop? 65536 points is too restrictive for desktop, and many visualization and engineering apps are going to easily have much more than 65536 points per mesh.
23-05-2013

Is this applying to embedded only? Or do we have the same restriction on desktop as well?
23-05-2013

Fixed. Changeset: ad014e2245f6 Author: Chien Yang <chien.yang@orcale.com> Date: Tue May 21 17:30:13 2013 -0700 URL: http://jfxsrc.us.oracle.com/javafx/8.0/scrum/graphics/rt/rev/ad014e2245f6
22-05-2013

Up priority to Major and schedule for Lombard. This bug prevent the ability to run JavaFX 3D demo on Pi.
17-05-2013