diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-11-05 12:05:14 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2012-11-05 12:05:14 +0400 |
commit | 759ea4078782ace683a3e835166b7f324c8e3224 (patch) | |
tree | 80b50138b42f89a247612c9461d467391014683d /source/blender/editors | |
parent | 6eec49ed20fb3a8032718d5f4b9a3e774098df3f (diff) |
Render engines: replace number of x/y tiles with tile size
Now tile size is setting up explicitly instead of using number of tiles.
This allows better control over GPU performance, where having tiles aligned
to specific size makes lots of sense.
Still to come: need to update startup.blend to make tiles size 64x64.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/render/render_preview.c | 11 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_draw.c | 10 |
2 files changed, 9 insertions, 12 deletions
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c index a2f31b35246..53cb5340940 100644 --- a/source/blender/editors/render/render_preview.c +++ b/source/blender/editors/render/render_preview.c @@ -266,10 +266,13 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre BKE_color_managed_view_settings_copy(&sce->view_settings, &scene->view_settings); /* prevent overhead for small renders and icons (32) */ - if (id && sp->sizex < 40) - sce->r.xparts = sce->r.yparts = 1; - else - sce->r.xparts = sce->r.yparts = 4; + if (id && sp->sizex < 40) { + sce->r.tilex = sce->r.tiley = 64; + } + else { + sce->r.tilex = sce->r.xsch / 4; + sce->r.tiley = sce->r.ysch / 4; + } /* exception: don't apply render part of display transform for texture previews or icons */ if ((id && sp->pr_method == PR_ICON_RENDER) || id_type == ID_TE) { diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 0a282a17f74..4d4fad47698 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2857,14 +2857,8 @@ static int view3d_main_area_draw_engine(const bContext *C, ARegion *ar, int draw engine = RE_engine_create(type); - engine->tile_x = ceil(ar->winx / (float)scene->r.xparts); - engine->tile_y = ceil(ar->winy / (float)scene->r.yparts); - - /* clamp small tile sizes to prevent inefficient threading utilization - * the same happens for final renders as well - */ - engine->tile_x = max_ii(engine->tile_x, 64); - engine->tile_y = max_ii(engine->tile_x, 64); + engine->tile_x = scene->r.tilex; + engine->tile_y = scene->r.tiley; type->view_update(engine, C); |