[Bf-blender-cvs] [9838f9a44b6] temp-viewport-compositor-compiler: Viewport Compositor: Add basic input nodes

Omar Emara noreply at git.blender.org
Fri Feb 18 11:01:18 CET 2022


Commit: 9838f9a44b6c00f54ce4079fb3e013c3339320f8
Author: Omar Emara
Date:   Fri Feb 18 11:52:31 2022 +0200
Branches: temp-viewport-compositor-compiler
https://developer.blender.org/rB9838f9a44b6c00f54ce4079fb3e013c3339320f8

Viewport Compositor: Add basic input nodes

This patch adds basic implmenetations for the render layer and image
nodes.

===================================================================

M	source/blender/draw/engines/compositor/compositor_engine.cc
M	source/blender/gpu/CMakeLists.txt
D	source/blender/gpu/shaders/composite/gpu_shader_composite_image.glsl
A	source/blender/gpu/shaders/compositor/infos/sampler2D_to_RGBA16F_2D_image_info.hh
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_alpha_over.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_alpha_over.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_box_mask.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_box_mask.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_bright_contrast.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_bright_contrast.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_channel_matte.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_channel_matte.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_chroma_matte.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_chroma_matte.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_color_balance.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_balance.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_color_correction.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_correction.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_color_matte.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_matte.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_color_spill.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_spill.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_color_to_luminance.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_to_luminance.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_difference_matte.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_difference_matte.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_distance_matte.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_distance_matte.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_ellipse_mask.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_ellipse_mask.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_exposure.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_exposure.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_gamma.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_gamma.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_hue_correct.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_hue_correct.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_hue_saturation_value.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_hue_saturation_value.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_invert.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_invert.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_luminance_matte.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_luminance_matte.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_map_value.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_map_value.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_normal.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_normal.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_posterize.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_posterize.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_separate_combine.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_separate_combine.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_set_alpha.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_set_alpha.glsl
R100	source/blender/gpu/shaders/composite/gpu_shader_composite_split_viewer.glsl	source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_split_viewer.glsl
A	source/blender/gpu/shaders/compositor/sampler2D_to_RGBA16F_2D_image.glsl
M	source/blender/nodes/NOD_compositor_execute.hh
M	source/blender/nodes/composite/nodes/node_composite_image.cc
M	source/blender/nodes/intern/node_compositor_execute.cc

===================================================================

diff --git a/source/blender/draw/engines/compositor/compositor_engine.cc b/source/blender/draw/engines/compositor/compositor_engine.cc
index b9d507c46ef..f7b1ef1b150 100644
--- a/source/blender/draw/engines/compositor/compositor_engine.cc
+++ b/source/blender/draw/engines/compositor/compositor_engine.cc
@@ -20,6 +20,8 @@
 
 #include "DNA_scene_types.h"
 
+#include "DEG_depsgraph_query.h"
+
 #include "DRW_render.h"
 
 #include "IMB_colormanagement.h"
@@ -49,7 +51,8 @@ class DRWContext : public Context {
 
   GPUTexture *get_pass_texture(int view_layer, eScenePassType pass_type) override
   {
-    return DRW_render_pass_find(DRW_context_state_get()->scene, view_layer, pass_type)->pass_tx;
+    Scene *original_scene = (Scene *)DEG_get_original_id(&DRW_context_state_get()->scene->id);
+    return DRW_render_pass_find(original_scene, view_layer, pass_type)->pass_tx;
   }
 };
 
diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index 44a232fd8aa..669657c3b9e 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -282,32 +282,33 @@ set(GLSL_SRC
   shaders/common/gpu_shader_common_mix_rgb.glsl
   shaders/common/gpu_shader_common_hash.glsl
   
-  shaders/composite/gpu_shader_composite_alpha_over.glsl
-  shaders/composite/gpu_shader_composite_box_mask.glsl
-  shaders/composite/gpu_shader_composite_bright_contrast.glsl
-  shaders/composite/gpu_shader_composite_channel_matte.glsl
-  shaders/composite/gpu_shader_composite_chroma_matte.glsl
-  shaders/composite/gpu_shader_composite_color_balance.glsl
-  shaders/composite/gpu_shader_composite_color_correction.glsl
-  shaders/composite/gpu_shader_composite_color_matte.glsl
-  shaders/composite/gpu_shader_composite_color_spill.glsl
-  shaders/composite/gpu_shader_composite_color_to_luminance.glsl
-  shaders/composite/gpu_shader_composite_difference_matte.glsl
-  shaders/composite/gpu_shader_composite_distance_matte.glsl
-  shaders/composite/gpu_shader_composite_ellipse_mask.glsl
-  shaders/composite/gpu_shader_composite_exposure.glsl
-  shaders/composite/gpu_shader_composite_gamma.glsl
-  shaders/composite/gpu_shader_composite_hue_correct.glsl
-  shaders/composite/gpu_shader_composite_hue_saturation_value.glsl
-  shaders/composite/gpu_shader_composite_image.glsl
-  shaders/composite/gpu_shader_composite_invert.glsl
-  shaders/composite/gpu_shader_composite_luminance_matte.glsl
-  shaders/composite/gpu_shader_composite_map_value.glsl
-  shaders/composite/gpu_shader_composite_normal.glsl
-  shaders/composite/gpu_shader_composite_posterize.glsl
-  shaders/composite/gpu_shader_composite_separate_combine.glsl
-  shaders/composite/gpu_shader_composite_set_alpha.glsl
-  shaders/composite/gpu_shader_composite_split_viewer.glsl
+  shaders/compositor/material/gpu_shader_compositor_alpha_over.glsl
+  shaders/compositor/material/gpu_shader_compositor_box_mask.glsl
+  shaders/compositor/material/gpu_shader_compositor_bright_contrast.glsl
+  shaders/compositor/material/gpu_shader_compositor_channel_matte.glsl
+  shaders/compositor/material/gpu_shader_compositor_chroma_matte.glsl
+  shaders/compositor/material/gpu_shader_compositor_color_balance.glsl
+  shaders/compositor/material/gpu_shader_compositor_color_correction.glsl
+  shaders/compositor/material/gpu_shader_compositor_color_matte.glsl
+  shaders/compositor/material/gpu_shader_compositor_color_spill.glsl
+  shaders/compositor/material/gpu_shader_compositor_color_to_luminance.glsl
+  shaders/compositor/material/gpu_shader_compositor_difference_matte.glsl
+  shaders/compositor/material/gpu_shader_compositor_distance_matte.glsl
+  shaders/compositor/material/gpu_shader_compositor_ellipse_mask.glsl
+  shaders/compositor/material/gpu_shader_compositor_exposure.glsl
+  shaders/compositor/material/gpu_shader_compositor_gamma.glsl
+  shaders/compositor/material/gpu_shader_compositor_hue_correct.glsl
+  shaders/compositor/material/gpu_shader_compositor_hue_saturation_value.glsl
+  shaders/compositor/material/gpu_shader_compositor_invert.glsl
+  shaders/compositor/material/gpu_shader_compositor_luminance_matte.glsl
+  shaders/compositor/material/gpu_shader_compositor_map_value.glsl
+  shaders/compositor/material/gpu_shader_compositor_normal.glsl
+  shaders/compositor/material/gpu_shader_compositor_posterize.glsl
+  shaders/compositor/material/gpu_shader_compositor_separate_combine.glsl
+  shaders/compositor/material/gpu_shader_compositor_set_alpha.glsl
+  shaders/compositor/material/gpu_shader_compositor_split_viewer.glsl
+
+  shaders/compositor/sampler2D_to_RGBA16F_2D_image.glsl
 
   shaders/material/gpu_shader_material_add_shader.glsl
   shaders/material/gpu_shader_material_ambient_occlusion.glsl
@@ -488,6 +489,8 @@ set(SHADER_CREATE_INFOS
   shaders/infos/gpu_shader_simple_lighting_info.hh
   shaders/infos/gpu_shader_text_info.hh
   shaders/infos/gpu_srgb_to_framebuffer_space_info.hh
+
+  shaders/compositor/infos/sampler2D_to_RGBA16F_2D_image_info.hh
 )
 
 set(SHADER_CREATE_INFOS_CONTENT "")
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_image.glsl b/source/blender/gpu/shaders/composite/gpu_shader_composite_image.glsl
deleted file mode 100644
index a0ca6b4e495..00000000000
--- a/source/blender/gpu/shaders/composite/gpu_shader_composite_image.glsl
+++ /dev/null
@@ -1,16 +0,0 @@
-
-void node_composite_image(sampler2D tex, out vec4 result)
-{
-  /* TODO(fclem) correct positionning. */
-  result = texture(tex, g_data.uv_texco);
-}
-
-void node_composite_image_empty(out vec4 result)
-{
-  result = vec4(0.0);
-}
-
-void node_composite_rlayers(sampler2D rlayer, out vec4 result)
-{
-  result = texture(rlayer, g_data.uv_render_layer);
-}
diff --git a/source/blender/gpu/shaders/compositor/infos/sampler2D_to_RGBA16F_2D_image_info.hh b/source/blender/gpu/shaders/compositor/infos/sampler2D_to_RGBA16F_2D_image_info.hh
new file mode 100644
index 00000000000..b1ef8432801
--- /dev/null
+++ b/source/blender/gpu/shaders/compositor/infos/sampler2D_to_RGBA16F_2D_image_info.hh
@@ -0,0 +1,31 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2022 Blender Foundation.
+ * All rights reserved.
+ */
+
+/** \file
+ * \ingroup gpu
+ */
+
+#include "gpu_shader_create_info.hh"
+
+GPU_SHADER_CREATE_INFO(sampler2D_to_RGBA16F_2D_image)
+    .local_group_size(16, 16)
+    .sampler(0, ImageType::FLOAT_2D, "input_sampler", Frequency::PASS)
+    .image(0, GPU_RGBA16F, Qualifier::WRITE, ImageType::FLOAT_2D, "output_image")
+    .compute_source("sampler2D_to_RGBA16F_2D_image.glsl")
+    .do_static_compilation(true);
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_alpha_over.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_alpha_over.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composite/gpu_shader_composite_alpha_over.glsl
rename to source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_alpha_over.glsl
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_box_mask.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_box_mask.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composite/gpu_shader_composite_box_mask.glsl
rename to source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_box_mask.glsl
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_bright_contrast.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_bright_contrast.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composite/gpu_shader_composite_bright_contrast.glsl
rename to source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_bright_contrast.glsl
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_channel_matte.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_channel_matte.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composite/gpu_shader_composite_channel_matte.glsl
rename to source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_channel_matte.glsl
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_chroma_matte.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_chroma_matte.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composite/gpu_shader_composite_chroma_matte.glsl
rename to source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_chroma_matte.glsl
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_color_balance.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_balance.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composite/gpu_shader_composite_color_balance.glsl
rename to source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_balance.glsl
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_color_correction.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_correction.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composite/gpu_shader_composite_color_correction.glsl
rename to source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_correction.glsl
diff --git a/source/blender/gpu/shaders/composite/gpu_shader_composite_color_matte.glsl b/source/blender/gpu/shaders/compositor/material/gpu_shader_compositor_color_matte.glsl
similarity index 100%
rename from source/blender/gpu/shaders/composi

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list