@@ -155,7 +155,8 @@ 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+ # images_data.resize((len(render_passes) * self.width * self.height * 4,))
159+ np .resize ( images_data , (len (render_passes ) * self .width * self .height * 4 ,))
159160
160161 # efficient way to copy all AOV images
161162 render_passes .foreach_set ('rect' , images_data )
@@ -329,7 +330,6 @@ def _render(self):
329330
330331 log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
331332 log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
332- self .athena_send (athena_data )
333333
334334 def _render_tiles (self ):
335335 athena_data = {}
@@ -477,8 +477,6 @@ def _render_tiles(self):
477477 log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
478478 log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
479479
480- self .athena_send (athena_data )
481-
482480 def _render_contour (self ):
483481 log (f"Doing Outline Pass" )
484482
@@ -557,7 +555,6 @@ def _render_contour(self):
557555
558556 log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
559557 log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
560- self .athena_send (athena_data )
561558
562559 def render (self ):
563560 if not self .is_synced :
@@ -805,63 +802,8 @@ def sync(self, depsgraph):
805802 log ('Finish sync' )
806803
807804 def athena_send (self , data : dict ):
808- if not (utils .IS_WIN or utils .IS_MAC ):
809- return
810-
811- settings = get_user_settings ()
812- if not settings .collect_stat :
813805 return
814806
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"
865807
866808 def prepare_scene_stamp_text (self , scene ):
867809 """ Fill stamp with static scene and render devices info that user can ask for """
0 commit comments