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:
authorJeroen Bakker <jbakker>2022-01-25 16:46:25 +0300
committerJeroen Bakker <jeroen@blender.org>2022-01-25 16:46:45 +0300
commit3f42417cd4c8c01142937ba03c8fa6ef6e895494 (patch)
tree1a3190641fbba649efe651b3a6c7ffdbee501ebc /source/blender/gpu/opengl/gl_shader.cc
parent196da819ba4cf553c76468a091966f33081efb08 (diff)
Draw: Migrate hair refine compute shader to use create info.
This patch migrates the draw manager hair refine compute shader to use GPUShaderCreateInfo. Reviewed By: fclem Differential Revision: https://developer.blender.org/D13915
Diffstat (limited to 'source/blender/gpu/opengl/gl_shader.cc')
-rw-r--r--source/blender/gpu/opengl/gl_shader.cc32
1 files changed, 24 insertions, 8 deletions
diff --git a/source/blender/gpu/opengl/gl_shader.cc b/source/blender/gpu/opengl/gl_shader.cc
index cec85abae6f..bf18ba09c03 100644
--- a/source/blender/gpu/opengl/gl_shader.cc
+++ b/source/blender/gpu/opengl/gl_shader.cc
@@ -271,16 +271,16 @@ static void print_image_type(std::ostream &os,
static std::ostream &print_qualifier(std::ostream &os, const Qualifier &qualifiers)
{
- if ((qualifiers & Qualifier::RESTRICT) != Qualifier::RESTRICT) {
- os << "restrict";
+ if ((qualifiers & Qualifier::RESTRICT) == Qualifier::RESTRICT) {
+ os << "restrict ";
}
- if ((qualifiers & Qualifier::READ_ONLY) != Qualifier::READ_ONLY) {
- os << "readonly";
+ if ((qualifiers & Qualifier::READ_ONLY) == Qualifier::READ_ONLY) {
+ os << "readonly ";
}
- if ((qualifiers & Qualifier::WRITE_ONLY) != Qualifier::WRITE_ONLY) {
- os << "writeonly";
+ if ((qualifiers & Qualifier::WRITE_ONLY) == Qualifier::WRITE_ONLY) {
+ os << "writeonly ";
}
- return os << " ";
+ return os;
}
static void print_resource(std::ostream &os, const ShaderCreateInfo::Resource &res)
@@ -328,8 +328,8 @@ static void print_resource(std::ostream &os, const ShaderCreateInfo::Resource &r
array_offset = res.storagebuf.name.find_first_of("[");
name_no_array = (array_offset == -1) ? res.storagebuf.name :
StringRef(res.storagebuf.name.c_str(), array_offset);
- os << "buffer ";
print_qualifier(os, res.storagebuf.qualifiers);
+ os << "buffer ";
os << name_no_array << " { " << res.storagebuf.type_name << " _" << res.storagebuf.name
<< "; };\n";
break;
@@ -507,6 +507,22 @@ std::string GLShader::geometry_interface_declare(const ShaderCreateInfo &info) c
return ss.str();
}
+std::string GLShader::compute_layout_declare(const ShaderCreateInfo &info) const
+{
+ std::stringstream ss;
+ ss << "\n/* Compute Layout. */\n";
+ ss << "layout(local_size_x = " << info.compute_layout_.local_size_x;
+ if (info.compute_layout_.local_size_y != -1) {
+ ss << ", local_size_y = " << info.compute_layout_.local_size_y;
+ }
+ if (info.compute_layout_.local_size_z != -1) {
+ ss << ", local_size_y = " << info.compute_layout_.local_size_z;
+ }
+ ss << ") in;\n";
+ ss << "\n";
+ return ss.str();
+}
+
/** \} */
/* -------------------------------------------------------------------- */