All these suggestions really helped me, thanks very much!

On Wednesday, August 3, 2022 at 12:27:08 AM UTC-6 [email protected] wrote:

>
> > but if I made a product with that you aren't going to ask a customer to 
> do that, right? 
>
> You can try the flag on the `DisplaySettings` class that can enable the 
> dedicated GPU when you initialise OSG. In the osggpucull example below the 
> line 
>
>     osg::DisplaySettings::instance()->setNumMultiSamples( 4 );
>
> you can add
>
>     osg::DisplaySettings::instance()->setNvOptimusEnablement( true );
>
> and see if that works. This appears to be nvidia-only but you can probably 
> modify the OSG code to do the same for amd GPUs (see this stackoverflow 
> article which may help: 
> https://stackoverflow.com/questions/17458803/amd-equivalent-to-nvoptimusenablement
>  
> ).
>
> I generally compile OSG only in GL3 mode (i.e. the old fixed function 
> pipeline is disabled) and very few of the examples work as expected out of 
> the box. Make sure you have the `OSG_FILE_PATH` environment variable set to 
> the folder containing the data resources. (You can get a zip of the data 
> resources from 
> https://www.openscenegraph.com/index.php/download-section/data )
>
> > View an example on one screen 
>
> Most of the examples will accept the `--screen <num>` command line option 
> which you can use to choose a screen number to display on a single screen. 
> Alternatively you can use the `--window <x y w h>` (where x,y is the 
> position and w,h is the width/height) option to display in a window.
>
> Hope this helps.
>
> On Wednesday, 03 August 2022 at 02:21:07 UTC+2 [email protected] 
> wrote:
>
>> Hello Mario,
>>
>> > but if I made a product with that you aren't going to ask a customer to 
>> do that, right? 
>>
>> You're right. I'm not the one responsible for doing this at my workplace, 
>> so I don't know all the ins and outs, but AFAIK, you need to go through the 
>> API (
>> https://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/group__drsapi.html)
>>  
>> to create a profile and add your app to it. We do this through our 
>> Installer app and the installation process, but perhaps you could integrate 
>> it into your own app and have it configure itself w.r.t. the NVIDIA 
>> drivers. (That would likely require that you then run your app with 
>> administrator privileges, maybe?)
>>
>> > Also, do you know why I'd be getting those errors? 
>>
>> I'm not sure. I tried to run the same example as you did "naturally" on 
>> my laptop, and I got the following errors, with a garbage display:
>>
>> VERTEX glCompileShader "static_cull_vertex" FAILED
>> VERTEX Shader "static_cull_vertex" infolog:
>> ERROR: 0:6: 'R32I' : syntax error syntax error
>>
>>
>> glLinkProgram 0000024FD95BA760"static_cull" FAILED
>>
>> Program "static_cull" infolog:
>> Attached vertex shader is not compiled.
>>
>> Warning: detected OpenGL error 'invalid operation' at after 
>> pcp->apply(Unfiorm&) in GLObjectsVisitor::apply(osg::StateSet& stateset), 
>> unifrom name:  indirectCommand0
>> VERTEX glCompileShader "static_draw_0_vertex" FAILED
>> VERTEX Shader "static_draw_0_vertex" infolog:
>> ERROR: 0:34: 'RGBA32F' : syntax error syntax error
>>
>>
>> glLinkProgram 0000024FD95BAAE0"static_draw_0" FAILED
>> Program "static_draw_0" infolog:
>>
>> Attached vertex shader is not compiled.
>>
>> Warning: detected OpenGL error 'invalid operation' at after 
>> pcp->apply(Unfiorm&) in GLObjectsVisitor::apply(osg::StateSet& stateset), 
>> unifrom name:  indirectTarget
>> VERTEX glCompileShader "static_draw_1_vertex" FAILED
>> VERTEX Shader "static_draw_1_vertex" infolog:
>> ERROR: 0:34: 'RGBA32F' : syntax error syntax error
>>
>>
>> glLinkProgram 0000024FD95BB100"static_draw_1" FAILED
>> Program "static_draw_1" infolog:
>>
>> Attached vertex shader is not compiled.
>>
>> Warning: detected OpenGL error 'invalid operation' at after 
>> pcp->apply(Unfiorm&) in GLObjectsVisitor::apply(osg::StateSet& stateset), 
>> unifrom name:  indirectTarget
>> VERTEX glCompileShader "dynamic_cull_vertex" FAILED
>> VERTEX Shader "dynamic_cull_vertex" infolog:
>> ERROR: 0:9: 'R32I' : syntax error syntax error
>>
>>
>> glLinkProgram 0000024FD95BABC0"dynamic_cull" FAILED
>> Program "dynamic_cull" infolog:
>>
>> Attached vertex shader is not compiled.
>>
>> Warning: detected OpenGL error 'invalid operation' at after 
>> pcp->apply(Unfiorm&) in GLObjectsVisitor::apply(osg::StateSet& stateset), 
>> unifrom name:  dynamicInstancesData
>> VERTEX glCompileShader "dynamic_draw_0_vertex" FAILED
>> VERTEX Shader "dynamic_draw_0_vertex" infolog:
>> ERROR: 0:37: 'RGBA32I' : syntax error syntax error
>>
>>
>> glLinkProgram 0000024FD95BB8E0"dynamic_draw_0" FAILED
>> Program "dynamic_draw_0" infolog:
>>
>> Attached vertex shader is not compiled.
>>
>> Warning: detected OpenGL error 'invalid operation' at after 
>> pcp->apply(Unfiorm&) in GLObjectsVisitor::apply(osg::StateSet& stateset), 
>> unifrom name:  dynamicInstancesData
>>
>> C:\dev\OpenSceneGraph-build-x64\bin\osggpucullrd.exe (process 20928) 
>> exited with code 0.
>> Press any key to close this window . . .
>>
>> Then I went through the process I explained earlier (actually, I added 
>> the whole directory rather than the individual .exe) and then running the 
>> example went fine. So apparently, the issue seems to be that the program is 
>> not running with the proper chip, but you seem to mention you have made the 
>> proper adjustments. That being said, I have a "NVIDIA GeForce RTX 3050 Ti 
>> Laptop GPU", not a Nvidia Quadro T2000 like you have; according to this API 
>> doc (
>> https://docs.nvidia.com/gameworks/content/gameworkslibrary/coresdk/nvapi/modules.html),
>>  
>> there seems to be additional API functions to handle some Quadro features, 
>> but I don't know if it's related to the issue you're having. 
>>
>> I don't think the issue is caused by issues with compilation, as you 
>> would not be able to get to shader compilation (I think, I'm not the shader 
>> expert). 
>>
>> FWIW, this commit on github is essentially how I generate the solution 
>> with CMake. This commit doesn't have the examples enabled, but you can 
>> enable them by changing the flag BUILD_OSG_EXAMPLES to ON: 
>> https://github.com/vaillancourt/OpenSceneGraph/commit/350924df765a4e43289e5cc77ea6271f9d5dd85d
>>
>> I hope it helps. 
>>
>> --
>> Vaillancourt
>>
>>
>> On Tue, 2 Aug 2022 at 15:32, Mario Ricci <[email protected]> wrote:
>>
>>> Thanks Vaillancourt.  I knew about that whole configuring the exe 
>>> process, but if I made a product with that you aren't going to ask a 
>>> customer to do that, right?  I did some searching and there was some old 
>>> switches and variables, but I couldn't get any to work.  Is there no other 
>>> way to configure gpu programmatically?
>>>
>>> Also, do you know why I'd be getting those errors?  Could it be a build 
>>> issue?
>>>
>>> On Tuesday, August 2, 2022 at 8:17:45 AM UTC-6 
>>> [email protected] wrote:
>>>
>>>> Hello Mario!
>>>>
>>>> > how to get it to use my Nvidia GPU instead of integrated graphics 
>>>>
>>>> Usually I need to go through this process: 
>>>>
>>>>
>>>>    1. From the 'NVIDIA Control Panel', go to '3D Settings' > 'Manage 
>>>>    3D Settings'. 
>>>>    2. Select the tab 'Program Settings'.
>>>>    3. In the section 1., click on 'Add' and select your own .exe, then 
>>>>    in section 2. select the 'High-performance NVIDIA processor'.
>>>>    4. Click 'Apply'. Restart your program; it should now use the 
>>>>    NVIDIA processor. 
>>>>
>>>>
>>>> I had the possibility to further "tune" the parameters for my programs 
>>>> on a previous laptop, but I can no longer change anything on this one 
>>>> (e.g. 
>>>> enable/disable vsync).
>>>>
>>>> > Find a page controls in examples 
>>>>
>>>> Unfortunately, there is no repository for this, nor a mechanisms that 
>>>> lists the keys/buttons handled and what they do. You'll need to check the 
>>>> code of the different classes that handle movement to see what they do and 
>>>> how they do it. In  osggpucull, the entry point is probably around this 
>>>> code:
>>>>
>>>>     osg::ref_ptr<osgGA::KeySwitchMatrixManipulator> 
>>>> keyswitchManipulator = new osgGA::KeySwitchMatrixManipulator;
>>>>
>>>>     keyswitchManipulator->addMatrixManipulator( '1', "Trackball", new 
>>>> osgGA::TrackballManipulator() );
>>>>     keyswitchManipulator->addMatrixManipulator( '2', "Flight", new 
>>>> osgGA::FlightManipulator() );
>>>>     keyswitchManipulator->addMatrixManipulator( '3', "Drive", new 
>>>> osgGA::DriveManipulator() );
>>>>     keyswitchManipulator->addMatrixManipulator( '4', "Terrain", new 
>>>> osgGA::TerrainManipulator() );
>>>>
>>>> I hope this helps you get a bit further in your tests. 
>>>>
>>>> - Vaillancourt
>>>>
>>>> On Monday, August 1, 2022 at 2:38:20 p.m. UTC-4 [email protected] 
>>>> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Very new to OSG. My main question is how to get some of the examples 
>>>>> running with large amounts of data on one screen, and how to get it to 
>>>>> use 
>>>>> my Nvidia GPU instead of integrated graphics.  I'd like to test 
>>>>> performance 
>>>>> and have at least one example running properly.
>>>>>
>>>>> I wasn't sure how to build and none of the walkthroughs worked for me, 
>>>>> but basically I used the GUI version of cmake on Windows 11 and pointed 
>>>>> it 
>>>>> to the code and a build directory.  After hitting the Configure and 
>>>>> Generate buttons as well as adding a BUILD_OSG_EXAMPLES flag, I had a 
>>>>> solution which I opened in VS 2022 and seemed to properly build.
>>>>>
>>>>> I have multiple monitors and a Nvidia Quadro T2000 as well as the 
>>>>> integrated intel graphics.  When running examples things seem a bit 
>>>>> broken.  I do get graphics across both monitors and can zoom etc., but 
>>>>> they 
>>>>> don't look that great (not sure if that's how they are supposed to look). 
>>>>>  
>>>>>
>>>>> One example I tried was osggpuculld.exe, which displays this if I 
>>>>> scroll in very far (attachment osg cull example.png).  I also see the 
>>>>> following on the CLI:
>>>>> ```
>>>>>  .\osggpuculld.exe
>>>>> void StateSet::setGlobalDefaults() ShaderPipeline disabled.
>>>>> void StateSet::setGlobalDefaults() ShaderPipeline disabled.
>>>>> VERTEX glCompileShader "static_cull_vertex" FAILED
>>>>> VERTEX Shader "static_cull_vertex" infolog:
>>>>> ERROR: 0:6: 'R32I' : syntax error syntax error
>>>>>
>>>>>
>>>>> VERTEX Shader "static_cull_vertex" infolog:
>>>>> ERROR: 0:6: 'R32I' : syntax error syntax error
>>>>>
>>>>>
>>>>> VERTEX Shader "static_cull_vertex" infolog:
>>>>> ERROR: 0:6: 'R32I' : syntax error syntax error
>>>>>
>>>>>
>>>>> glLinkProgram 0000028ACCB02AA0"static_cull" FAILED
>>>>> glLinkProgram 0000028ACCB02AA0"static_cull" FAILED
>>>>> Program "static_cull" infolog:
>>>>> Attached vertex shader is not compiled.
>>>>> ```
>>>>>
>>>>> I've tried other examples and used some built in data to view the dump 
>>>>> truck etc., but nothing has texture and everything uses my integrated 
>>>>> graphics.
>>>>>
>>>>> Does anyone know how to:
>>>>>
>>>>>    1. View an example on one screen
>>>>>    2. Use the proper GPU
>>>>>    3. Find a page controls in examples (e.g. what does mouse do? what 
>>>>>    do key commands do?)
>>>>>    4. Get a big model combined into an example to check performance
>>>>>
>>>>> Thanks in advance!
>>>>>
>>>>> -- 
>>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "OpenSceneGraph Users" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/osg-users/nxZn2g45SsE/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to 
>>> [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/osg-users/cf4311d0-f2f9-40a8-8fdb-9f002dc9a9f2n%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/osg-users/cf4311d0-f2f9-40a8-8fdb-9f002dc9a9f2n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"OpenSceneGraph Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/osg-users/d444b4f2-e5f2-42bc-9b6c-8c81e4b31a25n%40googlegroups.com.

Reply via email to