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.
