Changeset View
Changeset View
Standalone View
Standalone View
render_auto_tile_size.py
| Context not available. | |||||
| def get_tilesize_prop(engine, device, userpref): | def get_tilesize_prop(engine, device, userpref): | ||||
| target_type = "_choice" if bpy.context.scene.ats_settings.target_type == 'po2' else "_custom" | target_type = "_choice" if bpy.context.scene.ats_settings.target_type == 'po2' else "_custom" | ||||
| if engine_is_gpu(engine, device, userpref): | if engine_is_gpu(engine, device, userpref): | ||||
| return ("gpu" + target_type) | return "gpu" + target_type | ||||
| elif engine == 'CYCLES': | elif engine == 'CYCLES': | ||||
| return ("cpu" + target_type) | return "cpu" + target_type | ||||
| return ("bi" + target_type) | return "bi" + target_type | ||||
| @persistent | @persistent | ||||
| Context not available. | |||||
| def get_actual_res(render): | def get_actual_res(render): | ||||
| rend_percent = render.resolution_percentage * 0.01 | rend_percent = render.resolution_percentage * 0.01 | ||||
| # floor is implicitly done by int conversion... | # floor is implicitly done by int conversion... | ||||
| return (int(render.resolution_x * rend_percent), int(render.resolution_y * rend_percent)) | return int(render.resolution_x * rend_percent), int(render.resolution_y * rend_percent) | ||||
| def get_threads(context, device): | def get_threads(context, device): | ||||
| render = context.scene.render | render = context.scene.render | ||||
| Context not available. | |||||
| tile_x = ceil(xres / numtiles_x) | tile_x = ceil(xres / numtiles_x) | ||||
| tile_y = ceil(yres / numtiles_y) | tile_y = ceil(yres / numtiles_y) | ||||
| return (tile_x, tile_y) | return tile_x, tile_y | ||||
| def do_set_tile_size(context): | def do_set_tile_size(context): | ||||
| if not ats_poll(context): | if not ats_poll(context): | ||||
| Context not available. | |||||
| # Detect if there are fewer tiles than available threads | # Detect if there are fewer tiles than available threads | ||||
| threads = get_threads(context, device) | threads = get_threads(context, device) | ||||
| if ((numtiles_x * numtiles_y) < threads): | if (numtiles_x * numtiles_y) < threads: | ||||
| settings.threads_error = True | settings.threads_error = True | ||||
| if settings.thread_error_correct: | if settings.thread_error_correct: | ||||
| tile_x, tile_y = max_tile_size(threads, xres, yres) | tile_x, tile_y = max_tile_size(threads, xres, yres) | ||||
| Context not available. | |||||