View Issue Details

IDProjectCategoryView StatusLast Update
0025703Open CASCADEOCCT:Visualizationpublic2015-05-14 15:32
ReporterdbpAssigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version6.9.0Fixed in Version6.9.0 
Summary0025703: Visualization, TKOpenGl - Decrease number of samplers used in ray-tracing mode
DescriptionCurrently ray-tracing implementation uses more than 16 samplers, thus compatibility with some entry-level GPUs is suffering. It is necessary to decrease number of samplers by packing data.
Steps To ReproduceN/A
TagsNo tags attached.
Test case numberNot needed

Relationships

parent of 0025762 closedbugmaster Visualization, TKOpenGl - fix debug assertion within OpenGl_Workspace::UploadRaytraceData() 

Activities

git

2015-01-13 16:05

administrator   ~0036005

Branch CR25703 has been created by dbp.

SHA-1: cc9912ea88e18d2624767dec4c257889f2ad323f


Detailed log of new commits:

Author: dbp
Date: Tue Jan 13 16:01:30 2015 +0300

    3 samplers were rejected.

git

2015-01-13 17:25

administrator   ~0036009

Branch CR25703 has been updated by dbp.

SHA-1: 715d4ee320f7bef5dff245e7fbafd4dff3eced7a


Detailed log of new commits:

Author: dbp
Date: Tue Jan 13 17:24:41 2015 +0300

    Optimization.

git

2015-01-13 18:33

administrator   ~0036017

Branch CR25703_1 has been created by dbp.

SHA-1: 338d7f36bc793415c0b61868b4ef2519e0e8ba42


Detailed log of new commits:

Author: dbp
Date: Tue Jan 13 18:32:47 2015 +0300

    0025703: Visualization - Decrease number of samplers used in ray-tracing mode

git

2015-01-13 18:39

administrator   ~0036018

Branch CR25703_1 has been updated forcibly by dbp.

SHA-1: b021133902d2989d1365c13ccaffc6b64573224b

kgv

2015-01-14 09:38

developer   ~0036023

Last edited: 2015-01-14 09:42

Dear Denis,

please provide in commit description the way you have achieved result (e.g. the data previously stored in sampler A has been appended to the end of sampler B data, or something like this).

-          if (aHead == theSentinel)
-            return aTriIndex;
-          aNode = Stack[aHead--];
+          aToContinue = (aHead != theSentinel);
+          if (aToContinue)
+            aNode = Stack[aHead--];

please add to commit description the reason for this change unrelated to bug (compatibility? performance?). Also variable "aToContinue" does not meet name conventions - it should be "toContinue".

Otherwise patch looks OK.

git

2015-01-14 11:01

administrator   ~0036031

Branch CR25703_2 has been created by dbp.

SHA-1: 3930852287945ab31acc87fc6c84c2c20ca3fde6


Detailed log of new commits:

Author: dbp
Date: Wed Jan 14 10:59:49 2015 +0300

    0025703: Visualization - Decrease number of samplers used in ray-tracing mode
    
    This patch eliminates 3 samplers used in ray-tracing mode:
    
    //! Texture buffer of data records of bottom-level BVH nodes.
    Handle(OpenGl_TextureBufferArb) myObjectNodeInfoTexture;
    //! Texture buffer of minimum points of bottom-level BVH nodes.
    Handle(OpenGl_TextureBufferArb) myObjectMinPointTexture;
    //! Texture buffer of maximum points of bottom-level BVH nodes.
    Handle(OpenGl_TextureBufferArb) myObjectMaxPointTexture;
    
    Serialized data contained in corresponding texture buffers were added to global scene buffers:
    
    //! Texture buffer of data records of high-level BVH nodes.
    Handle(OpenGl_TextureBufferArb) mySceneNodeInfoTexture;
     //! Texture buffer of minimum points of high-level BVH nodes.
    Handle(OpenGl_TextureBufferArb) mySceneMinPointTexture;
    //! Texture buffer of maximum points of high-level BVH nodes.
    Handle(OpenGl_TextureBufferArb) mySceneMaxPointTexture;
    
    This modifications leads also to small performance improvement (~2%) due to higher texture cache efficiency. Some modifications in traversal function (GLSL code) also improve performance (~3%).

git

2015-01-14 11:05

administrator   ~0036032

Branch CR25703_2 has been updated forcibly by dbp.

SHA-1: edbe4abbce5625a07e263b65e839e8ade556d33d

dbp

2015-01-14 11:07

developer   ~0036033

Dear kgv,

please review updated commit description in branch CR25703_2.

git

2015-01-16 18:03

administrator   ~0036163

Branch CR25703_2 has been updated forcibly by apv.

SHA-1: 2eebec00f109fab6f58899ca73ec249f1bc3d04e

apv

2015-01-16 18:04

tester   ~0036164

Branch CR25703_2 has been rebased on the current master

apv

2015-01-21 16:33

tester   ~0036338

Dear BugMaster,

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

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

Regressions/Differences:
Not detected

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 370110360 / 369907280
Total CPU difference: 46257.55000000006 / 46828.580000000045

Testing on Windows:
Total MEMORY difference: 276240724 / 276837572
Total CPU difference: 39059.0625 / 39964.359375

git

2015-01-26 12:31

administrator   ~0036515

Branch CR25703_2 has been deleted by inv.

SHA-1: 2eebec00f109fab6f58899ca73ec249f1bc3d04e

git

2015-01-26 12:32

administrator   ~0036526

Branch CR25703_1 has been deleted by inv.

SHA-1: b021133902d2989d1365c13ccaffc6b64573224b

git

2015-01-26 12:32

administrator   ~0036527

Branch CR25703 has been deleted by inv.

SHA-1: 715d4ee320f7bef5dff245e7fbafd4dff3eced7a

Related Changesets

occt: master e2da917a

2015-01-14 08:04:27

dbp


Committer: bugmaster Details Diff
0025703: Visualization - Decrease number of samplers used in ray-tracing mode

This patch eliminates 3 samplers used in ray-tracing mode:

//! Texture buffer of data records of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectNodeInfoTexture;
//! Texture buffer of minimum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMinPointTexture;
//! Texture buffer of maximum points of bottom-level BVH nodes.
Handle(OpenGl_TextureBufferArb) myObjectMaxPointTexture;

Serialized data contained in corresponding texture buffers were added to global scene buffers:

//! Texture buffer of data records of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneNodeInfoTexture;
//! Texture buffer of minimum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMinPointTexture;
//! Texture buffer of maximum points of high-level BVH nodes.
Handle(OpenGl_TextureBufferArb) mySceneMaxPointTexture;

This modifications leads also to small performance improvement (~2%) due to higher texture cache efficiency. Some modifications in traversal function (GLSL code) also improve performance (~3%).
Affected Issues
0025703
mod - src/OpenGl/OpenGl_SceneGeometry.cxx Diff File
mod - src/OpenGl/OpenGl_Workspace.hxx Diff File
mod - src/OpenGl/OpenGl_Workspace_Raytrace.cxx Diff File
mod - src/Shaders/RaytraceBase.fs Diff File

Issue History

Date Modified Username Field Change
2015-01-13 16:04 dbp New Issue
2015-01-13 16:04 dbp Assigned To => dbp
2015-01-13 16:05 git Note Added: 0036005
2015-01-13 17:25 git Note Added: 0036009
2015-01-13 18:33 git Note Added: 0036017
2015-01-13 18:39 git Note Added: 0036018
2015-01-13 18:45 dbp Assigned To dbp => kgv
2015-01-13 18:45 dbp Status new => resolved
2015-01-13 18:45 dbp Steps to Reproduce Updated
2015-01-14 09:38 kgv Note Added: 0036023
2015-01-14 09:38 kgv Assigned To kgv => dbp
2015-01-14 09:38 kgv Status resolved => assigned
2015-01-14 09:42 kgv Note Edited: 0036023
2015-01-14 11:01 git Note Added: 0036031
2015-01-14 11:05 git Note Added: 0036032
2015-01-14 11:07 dbp Note Added: 0036033
2015-01-14 11:07 dbp Assigned To dbp => kgv
2015-01-14 11:07 dbp Status assigned => resolved
2015-01-14 11:07 dbp Steps to Reproduce Updated
2015-01-14 11:10 kgv Assigned To kgv => bugmaster
2015-01-14 11:10 kgv Severity minor => feature
2015-01-14 11:10 kgv Status resolved => reviewed
2015-01-14 11:10 kgv Summary Visualization -- Decrease number of samplers used in ray-tracing mode => Visualization, TKOpenGl - Decrease number of samplers used in ray-tracing mode
2015-01-16 17:06 apv Assigned To bugmaster => apv
2015-01-16 18:03 git Note Added: 0036163
2015-01-16 18:04 apv Note Added: 0036164
2015-01-21 15:33 apv Test case number => Not needed
2015-01-21 16:33 apv Note Added: 0036338
2015-01-21 16:33 apv Assigned To apv => bugmaster
2015-01-21 16:33 apv Status reviewed => tested
2015-01-23 16:19 bugmaster Changeset attached => occt master e2da917a
2015-01-23 16:19 bugmaster Status tested => verified
2015-01-23 16:19 bugmaster Resolution open => fixed
2015-01-26 12:31 git Note Added: 0036515
2015-01-26 12:32 git Note Added: 0036526
2015-01-26 12:32 git Note Added: 0036527
2015-01-30 10:09 kgv Relationship added parent of 0025762
2015-05-14 15:29 aiv Status verified => closed
2015-05-14 15:32 aiv Fixed in Version => 6.9.0