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:
-rw-r--r--intern/cycles/blender/blender_camera.cpp2
-rw-r--r--intern/cycles/blender/blender_sync.cpp3
-rw-r--r--intern/cycles/blender/blender_viewport.cpp16
-rw-r--r--intern/cycles/blender/blender_viewport.h4
-rw-r--r--intern/cycles/kernel/kernel_passes.h4
-rw-r--r--intern/cycles/render/buffers.cpp2
-rw-r--r--intern/cycles/render/film.cpp2
7 files changed, 9 insertions, 24 deletions
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp
index 3b19e78894a..c84d6e1572b 100644
--- a/intern/cycles/blender/blender_camera.cpp
+++ b/intern/cycles/blender/blender_camera.cpp
@@ -899,7 +899,7 @@ BufferParams BlenderSync::get_buffer_params(BL::RenderSettings &b_render,
params.height = height;
}
- update_viewport_display_passes(b_v3d, params.passes, false);
+ update_viewport_display_passes(b_v3d, params.passes);
return params;
}
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 1a166d171bc..f04455ff75e 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -344,7 +344,7 @@ void BlenderSync::sync_film(BL::SpaceView3D &b_v3d)
Film prevfilm = *film;
if (b_v3d) {
- film->display_pass = update_viewport_display_passes(b_v3d, film->passes, true);
+ film->display_pass = update_viewport_display_passes(b_v3d, film->passes);
}
film->exposure = get_float(cscene, "film_exposure");
@@ -520,7 +520,6 @@ int BlenderSync::get_denoising_pass(BL::RenderPass &b_pass)
vector<Pass> BlenderSync::sync_render_passes(BL::RenderLayer &b_rlay, BL::ViewLayer &b_view_layer)
{
vector<Pass> passes;
- Pass::add(PASS_COMBINED, passes);
/* loop over passes */
BL::RenderLayer::passes_iterator b_pass_iter;
diff --git a/intern/cycles/blender/blender_viewport.cpp b/intern/cycles/blender/blender_viewport.cpp
index a74b20f150b..73ef5f94720 100644
--- a/intern/cycles/blender/blender_viewport.cpp
+++ b/intern/cycles/blender/blender_viewport.cpp
@@ -72,23 +72,13 @@ PassType BlenderViewportParameters::get_viewport_display_render_pass(BL::SpaceVi
return display_pass;
}
-PassType update_viewport_display_passes(BL::SpaceView3D &b_v3d,
- vector<Pass> &passes,
- bool reset_passes)
+PassType update_viewport_display_passes(BL::SpaceView3D &b_v3d, vector<Pass> &passes)
{
if (b_v3d) {
PassType display_pass = BlenderViewportParameters::get_viewport_display_render_pass(b_v3d);
- if (reset_passes) {
- passes.clear();
- /* We always need a combined pass for now. It would be a good optimization
- * to support rendering without combined pass. */
- Pass::add(PASS_COMBINED, passes);
- }
-
- if (display_pass != PASS_COMBINED) {
- Pass::add(display_pass, passes);
- }
+ passes.clear();
+ Pass::add(display_pass, passes);
return display_pass;
}
diff --git a/intern/cycles/blender/blender_viewport.h b/intern/cycles/blender/blender_viewport.h
index 564c4f2b210..f26d0d38115 100644
--- a/intern/cycles/blender/blender_viewport.h
+++ b/intern/cycles/blender/blender_viewport.h
@@ -49,9 +49,7 @@ class BlenderViewportParameters {
static PassType get_viewport_display_render_pass(BL::SpaceView3D &b_v3d);
};
-PassType update_viewport_display_passes(BL::SpaceView3D &b_v3d,
- vector<Pass> &passes,
- bool reset_passes);
+PassType update_viewport_display_passes(BL::SpaceView3D &b_v3d, vector<Pass> &passes);
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/kernel_passes.h
index 4a424866efe..c1d74dddc2a 100644
--- a/intern/cycles/kernel/kernel_passes.h
+++ b/intern/cycles/kernel/kernel_passes.h
@@ -397,7 +397,9 @@ ccl_device_inline void kernel_write_result(KernelGlobals *kg,
float alpha;
float3 L_sum = path_radiance_clamp_and_sum(kg, L, &alpha);
- kernel_write_pass_float4(buffer, make_float4(L_sum.x, L_sum.y, L_sum.z, alpha));
+ if (kernel_data.film.pass_flag & PASSMASK(COMBINED)) {
+ kernel_write_pass_float4(buffer, make_float4(L_sum.x, L_sum.y, L_sum.z, alpha));
+ }
kernel_write_light_passes(kg, buffer, L);
diff --git a/intern/cycles/render/buffers.cpp b/intern/cycles/render/buffers.cpp
index ad3827df7e3..49e15d9eaf1 100644
--- a/intern/cycles/render/buffers.cpp
+++ b/intern/cycles/render/buffers.cpp
@@ -43,8 +43,6 @@ BufferParams::BufferParams()
denoising_data_pass = false;
denoising_clean_pass = false;
denoising_prefiltered_pass = false;
-
- Pass::add(PASS_COMBINED, passes);
}
void BufferParams::get_offset_stride(int &offset, int &stride)
diff --git a/intern/cycles/render/film.cpp b/intern/cycles/render/film.cpp
index 5bf7ba97515..7f5bec2a66e 100644
--- a/intern/cycles/render/film.cpp
+++ b/intern/cycles/render/film.cpp
@@ -293,8 +293,6 @@ NODE_DEFINE(Film)
Film::Film() : Node(node_type)
{
- Pass::add(PASS_COMBINED, passes);
-
use_light_visibility = false;
filter_table_offset = TABLE_OFFSET_INVALID;
cryptomatte_passes = CRYPT_NONE;