@@ -155,7 +155,7 @@ def set_render_result(render_passes: bpy.types.RenderPasses):
155155 images_data = np .concatenate (images )
156156 if BLENDER_VERSION >= '4.0' :
157157 # foreach_set requires every pass to be 4 channels, so we resize to reach desirable size
158- images_data .resize ((len (render_passes ) * self .width * self .height * 4 ,))
158+ np .resize ( images_data , (len (render_passes ) * self .width * self .height * 4 ,))
159159
160160 # efficient way to copy all AOV images
161161 render_passes .foreach_set ('rect' , images_data )
@@ -211,7 +211,7 @@ def set_render_result(render_passes: bpy.types.RenderPasses):
211211 images_data = np .concatenate (images )
212212 if BLENDER_VERSION >= '4.0' :
213213 # foreach_set requires every pass to be 4 channels, so we resize to reach desirable size
214- images_data .resize ((len (render_passes ) * self .width * self .height * 4 ,))
214+ np .resize ( images_data , (len (render_passes ) * self .width * self .height * 4 ,))
215215
216216 # efficient way to copy all AOV images
217217 render_passes .foreach_set ('rect' , images_data )
@@ -329,7 +329,6 @@ def _render(self):
329329
330330 log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
331331 log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
332- self .athena_send (athena_data )
333332
334333 def _render_tiles (self ):
335334 athena_data = {}
@@ -477,8 +476,6 @@ def _render_tiles(self):
477476 log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
478477 log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
479478
480- self .athena_send (athena_data )
481-
482479 def _render_contour (self ):
483480 log (f"Doing Outline Pass" )
484481
@@ -557,7 +554,6 @@ def _render_contour(self):
557554
558555 log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
559556 log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
560- self .athena_send (athena_data )
561557
562558 def render (self ):
563559 if not self .is_synced :
@@ -805,63 +801,8 @@ def sync(self, depsgraph):
805801 log ('Finish sync' )
806802
807803 def athena_send (self , data : dict ):
808- if not (utils .IS_WIN or utils .IS_MAC ):
809804 return
810805
811- settings = get_user_settings ()
812- if not settings .collect_stat :
813- return
814-
815- from rprblender .utils import athena
816- if athena .is_disabled ():
817- return
818-
819- devices = settings .final_devices
820-
821- data ['CPU Enabled' ] = devices .cpu_state
822- for i , gpu_state in enumerate (devices .available_gpu_states ):
823- data [f'GPU{ i } Enabled' ] = gpu_state
824-
825- data ['Resolution' ] = (self .width , self .height )
826- data ['Number Lights' ] = sum (1 for o in self .rpr_context .scene .objects
827- if isinstance (o , pyrpr .Light ))
828- data ['AOVs Enabled' ] = tuple (
829- f'RPR_{ v } ' for v in dir (pyrpr ) if v .startswith ('AOV_' )
830- and getattr (pyrpr , v ) in self .rpr_context .frame_buffers_aovs
831- )
832-
833- data ['Ray Depth' ] = self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_RECURSION )
834- data ['Shadow Ray Depth' ] = self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_SHADOW )
835- data ['Reflection Ray Depth' ] = \
836- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_DIFFUSE , 0 ) + \
837- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_GLOSSY , 0 )
838- data ['Refraction Ray Depth' ] = \
839- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_REFRACTION , 0 ) + \
840- self .rpr_context .get_parameter (pyrpr .CONTEXT_MAX_DEPTH_GLOSSY_REFRACTION , 0 )
841-
842- data ['Num Polygons' ] = sum (
843- (o .mesh .poly_count if isinstance (o , pyrpr .Instance ) else o .poly_count )
844- for o in self .rpr_context .objects .values () if isinstance (o , pyrpr .Shape )
845- )
846- data ['Num Textures' ] = len (self .rpr_context .images )
847-
848- # temporary ignore getting texture sizes with hybrid,
849- # until it'll be fixed on hybrid core side
850- from . context_hybrid import RPRContext as RPRContextHybrid
851- from . context_hybridpro import RPRContext as RPRContextHybridPro
852- if not isinstance (self .rpr_context , (RPRContextHybrid , RPRContextHybridPro )):
853- data ['Textures Size' ] = sum (im .size_byte for im in self .rpr_context .images .values ()) \
854- // (1024 * 1024 ) # in MB
855-
856- data ['RIF Type' ] = self .image_filter .settings ['filter_type' ] if self .image_filter else None
857-
858- self ._update_athena_data (data )
859-
860- # sending data
861- athena .send_data (data )
862-
863- def _update_athena_data (self , data ):
864- data ['Quality' ] = "full"
865806
866807 def prepare_scene_stamp_text (self , scene ):
867808 """ Fill stamp with static scene and render devices info that user can ask for """
0 commit comments