|
Blender V4.3
|
Go to the source code of this file.
Functions | |
| bool | GPU_backend_supported () |
| void | GPU_backend_type_selection_set (const eGPUBackendType backend) |
| eGPUBackendType | GPU_backend_type_selection_get () |
| eGPUBackendType | GPU_backend_get_type () |
| bool | GPU_backend_type_selection_detect () |
| void | GPU_backend_type_selection_set_override (eGPUBackendType backend_type) |
| bool | GPU_backend_type_selection_is_overridden () |
| GPUContext * | GPU_context_create (void *ghost_window, void *ghost_context) |
| void | GPU_context_discard (GPUContext *) |
| void | GPU_context_active_set (GPUContext *) |
| GPUContext * | GPU_context_active_get () |
| void | GPU_context_begin_frame (GPUContext *ctx) |
| void | GPU_context_end_frame (GPUContext *ctx) |
| void | GPU_context_main_lock () |
| void | GPU_context_main_unlock () |
| void | GPU_render_begin () |
| void | GPU_render_end () |
| void | GPU_render_step () |
| void | GPU_backend_ghost_system_set (void *ghost_system_handle) |
| void * | GPU_backend_ghost_system_get () |
This interface allow GPU to manage VAOs for multiple context and threads.
Definition in file GPU_context.hh.
| eGPUBackendType GPU_backend_get_type | ( | ) |
Definition at line 383 of file gpu_context.cc.
References g_backend, GPU_BACKEND_METAL, GPU_BACKEND_NONE, GPU_BACKEND_OPENGL, and GPU_BACKEND_VULKAN.
Referenced by blender::render::hydra::GPURenderTaskDelegate::bind(), BPyInit_bgl(), buffer_from_list_inputs_sort(), blender::draw::calc_final_indices(), compositor_engine_draw(), blender::workbench::Instance::draw_image_render(), DRW_custom_pipeline_end(), blender::render::hydra::Engine::Engine(), get_padded_gpu_type(), GPU_pass_should_optimize(), gpu_shader_create_info_compile(), immDrawPixelsTexTiled_scaling_clipping(), blender::eevee::ShadowModule::init(), is_subdivision_evaluation_possible_on_gpu(), playanim_toscreen_ex(), pygpu_platform_backend_type_get(), RE_PreviewRender(), blender::eevee::Instance::render_frame(), blender::eevee::ShadowModule::set_view(), standard_defines(), blender::gpu::tests::test_texture_1d_array(), blender::gpu::tests::test_texture_1d_array_upload(), blender::gpu::tests::test_texture_roundtrip__GPU_DATA_2_10_10_10_REV__GPU_RGB10_A2UI(), and WM_platform_support_perform_checks().
| void * GPU_backend_ghost_system_get | ( | ) |
Definition at line 253 of file gpu_context.cc.
References g_ghost_system.
Referenced by blender::gpu::MTLParallelShaderCompiler::create_compile_threads().
| void GPU_backend_ghost_system_set | ( | void * | ghost_system_handle | ) |
Definition at line 248 of file gpu_context.cc.
References g_ghost_system.
Referenced by blender::gpu::shader_builder::ShaderBuilder::init_system(), multitestapp_new(), blender::gpu::GPUTest::SetUp(), wm_ghost_init(), wm_ghost_init_background(), and wm_main_playanim_intern().
| bool GPU_backend_supported | ( | ) |
Definition at line 332 of file gpu_context.cc.
References g_backend_type_supported, and gpu_backend_supported().
Referenced by gpu_backend_create(), GPU_backend_type_selection_detect(), main(), RE_engine_render(), and WM_init_gpu().
| bool GPU_backend_type_selection_detect | ( | ) |
Detect the most suited eGPUBackendType.
GPU_backend_type_selection_set.Returns true when detection found a supported backend, otherwise returns false. When no supported backend is found GPU_backend_type_selection_set is called with GPU_BACKEND_NONE.
Definition at line 279 of file gpu_context.cc.
References blender::VectorSet< Key, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), G, g_backend_type_override, G_FLAG_GPU_BACKEND_FALLBACK, GPU_BACKEND_METAL, GPU_BACKEND_NONE, GPU_BACKEND_OPENGL, GPU_backend_supported(), GPU_backend_type_selection_is_overridden(), and GPU_backend_type_selection_set().
Referenced by wm_init_userdef(), and wm_main_playanim_intern().
| eGPUBackendType GPU_backend_type_selection_get | ( | ) |
Definition at line 264 of file gpu_context.cc.
References g_backend_type.
Referenced by blender::gpu::shader_builder::ShaderBuilder::init_context(), playanim_window_open(), WM_system_gpu_context_create(), and wm_window_ghostwindow_add().
| bool GPU_backend_type_selection_is_overridden | ( | ) |
Check if the GPU_backend_type_selection_detect is overridden to only test a specific backend.
Definition at line 274 of file gpu_context.cc.
References g_backend_type_override.
Referenced by GPU_backend_type_selection_detect(), and wm_gpu_backend_override_from_userdef().
| void GPU_backend_type_selection_set | ( | const eGPUBackendType | backend | ) |
Definition at line 258 of file gpu_context.cc.
References g_backend_type, and g_backend_type_supported.
Referenced by GPU_backend_type_selection_detect(), main(), and blender::gpu::GPUTest::SetUp().
| void GPU_backend_type_selection_set_override | ( | eGPUBackendType | backend_type | ) |
Alter the GPU_backend_type_selection_detect to only test a specific backend
Definition at line 269 of file gpu_context.cc.
References g_backend_type_override.
Referenced by arg_handle_gpu_backend_set(), and wm_gpu_backend_override_from_userdef().
| GPUContext * GPU_context_active_get | ( | ) |
Definition at line 155 of file gpu_context.cc.
References blender::gpu::Context::get(), and blender::gpu::wrap().
Referenced by blender::gpu::MTLParallelShaderCompiler::create_compile_threads(), DRW_gpu_context_release(), playanim_toscreen_ex(), pygpu_framebuffer__tp_new(), pygpu_offscreen__tp_new(), pygpu_texture__tp_new(), pygpu_uniformbuffer__tp_new(), RE_engine_gpu_context_destroy(), WM_init(), and wm_main_playanim_intern().
| void GPU_context_active_set | ( | GPUContext * | ctx_ | ) |
GPUContext can be null.
Definition at line 138 of file gpu_context.cc.
References blender::gpu::Context::activate(), active_ctx, blender::gpu::Context::deactivate(), blender::gpu::printf_begin(), blender::gpu::printf_end(), and blender::gpu::unwrap().
Referenced by blender::gpu::MTLParallelShaderCompiler::create_compile_threads(), DRW_blender_gpu_render_context_disable(), DRW_blender_gpu_render_context_enable(), drw_deferred_shader_compilation_exec(), DRW_gpu_context_activate(), DRW_gpu_context_destroy(), DRW_gpu_context_disable_ex(), DRW_gpu_context_enable_ex(), DRW_gpu_context_release(), DRW_shader_exit(), DRW_shader_init(), blender::render::RealtimeCompositor::execute(), extrawindow_do_draw(), extrawindow_do_reshape(), GPU_context_create(), loggerwindow_do_draw(), loggerwindow_do_reshape(), mainwindow_do_draw(), mainwindow_do_reshape(), playanim_toscreen_ex(), RE_blender_gpu_context_free(), RE_engine_gpu_context_create(), RE_engine_gpu_context_destroy(), RE_engine_gpu_context_disable(), RE_engine_gpu_context_enable(), RE_system_gpu_context_free(), wm_ghostwindow_destroy(), wm_main_playanim_intern(), wm_surface_clear_drawable(), wm_surface_set_drawable(), WM_window_pixels_read_from_frontbuffer(), WM_window_pixels_read_sample_from_frontbuffer(), and wm_window_set_drawable().
| void GPU_context_begin_frame | ( | GPUContext * | ctx | ) |
Definition at line 160 of file gpu_context.cc.
References blender::gpu::Context::begin_frame(), and blender::gpu::unwrap().
Referenced by blender::gpu::GPUTest::SetUp(), wm_draw_surface(), wm_draw_window(), and WM_init().
| GPUContext * GPU_context_create | ( | void * | ghost_window, |
| void * | ghost_context ) |
Definition at line 103 of file gpu_context.cc.
References backend_users_mutex, blender::gpu::GPUBackend::context_alloc(), blender::gpu::GPUBackend::get(), gpu_backend_create(), GPU_context_active_set(), lock, num_backend_users, and blender::gpu::wrap().
Referenced by blender::gpu::MTLParallelShaderCompiler::create_compile_threads(), DRW_gpu_context_create(), DRW_shader_init(), extrawindow_new(), blender::gpu::shader_builder::ShaderBuilder::init_context(), loggerwindow_new(), mainwindow_new(), RE_blender_gpu_context_ensure(), RE_engine_gpu_context_create(), blender::gpu::GPUTest::SetUp(), wm_main_playanim_intern(), and wm_window_ghostwindow_add().
| void GPU_context_discard | ( | GPUContext * | ctx_ | ) |
To be called after #GPU_context_active_set(ctx_to_destroy).
Definition at line 120 of file gpu_context.cc.
References active_ctx, backend_users_mutex, BLI_assert, gpu_backend_discard(), lock, num_backend_users, blender::gpu::printf_end(), and blender::gpu::unwrap().
Referenced by DRW_gpu_context_destroy(), DRW_shader_exit(), blender::gpu::shader_builder::ShaderBuilder::exit_context(), RE_blender_gpu_context_free(), RE_engine_gpu_context_destroy(), RE_system_gpu_context_free(), blender::gpu::GPUTest::TearDown(), wm_ghostwindow_destroy(), and wm_main_playanim_intern().
| void GPU_context_end_frame | ( | GPUContext * | ctx | ) |
Definition at line 168 of file gpu_context.cc.
References blender::gpu::Context::end_frame(), and blender::gpu::unwrap().
Referenced by blender::gpu::GPUTest::TearDown(), wm_draw_surface(), wm_draw_window(), and WM_init().
| void GPU_context_main_lock | ( | ) |
Definition at line 184 of file gpu_context.cc.
References main_context_mutex.
Referenced by DRW_render_context_enable(), and wm_draw_update().
| void GPU_context_main_unlock | ( | ) |
Definition at line 189 of file gpu_context.cc.
References main_context_mutex.
Referenced by DRW_render_context_disable(), and wm_draw_update().
| void GPU_render_begin | ( | ) |
Definition at line 203 of file gpu_context.cc.
References active_ctx, BLI_assert, blender::gpu::GPUBackend::get(), blender::gpu::printf_begin(), blender::gpu::printf_end(), and blender::gpu::GPUBackend::render_begin().
Referenced by drw_deferred_shader_compilation_exec(), DRW_gpu_context_enable_ex(), DRW_render_context_enable(), DRW_render_to_image(), blender::render::RealtimeCompositor::execute(), blender::gpu::tests::gpu_shader_lib_test(), playanim_toscreen_ex(), RE_engine_gpu_context_enable(), RE_PreviewRender(), blender::gpu::GPUTest::SetUp(), blender::gpu::tests::ShaderSpecializationConst::ShaderSpecializationConst(), blender::draw::test_draw_resource_id_gen(), blender::draw::test_draw_visibility(), blender::draw::test_eevee_lut_gen(), blender::draw::test_eevee_shadow_finalize(), blender::draw::test_eevee_shadow_free(), blender::draw::test_eevee_shadow_page_mask_ex(), blender::draw::test_eevee_shadow_shift(), blender::draw::test_eevee_shadow_shift_clear(), blender::draw::test_eevee_shadow_tag_update(), blender::draw::test_eevee_shadow_tilemap_amend(), blender::draw::test_eevee_surfel_list(), blender::gpu::tests::test_framebuffer_cube(), blender::gpu::tests::test_framebuffer_multi_viewport(), blender::gpu::tests::test_framebuffer_subpass_input(), blender::gpu::tests::test_texture_1d(), blender::gpu::tests::test_texture_1d_array(), blender::gpu::tests::test_texture_1d_array_upload(), blender::gpu::tests::test_texture_2d_array(), blender::gpu::tests::test_texture_2d_array_upload(), blender::gpu::tests::test_texture_3d(), blender::gpu::tests::test_texture_copy(), blender::gpu::tests::test_texture_cube(), blender::gpu::tests::test_texture_cube_array(), blender::gpu::tests::test_texture_read(), blender::draw::TestAlloc::TestAlloc(), wm_draw_update(), wm_event_do_handlers(), wm_event_do_notifiers(), WM_init(), wm_main_playanim_intern(), wm_window_events_process(), and wm_window_ghostwindow_add().
| void GPU_render_end | ( | ) |
Definition at line 215 of file gpu_context.cc.
References active_ctx, BLI_assert, blender::gpu::GPUBackend::get(), blender::gpu::printf_begin(), blender::gpu::printf_end(), and blender::gpu::GPUBackend::render_end().
Referenced by drw_deferred_shader_compilation_exec(), DRW_gpu_context_disable_ex(), DRW_render_context_disable(), DRW_render_to_image(), blender::render::RealtimeCompositor::execute(), blender::gpu::tests::gpu_shader_lib_test(), playanim_toscreen_ex(), RE_engine_gpu_context_disable(), RE_PreviewRender(), blender::gpu::tests::ShaderSpecializationConst::ShaderSpecializationConst(), blender::gpu::GPUTest::TearDown(), blender::draw::test_draw_resource_id_gen(), blender::draw::test_draw_visibility(), blender::draw::test_eevee_lut_gen(), blender::draw::test_eevee_shadow_finalize(), blender::draw::test_eevee_shadow_free(), blender::draw::test_eevee_shadow_page_mask_ex(), blender::draw::test_eevee_shadow_shift(), blender::draw::test_eevee_shadow_shift_clear(), blender::draw::test_eevee_shadow_tag_update(), blender::draw::test_eevee_shadow_tilemap_amend(), blender::draw::test_eevee_surfel_list(), blender::gpu::tests::test_framebuffer_cube(), blender::gpu::tests::test_framebuffer_multi_viewport(), blender::gpu::tests::test_framebuffer_subpass_input(), blender::gpu::tests::test_texture_1d(), blender::gpu::tests::test_texture_1d_array(), blender::gpu::tests::test_texture_1d_array_upload(), blender::gpu::tests::test_texture_2d_array(), blender::gpu::tests::test_texture_2d_array_upload(), blender::gpu::tests::test_texture_3d(), blender::gpu::tests::test_texture_copy(), blender::gpu::tests::test_texture_cube(), blender::gpu::tests::test_texture_cube_array(), blender::gpu::tests::test_texture_read(), blender::draw::TestAlloc::TestAlloc(), wm_draw_update(), wm_event_do_handlers(), wm_event_do_notifiers(), WM_init(), wm_main_playanim_intern(), wm_window_events_process(), and wm_window_ghostwindow_add().
| void GPU_render_step | ( | ) |
Definition at line 225 of file gpu_context.cc.
References active_ctx, BLI_assert, blender::gpu::GPUBackend::get(), blender::gpu::printf_begin(), blender::gpu::printf_end(), and blender::gpu::GPUBackend::render_step().
Referenced by blender::workbench::Instance::draw_image_render(), playanim_toscreen_ex(), blender::eevee::Instance::render_frame(), wm_draw_update(), and wm_main_playanim_intern().