[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