@@ -155,7 +155,8 @@ def set_render_result(render_passes: bpy.types.RenderPasses):
155
155
images_data = np .concatenate (images )
156
156
if BLENDER_VERSION >= '4.0' :
157
157
# 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 ,))
159
160
160
161
# efficient way to copy all AOV images
161
162
render_passes .foreach_set ('rect' , images_data )
@@ -329,7 +330,6 @@ def _render(self):
329
330
330
331
log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
331
332
log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
332
- self .athena_send (athena_data )
333
333
334
334
def _render_tiles (self ):
335
335
athena_data = {}
@@ -477,8 +477,6 @@ def _render_tiles(self):
477
477
log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
478
478
log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
479
479
480
- self .athena_send (athena_data )
481
-
482
480
def _render_contour (self ):
483
481
log (f"Doing Outline Pass" )
484
482
@@ -557,7 +555,6 @@ def _render_contour(self):
557
555
558
556
log .info (f"Scene synchronization time:" , perfcounter_to_str (self .sync_time ))
559
557
log .info (f"Render time:" , perfcounter_to_str (self .current_render_time ))
560
- self .athena_send (athena_data )
561
558
562
559
def render (self ):
563
560
if not self .is_synced :
@@ -805,63 +802,8 @@ def sync(self, depsgraph):
805
802
log ('Finish sync' )
806
803
807
804
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 :
813
805
return
814
806
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"
865
807
866
808
def prepare_scene_stamp_text (self , scene ):
867
809
""" Fill stamp with static scene and render devices info that user can ask for """
0 commit comments