[Bf-committers] GPU texture painting design doc

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Jun 21 14:59:23 CEST 2012


With the GPU involved the way Campbell suggested is probably the
really reliable way to measure the impact, although different
GPU/drivers can still vary a lot. Work that happens in the driver can
also be missed by profilers, and there may be points where the driver
is simply waiting for the GPU which may not get counted.

But also the mesh resolution and the type of UV unwrap (e.g. lightmap
pack) was not mentioned.

Brecht.

On Thu, Jun 21, 2012 at 10:04 AM, Campbell Barton <ideasman42 at gmail.com> wrote:
> Interesting, though this could be because how we measure the times differently.
>
> rather then using a typical profiler I just disabled viewport-drawing
> and updating the OpenGL texture.
> Then timed a fairly long stroke created with grease pencil ---
> with/without display updates disabled.
>
> Even so my time could have been skewed by some driver/hardware blah
> blah - or just the test case I ran.
>
> On Wed, Jun 20, 2012 at 6:02 PM, Antony Riakiotakis <kalast at gmail.com> wrote:
>> I did some profiling of my own. Looks like upload is not currently the
>> bottleneck. I am pasting the gprof output after an ultra paint-intensive
>> session.
>>
>>
>>
>> -----------------------------------------------
>> index % time    self  children    called     name
>> [1]     15.8    0.07    0.90  103000+208919  <cycle 19 as a whole> [1]
>>                0.04    0.81      21             do_projectpaint_thread
>> <cycle 19> [4]
>>                0.00    0.08  246842+98310
>> nearest_point_in_tri_surface <cycle 19> [67]
>>                0.02    0.01   16258             GPU_default_lights <cycle
>> 19> [133]
>>                0.01    0.00   41824             BLI_uvproject_from_view
>> <cycle 19> [325]
>>                0.00    0.00       9             project_paint_op <cycle
>> 19> [828]
>>                0.00    0.00     124             GPU_enable_material <cycle
>> 19> [1480]
>>                0.00    0.00    6491+6350        GPU_verify_image <cycle
>> 19> [3067]
>>                0.00    0.00     226             project_bucket_iter_init
>> <cycle 19> [3476]
>>                0.00    0.00     124             imapaint_ibuf_rgb_get
>> <cycle 19> [3555]
>> -----------------------------------------------
>>
>> -----------------------------------------------
>>                                  21             BLI_uvproject_from_view
>> <cycle 19> [325]
>> [4]     13.8    0.04    0.81      21         do_projectpaint_thread <cycle
>> 19> [4]
>>                0.00    0.70      51/51          project_bucket_init [9]
>>                0.04    0.02  204244/204244      brush_painter_do_partial
>> [83]
>>                0.03    0.00  327313/327370      normalize_v3_v3 [139]
>>                0.02    0.00  211135/211135      do_projectpaint_draw [204]
>>                0.00    0.00  225082/412009
>> brush_painter_refresh_cache [2919]
>>                0.00    0.00  198160/642564      mul_v2_fl [2913]
>>                              192223
>> nearest_point_in_tri_surface <cycle 19> [67]
>> -----------------------------------------------
>>                0.08    0.76      24/24          zbufshadeDA_tile [3]
>> [5]     13.8    0.08    0.76      24         zbuffer_transp_shade [5]
>>                0.02    0.36  149371/149371      addtosamp_shr [18]
>>                0.00    0.27  159469/159469      shade_tra_samples [26]
>>                0.12    0.00  763472/858921      add_filt_fmask [52]
>>                0.00    0.00      24/24          zbuffer_abuf_render [1216]
>>                0.00    0.00      39/568017      BL_ConvertMesh(Mesh*,
>> Object*, KX_Scene*, KX_BlenderSceneConverter*) <cycle 29> [66]
>>                0.00    0.00    1433/3272        stats_background [3138]
>>                0.00    0.00      26/134         sky_tile [3551]
>>                0.00    0.00      18/33          shade_sample_initialize
>> [3732]
>> -----------------------------------------------
>>                0.01    0.27  242107/683541      shade_input_set_viewco [24]
>>                0.03    0.49  441434/683541      shade_input_do_shade [11]
>> [6]     13.1    0.04    0.76  683541         shade_material_loop [6]
>>                0.11    0.65  260525/260525      shade_lamp_loop [7]
>>                0.00    0.00  245234/245234      shade_input_init_material
>> [560]
>>                0.00    0.00  232094/232094      negate_v3_v3 [2931]
>> -----------------------------------------------
>>                0.11    0.65  260525/260525      shade_material_loop [6]
>> [7]     12.4    0.11    0.65  260525         shade_lamp_loop [7]
>>                0.16    0.46  241325/241325      do_material_tex [10]
>>                0.01    0.01   98763/98763       shade_one_light [213]
>>                0.01    0.00  210550/210550      sub_v3_v3v3 [345]
>>                0.00    0.00  107056/107056      mistfactor [2949]
>>                0.00    0.00  103417/295699      add_v3_v3 [2924]
>> -----------------------------------------------
>>                0.08    0.62     108/108         project_bucket_init [9]
>> [8]     11.4    0.08    0.62     108         project_paint_face_init [8]
>>                0.14    0.00  317868/319473      project_paint_uvpixel_mask
>> [46]
>>                0.12    0.02  251184/252651      project_paint_uvpixel_init
>> [50]
>>                0.04    0.02 1084653/1552970     undo_copy_tile [61]
>>                0.05    0.01  298694/298694
>> project_bucket_point_occluded [81]
>>                0.01    0.04  280339/280339      screen_px_from_persp [97]
>>                0.04    0.01  265699/268422      BLI_dlrbTree_search_prev
>> [95]
>>                0.00    0.04     200/200         project_bucket_clip_face
>> [123]
>>                0.00    0.03       5/5           uv_image_outset [129]
>>                0.00    0.03  370619/370619      IsectPoly2Df_twoside [156]
>>                0.01    0.00      74/74          normalize_v2_v2 [326]
>>                0.00    0.00      67/654         line_clip_rect2f [111]
>>                0.00    0.00    8183/1004600
>> isect_sweeping_sphere_tri_v3 [53]
>>                0.00    0.00    1538/265582      resolve_quad_uv [112]
>>                0.00    0.00    1680/1680        interp_weights_face_v3
>> [948]
>>                0.00    0.00    1891/1891        barycentric_weights [955]
>>                0.00    0.00     182/34021       BLI_uvproject_camera_info
>> [307]
>>                0.00    0.00      76/642         angle_quad_v3 [2732]
>>                0.00    0.00    2089/48155       invert_m4_m4 [2976]
>>                0.00    0.00    1479/1884        angle_poly_v3 [3208]
>>                0.00    0.00     176/176         pixel_bounds_array [3521]
>>                0.00    0.00      76/76          scale_quad [3597]
>>                0.00    0.00      25/264095      add_v2_v2v2 [2927]
>>                0.00    0.00      15/15          project_face_seams_init
>> [3866]
>>                0.00    0.00      15/15          pixel_bounds_uv [3865]
>> -----------------------------------------------
>>                0.00    0.70      51/51          do_projectpaint_thread
>> <cycle 19> [4]
>> [9]     11.4    0.00    0.70      51         project_bucket_init [9]
>>                0.08    0.62     108/108         project_paint_face_init [8]
>> -----------------------------------------------
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
>
>
>
> --
> - Campbell
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers


More information about the Bf-committers mailing list