7#ifndef NVIDIA_INDEX_IDISTRIBUTED_COMPUTE_TECHNIQUE_H
8#define NVIDIA_INDEX_IDISTRIBUTED_COMPUTE_TECHNIQUE_H
11#include <mi/base/interface_declare.h>
39 public mi::base::Interface_declare<0xfbde8f4c,0x421e,0x4a6e,0x98,0x68,0x6a,0xe2,0x9b,0xac,0x30,0x4d,
40 nv::index::IAttribute>
69 IDistributed_compute_destination_buffer_container* dst_buffer_container,
70 mi::neuraylib::IDice_transaction* dice_transaction)
const = 0;
124 public mi::base::Interface_declare<0x7c8909d5,0x3cc2,0x415b,0x80,0xef,0x65,0x74,0x99,0x38,0xd6,0xff,
125 nv::index::IDistributed_compute_technique>
136template <mi::Uint32 i_id1, mi::Uint16 i_id2, mi::Uint16 i_id3,
137 mi::Uint8 i_id4, mi::Uint8 i_id5, mi::Uint8 i_id6, mi::Uint8 i_id7,
138 mi::Uint8 i_id8, mi::Uint8 i_id9, mi::Uint8 i_id10, mi::Uint8 i_id11,
141 public mi::neuraylib::Element<i_id1,i_id2,i_id3,i_id4,i_id5,i_id6,i_id7,i_id8,i_id9,i_id10,i_id11,I>
148 return nv::index::IDistributed_compute_technique::IID();
196 virtual mi::neuraylib::Tag_struct
get_meta_data()
const {
return mi::neuraylib:
:NULL_TAG; }
212 virtual void launch_compute(
213 mi::neuraylib::IDice_transaction* dice_transaction,
214 IDistributed_compute_destination_buffer* dst_buffer)
const
216 (void) dice_transaction;
220 virtual void launch_compute(
221 IDistributed_compute_destination_buffer_container* dst_buffer_container,
222 mi::neuraylib::IDice_transaction* dice_transaction)
const
224 if (dst_buffer_container && dst_buffer_container->get_nb_destination_buffers() > 0u) {
225 return launch_compute(dice_transaction, dst_buffer_container->get_destination_buffer(0u));
235template <mi::Uint32 i_id1, mi::Uint16 i_id2, mi::Uint16 i_id3,
236 mi::Uint8 i_id4, mi::Uint8 i_id5, mi::Uint8 i_id6, mi::Uint8 i_id7,
237 mi::Uint8 i_id8, mi::Uint8 i_id9, mi::Uint8 i_id10, mi::Uint8 i_id11,
240 public nv::index::Distributed_compute_technique<i_id1,i_id2,i_id3,i_id4,i_id5,i_id6,i_id7,i_id8,i_id9,i_id10,i_id11,I>
Mixin class for implementing the IDistributed_compute_technique_LOD interface.
Definition: idistributed_compute_technique.h:241
Mixin class for implementing the IDistributed_compute_technique interface.
Definition: idistributed_compute_technique.h:142
virtual mi::neuraylib::Tag_struct get_meta_data() const
Retrieve the scene element's reference to the user-defined meta data.
Definition: idistributed_compute_technique.h:196
virtual void set_meta_data(mi::neuraylib::Tag_struct tag)
Each scene element can store additional user-defined meta data.
Definition: idistributed_compute_technique.h:186
virtual bool is_gpu_operation() const
Tell NVIDIA IndeX the default operation does not access or alter potentially exposed device data.
Definition: idistributed_compute_technique.h:200
virtual bool get_enabled() const
Attribute is always enabled.
Definition: idistributed_compute_technique.h:172
virtual bool multiple_active_instances() const
Only a single instance of this attribute can be active at the same time.
Definition: idistributed_compute_technique.h:153
virtual void set_enabled(bool enable)
Attribute is always enabled.
Definition: idistributed_compute_technique.h:162
virtual mi::base::Uuid get_attribute_class() const
Return IID as attribute class.
Definition: idistributed_compute_technique.h:146
Interface class for user-defined techniques for computing 2D LOD-texture data on demand.
Definition: idistributed_compute_technique.h:126
Interface class for user-defined techniques for computing data (2D textures on plane and heightfield ...
Definition: idistributed_compute_technique.h:41
Invocation_mode
Definition: idistributed_compute_technique.h:44
@ GROUPED_PER_HOST
The launch_compute() callback will be invoked with a list of all data-subsets grouped per host.
Definition: idistributed_compute_technique.h:47
@ GROUPED_PER_DEVICE
The launch_compute() callback will be invoked with a list of all data-subsets grouped per device.
Definition: idistributed_compute_technique.h:46
@ INDIVIDUAL
The launch_compute() callback will be invoked for each data-subset individually.
Definition: idistributed_compute_technique.h:45
virtual void launch_compute(IDistributed_compute_destination_buffer_container *dst_buffer_container, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Launches the user-defined compute technique.
virtual const char * get_configuration() const
Returns optional configuration settings that may be used by the library for the session export mechan...
Definition: idistributed_compute_technique.h:102
virtual bool is_gpu_operation() const =0
Return whether the compute technique will work on the potentially exposed device data directly.
virtual Invocation_mode get_invocation_mode() const =0
This mode controls how IndeX is providing the destination buffers for multiple data subsets to an ins...
Base class representing attributes that can be defined in a scene description.
Asynchronous texture generation for use with shapes.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349