MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Related Changesets ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0026081Open CASCADE[OCCT] OCCT:Visualizationpublic2015-04-15 12:312016-12-23 21:26
Reporterdbp 
Assigned Tobugmaster 
PrioritynormalSeverityfeature 
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version[OCCT] 6.8.0 
Target Version[OCCT] 6.9.0Fixed in Version[OCCT] 6.9.0 
Summary0026081: Visualization, TKOpenGl - rebuild vertex attributes in order to not render large index arrays in OpenGL ES
DescriptionMost OpenGL ES 2.0 devices do not support index arrays larger than 64K elements.
This limitation has been withdrawn since OpenGL ES 3.0, but it would be better to provide fallback solution for old devices.

The most straight-forward solution would be dropping index buffers larger than supported threshold and duplicate vertex attributes. Although this would cause extra memory usage, it does not look reasonable to implement more complex solution for outdated devices which would be thrown away in the nearest future.
Steps To ReproduceN/A
TagsNo tags attached.
Test case numberNot needed
Attached Files

- Relationships
related to 0028276closedapn Open CASCADE Visualization, Graphic3d_ArrayOfPrimitives - fix usage of 16-bit indices 

-  Notes
(0039769)
git (administrator)
2015-04-15 12:32

Branch CR26081 has been created by dbp.

SHA-1: a9d78f743f1da5a1861364823416b510db53fa88


Detailed log of new commits:

Author: dbp
Date: Wed Apr 15 12:32:00 2015 +0300

    Visualization - Rebuild vertex attributes in order to not render large index arrays in OpenGL ES

Author: dbp
Date: Mon Apr 13 17:48:35 2015 +0300

    0026070: Ray tracing with reflections is poor on rotated presentation
(0039770)
dbp (developer)
2015-04-15 12:33

Dear kgv,

please review the patch in branch CR26081.
(0039798)
kgv (developer)
2015-04-15 17:32

+    Graphic3d_Buffer* anAttribs = new Graphic3d_Buffer (new NCollection_AlignedAllocator (16));

please use handle.

+  if (myIndices->NbElements > std::numeric_limits<GLushort>::max())
+  {

the check is improper - please check uint availability in runtime to avoid unnecessary actions:
    myHasGLuint = aCtx->IsGlGreaterEqual (3, 0)                || aCtx->CheckExtension ("GL_OES_element_index_uint");

(0039824)
git (administrator)
2015-04-16 11:31

Branch CR26081 has been updated forcibly by dbp.

SHA-1: c994d028a76e5d66cf4f3dcc55e14a321a4c503c
(0039825)
dbp (developer)
2015-04-16 11:32

The patch was fixed, see branch CR26081.
(0039828)
kgv (developer)
2015-04-16 11:47

+  if (myIndices.IsNull() || theContext->IsGlGreaterEqual (3, 0) || theContext->CheckExtension 
("GL_OES_element_index_uint"))

this flag should be cached in OpenGl_Context like field hasHighp and others (something like hasIndexUint).
(0039897)
git (administrator)
2015-04-16 16:04

Branch CR26081_1 has been created by kgv.

SHA-1: ec3a9e2fb156f82ff50c9072e4e385d6b456281c


Detailed log of new commits:

Author: dbp
Date: Thu Apr 16 16:03:55 2015 +0300

    0026081: Visualization, TKOpenGl - rebuild vertex attributes in order to not render large index arrays in OpenGL ES
(0039918)
kgv (developer)
2015-04-16 19:13

Please test the patch.
(0039978)
git (administrator)
2015-04-17 17:10

Branch CR26081_1 has been updated forcibly by apv.

SHA-1: 98c0dbfd43082e6e4fc45581a447e30e01ee4392
(0039979)
apv (tester)
2015-04-17 17:11

Branch CR26081_1 has been rebased on the current master
(0040221)
git (administrator)
2015-04-24 16:52

Branch CR26081_1 has been updated forcibly by apv.

SHA-1: 707b0a9b5347bf30a58b4f67c8eb3b1d69633849
(0040222)
apv (tester)
2015-04-24 16:57

Branch CR26081_1 has been rebased on the current master
(0040299)
apv (tester)
2015-04-27 18:31

Dear BugMaster,

Branch CR26081_1 from occt git-repository (and master from products git-repository) was compiled on Linux, MacOS and Windows platforms and tested.
SHA-1: 707b0a9b5347bf30a58b4f67c8eb3b1d69633849

Number of compiler warnings:
occt component:
   Linux: 18 (18 on master)
   Windows: 0 (0 on master)
products component:
   Linux: 4 (4 on master)
   Windows: 0 (0 on master)

Regressions/Differences:
Not detected

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 94788291 / 94581607 [+0.22%]
Total CPU difference: 55702.39999999911 / 51016.72999999946 [+9.18%]

Testing on Windows:
Total MEMORY difference: 57634491 / 57268183 [+0.64%]
Total CPU difference: 16314.89658199876 / 15811.13815279897 [+3.19%]
(0041093)
git (administrator)
2015-05-14 16:36

Branch CR26081 has been deleted by inv.

SHA-1: c994d028a76e5d66cf4f3dcc55e14a321a4c503c
(0041094)
git (administrator)
2015-05-14 16:36

Branch CR26081_1 has been deleted by inv.

SHA-1: 707b0a9b5347bf30a58b4f67c8eb3b1d69633849

- Related Changesets
occt: master e99a2f7c
Timestamp: 2015-04-16 13:03:55
Author: dbp
Committer: bugmaster
Details ] Diff ]
0026081: Visualization, TKOpenGl - rebuild vertex attributes in order to not render large index arrays in OpenGL ES
mod - src/OpenGl/OpenGl_Context.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_Context.hxx Diff ] File ]
mod - src/OpenGl/OpenGl_PrimitiveArray.cxx Diff ] File ]
mod - src/OpenGl/OpenGl_PrimitiveArray.hxx Diff ] File ]

- Issue History
Date Modified Username Field Change
2015-04-15 12:31 dbp New Issue
2015-04-15 12:31 dbp Assigned To => kgv
2015-04-15 12:31 dbp Assigned To kgv => dbp
2015-04-15 12:32 git Note Added: 0039769
2015-04-15 12:33 dbp Note Added: 0039770
2015-04-15 12:33 dbp Assigned To dbp => kgv
2015-04-15 12:33 dbp Status new => resolved
2015-04-15 12:33 dbp Steps to Reproduce Updated View Revisions
2015-04-15 17:30 kgv Relationship added related to 0025606
2015-04-15 17:32 kgv Note Added: 0039798
2015-04-15 17:32 kgv Assigned To kgv => dbp
2015-04-15 17:32 kgv Status resolved => assigned
2015-04-16 11:31 git Note Added: 0039824
2015-04-16 11:32 dbp Note Added: 0039825
2015-04-16 11:32 dbp Assigned To dbp => kgv
2015-04-16 11:32 dbp Status assigned => resolved
2015-04-16 11:47 kgv Note Added: 0039828
2015-04-16 11:47 kgv Assigned To kgv => dbp
2015-04-16 11:47 kgv Status resolved => assigned
2015-04-16 11:48 kgv Product Version 6.9.0 => 6.8.0
2015-04-16 16:03 kgv Summary Visualization - Rebuild vertex attributes in order to not render large index arrays in OpenGL ES => Visualization, TKOpenGl - rebuild vertex attributes in order to not render large index arrays in OpenGL ES
2015-04-16 16:04 git Note Added: 0039897
2015-04-16 16:04 kgv Assigned To dbp => kgv
2015-04-16 16:04 kgv Status assigned => resolved
2015-04-16 19:13 kgv Note Added: 0039918
2015-04-16 19:13 kgv Assigned To kgv => bugmaster
2015-04-16 19:13 kgv Status resolved => reviewed
2015-04-17 15:41 apv Assigned To bugmaster => apv
2015-04-17 17:10 git Note Added: 0039978
2015-04-17 17:11 apv Note Added: 0039979
2015-04-24 16:52 git Note Added: 0040221
2015-04-24 16:57 apv Note Added: 0040222
2015-04-27 16:01 apv Test case number => Not needed
2015-04-27 16:28 kgv Description Updated View Revisions
2015-04-27 18:31 apv Note Added: 0040299
2015-04-27 18:31 apv Assigned To apv => bugmaster
2015-04-27 18:31 apv Status reviewed => tested
2015-05-07 11:18 bugmaster Changeset attached => occt master e99a2f7c
2015-05-07 11:18 bugmaster Status tested => verified
2015-05-07 11:18 bugmaster Resolution open => fixed
2015-05-14 15:28 aiv Status verified => closed
2015-05-14 15:30 aiv Fixed in Version => 6.9.0
2015-05-14 16:36 git Note Added: 0041093
2015-05-14 16:36 git Note Added: 0041094
2016-12-23 21:26 kgv Relationship added related to 0028276


Copyright © 2000 - 2019 MantisBT Team
Powered by Mantis Bugtracker