|
Blender V4.3
|
#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 | |
| VKShaderCompiler | shader_compiler |
| VKDevice | device |
Friends | |
| class | VKContext |
| class | VKDescriptorSet |
| class | VKDescriptorSetTracker |
Definition at line 27 of file vk_backend.hh.
|
inline |
|
inlinevirtual |
Definition at line 43 of file vk_backend.hh.
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 421 of file vk_backend.cc.
References batch_alloc().
Referenced by batch_alloc().
|
static |
Definition at line 518 of file vk_backend.cc.
References BLI_system_thread_count(), capabilities_init(), device, blender::gpu::GCaps, max_ii(), and min_uu().
Referenced by capabilities_init(), and blender::gpu::VKDevice::init().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 376 of file vk_backend.cc.
References compute_dispatch(), blender::gpu::render_graph::VKDispatchCreateInfo::dispatch_node, blender::gpu::VKContext::get(), blender::gpu::render_graph::VKDispatchData::group_count_x, blender::gpu::render_graph::VKDispatchData::group_count_y, blender::gpu::render_graph::VKDispatchData::group_count_z, blender::gpu::render_graph::VKDispatchData::pipeline_data, and VKContext.
Referenced by compute_dispatch().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 388 of file vk_backend.cc.
References BLI_assert, blender::gpu::render_graph::VKDispatchIndirectData::buffer, compute_dispatch_indirect(), blender::gpu::render_graph::VKDispatchIndirectCreateInfo::dispatch_indirect_node, blender::gpu::VKContext::get(), blender::gpu::render_graph::VKDispatchIndirectData::offset, blender::gpu::render_graph::VKDispatchIndirectData::pipeline_data, blender::gpu::unwrap(), blender::gpu::VKStorageBuffer::vk_handle(), and VKContext.
Referenced by compute_dispatch_indirect().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 401 of file vk_backend.cc.
References BLI_assert, context_alloc(), device, GHOST_GetDrawingContext(), blender::gpu::VKContext::swap_buffers_post_callback(), blender::gpu::VKContext::swap_buffers_pre_callback(), and VKContext.
Referenced by context_alloc().
| bool blender::gpu::VKBackend::debug_capture_begin | ( | const char * | title | ) |
Definition at line 38 of file vk_debug.cc.
References device, 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 58 of file vk_debug.cc.
References device.
Referenced by blender::gpu::VKContext::debug_capture_end(), and blender::gpu::VKContext::debug_capture_scope_end().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 366 of file vk_backend.cc.
References delete_resources().
Referenced by delete_resources().
Implements blender::gpu::GPUBackend.
Definition at line 426 of file vk_backend.cc.
References drawlist_alloc().
Referenced by drawlist_alloc().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 431 of file vk_backend.cc.
References fence_alloc().
Referenced by fence_alloc().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 436 of file vk_backend.cc.
References framebuffer_alloc().
Referenced by framebuffer_alloc().
|
inlinestatic |
Definition at line 92 of file vk_backend.hh.
References blender::gpu::GPUBackend::get(), and VKBackend().
Referenced by blender::gpu::VKContext::activate(), blender::gpu::VKDescriptorPools::allocate(), blender::gpu::VKImmediate::begin(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_debug_utils_label(), blender::gpu::VKQueryPool::begin_query(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_recording(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_rendering(), blender::gpu::VKVertexAttributeObject::bind(), 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::debug::VKDebuggingTools::destroy_messenger(), blender::gpu::VKVertexBuffer::device_format_ensure(), 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::VKShader::finalize(), blender::gpu::VKShaderModule::finalize(), blender::gpu::VKBuffer::flush(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::VKBuffer::free(), blender::gpu::VKSampler::free(), blender::gpu::VKPipelinePool::free_data(), 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::debug::VKDebuggingTools::init_messenger(), blender::gpu::VKContext::memory_statistics_get(), blender::gpu::debug::object_label(), blender::gpu::VKPipelinePool::read_from_disk(), blender::gpu::VKVertexBuffer::release_data(), blender::gpu::VKPipelinePool::remove(), blender::gpu::VKFrameBuffer::rendering_ensure(), blender::gpu::VKDescriptorPools::reset(), samplers_update(), blender::gpu::VKFence::signal(), blender::gpu::render_graph::VKCommandBufferWrapper::submit_with_cpu_synchronization(), blender::gpu::VKContext::sync_backbuffer(), blender::gpu::VKDescriptorSetTracker::update_descriptor_set(), blender::gpu::VKDescriptorSetTracker::upload_descriptor_sets(), blender::gpu::VKShader::vertex_interface_declare(), blender::gpu::VKContext::VKContext(), blender::gpu::VKImageView::VKImageView(), blender::gpu::render_graph::VKCommandBufferWrapper::wait_for_cpu_synchronization(), blender::gpu::VKPipelinePool::write_to_disk(), blender::gpu::render_graph::VKCommandBufferWrapper::~VKCommandBufferWrapper(), blender::gpu::VKContext::~VKContext(), blender::gpu::VKDescriptorPools::~VKDescriptorPools(), blender::gpu::VKFence::~VKFence(), blender::gpu::VKImageView::~VKImageView(), blender::gpu::VKQueryPool::~VKQueryPool(), blender::gpu::VKShader::~VKShader(), blender::gpu::VKShaderModule::~VKShaderModule(), and blender::gpu::VKTexture::~VKTexture().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 441 of file vk_backend.cc.
References indexbuf_alloc().
Referenced by indexbuf_alloc().
|
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 139 of file vk_backend.cc.
References CLG_logref_init(), CLOG_ERROR, CLOG_INFO, CLOG_WARN, blender::Array< T, InlineBufferCapacity, Allocator >::data(), 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 446 of file vk_backend.cc.
References pixelbuf_alloc(), and size().
Referenced by pixelbuf_alloc().
|
static |
Definition at line 273 of file vk_backend.cc.
References CLOG_INFO, blender::gpu::determine_os_type(), device, blender::gpu::GPG, GPU_ARCHITECTURE_IMR, GPU_BACKEND_VULKAN, GPU_SUPPORT_LEVEL_SUPPORTED, blender::gpu::LOG, and platform_init().
Referenced by blender::gpu::VKDevice::init(), platform_init(), and VKBackend().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 451 of file vk_backend.cc.
References querypool_alloc().
Referenced by querypool_alloc().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 481 of file vk_backend.cc.
References BLI_assert_msg, device, render_begin(), and blender::gpu::VKThreadData::rendering_depth.
Referenced by render_begin().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 488 of file vk_backend.cc.
References BLI_assert_msg, BLI_thread_is_main(), device, blender::gpu::VKResourcePool::discard_pool, G, render_end(), blender::gpu::VKThreadData::rendering_depth, blender::gpu::VKResourcePool::reset(), and blender::gpu::VKThreadData::resource_pool_get().
Referenced by render_end().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 516 of file vk_backend.cc.
References render_step().
Referenced by render_step().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 368 of file vk_backend.cc.
References device, get(), and samplers_update().
Referenced by samplers_update().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 456 of file vk_backend.cc.
References shader_alloc().
Referenced by shader_alloc().
|
inlineoverridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 78 of file vk_backend.hh.
References blender::gpu::VKShaderCompiler::cache_dir_clear_old().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 471 of file vk_backend.cc.
References size(), and storagebuf_alloc().
Referenced by storagebuf_alloc().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 461 of file vk_backend.cc.
References texture_alloc().
Referenced by texture_alloc().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 466 of file vk_backend.cc.
References size(), and uniformbuf_alloc().
Referenced by uniformbuf_alloc().
|
overridevirtual |
Implements blender::gpu::GPUBackend.
Definition at line 476 of file vk_backend.cc.
References vertbuf_alloc().
Referenced by vertbuf_alloc().
|
friend |
Definition at line 106 of file vk_backend.hh.
References VKContext.
Referenced by compute_dispatch(), compute_dispatch_indirect(), context_alloc(), and VKContext.
|
friend |
Definition at line 107 of file vk_backend.hh.
References VKDescriptorSet.
Referenced by VKDescriptorSet.
|
friend |
Definition at line 108 of file vk_backend.hh.
References VKDescriptorSetTracker.
Referenced by VKDescriptorSetTracker.
| VKDevice blender::gpu::VKBackend::device |
Definition at line 36 of file vk_backend.hh.
Referenced by blender::gpu::VKContext::activate(), blender::gpu::VKDescriptorPools::allocate(), blender::gpu::VKImmediate::begin(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_debug_utils_label(), blender::gpu::VKQueryPool::begin_query(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_recording(), blender::gpu::render_graph::VKCommandBufferWrapper::begin_rendering(), blender::gpu::VKVertexAttributeObject::bind(), capabilities_init(), context_alloc(), blender::gpu::VKBuffer::create(), blender::gpu::VKSampler::create(), debug_capture_begin(), debug_capture_end(), blender::gpu::VKDescriptorSetLayouts::deinit(), blender::gpu::VKVertexBuffer::device_format_ensure(), 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::VKShader::finalize(), blender::gpu::VKShaderModule::finalize(), blender::gpu::VKBuffer::flush(), blender::gpu::VKShader::fragment_interface_declare(), blender::gpu::VKBuffer::free(), blender::gpu::VKSampler::free(), blender::gpu::VKPipelinePool::free_data(), 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(), platform_init(), blender::gpu::VKPipelinePool::read_from_disk(), blender::gpu::VKVertexBuffer::release_data(), blender::gpu::VKPipelinePool::remove(), render_begin(), render_end(), blender::gpu::VKFrameBuffer::rendering_ensure(), blender::gpu::VKDescriptorPools::reset(), samplers_update(), blender::gpu::VKFence::signal(), blender::gpu::render_graph::VKCommandBufferWrapper::submit_with_cpu_synchronization(), blender::gpu::VKContext::sync_backbuffer(), blender::gpu::VKDescriptorSetTracker::update_descriptor_set(), blender::gpu::VKDescriptorSetTracker::upload_descriptor_sets(), blender::gpu::VKShader::vertex_interface_declare(), blender::gpu::VKImageView::VKImageView(), blender::gpu::render_graph::VKCommandBufferWrapper::wait_for_cpu_synchronization(), blender::gpu::VKPipelinePool::write_to_disk(), blender::gpu::render_graph::VKCommandBufferWrapper::~VKCommandBufferWrapper(), blender::gpu::VKContext::~VKContext(), blender::gpu::VKDescriptorPools::~VKDescriptorPools(), blender::gpu::VKFence::~VKFence(), blender::gpu::VKImageView::~VKImageView(), blender::gpu::VKQueryPool::~VKQueryPool(), blender::gpu::VKShader::~VKShader(), blender::gpu::VKShaderModule::~VKShaderModule(), and blender::gpu::VKTexture::~VKTexture().
| VKShaderCompiler blender::gpu::VKBackend::shader_compiler |
Definition at line 34 of file vk_backend.hh.
Referenced by blender::gpu::VKContext::VKContext().