From eda5d0bc18e04436d11532bc7441bf3eaf38b6fd Mon Sep 17 00:00:00 2001
From: Jefferson Amstutz <jamstutz@nvidia.com>
Date: Wed, 28 Aug 2024 16:15:47 -0500
Subject: [PATCH] remove unnecessary usage of ANARI instancing

---
 Rendering/ANARI/vtkAnariRendererNode.cxx | 32 ++++++------------------
 1 file changed, 8 insertions(+), 24 deletions(-)

diff --git a/Rendering/ANARI/vtkAnariRendererNode.cxx b/Rendering/ANARI/vtkAnariRendererNode.cxx
index fc458a812b6..55be841d3fe 100644
--- a/Rendering/ANARI/vtkAnariRendererNode.cxx
+++ b/Rendering/ANARI/vtkAnariRendererNode.cxx
@@ -142,8 +142,6 @@ struct vtkAnariRendererNodeInternals
   anari::Device AnariDevice{ nullptr };
   anari::Renderer AnariRenderer{ nullptr };
   anari::World AnariWorld{ nullptr };
-  anari::Instance AnariInstance{ nullptr };
-  anari::Group AnariGroup{ nullptr };
   anari::Frame AnariFrame{ nullptr };
 
   anari::Extensions AnariExtensions{};
@@ -162,8 +160,6 @@ vtkAnariRendererNodeInternals::~vtkAnariRendererNodeInternals()
 {
   if (this->AnariDevice != nullptr)
   {
-    anari::release(this->AnariDevice, this->AnariGroup);
-    anari::release(this->AnariDevice, this->AnariInstance);
     anari::release(this->AnariDevice, this->AnariWorld);
     anari::release(this->AnariDevice, this->AnariRenderer);
     anari::release(this->AnariDevice, this->AnariFrame);
@@ -566,21 +562,9 @@ void vtkAnariRendererNode::InitAnariWorld()
 
   auto anariDevice = this->GetAnariDevice();
 
-  auto anariGroup = anari::newObject<anari::Group>(anariDevice);
-  this->Internal->AnariGroup = anariGroup;
-  anari::setParameter(anariDevice, anariGroup, "name", ANARI_STRING, "vtk_group");
-  anari::commitParameters(anariDevice, anariGroup);
-
-  auto anariInstance = anari::newObject<anari::Instance>(anariDevice, "transform");
-  this->Internal->AnariInstance = anariInstance;
-  anari::setParameter(anariDevice, anariInstance, "name", ANARI_STRING, "vtk_instance");
-  anari::setParameter(anariDevice, anariInstance, "group", anariGroup);
-  anari::commitParameters(anariDevice, anariInstance);
-
   auto anariWorld = anari::newObject<anari::World>(anariDevice);
   this->Internal->AnariWorld = anariWorld;
   anari::setParameter(anariDevice, anariWorld, "name", "vtk_world");
-  anari::setParameterArray1D(anariDevice, anariWorld, "instance", &anariInstance, 1);
   anari::commitParameters(anariDevice, anariWorld);
 
   auto anariFrame = this->Internal->AnariFrame;
@@ -642,7 +626,7 @@ void vtkAnariRendererNode::UpdateAnariLights()
 void vtkAnariRendererNode::UpdateAnariSurfaces()
 {
   auto anariDevice = this->GetAnariDevice();
-  auto anariGroup = this->Internal->AnariGroup;
+  auto anariWorld = this->Internal->AnariWorld;
   const auto& surfaceState = this->Internal->AnariSurfaces;
 
   if (!surfaceState.empty())
@@ -655,21 +639,21 @@ void vtkAnariRendererNode::UpdateAnariSurfaces()
     }
 
     anari::setParameterArray1D(
-      anariDevice, anariGroup, "surface", surfaceState.data(), surfaceState.size());
+      anariDevice, anariWorld, "surface", surfaceState.data(), surfaceState.size());
   }
   else
   {
-    anari::unsetParameter(anariDevice, anariGroup, "surface");
+    anari::unsetParameter(anariDevice, anariWorld, "surface");
   }
 
-  anari::commitParameters(anariDevice, anariGroup);
+  anari::commitParameters(anariDevice, anariWorld);
 }
 
 //----------------------------------------------------------------------------
 void vtkAnariRendererNode::UpdateAnariVolumes()
 {
   auto anariDevice = this->GetAnariDevice();
-  auto anariGroup = this->Internal->AnariGroup;
+  auto anariWorld = this->Internal->AnariWorld;
   const auto& volumeState = this->Internal->AnariVolumes;
 
   if (!volumeState.empty())
@@ -682,14 +666,14 @@ void vtkAnariRendererNode::UpdateAnariVolumes()
     }
 
     anari::setParameterArray1D(
-      anariDevice, anariGroup, "volume", volumeState.data(), volumeState.size());
+      anariDevice, anariWorld, "volume", volumeState.data(), volumeState.size());
   }
   else
   {
-    anari::unsetParameter(anariDevice, anariGroup, "volume");
+    anari::unsetParameter(anariDevice, anariWorld, "volume");
   }
 
-  anari::commitParameters(anariDevice, anariGroup);
+  anari::commitParameters(anariDevice, anariWorld);
 }
 
 //----------------------------------------------------------------------------
-- 
GitLab