Fix #124876: EEVEE: Missing render frame progress in stdout
Print progression and `Instance::info` to stdout. Add more context about missing support for canceling renders and progress reports. Pull Request: https://projects.blender.org/blender/blender/pulls/125094
This commit is contained in:
@@ -167,7 +167,7 @@ static void eevee_render_to_image(void *vedata,
|
||||
rcti visible_rect = rect;
|
||||
|
||||
instance->init(size, &rect, &visible_rect, engine, depsgraph, camera_original_ob, layer);
|
||||
instance->render_frame(layer, viewname);
|
||||
instance->render_frame(engine, layer, viewname);
|
||||
|
||||
EEVEE_Data *ved = static_cast<EEVEE_Data *>(vedata);
|
||||
delete ved->instance;
|
||||
|
||||
@@ -419,6 +419,10 @@ void Instance::render_sample()
|
||||
/* Motion blur may need to do re-sync after a certain number of sample. */
|
||||
if (!is_viewport() && sampling.do_render_sync()) {
|
||||
render_sync();
|
||||
if (!info.empty()) {
|
||||
printf(info.c_str());
|
||||
info = "";
|
||||
}
|
||||
}
|
||||
|
||||
DebugScope debug_scope(debug_scope_render_sample, "EEVEE.render_sample");
|
||||
@@ -510,14 +514,24 @@ void Instance::render_read_result(RenderLayer *render_layer, const char *view_na
|
||||
/** \name Interface
|
||||
* \{ */
|
||||
|
||||
void Instance::render_frame(RenderLayer *render_layer, const char *view_name)
|
||||
void Instance::render_frame(RenderEngine *engine, RenderLayer *render_layer, const char *view_name)
|
||||
{
|
||||
|
||||
/* TODO: Break on RE_engine_test_break(engine) */
|
||||
while (!sampling.finished()) {
|
||||
this->render_sample();
|
||||
|
||||
/* TODO(fclem) print progression. */
|
||||
if ((sampling.sample_index() == 1) || ((sampling.sample_index() % 25) == 0) ||
|
||||
sampling.finished())
|
||||
{
|
||||
/* TODO: Use fmt. */
|
||||
std::string re_info = "Rendering " + std::to_string(sampling.sample_index()) + " / " +
|
||||
std::to_string(sampling.sample_count()) + " samples";
|
||||
RE_engine_update_stats(engine, nullptr, re_info.c_str());
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* TODO(fclem) print progression. */
|
||||
RE_engine_update_progress(engine, float(sampling.sample_index()) / float(sampling.sample_count()));
|
||||
/* TODO(fclem): Does not currently work. But would be better to just display to 2D view like
|
||||
* cycles does. */
|
||||
if (G.background == false && first_read) {
|
||||
|
||||
@@ -207,7 +207,7 @@ class Instance {
|
||||
/* Render. */
|
||||
|
||||
void render_sync();
|
||||
void render_frame(RenderLayer *render_layer, const char *view_name);
|
||||
void render_frame(RenderEngine *engine, RenderLayer *render_layer, const char *view_name);
|
||||
void store_metadata(RenderResult *render_result);
|
||||
|
||||
/* Viewport. */
|
||||
|
||||
Reference in New Issue
Block a user