Blender V5.0
gpu_shader_create_info.hh File Reference
#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.

Classes

struct  blender::gpu::shader::StageInterfaceInfo
struct  blender::gpu::shader::StageInterfaceInfo::InOut
struct  blender::gpu::shader::GeneratedSource
struct  blender::gpu::shader::ShaderCreateInfo
 Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correctly provided, this is all that is needed to create and compile a blender::gpu::Shader. More...
struct  blender::gpu::shader::ShaderCreateInfo::ResourceString
struct  blender::gpu::shader::ShaderCreateInfo::VertIn
struct  blender::gpu::shader::ShaderCreateInfo::GeometryStageLayout
struct  blender::gpu::shader::ShaderCreateInfo::ComputeStageLayout
struct  blender::gpu::shader::ShaderCreateInfo::FragOut
struct  blender::gpu::shader::ShaderCreateInfo::SubpassIn
struct  blender::gpu::shader::ShaderCreateInfo::SharedVariable
struct  blender::gpu::shader::ShaderCreateInfo::Sampler
struct  blender::gpu::shader::ShaderCreateInfo::Image
struct  blender::gpu::shader::ShaderCreateInfo::UniformBuf
struct  blender::gpu::shader::ShaderCreateInfo::StorageBuf
struct  blender::gpu::shader::ShaderCreateInfo::Resource
struct  blender::gpu::shader::ShaderCreateInfo::PushConst
struct  blender::DefaultHash< Vector< blender::gpu::shader::SpecializationConstant::Value > >

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>

Enumerations

enum class  blender::gpu::shader::BuiltinBits {
  blender::gpu::shader::NONE = 0 , blender::gpu::shader::BARYCENTRIC_COORD = (1 << 0) , blender::gpu::shader::STENCIL_REF = (1 << 1) , blender::gpu::shader::FRAG_COORD = (1 << 2) ,
  blender::gpu::shader::FRONT_FACING = (1 << 4) , blender::gpu::shader::GLOBAL_INVOCATION_ID = (1 << 5) , blender::gpu::shader::INSTANCE_ID = (1 << 6) , blender::gpu::shader::LAYER = (1 << 7) ,
  blender::gpu::shader::LOCAL_INVOCATION_ID = (1 << 8) , blender::gpu::shader::LOCAL_INVOCATION_INDEX = (1 << 9) , blender::gpu::shader::NUM_WORK_GROUP = (1 << 10) , blender::gpu::shader::POINT_COORD = (1 << 11) ,
  blender::gpu::shader::POINT_SIZE = (1 << 12) , blender::gpu::shader::PRIMITIVE_ID = (1 << 13) , blender::gpu::shader::VERTEX_ID = (1 << 14) , blender::gpu::shader::WORK_GROUP_ID = (1 << 15) ,
  blender::gpu::shader::WORK_GROUP_SIZE = (1 << 16) , blender::gpu::shader::VIEWPORT_INDEX = (1 << 17) , blender::gpu::shader::TEXTURE_ATOMIC = (1 << 18) , blender::gpu::shader::CLIP_CONTROL = (1 << 19) ,
  blender::gpu::shader::USE_PRINTF = (1 << 28) , blender::gpu::shader::USE_DEBUG_DRAW = (1 << 29) , blender::gpu::shader::RUNTIME_GENERATED = (1 << 30)
}
enum class  blender::gpu::shader::DepthWrite { blender::gpu::shader::UNCHANGED = 0 , blender::gpu::shader::ANY , blender::gpu::shader::GREATER , blender::gpu::shader::LESS }
enum class  blender::gpu::shader::ImageType {
  blender::gpu::shader::undefined = 0 , blender::gpu::shader::TYPES_EXPAND =(1D) , blender::gpu::shader::TYPES_EXPAND =(1DArray) , blender::gpu::shader::TYPES_EXPAND =(2D) ,
  blender::gpu::shader::TYPES_EXPAND =(2DArray) , blender::gpu::shader::TYPES_EXPAND =(3D) , blender::gpu::shader::TYPES_EXPAND =(Cube) , blender::gpu::shader::TYPES_EXPAND =(CubeArray) ,
  blender::gpu::shader::TYPES_EXPAND =(Buffer) , blender::gpu::shader::TYPES_EXPAND =(2D) , blender::gpu::shader::TYPES_EXPAND =(2DArray) , blender::gpu::shader::TYPES_EXPAND =(Cube) ,
  blender::gpu::shader::TYPES_EXPAND =(CubeArray) , blender::gpu::shader::TYPES_EXPAND =(2D) , blender::gpu::shader::TYPES_EXPAND =(2DArray) , blender::gpu::shader::TYPES_EXPAND =(3D)
}
enum class  blender::gpu::shader::ImageReadWriteType {
  blender::gpu::shader::undefined = 0 , blender::gpu::shader::TYPES_EXPAND =(1D) , blender::gpu::shader::TYPES_EXPAND =(1DArray) , blender::gpu::shader::TYPES_EXPAND =(2D) ,
  blender::gpu::shader::TYPES_EXPAND =(2DArray) , blender::gpu::shader::TYPES_EXPAND =(3D) , blender::gpu::shader::TYPES_EXPAND =(2D) , blender::gpu::shader::TYPES_EXPAND =(2DArray) ,
  blender::gpu::shader::TYPES_EXPAND =(3D)
}
enum class  blender::gpu::shader::Qualifier {
  blender::gpu::shader::no_restrict = (1 << 0) , blender::gpu::shader::read = (1 << 1) , blender::gpu::shader::write = (1 << 2) , blender::gpu::shader::read_write = read | write ,
  blender::gpu::shader::QUALIFIER_MAX = (write << 1) - 1
}
enum class  blender::gpu::shader::Frequency { blender::gpu::shader::BATCH = 0 , blender::gpu::shader::PASS , blender::gpu::shader::GEOMETRY }
enum class  blender::gpu::shader::DualBlend { blender::gpu::shader::NONE = 0 , blender::gpu::shader::SRC_0 , blender::gpu::shader::SRC_1 }
enum class  blender::gpu::shader::Interpolation { blender::gpu::shader::SMOOTH = 0 , blender::gpu::shader::FLAT , blender::gpu::shader::NO_PERSPECTIVE }
enum class  blender::gpu::shader::PrimitiveIn {
  blender::gpu::shader::POINTS = 0 , blender::gpu::shader::LINES , blender::gpu::shader::LINES_ADJACENCY , blender::gpu::shader::TRIANGLES ,
  blender::gpu::shader::TRIANGLES_ADJACENCY
}
enum class  blender::gpu::shader::PrimitiveOut {
  blender::gpu::shader::POINTS = 0 , blender::gpu::shader::LINE_STRIP , blender::gpu::shader::TRIANGLE_STRIP , blender::gpu::shader::LINES ,
  blender::gpu::shader::TRIANGLES
}

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)

Detailed Description

Descriptor type used to define shader structure, resources and interfaces.

Some rule of thumb:

  • Do not include anything else than this file in each info file.

Definition in file gpu_shader_create_info.hh.

Macro Definition Documentation

◆ _INFO_EXPAND2

#define _INFO_EXPAND2 ( a,
b )
Value:

Definition at line 315 of file gpu_shader_create_info.hh.

◆ _INFO_EXPAND3

#define _INFO_EXPAND3 ( a,
b,
c )
Value:
#define _INFO_EXPAND2(a, b)

Definition at line 316 of file gpu_shader_create_info.hh.

◆ _INFO_EXPAND4

#define _INFO_EXPAND4 ( a,
b,
c,
d )
Value:
#define _INFO_EXPAND3(a, b, c)

Definition at line 317 of file gpu_shader_create_info.hh.

◆ _INFO_EXPAND5

#define _INFO_EXPAND5 ( a,
b,
c,
d,
e )
Value:
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
#define _INFO_EXPAND4(a, b, c, d)

Definition at line 318 of file gpu_shader_create_info.hh.

◆ _INFO_EXPAND6

#define _INFO_EXPAND6 ( a,
b,
c,
d,
e,
f )
Value:
#define _INFO_EXPAND5(a, b, c, d, e)

Definition at line 319 of file gpu_shader_create_info.hh.

◆ ADDITIONAL_INFO

◆ ADDITIONAL_INFO_EXPAND

#define ADDITIONAL_INFO_EXPAND ( ...)
Value:
VA_NARGS_CALL_OVERLOAD(_INFO_EXPAND, __VA_ARGS__)
#define VA_NARGS_CALL_OVERLOAD(name,...)

Definition at line 321 of file gpu_shader_create_info.hh.

◆ AUTO_RESOURCE_LOCATION

#define AUTO_RESOURCE_LOCATION ( )
Value:
.auto_resource_location(true)

Definition at line 201 of file gpu_shader_create_info.hh.

◆ BUILTINS

#define BUILTINS ( builtin)
Value:
.builtins(builtin)

Definition at line 187 of file gpu_shader_create_info.hh.

◆ COMPILATION_CONSTANT

#define COMPILATION_CONSTANT ( type,
name,
value )
Value:
.compilation_constant(Type::type##_t, #name, value)
const char * name

Definition at line 151 of file gpu_shader_create_info.hh.

◆ COMPUTE_FUNCTION

#define COMPUTE_FUNCTION ( function)
Value:
.compute_function(function)

Definition at line 195 of file gpu_shader_create_info.hh.

◆ COMPUTE_SOURCE

#define COMPUTE_SOURCE ( filename)
Value:
.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().

◆ CREATE_INFO_VARIANT

#define CREATE_INFO_VARIANT ( name,
... )
Value:
DO_STATIC_COMPILATION() \
ADDITIONAL_INFO_EXPAND(__VA_ARGS__) \
GPU_SHADER_CREATE_END()
#define GPU_SHADER_CREATE_INFO(_info)

Definition at line 323 of file gpu_shader_create_info.hh.

◆ DEFINE

#define DEFINE ( name)
Value:
.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_VALUE

◆ DEPTH_WRITE

#define DEPTH_WRITE ( value)
Value:
.depth_write(value)

Definition at line 146 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().

◆ DO_STATIC_COMPILATION

◆ EARLY_FRAGMENT_TEST

#define EARLY_FRAGMENT_TEST ( enable)
Value:
.early_fragment_test(enable)

Definition at line 145 of file gpu_shader_create_info.hh.

◆ FLAT

#define FLAT ( type,
name )
Value:
.flat(Type::type##_t, #name)

Definition at line 119 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().

◆ FRAGMENT_FUNCTION

#define FRAGMENT_FUNCTION ( function)
Value:
.fragment_function(function)

Definition at line 194 of file gpu_shader_create_info.hh.

◆ FRAGMENT_OUT

#define FRAGMENT_OUT ( slot,
type,
name )
Value:
.fragment_out(slot, Type::type##_t, #name)

Definition at line 136 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().

◆ FRAGMENT_OUT_DUAL

#define FRAGMENT_OUT_DUAL ( slot,
type,
name,
blend )
Value:
.fragment_out(slot, Type::type##_t, #name, DualBlend::blend)

Definition at line 138 of file gpu_shader_create_info.hh.

◆ FRAGMENT_OUT_ROG

#define FRAGMENT_OUT_ROG ( slot,
type,
name,
rog )
Value:
.fragment_out(slot, Type::type##_t, #name, DualBlend::NONE, rog)

Definition at line 140 of file gpu_shader_create_info.hh.

◆ FRAGMENT_OUT_SRD

#define FRAGMENT_OUT_SRD ( srd)
Value:
.shared_resource_descriptor(srd::populate)

Definition at line 137 of file gpu_shader_create_info.hh.

◆ FRAGMENT_SOURCE

#define FRAGMENT_SOURCE ( filename)
Value:
.fragment_source(filename)

Definition at line 190 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().

◆ GEOMETRY_LAYOUT

#define GEOMETRY_LAYOUT ( ...)
Value:
.geometry_layout(__VA_ARGS__)

Definition at line 130 of file gpu_shader_create_info.hh.

◆ GEOMETRY_OUT

#define GEOMETRY_OUT ( stage_interface)
Value:
.geometry_out(stage_interface)

Definition at line 131 of file gpu_shader_create_info.hh.

◆ GPU_FORCE_ENABLE_SHADER_PRINTF

#define GPU_FORCE_ENABLE_SHADER_PRINTF   0

Definition at line 35 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_CREATE_END

#define GPU_SHADER_CREATE_END ( )
Value:
; \
}

Definition at line 111 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_CREATE_INFO

#define GPU_SHADER_CREATE_INFO ( _info)
Value:
static inline void autocomplete_helper_info_##_info() \
{ \
ShaderCreateInfo _info(#_info); \
_info
Describe inputs & outputs, stage interfaces, resources and sources of a shader. If all data is correc...

Definition at line 99 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_INTERFACE_END

#define GPU_SHADER_INTERFACE_END ( )
Value:
; \
}

Definition at line 108 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_INTERFACE_INFO

#define GPU_SHADER_INTERFACE_INFO ( _interface)
Value:
static inline void autocomplete_helper_interface_##_interface() \
{ \
StageInterfaceInfo _interface(#_interface); \
_interface

Definition at line 94 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_NAMED_INTERFACE_END

#define GPU_SHADER_NAMED_INTERFACE_END ( _inst_name)
Value:
; \
}

Definition at line 105 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_NAMED_INTERFACE_INFO

#define GPU_SHADER_NAMED_INTERFACE_INFO ( _interface,
_inst_name )
Value:
static inline void autocomplete_helper_interface_##_interface() \
{ \
StageInterfaceInfo _interface(#_interface, _inst_name); \
_interface

Definition at line 89 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_PRINTF_ENABLE

#define GPU_SHADER_PRINTF_ENABLE   1

Definition at line 38 of file gpu_shader_create_info.hh.

◆ GPU_SHADER_PRINTF_MAX_CAPACITY

#define GPU_SHADER_PRINTF_MAX_CAPACITY   (1024 * 4)

◆ GPU_SHADER_PRINTF_SLOT

#define GPU_SHADER_PRINTF_SLOT   13

Definition at line 42 of file gpu_shader_create_info.hh.

Referenced by GPU_shader_bind().

◆ GPU_SSBO_INDEX_BUF_SLOT

◆ GPU_SSBO_POLYLINE_COL_BUF_SLOT

◆ GPU_SSBO_POLYLINE_POS_BUF_SLOT

◆ GROUP_SHARED

#define GROUP_SHARED ( type,
name )
Value:
.shared_variable(Type::type##_t, #name)

Definition at line 185 of file gpu_shader_create_info.hh.

◆ IMAGE

#define IMAGE ( slot,
format,
qualifiers,
type,
name )

◆ IMAGE_FREQ

#define IMAGE_FREQ ( slot,
format,
qualifiers,
type,
name,
freq )
Value:
.image(slot, \
blender::gpu::TextureFormat::format, \
Qualifier::qualifiers, \
ImageReadWriteType::type, \
#name, \
Frequency::freq)

Definition at line 177 of file gpu_shader_create_info.hh.

◆ LOCAL_GROUP_SIZE

#define LOCAL_GROUP_SIZE ( ...)
Value:
.local_group_size(__VA_ARGS__)

Definition at line 123 of file gpu_shader_create_info.hh.

Referenced by DEFINE_VALUE(), LOCAL_GROUP_SIZE(), LOCAL_GROUP_SIZE(), vec4(), and vec4().

◆ METAL_BACKEND_ONLY

#define METAL_BACKEND_ONLY ( )
Value:
.metal_backend_only(true)

Definition at line 204 of file gpu_shader_create_info.hh.

◆ MTL_MAX_TOTAL_THREADS_PER_THREADGROUP

#define MTL_MAX_TOTAL_THREADS_PER_THREADGROUP ( value)
Value:
.mtl_max_total_threads_per_threadgroup(value)

Definition at line 209 of file gpu_shader_create_info.hh.

◆ NO_PERSPECTIVE

#define NO_PERSPECTIVE ( type,
name )
Value:
.no_perspective(Type::type##_t, #name)

Definition at line 120 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().

◆ PUSH_CONSTANT

#define PUSH_CONSTANT ( type,
name )

◆ PUSH_CONSTANT_ARRAY

#define PUSH_CONSTANT_ARRAY ( type,
name,
array_size )
Value:
.push_constant(Type::type##_t, #name, array_size)

Definition at line 155 of file gpu_shader_create_info.hh.

◆ RESOURCE_SRD

#define RESOURCE_SRD ( srd)
Value:
.shared_resource_descriptor(srd::populate)

Definition at line 143 of file gpu_shader_create_info.hh.

◆ SAMPLER

#define SAMPLER ( slot,
type,
name )
Value:
.sampler(slot, ImageType::type, #name)

Definition at line 167 of file gpu_shader_create_info.hh.

Referenced by DEFINE_VALUE(), vec4(), and vec4().

◆ SAMPLER_FREQ

#define SAMPLER_FREQ ( slot,
type,
name,
freq )
Value:
.sampler(slot, ImageType::type, #name, Frequency::freq)

Definition at line 168 of file gpu_shader_create_info.hh.

◆ SMOOTH

#define SMOOTH ( type,
name )
Value:
.smooth(Type::type##_t, #name)

Definition at line 118 of file gpu_shader_create_info.hh.

◆ SPECIALIZATION_CONSTANT

#define SPECIALIZATION_CONSTANT ( type,
name,
default_value )
Value:
.specialization_constant(Type::type##_t, #name, default_value)

Definition at line 148 of file gpu_shader_create_info.hh.

◆ STORAGE_BUF

#define STORAGE_BUF ( slot,
qualifiers,
type_name,
name )
Value:
.storage_buf(slot, Qualifier::qualifiers, STRINGIFY(type_name), #name)
#define STRINGIFY(x)

Definition at line 162 of file gpu_shader_create_info.hh.

Referenced by LOCAL_GROUP_SIZE(), and LOCAL_GROUP_SIZE().

◆ STORAGE_BUF_FREQ

#define STORAGE_BUF_FREQ ( slot,
qualifiers,
type_name,
name,
freq )
Value:
.storage_buf(slot, Qualifier::qualifiers, STRINGIFY(type_name), #name, Frequency::freq)

Definition at line 164 of file gpu_shader_create_info.hh.

◆ SUBPASS_IN

#define SUBPASS_IN ( slot,
type,
img_type,
name,
rog )
Value:
.subpass_in(slot, Type::type##_t, ImageType::img_type, #name, rog)

Definition at line 133 of file gpu_shader_create_info.hh.

◆ TEST_EQUAL

◆ TEST_VECTOR_EQUAL

#define TEST_VECTOR_EQUAL ( a,
b,
_vector )
Value:
TEST_EQUAL(a, b, _vector.size()); \
for (auto i : _vector.index_range()) { \
TEST_EQUAL(a, b, _vector[i]); \
}
#define TEST_EQUAL(a, b, _member)
i
Definition text_draw.cc:230

Definition at line 757 of file gpu_shader_create_info.hh.

Referenced by blender::gpu::shader::ShaderCreateInfo::operator==().

◆ TYPEDEF_SOURCE

#define TYPEDEF_SOURCE ( filename)
Value:
.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().

◆ TYPES_EXPAND [1/5]

#define TYPES_EXPAND ( s)
Value:
AtomicUint##s = int(ImageType::AtomicUint##s), AtomicInt##s = int(ImageType::AtomicInt##s), \
uimage##s##Atomic = AtomicUint##s, iimage##s##Atomic = AtomicInt##s

Definition at line 505 of file gpu_shader_create_info.hh.

◆ TYPES_EXPAND [2/5]

#define TYPES_EXPAND ( s)
Value:
Float##s = int(ImageType::Float##s), Uint##s = int(ImageType::Uint##s), \
Int##s = int(ImageType::Int##s), image##s = Float##s, uimage##s = Uint##s, iimage##s = Int##s

Definition at line 505 of file gpu_shader_create_info.hh.

◆ TYPES_EXPAND [3/5]

#define TYPES_EXPAND ( s)
Value:
AtomicUint##s, AtomicInt##s, usampler##s##Atomic = AtomicUint##s, \
isampler##s##Atomic = AtomicInt##s

Definition at line 505 of file gpu_shader_create_info.hh.

◆ TYPES_EXPAND [4/5]

#define TYPES_EXPAND ( s)
Value:
Shadow##s, Depth##s, sampler##s##Shadow = Shadow##s, sampler##s##Depth = Depth##s

Definition at line 505 of file gpu_shader_create_info.hh.

◆ TYPES_EXPAND [5/5]

#define TYPES_EXPAND ( s)
Value:
Float##s, Uint##s, Int##s, sampler##s = Float##s, usampler##s = Uint##s, isampler##s = Int##s

Definition at line 505 of file gpu_shader_create_info.hh.

◆ UNIFORM_BUF

#define UNIFORM_BUF ( slot,
type_name,
name )
Value:
.uniform_buf(slot, #type_name, #name)

Definition at line 158 of file gpu_shader_create_info.hh.

Referenced by LOCAL_GROUP_SIZE().

◆ UNIFORM_BUF_FREQ

#define UNIFORM_BUF_FREQ ( slot,
type_name,
name,
freq )
Value:
.uniform_buf(slot, #type_name, #name, Frequency::freq)

Definition at line 159 of file gpu_shader_create_info.hh.

◆ VERTEX_FUNCTION

#define VERTEX_FUNCTION ( function)
Value:
.vertex_function(function)

Definition at line 193 of file gpu_shader_create_info.hh.

◆ VERTEX_IN

#define VERTEX_IN ( slot,
type,
name )
Value:
.vertex_in(slot, Type::type##_t, #name)

Definition at line 125 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().

◆ VERTEX_IN_SRD

#define VERTEX_IN_SRD ( srd)
Value:
.shared_resource_descriptor(srd::populate)

Definition at line 126 of file gpu_shader_create_info.hh.

◆ VERTEX_OUT

#define VERTEX_OUT ( stage_interface)
Value:
.vertex_out(stage_interface)

Definition at line 127 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().

◆ VERTEX_OUT_SRD

#define VERTEX_OUT_SRD ( srd)
Value:
.vertex_out(srd)

Definition at line 128 of file gpu_shader_create_info.hh.

◆ VERTEX_SOURCE

#define VERTEX_SOURCE ( filename)
Value:
.vertex_source(filename)

Definition at line 189 of file gpu_shader_create_info.hh.

Referenced by OVERLAY_INFO_VARIATIONS_MODELMAT().