Blender V4.3
blender::gpu::ShaderCompiler Class Referenceabstract

#include <gpu_shader_private.hh>

Inherited by blender::gpu::MTLShaderCompiler, blender::gpu::ShaderCompilerGeneric, and blender::gpu::VKShaderCompiler.

Classes

struct  Sources

Public Member Functions

virtual ~ShaderCompiler ()
virtual BatchHandle batch_compile (Span< const shader::ShaderCreateInfo * > &infos)=0
virtual bool batch_is_ready (BatchHandle handle)=0
virtual Vector< Shader * > batch_finalize (BatchHandle &handle)=0
virtual SpecializationBatchHandle precompile_specializations (Span< ShaderSpecialization >)
virtual bool specialization_batch_is_ready (SpecializationBatchHandle &handle)
ShaderCompiler
Shadercompile (const shader::ShaderCreateInfo &info, bool is_batch_compilation)

Detailed Description

Definition at line 167 of file gpu_shader_private.hh.

Constructor & Destructor Documentation

◆ ~ShaderCompiler()

virtual blender::gpu::ShaderCompiler::~ShaderCompiler ( )
inlinevirtual

Definition at line 177 of file gpu_shader_private.hh.

Member Function Documentation

◆ batch_compile()

virtual BatchHandle blender::gpu::ShaderCompiler::batch_compile ( Span< const shader::ShaderCreateInfo * > & infos)
pure virtual

◆ batch_finalize()

virtual Vector< Shader * > blender::gpu::ShaderCompiler::batch_finalize ( BatchHandle & handle)
pure virtual

◆ batch_is_ready()

virtual bool blender::gpu::ShaderCompiler::batch_is_ready ( BatchHandle handle)
pure virtual

◆ compile()

Shader * blender::gpu::ShaderCompiler::compile ( const shader::ShaderCreateInfo & info,
bool is_batch_compilation )

Definition at line 810 of file gpu_shader.cc.

References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), Vector< T, InlineBufferCapacity, Allocator >::as_span(), BLI_assert, blender::StringRefNull::c_str(), blender::gpu::shader::ShaderCreateInfo::check_error(), blender::gpu::shader::ShaderCreateInfo::compute_source_, blender::gpu::shader::ShaderCreateInfo::compute_source_generated, blender::gpu::shader::ShaderCreateInfo::dependencies_generated, error(), blender::Vector< T, InlineBufferCapacity, Allocator >::extend(), blender::gpu::shader::ShaderCreateInfo::fragment_source_, blender::gpu::shader::ShaderCreateInfo::geometry_source_, blender::gpu::GPUBackend::get(), GPU_debug_group_begin(), GPU_debug_group_end(), GPU_DEBUG_SHADER_COMPILATION_GROUP, blender::gpu::shader::gpu_shader_dependency_get_resolved_source(), blender::gpu::shader::gpu_shader_dependency_get_source(), GPU_SHADER_TFB_NONE, blender::StringRefBase::is_empty(), blender::gpu::shader::ShaderCreateInfo::legacy_resource_location_, blender::gpu::shader::ShaderCreateInfo::name_, blender::gpu::GPUBackend::shader_alloc(), Vector< T, InlineBufferCapacity, Allocator >::size(), standard_defines(), blender::gpu::shader::ShaderCreateInfo::tf_names_, blender::gpu::shader::ShaderCreateInfo::tf_type_, blender::gpu::shader::ShaderCreateInfo::typedef_source_generated, blender::gpu::shader::ShaderCreateInfo::typedef_sources_, and blender::gpu::shader::ShaderCreateInfo::vertex_source_.

Referenced by blender::gpu::ShaderCompilerGeneric::batch_compile(), and blender::gpu::VKShaderCompiler::batch_compile().

◆ precompile_specializations()

virtual SpecializationBatchHandle blender::gpu::ShaderCompiler::precompile_specializations ( Span< ShaderSpecialization > )
inlinevirtual

Reimplemented in blender::gpu::MTLShaderCompiler.

Definition at line 185 of file gpu_shader_private.hh.

Referenced by GPU_shader_batch_specializations().

◆ specialization_batch_is_ready()

virtual bool blender::gpu::ShaderCompiler::specialization_batch_is_ready ( SpecializationBatchHandle & handle)
inlinevirtual

Reimplemented in blender::gpu::MTLShaderCompiler.

Definition at line 192 of file gpu_shader_private.hh.

Referenced by GPU_shader_batch_specializations_is_ready().


The documentation for this class was generated from the following files: