Blender
V3.3
|
Go to the source code of this file.
GPU Capabilities & workarounds This module expose the reported implementation limits & enabled workaround for drivers that needs specific code-paths.
Definition in file GPU_capabilities.h.
Definition at line 144 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::clear_viewport_workaround, and blender::gpu::GCaps.
Referenced by gpu_viewport_textures_create().
Definition at line 149 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::compute_shader_support, and blender::gpu::GCaps.
Referenced by drw_curves_shader_type_get(), drw_hair_shader_type_get(), DRW_shgroup_barrier(), DRW_shgroup_call_compute(), DRW_shgroup_call_compute_indirect(), DRW_shgroup_call_compute_ref(), gpu_shader_create_info_compile_all(), is_subdivision_evaluation_possible_on_gpu(), blender::gpu::tests::test_gpu_shader_compute_1d(), blender::gpu::tests::test_gpu_shader_compute_2d(), blender::gpu::tests::test_gpu_shader_compute_ibo(), blender::gpu::tests::test_gpu_shader_compute_vbo(), and blender::gpu::tests::test_gpu_shader_ssbo_binding().
Definition at line 133 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::broken_amd_driver, and blender::gpu::GCaps.
Referenced by draw_subdiv_build_edge_fac_buffer(), DRW_vertbuf_create_wiredata(), blender::draw::extract_edge_fac_finish(), blender::draw::extract_edge_fac_loose_geom_subdiv(), blender::draw::get_subdiv_edge_fac_format(), gpu_shader_create_info_init(), and standard_defines().
Definition at line 123 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::depth_blitting_workaround, and blender::gpu::GCaps.
Referenced by EEVEE_subsurface_add_pass(), EEVEE_subsurface_compute(), EEVEE_subsurface_draw_init(), EEVEE_subsurface_output_init(), and blender::gpu::GLTexture::init_internal().
const char* GPU_extension_get | ( | int | i | ) |
Definition at line 113 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::extension_get, and blender::gpu::GCaps.
int GPU_extensions_len | ( | void | ) |
Definition at line 108 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::extensions_len, and blender::gpu::GCaps.
int GPU_max_batch_indices | ( | void | ) |
Definition at line 88 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_batch_indices.
Referenced by pygpu_max_batch_indices_get().
int GPU_max_batch_vertices | ( | void | ) |
Definition at line 93 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_batch_vertices.
Referenced by pygpu_max_batch_vertices_get().
int GPU_max_compute_shader_storage_blocks | ( | void | ) |
Definition at line 169 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_compute_shader_storage_blocks.
Referenced by is_subdivision_evaluation_possible_on_gpu().
int GPU_max_shader_storage_buffer_bindings | ( | void | ) |
Definition at line 164 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_shader_storage_buffer_bindings.
int GPU_max_texture_layers | ( | void | ) |
Definition at line 43 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_texture_layers.
Referenced by EEVEE_lightcache_info_update(), eevee_lightcache_static_load(), and pygpu_max_texture_layers_get().
int GPU_max_texture_size | ( | void | ) |
Definition at line 31 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_texture_size.
Referenced by blf_glyph_draw(), EEVEE_render_init(), GPU_texture_size_with_limit(), pygpu_max_texture_size_get(), and texture_paint_image_from_view_exec().
int GPU_max_textures | ( | void | ) |
Definition at line 63 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_textures.
Referenced by gpu_pass_shader_validate(), blender::gpu::MTLContext::pipeline_state_init(), pygpu_max_textures_get(), blender::gpu::MTLContext::sampler_bind(), blender::gpu::MTLContext::texture_bind(), blender::gpu::GLStateManager::texture_bind(), blender::gpu::MTLContext::texture_unbind(), and blender::gpu::MTLContext::texture_unbind_all().
int GPU_max_textures_frag | ( | void | ) |
Definition at line 58 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_textures_frag.
Referenced by gpu_pass_shader_validate(), and pygpu_max_textures_frag_get().
int GPU_max_textures_geom | ( | void | ) |
Definition at line 53 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_textures_geom.
Referenced by gpu_pass_shader_validate(), and pygpu_max_textures_geom_get().
int GPU_max_textures_vert | ( | void | ) |
Definition at line 48 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_textures_vert.
Referenced by gpu_pass_shader_validate(), and pygpu_max_textures_vert_get().
int GPU_max_uniforms_frag | ( | void | ) |
Definition at line 83 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_uniforms_frag.
Referenced by pygpu_max_uniforms_frag_get().
int GPU_max_uniforms_vert | ( | void | ) |
Definition at line 78 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_uniforms_vert.
Referenced by pygpu_max_uniforms_vert_get().
int GPU_max_varying_floats | ( | void | ) |
Definition at line 103 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_varying_floats.
Referenced by pygpu_max_varying_floats_get().
int GPU_max_vertex_attribs | ( | void | ) |
Definition at line 98 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_vertex_attribs.
Referenced by pygpu_max_vertex_attribs_get().
int GPU_max_work_group_count | ( | int | index | ) |
Definition at line 68 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_work_group_count.
Referenced by drw_curves_cache_update_compute(), drw_hair_particle_cache_update_compute(), and drw_subdiv_compute_dispatch().
int GPU_max_work_group_size | ( | int | index | ) |
Definition at line 73 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_work_group_size.
void GPU_mem_stats_get | ( | int * | totalmem, |
int * | freemem | ||
) |
Definition at line 185 of file gpu_capabilities.cc.
References blender::gpu::Context::get(), and blender::gpu::Context::memory_statistics_get().
Referenced by ED_info_statusbar_string_ex().
Definition at line 180 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::mem_stats_support.
Referenced by ED_info_statusbar_string_ex(), and ed_screens_statusbar_menu_create().
Definition at line 118 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::mip_render_workaround.
Referenced by blender::gpu::GLTexture::check_feedback_loop(), EEVEE_create_minmax_buffer(), EEVEE_occlusion_compute(), and blender::gpu::FrameBuffer::recursive_downsample().
Definition at line 159 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::shader_image_load_store_support.
Referenced by glsl_patch_default_get(), gpu_shader_create_info_compile_all(), and blender::gpu::GLStateManager::image_bind().
Definition at line 154 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::shader_storage_buffer_objects_support.
Referenced by drw_curves_shader_type_get(), drw_hair_shader_type_get(), eevee_cache_finish(), eevee_cache_init(), eevee_cache_populate(), eevee_draw_scene(), eevee_engine_init(), eevee_instance_free(), eevee_render_to_image(), eevee_render_update_passes(), blender::gpu::GLShaderInterface::GLShaderInterface(), gpu_shader_create_info_compile_all(), and is_subdivision_evaluation_possible_on_gpu().
Return support for the active context + window.
Definition at line 190 of file gpu_capabilities.cc.
References blender::gpu::Context::front_right, and blender::gpu::Context::get().
Referenced by wm_stereo3d_set_exec().
int GPU_texture_size_with_limit | ( | int | res | ) |
Definition at line 36 of file gpu_capabilities.cc.
References GPU_max_texture_size(), min_ii(), and size().
Referenced by IMB_create_gpu_texture(), is_over_resolution_limit(), and smaller_power_of_2_limit().
Definition at line 139 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::use_hq_normals_workaround.
Referenced by curve_create_edit_curves_nor(), DRW_displist_vertbuf_create_pos_and_nor(), drw_volume_wireframe_cb(), and blender::draw::mesh_buffer_cache_create_requested().
Definition at line 128 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::use_main_context_workaround.
Referenced by drw_deferred_shader_add(), drw_deferred_shader_compilation_exec(), DRW_render_context_disable(), DRW_render_context_enable(), eevee_lightbake_context_disable(), eevee_lightbake_context_enable(), EEVEE_lightbake_job_create(), and EEVEE_lightbake_job_data_alloc().