Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2022-05-19 01:32:27 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-05-19 01:35:36 +0300
commitb3e53d6daaf95860c7a5fd16d79b411dbc7b0295 (patch)
tree96aeec4240adb482bdecdd62bcd7e88f0a6fb987 /source/blender/draw
parentf4028630bfdaa0e22be0872f209505dbb6b0aa2d (diff)
EEVEE-Next: Fix display of compiling shader countdown
Also fix naming convention on public variable.
Diffstat (limited to 'source/blender/draw')
-rw-r--r--source/blender/draw/engines/eevee_next/eevee_instance.cc8
-rw-r--r--source/blender/draw/engines/eevee_next/eevee_material.cc24
-rw-r--r--source/blender/draw/engines/eevee_next/eevee_material.hh8
3 files changed, 24 insertions, 16 deletions
diff --git a/source/blender/draw/engines/eevee_next/eevee_instance.cc b/source/blender/draw/engines/eevee_next/eevee_instance.cc
index d037b46eaef..606630bcdef 100644
--- a/source/blender/draw/engines/eevee_next/eevee_instance.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_instance.cc
@@ -8,6 +8,8 @@
* An instance contains all structures needed to do a complete render.
*/
+#include <sstream>
+
#include "BKE_global.h"
#include "BKE_object.h"
#include "BLI_rect.h"
@@ -184,6 +186,12 @@ void Instance::draw_viewport(DefaultFramebufferList *dfbl)
UNUSED_VARS(dfbl);
render_sample();
velocity.step_swap();
+
+ if (materials.queued_shaders_count > 0) {
+ std::stringstream ss;
+ ss << "Compiling Shaders " << materials.queued_shaders_count;
+ info = ss.str();
+ }
}
/** \} */
diff --git a/source/blender/draw/engines/eevee_next/eevee_material.cc b/source/blender/draw/engines/eevee_next/eevee_material.cc
index d28e165478f..33204ed9474 100644
--- a/source/blender/draw/engines/eevee_next/eevee_material.cc
+++ b/source/blender/draw/engines/eevee_next/eevee_material.cc
@@ -75,11 +75,11 @@ MaterialModule::MaterialModule(Instance &inst) : inst_(inst)
{
bNodeTree *ntree = ntreeAddTree(nullptr, "Shader Nodetree", ntreeType_Shader->idname);
- diffuse_mat_ = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default diffuse");
- diffuse_mat_->nodetree = ntree;
- diffuse_mat_->use_nodes = true;
+ diffuse_mat = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default diffuse");
+ diffuse_mat->nodetree = ntree;
+ diffuse_mat->use_nodes = true;
/* To use the forward pipeline. */
- diffuse_mat_->blend_method = MA_BM_BLEND;
+ diffuse_mat->blend_method = MA_BM_BLEND;
bNode *bsdf = nodeAddStaticNode(nullptr, ntree, SH_NODE_BSDF_DIFFUSE);
bNodeSocket *base_color = nodeFindSocket(bsdf, SOCK_IN, "Color");
@@ -98,11 +98,11 @@ MaterialModule::MaterialModule(Instance &inst) : inst_(inst)
{
bNodeTree *ntree = ntreeAddTree(nullptr, "Shader Nodetree", ntreeType_Shader->idname);
- glossy_mat_ = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default metal");
- glossy_mat_->nodetree = ntree;
- glossy_mat_->use_nodes = true;
+ glossy_mat = (::Material *)BKE_id_new_nomain(ID_MA, "EEVEE default metal");
+ glossy_mat->nodetree = ntree;
+ glossy_mat->use_nodes = true;
/* To use the forward pipeline. */
- glossy_mat_->blend_method = MA_BM_BLEND;
+ glossy_mat->blend_method = MA_BM_BLEND;
bNode *bsdf = nodeAddStaticNode(nullptr, ntree, SH_NODE_BSDF_GLOSSY);
bNodeSocket *base_color = nodeFindSocket(bsdf, SOCK_IN, "Color");
@@ -149,14 +149,14 @@ MaterialModule::~MaterialModule()
for (Material *mat : material_map_.values()) {
delete mat;
}
- BKE_id_free(nullptr, glossy_mat_);
- BKE_id_free(nullptr, diffuse_mat_);
+ BKE_id_free(nullptr, glossy_mat);
+ BKE_id_free(nullptr, diffuse_mat);
BKE_id_free(nullptr, error_mat_);
}
void MaterialModule::begin_sync()
{
- queued_shaders_count_ = 0;
+ queued_shaders_count = 0;
for (Material *mat : material_map_.values()) {
mat->init = false;
@@ -180,7 +180,7 @@ MaterialPass MaterialModule::material_pass_get(::Material *blender_mat,
case GPU_MAT_SUCCESS:
break;
case GPU_MAT_QUEUED:
- queued_shaders_count_++;
+ queued_shaders_count++;
blender_mat = (geometry_type == MAT_GEOM_VOLUME) ? BKE_material_default_volume() :
BKE_material_default_surface();
matpass.gpumat = inst_.shaders.material_shader_get(
diff --git a/source/blender/draw/engines/eevee_next/eevee_material.hh b/source/blender/draw/engines/eevee_next/eevee_material.hh
index 6cc5b483fc3..bdf9b7824c5 100644
--- a/source/blender/draw/engines/eevee_next/eevee_material.hh
+++ b/source/blender/draw/engines/eevee_next/eevee_material.hh
@@ -219,8 +219,10 @@ struct MaterialArray {
class MaterialModule {
public:
- ::Material *diffuse_mat_;
- ::Material *glossy_mat_;
+ ::Material *diffuse_mat;
+ ::Material *glossy_mat;
+
+ int64_t queued_shaders_count = 0;
private:
Instance &inst_;
@@ -234,8 +236,6 @@ class MaterialModule {
::Material *error_mat_;
- int64_t queued_shaders_count_ = 0;
-
public:
MaterialModule(Instance &inst);
~MaterialModule();