EEVEE Next: Add info count for shader optimization jobs in progress

Authored by Apple: Michael Parkin-White

Pull Request: https://projects.blender.org/blender/blender/pulls/112533
This commit is contained in:
Jason Fielder 2023-09-22 11:38:06 +02:00 committed by Clément Foucault
parent dacb768cb6
commit c9f44a2f9d
3 changed files with 14 additions and 2 deletions

View File

@ -472,6 +472,11 @@ void Instance::draw_viewport(DefaultFramebufferList *dfbl)
ss << "Compiling Shaders (" << materials.queued_shaders_count << " remaining)";
info = ss.str();
}
else if (materials.queued_optimize_shaders_count > 0) {
std::stringstream ss;
ss << "Optimizing Shaders (" << materials.queued_optimize_shaders_count << " remaining)";
info = ss.str();
}
}
void Instance::store_metadata(RenderResult *render_result)

View File

@ -150,6 +150,7 @@ MaterialModule::~MaterialModule()
void MaterialModule::begin_sync()
{
queued_shaders_count = 0;
queued_optimize_shaders_count = 0;
material_map_.clear();
shader_map_.clear();
@ -172,8 +173,13 @@ MaterialPass MaterialModule::material_pass_get(Object *ob,
blender_mat, ntree, pipeline_type, geometry_type, use_deferred_compilation);
switch (GPU_material_status(matpass.gpumat)) {
case GPU_MAT_SUCCESS:
break;
case GPU_MAT_SUCCESS: {
/* Determine optimization status for remaining compilations counter. */
int optimization_status = GPU_material_optimization_status(matpass.gpumat);
if (optimization_status == GPU_MAT_OPTIMIZATION_QUEUED) {
queued_optimize_shaders_count++;
}
} break;
case GPU_MAT_QUEUED:
queued_shaders_count++;
blender_mat = (geometry_type == MAT_GEOM_VOLUME_OBJECT) ? BKE_material_default_volume() :

View File

@ -234,6 +234,7 @@ class MaterialModule {
::Material *glossy_mat;
int64_t queued_shaders_count = 0;
int64_t queued_optimize_shaders_count = 0;
private:
Instance &inst_;