利用者:DingTo/GSoC 2016/Weekly Reports/Week11

提供: wiki
移動先: 案内検索

Week 11

What I did this week

Half Float Support

I did some work on half float support.

  • Added support for CUDA half. I still have one error there, which I need to solve, but hopefully can do that soon. Otherwise I ask for help, probably I am just missing something.
  • Started to work on support for converting half ImBuf buffers (e.g. Smoke) to half format, to further save memory.

I will commit these things on Monday latest (not at my Desktop this weekend), need to iron out some todos still as well and de-duplicate code.

Statistics

Brecht showed me some nice Renderman statistics last week, which is a XML / HTML file, that gets saved to disk after each render. Instead of adding more info to the Blender UI, I started to look into this kind of logging output. Benefits:

  • No further clutter inside of Blenders UI (and it's still not decided where to put such infos anyway), nor is the info hidden inside a terminal, so it's better for the user.
  • Cycles would save out a log file next to the render output (one for each rendered frame), like render_statistics_001.html.
  • The file would contain statistics about the render such as:
    • Render Time / Duration, Start-/End time.
    • Detailed memory statistics
    • Visually nice elements such as pie charts, showing how much memory was used for each category (BVH, Textures, Attributes...)

That is also very useful for renderfarms and headless servers, and can be implemented quicker than into the Blender UI. Note: That thing is meant as additional information, not as a real time logging instrument. For error messages or live info, the terminal is still the way to go. This is meant more as a summary for people to check after a successful render.

Next week

  • Commit my code for half to my branch and hopefully merge it to master after code review.
  • Implement the html summary logging as explained above.

Questions

  • Where to save the logging data on runtime? We can of course pipe all the VLOG info to some temp struct / buffer, and use that to fill the html then, but there might be a more simple / elegant solution.