|
Blender V4.5
|
#include <vk_backend.hh>
Inherits blender::gpu::GPUBackend.
Static Public Member Functions | |
| static bool | is_supported () |
| static VKBackend & | get () |
| static void | platform_init (const VKDevice &device) |
| static void | capabilities_init (VKDevice &device) |
Static Public Member Functions inherited from blender::gpu::GPUBackend | |
| static GPUBackend * | get () |
Public Attributes | |
| VKDevice | device |
Friends | |
| class | VKContext |
| class | VKDescriptorSet |
| class | VKDescriptorSetTracker |
Additional Inherited Members | |
Protected Attributes inherited from blender::gpu::GPUBackend | |
| ShaderCompiler * | compiler_ |
Definition at line 27 of file vk_backend.hh.
|
inline |
Definition at line 37 of file vk_backend.hh.
References platform_init().
|
inlinevirtual |
Definition at line 42 of file vk_backend.hh.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 608 of file vk_backend.cc.
|
static |
Definition at line 706 of file vk_backend.cc.
References BLI_system_thread_count(), blender::gpu::GPUCapabilities::clip_control_support, blender::gpu::GPUCapabilities::extension_get, blender::gpu::GPUCapabilities::extensions_len, blender::gpu::GCaps, blender::gpu::GPUCapabilities::geometry_shader_support, blender::gpu::GPUCapabilities::max_batch_indices, blender::gpu::GPUCapabilities::max_batch_vertices, blender::gpu::GPUCapabilities::max_compute_shader_storage_blocks, max_ii(), blender::gpu::GPUCapabilities::max_images, blender::gpu::GPUCapabilities::max_parallel_compilations, blender::gpu::GPUCapabilities::max_samplers, blender::gpu::GPUCapabilities::max_shader_storage_buffer_bindings, blender::gpu::GPUCapabilities::max_storage_buffer_size, blender::gpu::GPUCapabilities::max_texture_3d_size, blender::gpu::GPUCapabilities::max_texture_layers, blender::gpu::GPUCapabilities::max_texture_size, blender::gpu::GPUCapabilities::max_textures, blender::gpu::GPUCapabilities::max_textures_frag, blender::gpu::GPUCapabilities::max_textures_geom, blender::gpu::GPUCapabilities::max_textures_vert, blender::gpu::GPUCapabilities::max_uniforms_frag, blender::gpu::GPUCapabilities::max_uniforms_vert, blender::gpu::GPUCapabilities::max_varying_floats, blender::gpu::GPUCapabilities::max_vertex_attribs, blender::gpu::GPUCapabilities::max_work_group_count, blender::gpu::GPUCapabilities::max_work_group_size, blender::gpu::GPUCapabilities::mem_stats_support, min_uu(), blender::gpu::VKDevice::physical_device_get(), blender::gpu::VKDevice::physical_device_properties_get(), blender::gpu::VKDevice::physical_device_vulkan_11_features_get(), properties, blender::gpu::GPUCapabilities::shader_draw_parameters_support, blender::gpu::GPUCapabilities::stencil_export_support, blender::gpu::GPUCapabilities::storage_buffer_alignment, blender::gpu::VKDevice::supports_extension(), and blender::gpu::vk_extension_get().
Referenced by blender::gpu::VKDevice::init().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 558 of file vk_backend.cc.
References blender::gpu::render_graph::VKDispatchCreateInfo::dispatch_node, blender::gpu::render_graph::VKDispatchData::group_count_x, blender::gpu::render_graph::VKDispatchData::group_count_y, blender::gpu::render_graph::VKDispatchData::group_count_z, and blender::gpu::render_graph::VKDispatchData::pipeline_data.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 570 of file vk_backend.cc.
References BLI_assert, blender::gpu::render_graph::VKDispatchIndirectData::buffer, blender::gpu::render_graph::VKDispatchIndirectCreateInfo::dispatch_indirect_node, blender::gpu::render_graph::VKDispatchIndirectData::offset, blender::gpu::render_graph::VKDispatchIndirectData::pipeline_data, blender::gpu::unwrap(), and blender::gpu::VKStorageBuffer::vk_handle().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 583 of file vk_backend.cc.
References BLI_assert, GHOST_GetDrawingContext(), and blender::gpu::init_device_list().
| bool blender::gpu::VKBackend::debug_capture_begin | ( | const char * | title | ) |
Definition at line 99 of file vk_debug.cc.
References device, blender::gpu::VKDevice::instance_get(), result, and UNUSED_VARS.
Referenced by blender::gpu::VKContext::debug_capture_begin(), and blender::gpu::VKContext::debug_capture_scope_begin().
| void blender::gpu::VKBackend::debug_capture_end | ( | ) |
Definition at line 120 of file vk_debug.cc.
References device, and blender::gpu::VKDevice::instance_get().
Referenced by blender::gpu::VKContext::debug_capture_end(), and blender::gpu::VKContext::debug_capture_scope_end().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 545 of file vk_backend.cc.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 613 of file vk_backend.cc.
|
overridevirtual |
|
inlinestatic |
Definition at line 91 of file vk_backend.hh.
References blender::gpu::GPUBackend::get().
Referenced by blender::gpu::VKContext::activate(), blender::gpu::VKDescriptorPools::allocate(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_debug_utils_label(), blender::gpu::VKQueryPool::begin_query(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_rendering(), blender::gpu::VKVertexAttributeObject::bind(), blender::gpu::VKDescriptorBufferUpdator::bind_buffer(), blender::gpu::render_graph::VKCommandBufferWrapper::bind_descriptor_buffers(), blender::gpu::VKDescriptorBufferUpdator::bind_image(), blender::gpu::VKDescriptorBufferUpdator::bind_texel_buffer(), blender::gpu::VKBuffer::create(), blender::gpu::VKSampler::create(), blender::gpu::VKContext::debug_capture_begin(), blender::gpu::VKContext::debug_capture_end(), blender::gpu::VKContext::debug_capture_scope_begin(), blender::gpu::VKContext::debug_capture_scope_end(), blender::gpu::VKDescriptorSetLayouts::deinit(), blender::gpu::VKDescriptorPools::discard(), blender::gpu::VKDiscardPool::discard_pool_get(), blender::gpu::render_graph::VKCommandBufferWrapper::end_debug_utils_label(), blender::gpu::render_graph::VKCommandBufferWrapper::end_rendering(), blender::gpu::VKShader::ensure_and_get_compute_pipeline(), blender::gpu::VKShader::ensure_and_get_graphics_pipeline(), blender::gpu::VKVertexBuffer::ensure_buffer_view(), blender::gpu::VKTexture::export_memory(), blender::gpu::VKBuffer::export_memory_get(), blender::gpu::VKShader::finalize(), blender::gpu::VKShaderModule::finalize(), blender::gpu::VKBuffer::flush(), blender::gpu::VKContext::flush_render_graph(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::VKSampler::free(), blender::gpu::VKPipelinePool::free_data(), blender::gpu::VKPixelBuffer::get_native_handle(), blender::gpu::VKQueryPool::get_occlusion_result(), blender::gpu::VKDescriptorSetLayouts::get_or_create(), blender::gpu::VKPipelinePool::get_or_create_compute_pipeline(), blender::gpu::VKPipelinePool::get_or_create_graphics_pipeline(), blender::gpu::VKPipelinePool::init(), blender::gpu::VKShaderInterface::init(), blender::gpu::VKTexture::init_internal(), blender::gpu::VKContext::memory_statistics_get(), blender::gpu::VKBuffer::read_async(), blender::gpu::VKPipelinePool::read_from_disk(), blender::gpu::VKFrameBuffer::rendering_end(), blender::gpu::VKFrameBuffer::rendering_ensure(), blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering(), blender::gpu::VKFrameBuffer::rendering_ensure_render_pass(), blender::gpu::render_graph::VKCommandBufferWrapper::set_descriptor_buffer_offsets(), blender::gpu::VKFrameBuffer::subpass_transition_impl(), blender::gpu::to_vk_image_usage(), blender::gpu::VKDescriptorSetTracker::update_descriptor_set(), blender::gpu::VKDescriptorSetPoolUpdator::upload_descriptor_sets(), blender::gpu::VKDescriptorSetTracker::upload_descriptor_sets(), blender::gpu::vk_extension_get(), blender::gpu::VKImageView::VKImageView(), blender::gpu::VKFence::wait(), blender::gpu::VKPipelinePool::write_to_disk(), blender::gpu::VKContext::~VKContext(), blender::gpu::VKDescriptorPools::~VKDescriptorPools(), blender::gpu::VKQueryPool::~VKQueryPool(), and blender::gpu::VKShader::~VKShader().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 623 of file vk_backend.cc.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 539 of file vk_backend.cc.
References GPU_max_parallel_compilations().
|
static |
Does the running platform contain any device that meets the minimum requirements to start the Vulkan backend.
Function is used to validate that a Blender UI can be started. It calls vulkan API commands directly to ensure no parts of Blender needs to be initialized.
Definition at line 201 of file vk_backend.cc.
References BLI_setenv(), CLG_logref_init(), CLOG_ERROR, CLOG_INFO, CLOG_WARN, blender::Array< T, InlineBufferCapacity, Allocator >::data(), G, G_DEBUG_GPU, blender::gpu::GPU_vulkan_is_supported_driver(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::gpu::LOG, and blender::gpu::missing_capabilities_get().
Referenced by gpu_backend_supported().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 628 of file vk_backend.cc.
References size().
|
static |
Definition at line 355 of file vk_backend.cc.
References CLOG_INFO, blender::gpu::determine_os_type(), blender::gpu::GPUPlatformGlobal::device_luid, blender::gpu::GPUPlatformGlobal::device_luid_node_mask, blender::gpu::VKDevice::device_type(), blender::gpu::GPUPlatformGlobal::device_uuid, blender::gpu::GPUPlatformGlobal::devices, blender::gpu::VKDevice::driver_type(), blender::gpu::VKDevice::driver_version(), blender::gpu::GPG, GPU_ARCHITECTURE_IMR, GPU_BACKEND_VULKAN, GPU_SUPPORT_LEVEL_SUPPORTED, blender::gpu::GPUPlatformGlobal::init(), LOG, blender::gpu::VKDevice::physical_device_id_properties_get(), blender::gpu::VKDevice::physical_device_properties_get(), properties, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), and blender::gpu::VKDevice::vendor_name().
Referenced by VKBackend().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 633 of file vk_backend.cc.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 663 of file vk_backend.cc.
References BLI_assert_msg, and blender::gpu::VKThreadData::rendering_depth.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 670 of file vk_backend.cc.
References BLI_assert_msg, BLI_thread_is_main(), G, lock, and blender::gpu::VKThreadData::rendering_depth.
|
overridevirtual |
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 550 of file vk_backend.cc.
References blender::gpu::VKDevice::is_initialized(), and blender::gpu::VKDevice::reinit().
|
overridevirtual |
|
inlineoverridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 77 of file vk_backend.hh.
References blender::gpu::VKShaderCompiler::cache_dir_clear_old().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 653 of file vk_backend.cc.
|
overridevirtual |
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 648 of file vk_backend.cc.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 658 of file vk_backend.cc.
Definition at line 105 of file vk_backend.hh.
|
friend |
Definition at line 106 of file vk_backend.hh.
|
friend |
Definition at line 107 of file vk_backend.hh.
| VKDevice blender::gpu::VKBackend::device |
Definition at line 35 of file vk_backend.hh.
Referenced by blender::gpu::VKContext::activate(), blender::gpu::VKDescriptorPools::allocate(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_debug_utils_label(), blender::gpu::VKQueryPool::begin_query(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_rendering(), blender::gpu::VKVertexAttributeObject::bind(), blender::gpu::VKDescriptorBufferUpdator::bind_buffer(), blender::gpu::render_graph::VKCommandBufferWrapper::bind_descriptor_buffers(), blender::gpu::VKDescriptorBufferUpdator::bind_image(), blender::gpu::VKDescriptorBufferUpdator::bind_texel_buffer(), blender::gpu::VKBuffer::create(), blender::gpu::VKSampler::create(), debug_capture_begin(), debug_capture_end(), blender::gpu::VKDescriptorSetLayouts::deinit(), blender::gpu::VKDescriptorPools::discard(), blender::gpu::VKDiscardPool::discard_pool_get(), blender::gpu::render_graph::VKCommandBufferWrapper::end_debug_utils_label(), blender::gpu::render_graph::VKCommandBufferWrapper::end_rendering(), blender::gpu::VKShader::ensure_and_get_compute_pipeline(), blender::gpu::VKShader::ensure_and_get_graphics_pipeline(), blender::gpu::VKVertexBuffer::ensure_buffer_view(), blender::gpu::VKTexture::export_memory(), blender::gpu::VKBuffer::export_memory_get(), blender::gpu::VKShader::finalize(), blender::gpu::VKShaderModule::finalize(), blender::gpu::VKBuffer::flush(), blender::gpu::VKContext::flush_render_graph(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::VKSampler::free(), blender::gpu::VKPipelinePool::free_data(), blender::gpu::VKPixelBuffer::get_native_handle(), blender::gpu::VKQueryPool::get_occlusion_result(), blender::gpu::VKDescriptorSetLayouts::get_or_create(), blender::gpu::VKPipelinePool::get_or_create_compute_pipeline(), blender::gpu::VKPipelinePool::get_or_create_graphics_pipeline(), blender::gpu::VKPipelinePool::init(), blender::gpu::VKShaderInterface::init(), blender::gpu::VKTexture::init_internal(), blender::gpu::VKContext::memory_statistics_get(), blender::gpu::VKBuffer::read_async(), blender::gpu::VKPipelinePool::read_from_disk(), blender::gpu::VKFrameBuffer::rendering_end(), blender::gpu::VKFrameBuffer::rendering_ensure(), blender::gpu::VKFrameBuffer::rendering_ensure_dynamic_rendering(), blender::gpu::VKFrameBuffer::rendering_ensure_render_pass(), blender::gpu::render_graph::VKCommandBufferWrapper::set_descriptor_buffer_offsets(), blender::gpu::VKFrameBuffer::subpass_transition_impl(), blender::gpu::to_vk_image_usage(), blender::gpu::VKDescriptorSetTracker::update_descriptor_set(), blender::gpu::VKDescriptorSetPoolUpdator::upload_descriptor_sets(), blender::gpu::VKDescriptorSetTracker::upload_descriptor_sets(), blender::gpu::vk_extension_get(), blender::gpu::VKImageView::VKImageView(), blender::gpu::VKFence::wait(), blender::gpu::VKPipelinePool::write_to_disk(), blender::gpu::VKContext::~VKContext(), blender::gpu::VKDescriptorPools::~VKDescriptorPools(), blender::gpu::VKQueryPool::~VKQueryPool(), and blender::gpu::VKShader::~VKShader().