|
Blender V5.0
|
#include "BLI_sys_types.h"Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::gpu |
Macros | |
| #define | GPU_uniformbuf_create(size) |
| #define | GPU_UBO_BLOCK_NAME "node_tree" |
| #define | GPU_ATTRIBUTE_UBO_BLOCK_NAME "unf_attrs" |
| #define | GPU_LAYER_ATTRIBUTE_UBO_BLOCK_NAME "drw_layer_attrs" |
| #define | GPU_UBO_FREE_SAFE(ubo) |
Functions | |
| blender::gpu::UniformBuf * | GPU_uniformbuf_create_ex (size_t size, const void *data, const char *name) |
| blender::gpu::UniformBuf * | GPU_uniformbuf_create_from_list (ListBase *inputs, const char *name) |
| void | GPU_uniformbuf_free (blender::gpu::UniformBuf *ubo) |
| void | GPU_uniformbuf_update (blender::gpu::UniformBuf *ubo, const void *data) |
| void | GPU_uniformbuf_bind (blender::gpu::UniformBuf *ubo, int slot) |
| void | GPU_uniformbuf_bind_as_ssbo (blender::gpu::UniformBuf *ubo, int slot) |
| void | GPU_uniformbuf_unbind (blender::gpu::UniformBuf *ubo) |
| void | GPU_uniformbuf_debug_unbind_all () |
| void | GPU_uniformbuf_clear_to_zero (blender::gpu::UniformBuf *ubo) |
Variables | |
| static constexpr int | GPU_NODE_TREE_UBO_SLOT = 0 |
Uniform buffers API. Used to handle many uniforms update at once. Make sure that the data structure is compatible with what the implementation expect. (see "7.6.2.2 Standard Uniform Block Layout" from the OpenGL spec for more info about std140 layout) Rule of thumb: Padding to 16bytes, don't use vec3, don't use arrays of anything that is not vec4 aligned.
Definition in file GPU_uniform_buffer.hh.
| #define GPU_ATTRIBUTE_UBO_BLOCK_NAME "unf_attrs" |
Definition at line 55 of file GPU_uniform_buffer.hh.
Referenced by blender::gpu::shader::GPUCodegen::generate_resources(), and blender::eevee::ShaderModule::material_create_info_amend().
| #define GPU_LAYER_ATTRIBUTE_UBO_BLOCK_NAME "drw_layer_attrs" |
Definition at line 56 of file GPU_uniform_buffer.hh.
| #define GPU_UBO_BLOCK_NAME "node_tree" |
Definition at line 54 of file GPU_uniform_buffer.hh.
Referenced by blender::gpu::shader::GPUCodegen::generate_resources().
| #define GPU_UBO_FREE_SAFE | ( | ubo | ) |
Definition at line 59 of file GPU_uniform_buffer.hh.
| #define GPU_uniformbuf_create | ( | size | ) |
Definition at line 37 of file GPU_uniform_buffer.hh.
Referenced by blender::draw::gpencil::gpencil_light_pool_add(), blender::draw::gpencil::gpencil_material_pool_add(), blender::ocio::internal::GPUCurveMappping::initialize_common(), blender::ed::vse::StripsDrawBatch::StripsDrawBatch(), and blender::ed::vse::ThumbsDrawBatch::ThumbsDrawBatch().
| void GPU_uniformbuf_bind | ( | blender::gpu::UniformBuf * | ubo, |
| int | slot ) |
Definition at line 242 of file gpu_uniform_buffer.cc.
References blender::gpu::UniformBuf::bind().
Referenced by blender::draw::View::bind(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_gpu(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_mask_gpu(), blender::draw::View::compute_procedural_bounds(), blender::draw::View::compute_visibility(), blender::draw::draw_subdiv_ubo_update_and_bind(), blender::draw::command::ResourceBind::execute(), blender::ed::vse::StripsDrawBatch::flush_batch(), blender::ed::vse::ThumbsDrawBatch::flush_batch(), immBindUniformBuf(), pygpu_shader_uniform_block(), and blender::draw::Manager::resource_bind().
| void GPU_uniformbuf_bind_as_ssbo | ( | blender::gpu::UniformBuf * | ubo, |
| int | slot ) |
Definition at line 247 of file gpu_uniform_buffer.cc.
References blender::gpu::UniformBuf::bind_as_ssbo().
Referenced by blender::draw::View::compute_procedural_bounds(), and blender::draw::command::ResourceBind::execute().
| void GPU_uniformbuf_clear_to_zero | ( | blender::gpu::UniformBuf * | ubo | ) |
Definition at line 262 of file gpu_uniform_buffer.cc.
References blender::gpu::UniformBuf::clear_to_zero().
Referenced by blender::eevee::ShadowModule::set_view().
| blender::gpu::UniformBuf * GPU_uniformbuf_create_ex | ( | size_t | size, |
| const void * | data, | ||
| const char * | name ) |
Definition at line 195 of file gpu_uniform_buffer.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::data(), data, G, G_DEBUG_GPU, blender::gpu::GPUBackend::get(), name, size(), blender::gpu::GPUBackend::uniformbuf_alloc(), and blender::gpu::UniformBuf::update().
Referenced by blender::ocio::GPUShaderBinder::create_gpu_shader(), blender::ed::greasepencil::image_render::create_shader_ubo(), blender::draw::draw_subdiv_ubo_update_and_bind(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::execute_gpu(), GPU_material_from_nodetree(), blender::ed::space_node::nodelink_batch_draw(), pygpu_uniformbuffer__tp_new(), blender::ed::vse::StripsDrawBatch::StripsDrawBatch(), ui_draw_but_UNITVEC(), and blender::draw::detail::UniformCommon< T, len, device_only >::UniformCommon().
| blender::gpu::UniformBuf * GPU_uniformbuf_create_from_list | ( | ListBase * | inputs, |
| const char * | name ) |
Create UBO from inputs list.
| inputs | ListBase of BLI_genericNodeN(GPUInput). |
Definition at line 211 of file gpu_uniform_buffer.cc.
References blender::gpu::UniformBuf::attach_data(), BLI_listbase_is_empty(), buffer_fill_from_list(), buffer_from_list_inputs_sort(), buffer_size_from_list(), data, blender::gpu::GPUBackend::get(), GPU_max_uniform_buffer_size(), inputs, MEM_mallocN(), name, and blender::gpu::GPUBackend::uniformbuf_alloc().
Referenced by GPU_material_uniform_buffer_create().
| void GPU_uniformbuf_debug_unbind_all | ( | ) |
Resets the internal slot usage tracking. But there is no guarantee that this actually undo the bindings for the next draw call. Only has effect when G_DEBUG_GPU is set.
Definition at line 257 of file gpu_uniform_buffer.cc.
References blender::gpu::Context::debug_unbind_all_ubo(), and blender::gpu::Context::get().
Referenced by blender::draw::command::RecordingState::cleanup(), blender::compositor::ShaderOperation::execute(), and blender::draw::command::StateSet::set().
| void GPU_uniformbuf_free | ( | blender::gpu::UniformBuf * | ubo | ) |
Definition at line 232 of file gpu_uniform_buffer.cc.
Referenced by BPyGPUUniformBuf__tp_dealloc(), blender::ed::greasepencil::image_render::draw_grease_pencil_stroke(), blender::draw::draw_subdiv_cache_free(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::execute_gpu(), blender::ed::space_node::nodelink_batch_draw(), ui_draw_but_UNITVEC(), blender::ocio::internal::GPUDisplayShader::~GPUDisplayShader(), GPUMaterial::~GPUMaterial(), blender::ocio::internal::GPUTextures::~GPUTextures(), blender::ed::vse::StripsDrawBatch::~StripsDrawBatch(), blender::ed::vse::ThumbsDrawBatch::~ThumbsDrawBatch(), and blender::draw::detail::UniformCommon< T, len, device_only >::~UniformCommon().
| void GPU_uniformbuf_unbind | ( | blender::gpu::UniformBuf * | ubo | ) |
Definition at line 252 of file gpu_uniform_buffer.cc.
References blender::gpu::UniformBuf::unbind().
Referenced by blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_gpu(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_plane_mask_gpu(), blender::ed::space_node::nodelink_batch_draw(), blender::gpu::MTLContext::~MTLContext(), blender::ed::vse::StripsDrawBatch::~StripsDrawBatch(), and blender::ed::vse::ThumbsDrawBatch::~ThumbsDrawBatch().
| void GPU_uniformbuf_update | ( | blender::gpu::UniformBuf * | ubo, |
| const void * | data ) |
Definition at line 237 of file gpu_uniform_buffer.cc.
References data, and blender::gpu::UniformBuf::update().
Referenced by blender::draw::draw_subdiv_ubo_update_and_bind(), blender::draw::gpencil::Instance::end_sync(), blender::ed::vse::StripsDrawBatch::flush_batch(), blender::ed::vse::ThumbsDrawBatch::flush_batch(), blender::draw::detail::UniformCommon< T, len, device_only >::push_update(), and pygpu_uniformbuffer_update().
|
staticconstexpr |
Definition at line 57 of file GPU_uniform_buffer.hh.
Referenced by blender::gpu::shader::GPUCodegen::generate_resources(), and blender::draw::detail::PassBase< DrawCommandBufType >::material_set().