|
Blender V4.3
|
#include <vk_context.hh>
Inherits blender::gpu::Context, and blender::NonCopyable.
Static Public Member Functions | |
| static VKContext * | get () |
Static Public Member Functions inherited from blender::gpu::Context | |
| static Context * | get () |
Public Attributes | |
| render_graph::VKRenderGraph | render_graph |
Public Attributes inherited from blender::gpu::Context | |
| Shader * | shader = nullptr |
| FrameBuffer * | active_fb = nullptr |
| GPUMatrixState * | matrix_state = nullptr |
| StateManager * | state_manager = nullptr |
| Immediate * | imm = nullptr |
| ShaderCompiler * | compiler = nullptr |
| FrameBuffer * | back_left = nullptr |
| FrameBuffer * | front_left = nullptr |
| FrameBuffer * | back_right = nullptr |
| FrameBuffer * | front_right = nullptr |
| DebugStack | debug_stack |
| bool | debug_is_capturing = false |
| int | context_id = 0 |
| GPUStorageBuf * | printf_buf = nullptr |
Pipeline | |
| render_graph::VKResourceAccessInfo & | reset_and_get_access_info () |
| void | update_pipeline_data (render_graph::VKPipelineData &r_pipeline_data) |
| void | update_pipeline_data (GPUPrimType primitive, VKVertexAttributeObject &vao, render_graph::VKPipelineData &r_pipeline_data) |
Graphics pipeline | |
| static void | swap_buffers_pre_callback (const GHOST_VulkanSwapChainData *data) |
| static void | swap_buffers_post_callback () |
Additional Inherited Members | |
Static Public Attributes inherited from blender::gpu::Context | |
| static int | context_counter = 0 |
Protected Attributes inherited from blender::gpu::Context | |
| pthread_t | thread_ |
| bool | is_active_ |
| void * | ghost_window_ |
Definition at line 29 of file vk_context.hh.
| blender::gpu::VKContext::VKContext | ( | void * | ghost_window, |
| void * | ghost_context, | ||
| render_graph::VKResourceStateTracker & | resources ) |
Definition at line 24 of file vk_context.cc.
References blender::gpu::Context::active_fb, blender::gpu::Context::back_left, blender::gpu::Context::compiler, blender::gpu::Context::front_left, blender::gpu::VKBackend::get(), blender::gpu::Context::ghost_window_, blender::gpu::VKBackend::shader_compiler, and blender::gpu::Context::state_manager.
|
virtual |
Definition at line 41 of file vk_context.cc.
References blender::gpu::FrameBuffer::attachment_remove(), blender::gpu::Context::back_left, blender::gpu::Context::compiler, blender::gpu::VKDevice::context_unregister(), blender::gpu::VKBackend::device, blender::gpu::Context::front_left, blender::gpu::VKBackend::get(), GPU_FB_COLOR_ATTACHMENT0, GPU_texture_free(), and blender::gpu::Context::imm.
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 107 of file vk_context.cc.
References BLI_assert, blender::gpu::VKDevice::current_thread_data(), blender::gpu::VKBackend::device, blender::gpu::VKBackend::get(), blender::gpu::Context::imm, immActivate(), blender::gpu::VKResourcePool::immediate, blender::gpu::Context::is_active_, blender::gpu::VKThreadData::resource_pool_get(), and sync_backbuffer().
| void blender::gpu::VKContext::activate_framebuffer | ( | VKFrameBuffer & | framebuffer | ) |
| VKFrameBuffer * blender::gpu::VKContext::active_framebuffer_get | ( | ) | const |
Definition at line 208 of file vk_context.cc.
References blender::gpu::Context::active_fb, and blender::gpu::unwrap().
Referenced by deactivate_framebuffer(), flush_render_graph(), has_active_framebuffer(), rendering_end(), and update_pipeline_data().
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 134 of file vk_context.cc.
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 125 of file vk_context.cc.
References flush_render_graph(), blender::gpu::Context::imm, immDeactivate(), and blender::gpu::Context::is_active_.
| void blender::gpu::VKContext::deactivate_framebuffer | ( | ) |
Definition at line 218 of file vk_context.cc.
References blender::gpu::Context::active_fb, active_framebuffer_get(), BLI_assert, blender::gpu::VKFrameBuffer::is_rendering(), and blender::gpu::VKFrameBuffer::rendering_end().
Referenced by activate_framebuffer(), and sync_backbuffer().
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 32 of file vk_debug.cc.
References blender::gpu::VKBackend::debug_capture_begin(), flush_render_graph(), and blender::gpu::VKBackend::get().
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 52 of file vk_debug.cc.
References blender::gpu::VKBackend::debug_capture_end(), flush_render_graph(), and blender::gpu::VKBackend::get().
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 70 of file vk_debug.cc.
References blender::gpu::VKBackend::debug_capture_begin(), G, blender::gpu::VKBackend::get(), and UNUSED_VARS.
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 65 of file vk_debug.cc.
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 84 of file vk_debug.cc.
References blender::gpu::VKBackend::debug_capture_end(), G, blender::gpu::VKBackend::get(), and UNUSED_VARS.
|
overridevirtual |
Reimplemented from blender::gpu::Context.
Definition at line 22 of file vk_debug.cc.
References blender::gpu::render_graph::VKRenderGraph::debug_group_begin(), and render_graph.
|
overridevirtual |
Reimplemented from blender::gpu::Context.
Definition at line 27 of file vk_debug.cc.
References blender::gpu::render_graph::VKRenderGraph::debug_group_end(), and render_graph.
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 184 of file vk_context.cc.
References state_manager_get(), and blender::gpu::VKStateManager::storage_buffer_unbind_all().
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 179 of file vk_context.cc.
References state_manager_get(), and blender::gpu::VKStateManager::uniform_buffer_unbind_all().
| VKDescriptorPools & blender::gpu::VKContext::descriptor_pools_get | ( | ) |
Definition at line 164 of file vk_context.cc.
| VKDescriptorSetTracker & blender::gpu::VKContext::descriptor_set_get | ( | ) |
Definition at line 169 of file vk_context.cc.
Referenced by flush_render_graph().
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 136 of file vk_context.cc.
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 152 of file vk_context.cc.
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 138 of file vk_context.cc.
| void blender::gpu::VKContext::flush_render_graph | ( | ) |
Definition at line 140 of file vk_context.cc.
References active_framebuffer_get(), descriptor_set_get(), has_active_framebuffer(), blender::gpu::VKFrameBuffer::is_rendering(), render_graph, blender::gpu::VKFrameBuffer::rendering_end(), blender::gpu::render_graph::VKRenderGraph::submit(), and blender::gpu::VKDescriptorSetTracker::upload_descriptor_sets().
Referenced by deactivate(), debug_capture_begin(), and debug_capture_end().
|
inlinestatic |
Definition at line 97 of file vk_context.hh.
References blender::gpu::Context::get().
Referenced by blender::gpu::VKDrawList::append(), blender::gpu::VKQueryPool::begin_query(), blender::gpu::VKFrameBuffer::bind(), blender::gpu::VKStorageBuffer::bind(), blender::gpu::VKUniformBuffer::bind(), blender::gpu::VKIndexBuffer::bind_as_ssbo(), blender::gpu::VKUniformBuffer::bind_as_ssbo(), blender::gpu::VKVertexBuffer::bind_as_ssbo(), blender::gpu::VKVertexBuffer::bind_as_texture(), blender::gpu::VKFrameBuffer::blit_to(), blender::gpu::VKFrameBuffer::clear(), blender::gpu::VKStorageBuffer::clear(), blender::gpu::VKTexture::clear(), blender::gpu::VKTexture::clear_depth_stencil(), blender::gpu::VKUniformBuffer::clear_to_zero(), blender::gpu::VKStorageBuffer::copy_sub(), blender::gpu::VKTexture::copy_to(), blender::gpu::VKBatch::draw(), blender::gpu::VKImmediate::end(), blender::gpu::VKQueryPool::end_query(), blender::gpu::VKIndexBuffer::ensure_updated(), blender::gpu::VKUniformBuffer::ensure_updated(), blender::gpu::VKTexture::generate_mipmap(), blender::gpu::VKQueryPool::get_occlusion_result(), blender::gpu::VKStateManager::issue_barrier(), blender::gpu::VKBatch::multi_draw_indirect(), blender::gpu::VKIndexBuffer::read(), blender::gpu::VKStorageBuffer::read(), blender::gpu::VKVertexBuffer::read(), blender::gpu::VKTexture::read_sub(), blender::gpu::VKFence::signal(), blender::gpu::VKFrameBuffer::subpass_transition_impl(), swap_buffers_post_callback(), swap_buffers_pre_callback(), blender::gpu::VKStorageBuffer::unbind(), blender::gpu::VKUniformBuffer::unbind(), blender::gpu::VKStorageBuffer::update(), blender::gpu::VKUniformBuffer::update(), blender::gpu::VKTexture::update_sub(), blender::gpu::VKPushConstants::update_uniform_buffer(), blender::gpu::VKVertexBuffer::upload_data(), blender::gpu::VKShader::VKShader(), blender::gpu::VKFence::wait(), and blender::gpu::VKFrameBuffer::~VKFrameBuffer().
| bool blender::gpu::VKContext::has_active_framebuffer | ( | ) | const |
Definition at line 213 of file vk_context.cc.
References active_framebuffer_get().
Referenced by activate_framebuffer(), flush_render_graph(), and sync_backbuffer().
|
overridevirtual |
Implements blender::gpu::Context.
Definition at line 154 of file vk_context.cc.
References blender::gpu::VKBackend::device, blender::gpu::VKBackend::get(), and blender::gpu::VKDevice::memory_statistics_get().
| void blender::gpu::VKContext::rendering_end | ( | ) |
Ensure that the active framebuffer isn't rendering.
Between vkCmdBeginRendering and vkCmdEndRendering the framebuffer is rendering. Dispatch and transfer commands cannot be called between these commands. They can call this method to ensure that the framebuffer is outside these calls.
Definition at line 228 of file vk_context.cc.
References active_framebuffer_get(), and blender::gpu::VKFrameBuffer::rendering_end().
| render_graph::VKResourceAccessInfo & blender::gpu::VKContext::reset_and_get_access_info | ( | ) |
Definition at line 286 of file vk_context.cc.
References blender::gpu::render_graph::VKResourceAccessInfo::reset().
| VKStateManager & blender::gpu::VKContext::state_manager_get | ( | ) | const |
Definition at line 174 of file vk_context.cc.
References blender::gpu::Context::state_manager.
Referenced by blender::gpu::VKIndexBuffer::bind_as_ssbo(), debug_unbind_all_ssbo(), debug_unbind_all_ubo(), and update_pipeline_data().
|
static |
Definition at line 305 of file vk_context.cc.
References BLI_assert, and get().
|
static |
Definition at line 298 of file vk_context.cc.
References BLI_assert, and get().
| void blender::gpu::VKContext::sync_backbuffer | ( | ) |
Definition at line 55 of file vk_context.cc.
References blender::assign_if_different(), blender::gpu::FrameBuffer::attachment_set(), blender::gpu::Context::back_left, blender::gpu::FrameBuffer::bind(), deactivate_framebuffer(), blender::gpu::VKDiscardPool::destroy_discarded_resources(), blender::gpu::VKBackend::device, blender::gpu::VKResourcePool::discard_pool, blender::gpu::Context::front_left, blender::gpu::VKBackend::get(), blender::gpu::Context::ghost_window_, GPU_ATTACHMENT_TEXTURE, GPU_FB_COLOR_ATTACHMENT0, GPU_texture_create_2d(), GPU_texture_free(), GPU_TEXTURE_USAGE_ATTACHMENT, has_active_framebuffer(), blender::gpu::Context::imm, blender::gpu::VKResourcePool::immediate, blender::gpu::VKDiscardPool::move_data(), blender::gpu::VKDevice::orphaned_data, blender::gpu::VKResourcePool::reset(), blender::gpu::VKThreadData::resource_pool_get(), blender::gpu::VKThreadData::resource_pool_index, and blender::gpu::to_gpu_format().
Referenced by activate().
| void blender::gpu::VKContext::update_pipeline_data | ( | GPUPrimType | primitive, |
| VKVertexAttributeObject & | vao, | ||
| render_graph::VKPipelineData & | r_pipeline_data ) |
Definition at line 242 of file vk_context.cc.
References active_framebuffer_get(), blender::gpu::VKShader::ensure_and_get_graphics_pipeline(), state_manager_get(), blender::gpu::unwrap(), and update_pipeline_data().
| void blender::gpu::VKContext::update_pipeline_data | ( | render_graph::VKPipelineData & | r_pipeline_data | ) |
Update the give shader data with the current state of the context.
Definition at line 254 of file vk_context.cc.
References blender::gpu::VKShader::ensure_and_get_compute_pipeline(), blender::gpu::unwrap(), and update_pipeline_data().
Referenced by update_pipeline_data(), and update_pipeline_data().
| render_graph::VKRenderGraph blender::gpu::VKContext::render_graph |
Definition at line 42 of file vk_context.hh.
Referenced by debug_group_begin(), debug_group_end(), and flush_render_graph().