|
Blender V5.0
|
#include "BLI_hash.hh"#include "BLI_string_ref.hh"#include "BLI_utildefines_variadic.h"#include "BLI_vector.hh"#include "GPU_common_types.hh"#include "GPU_material.hh"#include "GPU_texture.hh"#include <iostream>#include "gpu_shader_srd_info.hh"Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::gpu |
| namespace | blender::gpu::shader |
Macros | |
| #define | GPU_FORCE_ENABLE_SHADER_PRINTF 0 |
| #define | GPU_SHADER_PRINTF_ENABLE 1 |
| #define | GPU_SHADER_PRINTF_SLOT 13 |
| #define | GPU_SHADER_PRINTF_MAX_CAPACITY (1024 * 4) |
| #define | GPU_SSBO_INDEX_BUF_SLOT 7 |
| #define | GPU_SSBO_POLYLINE_POS_BUF_SLOT 0 |
| #define | GPU_SSBO_POLYLINE_COL_BUF_SLOT 1 |
| #define | GPU_SHADER_NAMED_INTERFACE_INFO(_interface, _inst_name) |
| #define | GPU_SHADER_INTERFACE_INFO(_interface) |
| #define | GPU_SHADER_CREATE_INFO(_info) |
| #define | GPU_SHADER_NAMED_INTERFACE_END(_inst_name) |
| #define | GPU_SHADER_INTERFACE_END() |
| #define | GPU_SHADER_CREATE_END() |
| #define | SMOOTH(type, name) |
| #define | FLAT(type, name) |
| #define | NO_PERSPECTIVE(type, name) |
| #define | LOCAL_GROUP_SIZE(...) |
| #define | VERTEX_IN(slot, type, name) |
| #define | VERTEX_IN_SRD(srd) |
| #define | VERTEX_OUT(stage_interface) |
| #define | VERTEX_OUT_SRD(srd) |
| #define | GEOMETRY_LAYOUT(...) |
| #define | GEOMETRY_OUT(stage_interface) |
| #define | SUBPASS_IN(slot, type, img_type, name, rog) |
| #define | FRAGMENT_OUT(slot, type, name) |
| #define | FRAGMENT_OUT_SRD(srd) |
| #define | FRAGMENT_OUT_DUAL(slot, type, name, blend) |
| #define | FRAGMENT_OUT_ROG(slot, type, name, rog) |
| #define | RESOURCE_SRD(srd) |
| #define | EARLY_FRAGMENT_TEST(enable) |
| #define | DEPTH_WRITE(value) |
| #define | SPECIALIZATION_CONSTANT(type, name, default_value) |
| #define | COMPILATION_CONSTANT(type, name, value) |
| #define | PUSH_CONSTANT(type, name) |
| #define | PUSH_CONSTANT_ARRAY(type, name, array_size) |
| #define | UNIFORM_BUF(slot, type_name, name) |
| #define | UNIFORM_BUF_FREQ(slot, type_name, name, freq) |
| #define | STORAGE_BUF(slot, qualifiers, type_name, name) |
| #define | STORAGE_BUF_FREQ(slot, qualifiers, type_name, name, freq) |
| #define | SAMPLER(slot, type, name) |
| #define | SAMPLER_FREQ(slot, type, name, freq) |
| #define | IMAGE(slot, format, qualifiers, type, name) |
| #define | IMAGE_FREQ(slot, format, qualifiers, type, name, freq) |
| #define | GROUP_SHARED(type, name) |
| #define | BUILTINS(builtin) |
| #define | VERTEX_SOURCE(filename) |
| #define | FRAGMENT_SOURCE(filename) |
| #define | COMPUTE_SOURCE(filename) |
| #define | VERTEX_FUNCTION(function) |
| #define | FRAGMENT_FUNCTION(function) |
| #define | COMPUTE_FUNCTION(function) |
| #define | DEFINE(name) |
| #define | DEFINE_VALUE(name, value) |
| #define | DO_STATIC_COMPILATION() |
| #define | AUTO_RESOURCE_LOCATION() |
| #define | METAL_BACKEND_ONLY() |
| #define | ADDITIONAL_INFO(info_name) |
| #define | TYPEDEF_SOURCE(filename) |
| #define | MTL_MAX_TOTAL_THREADS_PER_THREADGROUP(value) |
| #define | _INFO_EXPAND2(a, b) |
| #define | _INFO_EXPAND3(a, b, c) |
| #define | _INFO_EXPAND4(a, b, c, d) |
| #define | _INFO_EXPAND5(a, b, c, d, e) |
| #define | _INFO_EXPAND6(a, b, c, d, e, f) |
| #define | ADDITIONAL_INFO_EXPAND(...) |
| #define | CREATE_INFO_VARIANT(name, ...) |
| #define | TYPES_EXPAND(s) |
| #define | TYPES_EXPAND(s) |
| #define | TYPES_EXPAND(s) |
| #define | TYPES_EXPAND(s) |
| #define | TYPES_EXPAND(s) |
| #define | TEST_EQUAL(a, b, _member) |
| #define | TEST_VECTOR_EQUAL(a, b, _vector) |
Typedefs | |
| using | blender::gpu::shader::GeneratedSourceList = Vector<shader::GeneratedSource, 0> |
Functions | |
| static Type | blender::gpu::shader::to_type (const GPUType type) |
| static std::ostream & | blender::gpu::shader::operator<< (std::ostream &stream, const Type type) |
| static std::ostream & | blender::gpu::shader::operator<< (std::ostream &stream, const GPUType type) |
| blender::gpu::shader::ENUM_OPERATORS (BuiltinBits, BuiltinBits::USE_DEBUG_DRAW) | |
| blender::gpu::shader::ENUM_OPERATORS (Qualifier, Qualifier::QUALIFIER_MAX) | |
Descriptor type used to define shader structure, resources and interfaces.
Some rule of thumb:
Definition in file gpu_shader_create_info.hh.
| #define _INFO_EXPAND2 | ( | a, | |
| b ) |
Definition at line 315 of file gpu_shader_create_info.hh.
| #define _INFO_EXPAND3 | ( | a, | |
| b, | |||
| c ) |
Definition at line 316 of file gpu_shader_create_info.hh.
| #define _INFO_EXPAND4 | ( | a, | |
| b, | |||
| c, | |||
| d ) |
Definition at line 317 of file gpu_shader_create_info.hh.
Definition at line 318 of file gpu_shader_create_info.hh.
Definition at line 319 of file gpu_shader_create_info.hh.
| #define ADDITIONAL_INFO | ( | info_name | ) |
Definition at line 206 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), log(), max(), max(), OVERLAY_INFO_VARIATIONS_MODELMAT(), pow(), pow(), pow(), pow(), reduce_max(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), and vec4().
| #define ADDITIONAL_INFO_EXPAND | ( | ... | ) |
Definition at line 321 of file gpu_shader_create_info.hh.
| #define AUTO_RESOURCE_LOCATION | ( | ) |
Definition at line 201 of file gpu_shader_create_info.hh.
| #define BUILTINS | ( | builtin | ) |
Definition at line 187 of file gpu_shader_create_info.hh.
| #define COMPILATION_CONSTANT | ( | type, | |
| name, | |||
| value ) |
Definition at line 151 of file gpu_shader_create_info.hh.
| #define COMPUTE_FUNCTION | ( | function | ) |
Definition at line 195 of file gpu_shader_create_info.hh.
| #define COMPUTE_SOURCE | ( | filename | ) |
Definition at line 191 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), vec4(), and vec4().
| #define CREATE_INFO_VARIANT | ( | name, | |
| ... ) |
Definition at line 323 of file gpu_shader_create_info.hh.
| #define DEFINE | ( | name | ) |
Definition at line 197 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), LOCAL_GROUP_SIZE(), OVERLAY_INFO_VARIATIONS_MODELMAT(), and vec4().
| #define DEFINE_VALUE | ( | name, | |
| value ) |
Definition at line 198 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), dot(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), log(), max(), max(), pow(), pow(), pow(), pow(), reduce_max(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), and vec4().
| #define DEPTH_WRITE | ( | value | ) |
Definition at line 146 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().
| #define DO_STATIC_COMPILATION | ( | ) |
Definition at line 200 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), log(), max(), max(), OVERLAY_INFO_VARIATIONS_MODELMAT(), pow(), pow(), pow(), pow(), reduce_max(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), and vec4().
| #define EARLY_FRAGMENT_TEST | ( | enable | ) |
Definition at line 145 of file gpu_shader_create_info.hh.
| #define FLAT | ( | type, | |
| name ) |
Definition at line 119 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().
| #define FRAGMENT_FUNCTION | ( | function | ) |
Definition at line 194 of file gpu_shader_create_info.hh.
| #define FRAGMENT_OUT | ( | slot, | |
| type, | |||
| name ) |
Definition at line 136 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().
Definition at line 138 of file gpu_shader_create_info.hh.
| #define FRAGMENT_OUT_ROG | ( | slot, | |
| type, | |||
| name, | |||
| rog ) |
Definition at line 140 of file gpu_shader_create_info.hh.
| #define FRAGMENT_OUT_SRD | ( | srd | ) |
Definition at line 137 of file gpu_shader_create_info.hh.
| #define FRAGMENT_SOURCE | ( | filename | ) |
Definition at line 190 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().
| #define GEOMETRY_LAYOUT | ( | ... | ) |
Definition at line 130 of file gpu_shader_create_info.hh.
| #define GEOMETRY_OUT | ( | stage_interface | ) |
Definition at line 131 of file gpu_shader_create_info.hh.
| #define GPU_FORCE_ENABLE_SHADER_PRINTF 0 |
Definition at line 35 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_CREATE_END | ( | ) |
Definition at line 111 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_CREATE_INFO | ( | _info | ) |
Definition at line 99 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_INTERFACE_END | ( | ) |
Definition at line 108 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_INTERFACE_INFO | ( | _interface | ) |
Definition at line 94 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_NAMED_INTERFACE_END | ( | _inst_name | ) |
Definition at line 105 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_NAMED_INTERFACE_INFO | ( | _interface, | |
| _inst_name ) |
Definition at line 89 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_PRINTF_ENABLE 1 |
Definition at line 38 of file gpu_shader_create_info.hh.
| #define GPU_SHADER_PRINTF_MAX_CAPACITY (1024 * 4) |
Definition at line 43 of file gpu_shader_create_info.hh.
Referenced by blender::gpu::printf_begin(), and blender::gpu::printf_end().
| #define GPU_SHADER_PRINTF_SLOT 13 |
Definition at line 42 of file gpu_shader_create_info.hh.
Referenced by GPU_shader_bind().
| #define GPU_SSBO_INDEX_BUF_SLOT 7 |
Definition at line 46 of file gpu_shader_create_info.hh.
Referenced by blender::gpu::GLImmediate::begin(), blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), blender::gpu::VKImmediate::end(), and GPU_batch_bind_as_resources().
| #define GPU_SSBO_POLYLINE_COL_BUF_SLOT 1 |
Definition at line 49 of file gpu_shader_create_info.hh.
Referenced by blender::gpu::GLImmediate::begin(), blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKImmediate::end().
| #define GPU_SSBO_POLYLINE_POS_BUF_SLOT 0 |
Definition at line 48 of file gpu_shader_create_info.hh.
Referenced by blender::gpu::GLImmediate::begin(), blender::gpu::GLImmediate::end(), blender::gpu::MTLImmediate::end(), and blender::gpu::VKImmediate::end().
| #define GROUP_SHARED | ( | type, | |
| name ) |
Definition at line 185 of file gpu_shader_create_info.hh.
Definition at line 171 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), DEFINE_VALUE(), DEFINE_VALUE(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), ivec4(), LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), log(), max(), max(), pow(), reduce_max(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), vec4(), and vec4().
Definition at line 177 of file gpu_shader_create_info.hh.
| #define LOCAL_GROUP_SIZE | ( | ... | ) |
Definition at line 123 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), vec4(), and vec4().
| #define METAL_BACKEND_ONLY | ( | ) |
Definition at line 204 of file gpu_shader_create_info.hh.
| #define MTL_MAX_TOTAL_THREADS_PER_THREADGROUP | ( | value | ) |
Definition at line 209 of file gpu_shader_create_info.hh.
| #define NO_PERSPECTIVE | ( | type, | |
| name ) |
Definition at line 120 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().
| #define PUSH_CONSTANT | ( | type, | |
| name ) |
Definition at line 154 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), DEFINE_VALUE(), ivec4(), LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), log(), OVERLAY_INFO_VARIATIONS_MODELMAT(), pow(), pow(), vec4(), vec4(), vec4(), and vec4().
| #define PUSH_CONSTANT_ARRAY | ( | type, | |
| name, | |||
| array_size ) |
Definition at line 155 of file gpu_shader_create_info.hh.
| #define RESOURCE_SRD | ( | srd | ) |
Definition at line 143 of file gpu_shader_create_info.hh.
| #define SAMPLER | ( | slot, | |
| type, | |||
| name ) |
Definition at line 167 of file gpu_shader_create_info.hh.
Referenced by DEFINE_VALUE(), vec4(), and vec4().
| #define SAMPLER_FREQ | ( | slot, | |
| type, | |||
| name, | |||
| freq ) |
Definition at line 168 of file gpu_shader_create_info.hh.
| #define SMOOTH | ( | type, | |
| name ) |
Definition at line 118 of file gpu_shader_create_info.hh.
| #define SPECIALIZATION_CONSTANT | ( | type, | |
| name, | |||
| default_value ) |
Definition at line 148 of file gpu_shader_create_info.hh.
| #define STORAGE_BUF | ( | slot, | |
| qualifiers, | |||
| type_name, | |||
| name ) |
Definition at line 162 of file gpu_shader_create_info.hh.
Referenced by LOCAL_GROUP_SIZE(), and LOCAL_GROUP_SIZE().
| #define STORAGE_BUF_FREQ | ( | slot, | |
| qualifiers, | |||
| type_name, | |||
| name, | |||
| freq ) |
Definition at line 164 of file gpu_shader_create_info.hh.
| #define SUBPASS_IN | ( | slot, | |
| type, | |||
| img_type, | |||
| name, | |||
| rog ) |
Definition at line 133 of file gpu_shader_create_info.hh.
| #define TEST_EQUAL | ( | a, | |
| b, | |||
| _member ) |
Definition at line 752 of file gpu_shader_create_info.hh.
Referenced by blender::gpu::shader::ShaderCreateInfo::ComputeStageLayout::operator==(), blender::gpu::shader::ShaderCreateInfo::FragOut::operator==(), blender::gpu::shader::ShaderCreateInfo::GeometryStageLayout::operator==(), blender::gpu::shader::ShaderCreateInfo::operator==(), blender::gpu::shader::ShaderCreateInfo::PushConst::operator==(), blender::gpu::shader::ShaderCreateInfo::Resource::operator==(), blender::gpu::shader::ShaderCreateInfo::SubpassIn::operator==(), and blender::gpu::shader::ShaderCreateInfo::VertIn::operator==().
| #define TEST_VECTOR_EQUAL | ( | a, | |
| b, | |||
| _vector ) |
Definition at line 757 of file gpu_shader_create_info.hh.
Referenced by blender::gpu::shader::ShaderCreateInfo::operator==().
| #define TYPEDEF_SOURCE | ( | filename | ) |
Definition at line 207 of file gpu_shader_create_info.hh.
Referenced by LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), and OVERLAY_INFO_VARIATIONS_MODELMAT().
| #define TYPES_EXPAND | ( | s | ) |
Definition at line 505 of file gpu_shader_create_info.hh.
| #define TYPES_EXPAND | ( | s | ) |
Definition at line 505 of file gpu_shader_create_info.hh.
| #define TYPES_EXPAND | ( | s | ) |
Definition at line 505 of file gpu_shader_create_info.hh.
| #define TYPES_EXPAND | ( | s | ) |
Definition at line 505 of file gpu_shader_create_info.hh.
| #define TYPES_EXPAND | ( | s | ) |
| #define UNIFORM_BUF | ( | slot, | |
| type_name, | |||
| name ) |
Definition at line 158 of file gpu_shader_create_info.hh.
Referenced by LOCAL_GROUP_SIZE().
| #define UNIFORM_BUF_FREQ | ( | slot, | |
| type_name, | |||
| name, | |||
| freq ) |
Definition at line 159 of file gpu_shader_create_info.hh.
| #define VERTEX_FUNCTION | ( | function | ) |
Definition at line 193 of file gpu_shader_create_info.hh.
| #define VERTEX_IN | ( | slot, | |
| type, | |||
| name ) |
Definition at line 125 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().
| #define VERTEX_IN_SRD | ( | srd | ) |
Definition at line 126 of file gpu_shader_create_info.hh.
| #define VERTEX_OUT | ( | stage_interface | ) |
Definition at line 127 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().
| #define VERTEX_OUT_SRD | ( | srd | ) |
Definition at line 128 of file gpu_shader_create_info.hh.
| #define VERTEX_SOURCE | ( | filename | ) |
Definition at line 189 of file gpu_shader_create_info.hh.
Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().