Iray Starter Scene: Post Your Benchmarks!

1333436383949

Comments

  • bluejauntebluejaunte Posts: 1,861

    That's not good...

  • RayDAntRayDAnt Posts: 1,121
    edited February 2019

    Sounds good but for Iray we have the OptiX vs Optix Prime issue, unless that has somehow evaporated?

    It's actually never been an issue - at least not in the way most people here figured.

    If you switch Iray into Interactive mode and start a render/use an Iray viewport, you will see in the log file that Iray has always used the full OptiX API for the entire rendering process rather than its own cuda core-optimized code + optional OptiX Prime pathtracing/raycasting acceleration. Using full OptiX in Photoreal mode as well (or perhaps even just deprecating Photoreal mode altogether - or perhaps even bringing back Mixed mode) actually isn't as far of a stretch as most people believe.

    Eg. iif you set Render Mode to Interactive and have a Nvidia GPU selected under Interactive Devices you get this:

    2019-02-05 13:04:09.407 Rendering image2019-02-05 13:04:09.674 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Initializing context.2019-02-05 13:04:09.677 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Creating irt render context (cache id: 0x0000000100000000).2019-02-05 13:04:09.689 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000032 seconds2019-02-05 13:04:09.689 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Iray interactive running with 1 device:2019-02-05 13:04:09.690 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   CUDA Device 0 - "TITAN RTX" (compute capability 7.5, memory 17839 MB/24576 MB)2019-02-05 13:04:09.694 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   Driver version: 417.712019-02-05 13:04:09.694 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   OptiX Version:[5.0.1] Branch:[rel5.0] Build Number:[23995567] CUDA Version:[9.0] 64-bit 2018-04-24 

    Notice how the last line reads: 

    IRT    rend info :   OptiX Version:[5.0.1] Branch:[rel5.0] Build Number:[23995567]

    This is in contrast to a render in Photoreal mode with OptiX Prime acceleration enabled where you get:

    2019-01-14 14:49:53.349 Rendering image[...texture loading...]2019-01-14 14:49:53.905 Iray INFO - module:category(IRAY:RENDER):   1.0   IRAY   rend info : Updating geometry.2019-01-14 14:49:53.924 Iray INFO - module:category(IRAY:RENDER):   1.0   IRAY   rend info : Using OptiX Prime ray tracing (5.0.1).

    Photoreal = Optix Prime or built-in

    Interactive = OptiX

    Post edited by RayDAnt on
  • bluejauntebluejaunte Posts: 1,861
    RayDAnt said:

    Sounds good but for Iray we have the OptiX vs Optix Prime issue, unless that has somehow evaporated?

    It's actually never been an issue - at least not in the way most people here figured.

    If you switch Iray into Interactive mode and start a render/use an Iray viewport, you will see in the log file that Iray has always used the full OptiX API for the entire rendering process rather than its own cuda core-optimized code + optional OptiX Prime pathtracing/raycasting acceleration. Using full OptiX in Photoreal mode as well (or perhaps even just deprecating Photoreal mode altogether - or perhaps even bringing back Mixed mode) actually isn't as far of a stretch as most people believe.

    Eg. iif you set Render Mode to Interactive and have a Nvidia GPU selected under Interactive Devices you get this:

    2019-02-05 13:04:09.407 Rendering image2019-02-05 13:04:09.674 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Initializing context.2019-02-05 13:04:09.677 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Creating irt render context (cache id: 0x0000000100000000).2019-02-05 13:04:09.689 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000032 seconds2019-02-05 13:04:09.689 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Iray interactive running with 1 device:2019-02-05 13:04:09.690 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   CUDA Device 0 - "TITAN RTX" (compute capability 7.5, memory 17839 MB/24576 MB)2019-02-05 13:04:09.694 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   Driver version: 417.712019-02-05 13:04:09.694 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   OptiX Version:[5.0.1] Branch:[rel5.0] Build Number:[23995567] CUDA Version:[9.0] 64-bit 2018-04-24 

     

    It was someone a while back from NVIDIA, formerly Iray team or something, who explained OptiX and OptiX Prime aren't the same and unless NVIDIA invests time into getting OptiX Prime up to speed, Iray will not support these RTX features. 

    Or... something like that? I don't remember 100%.

  • RayDAntRayDAnt Posts: 1,121
    edited February 2019

    It was someone a while back from NVIDIA, formerly Iray team or something, who explained OptiX and OptiX Prime aren't the same and unless NVIDIA invests time into getting OptiX Prime up to speed, Iray will not support these RTX features. 

    Or... something like that? I don't remember 100%.

    OptiX Prime supporting RTX or not is a complete misnomer. OptiX Prime is a software-based dedicated pathtracing/raycasting accelerator included as part of (but not dependent on use of) the overall OptiX API package. It's the direct equivalent of a single software-emulated RTCore. Meaning that RTX already supports OptiX Prime in the form of dedicated hardware called RTCores.

    What's more, enabling OptiX Prime on RTX cards (which you can actually do right now - Turing has been able to run OptiX Prime acceleration since day one) only works to slow things down since Turing's hardware-level raytracing optimizations (even without functioning RTCores) are already better at raytracing acceleration than OptiX Prime. This is why all the ray-tracing intensive benchmarks of RTX hardware posted in this thread so far show shorter render times without OptiX Prime enabled. OptiX Prime is already a slight bottleneck on RTX hardware. Once RTCores fully come online that bottleneck is only going to increase exponentially as Turing gets natively faster.

    People needn't worry about lack of OptiX Prime support on RTX  because RTX itself makes OptiX Prime obsolete.

     

    ETA: Coherence

    Post edited by RayDAnt on
  • bluejauntebluejaunte Posts: 1,861

    Will you please stop with that OptiX .vs. OptiX Prime already?

    image

    It's all part of the same SDK.

    I don't think that was the point. I'll see if I can maybe find the post again. It was from someone who claimed to have been in the actual Iray team. But I think that thread might have been locked at some point.

    If it was someone from the Iray team with insight into these things, should we really just ignore it?

  • bluejauntebluejaunte Posts: 1,861

    https://www.daz3d.com/forums/discussion/270866/ot-new-nvidia-cards-to-come-in-rtx-and-gtx-versions-rtx-titan-first-whispers/p21

    Hi.

    I ran the OptiX team at Nvidia for five years. I've since moved to Samsung to design a new GPU, but still keep tabs on Nvidia's ray tracing work. Let me mention a few points that might help this conversation.

    Nvidia's "RTX" ray tracing hardware in the Turing architecture is the real deal. It is real hardware acceleration of ray - acceleration structure intersection and ray - triangle intersection. The performance numbers quoted by Jensen of 10 billion rays per second are obviously marketing numbers, but in OptiX (which was written on top of CUDA at the time) 300 million rays per second was a good marketing number. So the speedup is very real.

    RTX is only being exposed through ray tracing APIs. It is not accessible through Compute APIs like CUDA, OpenCL, or Vulkan Compute. It is/will be exposed only through Microsoft DXR, Nvidia OptiX, and a Vulkan ray tracing extension. Nvidia can make their own Vulkan extension or the Vulkan Ray Tracing Technical Subgroup (of which I am a member) may define a cross-platform ray tracing extension.

    Thus, all existing renderers that want hardware acceleration will have to use one of these three APIs. Most renderers are / will be using OptiX - Pixar, Arnold, Vray, Clarisse, Red Shift, and others.

    Another thing to note is that OptiX Prime will not be accelerated on RTX; only OptiX will. This is significant because Iray uses OptiX Prime, not OptiX. Thus, Iray does not get RTX ray tracing acceleration on my RTX 2080, and something big will have to change before it does get accelerated. I don't know whether Nvidia will port Iray to OptiX, which would be a big effort, or whether that will be done by MI Genius or Lightwork Design, or it will just not happen. Another possibility is for some party to implement OptiX Prime on top of OptiX to get access to RTX hardware acceleration.

    If I were DAZ I would be privately freaking out about my renderer being left in the dust because it's not hardware accelerated, even though the same company made the renderer and the hardware acceleration.

    -Dave

  • RayDAntRayDAnt Posts: 1,121

    OptiX team - not Iray team. Which would explain why he wasn't aware when writing this that Iray  - both demonstrably and in terms of annoyingly difficult to find official documentation (see under Key Features -> High Performance) - already features full OptiX API utilization in certain rendering modes. It's just that it doesn't currently use it in the one rendering mode (Photoreal) people like us (and him) previously cared about.

  • bluejauntebluejaunte Posts: 1,861
    RayDAnt said:

    OptiX team - not Iray team. Which would explain why he wasn't aware when writing this that Iray  - both demonstrably and in terms of annoyingly difficult to find official documentation (see under Key Features -> High Performance) - already features full OptiX API utilization in certain rendering modes. It's just that it doesn't currently use it in the one rendering mode (Photoreal) people like us (and him) previously cared about.

    Yeah, hey I said a was a little fuzzy. Still a guy from the OptiX team though, who would you rather believe? This guy who used to work on that stuff, or some text strings in a log file or documentation? I find the latter a rather weak demonstration of anything. 

    All the better if you're right. Let's hope so.

  • RayDAntRayDAnt Posts: 1,121

    who would you rather believe?

    ...It's not a question of belief, though. You can run a test for yourself (render a scene using Iray in Interactive Mode with a Nvidia GPU selected) to prove that what he said about Iray only ever using OptiX Prime is objectively false. Yeah, OptiX in Interactive mode is pretty much useless to us now (my Titan RTX won't even render in that mode unless it's for an Iray viewport - presumably because it's technically unsupported hardware on a Beta release.) But the fact that the code is in there at all means that bringing full OptiX functionality over to Photoreal is gonna be a matter of reorganizing the furntiture rather than having to build things up from scratch.

    Which isn't to say that Iray is gonna be magically updated next week. It's just that all the core functionality is already there. Iray with full RTX acceleration should only be a matter of time.

  • bluejauntebluejaunte Posts: 1,861
    RayDAnt said:

    who would you rather believe?

    ...It's not a question of belief, though. You can run a test for yourself (render a scene using Iray in Interactive Mode with a Nvidia GPU selected) to prove that what he said about Iray only ever using OptiX Prime is objectively false. Yeah, OptiX in Interactive mode is pretty much useless to us now (my Titan RTX won't even render in that mode unless it's for an Iray viewport - presumably because it's technically unsupported hardware on a Beta release.) But the fact that the code is in there at all means that bringing full OptiX functionality over to Photoreal is gonna be a matter of reorganizing the furntiture rather than having to build things up from scratch.

    Which isn't to say that Iray is gonna be magically updated next week. It's just that all the core functionality is already there. Iray with full RTX acceleration should only be a matter of time.

    Can you go into a bit more detail about this? I find this confusing. If I do a test in interactive mode, how do I really know OptiX was used and not OptiX Prime? Because of a string in the log? Even more confusing, why would NVIDIA even do this? I mean, what is the actual difference between the two modes, and why would one use OptiX and the other OptiX Prime?

  • bluejauntebluejaunte Posts: 1,861
    edited February 2019

    So I tried to render in Interactive mode with my 2080 TI on the latest beta. Still 417.71 NVIDIA drivers. Works fine. Both in viewport and the actual render. 

    It makes a weird sound come out of my PC though laugh very strange. Like something is winding up for maybe 2 secs, then silence for 3-4 secs, then winding up again. I opened the case to see if I could locate it but can't tell for sure. Most likely the 2080 TI though. Absolutely no clue what it's doing. Stop interactive render and it's gone. Doesn't happen in viewport render. And certainly not in photoreal.

    Doesn't sound like a cooler at all. And coolers seem to be running steady too. 

    Post edited by bluejaunte on
  • RayDAntRayDAnt Posts: 1,121
    edited February 2019
    RayDAnt said:

    who would you rather believe?

    ...It's not a question of belief, though. You can run a test for yourself (render a scene using Iray in Interactive Mode with a Nvidia GPU selected) to prove that what he said about Iray only ever using OptiX Prime is objectively false. Yeah, OptiX in Interactive mode is pretty much useless to us now (my Titan RTX won't even render in that mode unless it's for an Iray viewport - presumably because it's technically unsupported hardware on a Beta release.) But the fact that the code is in there at all means that bringing full OptiX functionality over to Photoreal is gonna be a matter of reorganizing the furntiture rather than having to build things up from scratch.

    Which isn't to say that Iray is gonna be magically updated next week. It's just that all the core functionality is already there. Iray with full RTX acceleration should only be a matter of time.

    Can you go into a bit more detail about this? I find this confusing. If I do a test in interactive mode, how do I really know OptiX was used and not OptiX Prime? Because of a string in the log? Even more confusing, why would NVIDIA even do this? I mean, what is the actual difference between the two modes, and why would one use OptiX and the other OptiX Prime?

    Read section 3.2: "Balancing Load across Devices and Hosts" (pages 22-25) of the official Iray Light Transport Simulation and Rendering System whitepaper for the full explanation. In short, until only relatively recently fully unbiased rendering (like what you get in Iray when in Photoreal mode) was impractical for use on all but the highest end dedicated graphics rendering hardware during interactive (as in, visually moving things around in your viewport kind of interactive) stages of the 3d modeling process. Consequently every unbiased 3d rendering engine worth its salt had at least one alternate biased rendering mode (back in 2012 Iray actually had two) you could seemlessly switch it into that would utilize dedicated graphics hardware via FPS-oriented game engine friendly APIs (like OptiX) for your rendering pipeline. Hence why Iray Interactive mode uses OptiX.

    All of this makes perfect sense in a world where GPUs aren't capable of traversing high quality graphics rendering pipelines in relatively real time - which is how things were in the professinoal cg world until relatively recently.

    Post edited by RayDAnt on
  • bluejauntebluejaunte Posts: 1,861
    RayDAnt said:
    RayDAnt said:

    who would you rather believe?

    ...It's not a question of belief, though. You can run a test for yourself (render a scene using Iray in Interactive Mode with a Nvidia GPU selected) to prove that what he said about Iray only ever using OptiX Prime is objectively false. Yeah, OptiX in Interactive mode is pretty much useless to us now (my Titan RTX won't even render in that mode unless it's for an Iray viewport - presumably because it's technically unsupported hardware on a Beta release.) But the fact that the code is in there at all means that bringing full OptiX functionality over to Photoreal is gonna be a matter of reorganizing the furntiture rather than having to build things up from scratch.

    Which isn't to say that Iray is gonna be magically updated next week. It's just that all the core functionality is already there. Iray with full RTX acceleration should only be a matter of time.

    Can you go into a bit more detail about this? I find this confusing. If I do a test in interactive mode, how do I really know OptiX was used and not OptiX Prime? Because of a string in the log? Even more confusing, why would NVIDIA even do this? I mean, what is the actual difference between the two modes, and why would one use OptiX and the other OptiX Prime?

    Read section 3.2: "Balancing Load across Devices and Hosts" (pages 22-25) of the official Iray Light Transport Simulation and Rendering System whitepaper for the full explanation. In short, until only relatively recently fully unbiased rendering (like what you get in Iray when in Photoreal mode) was impractical for use on all but the highest end dedicated graphics rendering hardware during interactive (as in, visually moving things around in your viewport kind of interactive) stages of the 3d modeling process. Consequently every unbiased 3d rendering engine worth its salt had at least one alternate biased rendering mode (back in 2012 Iray actually had two) you could seemlessly switch it into that would utilize dedicated graphics hardware via FPS-oriented game engine friendly APIs (like OptiX) for your rendering pipeline. Hence why Iray Interactive mode uses OptiX.

    All of this makes perfect sense in a world where GPUs aren't capable of traversing high quality graphics rendering pipelines in relatively real time - which is how things were in the professinoal cg world until relatively recently.

    Read it (link is bad btw). Can't say I understood it all of course, and I did not see a mention of Optix or Optix Prime. I searched some more, on page 19 it says

    For the ray casting state kernels our system employs the low level ray tracing API OptiX Prime which comes with the NVIDIA OptiX ray tracing engine [Prime]. Fig. 12 shows one use of instancing, enabled by OptiX Prime.

    Searched some more in NVIDIA OptiX 6.0—Programming Guide

    Sometimes the algorithm as a whole does not benefit from this tight coupling of user code and ray tracing code, and only the ray tracing functionality is needed. Visibility, trivial ray casting rendering, and ray tracing very large batches of rays in phases may have this property. OptiX Prime is a set of OptiX APIs designed for these use cases. Prime is specialized to deliver high performance for intersecting a set of rays against a set of triangles. Prime is a thinner, simpler API, since programmable operations, such as shading, are excluded. Prime is also suitable for some quick experimentation and hobby projects.

    A few questions:

    1. Why do we and always did have the ability to enable or disable OptiX Prime Acceleration? What is that even?
    2. Why would Photoreal mode use this simpler API when Interactive uses the full OptiX (if that is really the case)?
    3. It says shading is excluded in Prime. So where does that happen? Does this mean they had to "manually" code shading for the bits that used OptiX Prime? If so, why on earth would they do that and then go and use OptiX for Interactive, which presumlably does include shading? Why not just use OptiX for both...

    I don't know. It just doesn't add up for me. It may very well be a lack of technical understanding. But purely common sense/logic wise I find it all strange. Using a simpler API for Photoreal when you then have to go and use the full API for Interactive, I don't see why a softtware engineer in their right mind would do such a thing. Unless interactive was just something they realized they needed after Photoreal already existed and they saw that they can't do that with just Prime. And then they left Photoreal alone and used OptiX to code Interactive, instead of just reworking Photoreal as well and not have a mess of different API's in there?

  • RayDAntRayDAnt Posts: 1,121
    edited February 2019

    bluejaunte, sorry about missing these posts earlier:

    So I tried to render in Interactive mode with my 2080 TI on the latest beta. Still 417.71 NVIDIA drivers. Works fine. Both in viewport and the actual render. 

    Are you positive? Because, if so, your render should've ended up looking something like this:

    This is what SickleYield's unchanged original benchmark scene looks like when rendered by Iray's current implementation of OptiX in Interactive Mode on DS 4.11.0.236 Beta on my state of the art Titan RTX, drivers version 417.71.

     

    It makes a weird sound come out of my PC though laugh very strange. Like something is winding up for maybe 2 secs, then silence for 3-4 secs, then winding up again. I opened the case to see if I could locate it but can't tell for sure. Most likely the 2080 TI though. Absolutely no clue what it's doing. Stop interactive render and it's gone. Doesn't happen in viewport render. And certainly not in photoreal.

    Doesn't sound like a cooler at all. And coolers seem to be running steady too. 

    I get almost exactly the same behavior on my Titan RTX, although in my case it's also accompanied by nothing but a black screen whenever I attempt to render. And this is what my log file looks like while hearing it:

    2019-02-06 11:18:37.287 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0001 in 11.169389s, 0.1fps (internal: 0.274658s, 3.6fps, overhead 97.5%)2019-02-06 11:18:37.294 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000019 seconds2019-02-06 11:18:37.370 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0003 in 0.076622s, 13.1fps (internal: 0.071219s, 14.0fps, overhead 7.1%)2019-02-06 11:18:37.372 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000016 seconds2019-02-06 11:18:37.488 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0007 in 0.115723s, 8.6fps (internal: 0.110588s, 9.0fps, overhead 4.4%)2019-02-06 11:18:37.494 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000019 seconds2019-02-06 11:18:37.703 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0015 in 0.209563s, 4.8fps (internal: 0.203787s, 4.9fps, overhead 2.8%)2019-02-06 11:18:37.705 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000017 seconds2019-02-06 11:18:38.082 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0031 in 0.377062s, 2.7fps (internal: 0.368664s, 2.7fps, overhead 2.2%)2019-02-06 11:18:38.088 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000017 seconds2019-02-06 11:18:38.841 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0063 in 0.752766s, 1.3fps (internal: 0.747473s, 1.3fps, overhead 0.7%)2019-02-06 11:18:38.845 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000018 seconds2019-02-06 11:18:40.286 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0127 in 1.439941s, 0.7fps (internal: 1.434813s, 0.7fps, overhead 0.4%)2019-02-06 11:18:40.292 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000022 seconds2019-02-06 11:18:43.188 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0255 in 2.896190s, 0.3fps (internal: 2.890746s, 0.3fps, overhead 0.2%)2019-02-06 11:18:43.190 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000017 seconds2019-02-06 11:18:48.988 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 0511 in 5.798298s, 0.2fps (internal: 5.793186s, 0.2fps, overhead 0.1%)2019-02-06 11:18:48.995 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000018 seconds2019-02-06 11:19:00.522 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 1023 in 11.527052s, 0.1fps (internal: 11.521325s, 0.1fps, overhead 0.0%)2019-02-06 11:19:00.524 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000017 seconds2019-02-06 11:19:23.710 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 2047 in 23.184875s, 0.0fps (internal: 23.179576s, 0.0fps, overhead 0.0%)2019-02-06 11:19:23.716 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000018 seconds2019-02-06 11:20:10.265 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 4095 in 46.549117s, 0.0fps (internal: 46.543726s, 0.0fps, overhead 0.0%)2019-02-06 11:20:10.268 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000017 seconds2019-02-06 11:20:30.805 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : rendered frame 5000 in 20.537114s, 0.0fps (internal: 20.531917s, 0.0fps, overhead 0.0%)

    Implying it has something to do with "Scene graph manager" having some sort of problem (honestly have no idea what it is.) And it doesn't appear to be just an RTX thing since the 1050 in my Surface Book also exhibits similar behavior. Regardless, both the sound and lack of rendering go away if - after changing Render Mode to "Interactive" - you also go to Render Settings -> Optimization -> Refinement Mode and set that to "Interactive" as well (the default is "Standard".) Have no clue why since "Refinement Mode" appears to be a totally undocumented feature in DS. But it appears changing both settings is required for things to work.

     

    A few questions:

    1. Why do we and always did have the ability to enable or disable OptiX Prime Acceleration? What is that even?
    2. Why would Photoreal mode use this simpler API when Interactive uses the full OptiX (if that is really the case)?
    3. It says shading is excluded in Prime. So where does that happen? Does this mean they had to "manually" code shading for the bits that used OptiX Prime? If so, why on earth would they do that and then go and use OptiX for Interactive, which presumlably does include shading? Why not just use OptiX for both...
    1. The first version of Iray came out in 2010. Meanwhile OptiX Prime didn't come out until 2014 (as part of OptiX version 3.5.) Meaning that its initial inclusion in Iray was as an optional component. And if something ain't broke, don't fix it. ;)
    2. Because look at the results (eg. the render above) of pre-RTX purely OptiX based Iray rendering on even current state-of-the-art graphics hardware... Plus OptiX will only run on Nvidia GPUs - meaning no CPU (fallback) rendering support in Photoreal. Unless a 2nd rendering engine pipeline is also included.
    3. Iray first started out as a Cuda core compatible port of Nvidia's recently acquired CPU-bound raytracing graphics engine Mental Ray. So yes. Originally, every part of the ray-traced rendering pipeline in Iray was manually coded in either proprietary cpu or Cuda code. And as for your shading question, OptiX Prime is just a path-tracing/ray-casting accelerator. Not a full rendering engine (like og Iray or - depending on how it's used - OptiX.)

     

    I don't know. It just doesn't add up for me. It may very well be a lack of technical understanding.

    It's mostly just a question of being familiar with how the hardware/software developed over time. As messed up/backward as it seems, Iray's developmental inconsistencies really aren't that unusual for a longstanding piece of primarily professional-use software.

    Post edited by RayDAnt on
  • bluejauntebluejaunte Posts: 1,861
    RayDAnt said:

    bluejaunte, sorry about missing these posts earlier:

    So I tried to render in Interactive mode with my 2080 TI on the latest beta. Still 417.71 NVIDIA drivers. Works fine. Both in viewport and the actual render. 

    Are you positive? Because, if so, your render should've ended up looking something like this:

    Oh I just rendered a random scene of mine. And when I say "works fine" I just meant it renders. It does look crap. I assumed that was expected with this render mode? I never really used it before. I tried again with Refinement Mode also set to Interactive and that looks even worse, no shadows it seems. The log looks like yours too.

  • RayDAntRayDAnt Posts: 1,121

    Current DAZ version of Iray does not seem to rely on OptiX (there is no DLL in the folder).

    OptiX isn't an externally linked library like OptiX Prime. It's an API which gets embedded as part of a client program's runtime binary code for performance reasons. It's the key reason why updates to OptiX are said to be more streamlined than updates to OptiX Prime.

  • My Benchmark:

    AMD Threadripper 1920x 12 core 3.6ghz

    Gtx670 FTW 2gb

    16 gb 3200mhz ddr4 ram Corsair vengance

    16gb 2400mhz ddr4 ram Corsair vengance

    8:40 

    my rig is all kinds of confused but aayyyee!!

  • RayDAntRayDAnt Posts: 1,121
    edited February 2019

    @RayDAnt:

    I actually installed OptiX SDK 6.0 and I can guarantee you that OptiX is an externally linked library (you can see the file in my screenshot).

    Fyi SDK contents are generally not indicative of which files you can expect to see in the installation folders of finished programs built from them. This is especially true of ones for pure APIs like OptiX because APIs are normally stripped down and then baked directly into the runtime files of programs bult from them at compile time for performance reasons. Eg. if you open the file libneuray.dll included with the current DS Beta in a text editor and search for an OptiX-specific code declaration like "rtCallableProgramId" you will find multiple results. This is because Iray already uses code from the full OptiX API in accomplishing certain tasks like rendering on Nvidia GPUs while set to Interactive Rendering Mode.

     

    Post edited by RayDAnt on
  • @RayDAnt:

    I actually installed OptiX SDK 6.0 and I can guarantee you that OptiX is an externally linked library (you can see the file in my screenshot).

    In any case, now we have a direct confirmation from OptiX team member David Hart that even the updated OptiX Prime does not use RTX hardware:

    So, OptiX Prime is still there for now, yes, but unfortunately it's definitely not using the RTX hardware. 

    Also, the wording used ("still there for now") suggests it may be deprecated in the future.

    So now we know -- if DAZ wants RTX acceleration they will have to switch to OptiX from Prime.

    Is that anything Daz has control over?

    What we still don't know for sure is whether NVIDIA is maintaining their Iray plugin under an existing contract (which if so will expire in 2019 or 2020 because Iray plugins are not developed anymore) or DAZ itself is working on it.

    I suspect you are confusing the plug-ins to access Iray, which nVidia used to develop for the big suites (Maya, 3DS, C4D) and Iray itself. Daz gets the iray .dll and support files from nVidia, as I understand it, but the plug-in to communicate with DS is and always has been developed by Daz.

  • jmtbankjmtbank Posts: 165

    Doesnt sound like classic capacitor* whine, but thats all I've got to suggest.

    *Its not necessarily from the card. Could be mobo or psu.

  • bluejauntebluejaunte Posts: 1,861

    @RayDAnt:

    I actually installed OptiX SDK 6.0 and I can guarantee you that OptiX is an externally linked library (you can see the file in my screenshot).

    In any case, now we have a direct confirmation from OptiX team member David Hart that even the updated OptiX Prime does not use RTX hardware:

    So, OptiX Prime is still there for now, yes, but unfortunately it's definitely not using the RTX hardware. 

    Also, the wording used ("still there for now") suggests it may be deprecated in the future.

    So now we know -- if DAZ wants RTX acceleration they will have to switch to OptiX from Prime.

    Is that anything Daz has control over?

    Doubt that. This is something for the devs of Iray, as described by the guy who ran the OptiX team. Apparently there are no plans to make OptiX Prime use RTX, judging from this link. So Iray team it is. Pretty strange situation.

  • RayDAntRayDAnt Posts: 1,121
    edited February 2019

    On the contrary, SDK contents are very indicative -- OptiX SDK contains only import .lib files for dynamically linking to OptiX and/or OptiX Prime DLLs. There are no .lib files for static linking of iether of them.

    Fyi you're looking at documentation for the wrong version of OptiX. Iray in Daz Studio is still only updated to OptiX/OptiX Prime version 5.0.1 (Nividia releasing a new version of OptiX doesn't change which versions of OptiX already exisitng programs use.) And the official programming guide for OptiX 5.0 states (in section 7.1: Libraries, page 75):

    OptiX comes with several header files and supporting libraries, primarily optix and optixu. On Windows, these libraries are statically linked against the C runtime libraries and are suitable for use in any version of Microsoft Visual Studio, though only the subset of versions listed in the OptiX release notes are tested. If you wish to distribute the OptiX libraries with your application, the VS redistributables are not required by our DLL.

    Meaning that, depend on the programmer-side implementation, files like optix.1.dll may or may not be present in the runtime directories of compiled applications (like Iray) which are at least partially based on the full OptiX API. Since the full OptiX API is only currently used by Iray for basic rendering in Interactive Mode, it makes sense that they would've statically linked just the relevant portions of its code in Iray at compile time rather than included the entire API as a dynamically linked library. That is why the DS log file explicitly mentions using OptiX for rendering (rather than OptiX Prime for just ray-tracing) any time an Nvidia GPU is selected as a render device for Interactive Mode renders despite there being no optix.1.dll in its runtime folder.

    Furthermore Iray's developers having chosen to use this sort of compile-time integration also explains how it is Iray manages to be using Embree (Intel's proprietary equivalent of OptiX for it's CPUs) any time an Intel CPU is selected as a render device for Interactive Mode renders - eg:

    2019-02-08 13:57:35.934 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Initializing context.2019-02-08 13:57:35.942 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Creating irt render context (cache id: 0x0000000100000000).2019-02-08 13:57:35.964 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Scene graph manager init took 0.000061 seconds2019-02-08 13:57:35.964 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info : Iray interactive running with 2 devices:2019-02-08 13:57:36.188 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   CUDA Device 0 - "GeForce GTX 1050" (compute capability 6.1, memory 1459 MB/2048 MB)2019-02-08 13:57:36.188 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   CPU device2019-02-08 13:57:36.211 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   Driver version: 391.402019-02-08 13:57:36.211 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   OptiX Version:[5.0.1] Branch:[rel5.0] Build Number:[23995567] CUDA Version:[9.0] 64-bit 2018-04-24 2019-02-08 13:57:36.211 Iray INFO - module:category(IRT:RENDER):   1.0   IRT    rend info :   Embree version: 2.8.0

     despite the fact that there is no embree2.dll file located in the current DS Beta's Iray runtime folder. Both OptiX and Embree are presently included in Iray as statically linked code.

    So the question moving forward with Iray concerning RTX acceleration support isn't a matter of Iray needing to start using OptiX from scratch. The main programming hurdle lies in how to re-integrate full OptiX as part of the Photoreal rendering mode in the place of OptiX Prime (since use of OptiX Prime leads to a decrease in raytracing performance on RTX cards with RTCores enabled will cancel out any possible performance gains from having RTCores on an RTX card.)

    Post edited by RayDAnt on
Sign In or Register to comment.