|
Blender V4.3
|
#include "BLI_sys_types.h"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.hh.
| bool GPU_clear_viewport_workaround | ( | ) |
Definition at line 165 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::clear_viewport_workaround, and blender::gpu::GCaps.
Referenced by gpu_viewport_textures_create().
| void GPU_compilation_subprocess_override_set | ( | int | count | ) |
WARNING: Should only be called at startup from creator_args. Never call it at runtime.
Definition at line 252 of file gpu_capabilities.cc.
References BLI_assert, count, blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_parallel_compilations.
| bool GPU_crappy_amd_driver | ( | ) |
Definition at line 154 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::broken_amd_driver, and blender::gpu::GCaps.
Referenced by blender::draw::DRW_vertbuf_create_wiredata(), blender::draw::extract_edge_factor(), blender::draw::extract_edge_factor_subdiv(), blender::draw::get_subdiv_edge_fac_format(), blender::draw::get_subdiv_shader(), gpu_shader_create_info_init(), and standard_defines().
| bool GPU_depth_blitting_workaround | ( | ) |
Definition at line 144 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::depth_blitting_workaround, and blender::gpu::GCaps.
Referenced by blender::gpu::GLTexture::init_internal().
| const char * GPU_extension_get | ( | int | i | ) |
Definition at line 124 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::extension_get, and blender::gpu::GCaps.
Referenced by pygpu_extensions_get().
| int GPU_extensions_len | ( | ) |
Definition at line 119 of file gpu_capabilities.cc.
References blender::gpu::GPUCapabilities::extensions_len, and blender::gpu::GCaps.
Referenced by pygpu_extensions_get().
| bool GPU_geometry_shader_support | ( | ) |
Definition at line 175 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::geometry_shader_support.
Referenced by gpu_shader_create_info_compile().
| bool GPU_hdr_support | ( | ) |
Definition at line 185 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::hdr_viewport_support.
Referenced by get_hdr_framebuffer_format(), gpu_viewport_draw_colormanaged(), IMB_colormanagement_setup_glsl_draw_from_space(), and pygpu_hdr_support_get().
| int GPU_max_batch_indices | ( | ) |
Definition at line 99 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 | ( | ) |
Definition at line 104 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 | ( | ) |
Definition at line 205 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_images | ( | ) |
Definition at line 74 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_images.
Referenced by pygpu_max_images_get().
| int GPU_max_samplers | ( | ) |
Definition at line 129 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_samplers.
Referenced by blender::gpu::MSLGeneratorInterface::use_argument_buffer_for_samplers().
| int GPU_max_shader_storage_buffer_bindings | ( | ) |
Definition at line 200 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_shader_storage_buffer_bindings.
| size_t GPU_max_storage_buffer_size | ( | ) |
Definition at line 220 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_storage_buffer_size.
Referenced by blender::gpu::GLStorageBuf::GLStorageBuf(), and blender::eevee::IrradianceBake::surfels_create().
| int GPU_max_texture_3d_size | ( | ) |
Definition at line 37 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_texture_3d_size.
Referenced by blender::eevee::VolumeModule::init(), and blender::gpu::MTLTexture::init_internal().
| int GPU_max_texture_layers | ( | ) |
Definition at line 49 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_texture_layers.
Referenced by pygpu_max_texture_layers_get().
| int GPU_max_texture_size | ( | ) |
Definition at line 32 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_texture_size.
Referenced by blf_glyph_draw(), blender::realtime_compositor::compute_realized_transformation_domain(), GPU_texture_size_with_limit(), is_compositing_possible(), is_compositing_possible_on_gpu(), pygpu_max_texture_size_get(), and texture_paint_image_from_view_exec().
| int GPU_max_textures | ( | ) |
Definition at line 69 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_textures.
Referenced by blender::gpu::MTLShaderInterface::add_texture(), blender::gpu::MTLContext::ensure_texture_bindings(), blender::gpu::MTLContext::ensure_texture_bindings(), gpu_pass_shader_validate(), blender::gpu::MTLContext::pipeline_state_init(), pygpu_max_textures_get(), blender::gpu::MTLContext::sampler_bind(), blender::gpu::GLStateManager::texture_bind(), blender::gpu::MTLContext::texture_bind(), blender::gpu::MTLContext::texture_unbind(), and blender::gpu::MTLContext::texture_unbind_all().
| int GPU_max_textures_frag | ( | ) |
Definition at line 64 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 | ( | ) |
Definition at line 59 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 | ( | ) |
Definition at line 54 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_textures_vert.
Referenced by blender::gpu::MSLGeneratorInterface::generate_msl_textures_input_string(), gpu_pass_shader_validate(), and pygpu_max_textures_vert_get().
| int GPU_max_uniforms_frag | ( | ) |
Definition at line 94 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 | ( | ) |
Definition at line 89 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 | ( | ) |
Definition at line 114 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 | ( | ) |
Definition at line 109 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_vertex_attribs.
Referenced by pygpu_max_vertex_attribs_get().
Definition at line 79 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_work_group_count.
Referenced by blender::draw::curves_cache_get(), blender::draw::drw_curves_cache_update_compute(), drw_hair_particle_cache_update_compute(), blender::draw::drw_subdiv_compute_dispatch(), blender::eevee::VelocityModule::geometry_steps_fill(), GPU_indexbuf_build_curves_on_device(), blender::draw::hair_particle_cache_get(), pygpu_compute_dispatch(), and pygpu_max_work_group_count_get().
Definition at line 84 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_work_group_size.
Referenced by pygpu_max_work_group_size_get().
Definition at line 236 of file gpu_capabilities.cc.
References blender::gpu::Context::get(), and blender::gpu::Context::memory_statistics_get().
Referenced by ED_info_statusbar_string_ex(), and blender::eevee::IrradianceBake::surfels_create().
| bool GPU_mem_stats_supported | ( | ) |
Definition at line 231 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::mem_stats_support.
Referenced by ED_info_statusbar_string_ex(), ed_screens_statusbar_menu_create(), and blender::eevee::IrradianceBake::surfels_create().
| int GPU_minimum_per_vertex_stride | ( | ) |
Definition at line 210 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::minimum_per_vertex_stride.
Referenced by blender::draw::extract_edge_factor(), blender::draw::extract_edge_factor_subdiv(), blender::draw::get_subdiv_edge_fac_format(), and VertexFormat_pack().
| bool GPU_mip_render_workaround | ( | ) |
Definition at line 139 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::mip_render_workaround.
Referenced by blender::gpu::GLTexture::check_feedback_loop(), and blender::gpu::FrameBuffer::recursive_downsample().
| bool GPU_shader_draw_parameters_support | ( | ) |
Definition at line 180 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::shader_draw_parameters_support.
Referenced by blender::draw::command::DrawCommandBuf::bind(), blender::draw::command::DrawMultiBuf::bind(), blender::draw::command::Draw::execute(), blender::draw::command::DrawMulti::execute(), GPUCodegen::generate_attribs(), gpu_shader_create_info_init(), and blender::gpu::VKDevice::init_glsl_patch().
| bool GPU_stencil_clasify_buffer_workaround | ( | ) |
Definition at line 170 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::stencil_clasify_buffer_workaround.
Referenced by blender::eevee::DeferredLayer::end_sync(), and gpu_shader_create_info_init().
| bool GPU_stencil_export_support | ( | ) |
Definition at line 195 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::stencil_export_support.
Referenced by blender::eevee::GBuffer::bind(), blender::eevee::DeferredLayer::end_sync(), glsl_patch_default_get(), and blender::gpu::VKDevice::init_glsl_patch().
| bool GPU_stereo_quadbuffer_support | ( | ) |
Return support for the active context + window.
Definition at line 241 of file gpu_capabilities.cc.
References blender::gpu::Context::front_right, and blender::gpu::Context::get().
Referenced by wm_stereo3d_set_exec().
Definition at line 42 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().
| bool GPU_texture_view_support | ( | ) |
Definition at line 190 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::texture_view_support.
Referenced by blender::workbench::StencilViewWorkaround::extract().
| bool GPU_transform_feedback_support | ( | ) |
Definition at line 215 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::transform_feedback_support.
Referenced by gpu_shader_create_info_compile(), and blender::draw::particle_batch_cache_ensure_procedural_final_points().
| bool GPU_use_hq_normals_workaround | ( | ) |
Definition at line 160 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::use_hq_normals_workaround.
Referenced by blender::draw::overlay::Curves::begin_sync(), blender::draw::overlay::Meshes::begin_sync(), blender::draw::curve_create_edit_curves_nor(), blender::draw::drw_volume_wireframe_cb(), and blender::draw::mesh_buffer_cache_create_requested().
| bool GPU_use_main_context_workaround | ( | ) |
Definition at line 149 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_optimize_remove(), DRW_deferred_shader_remove(), DRW_render_context_disable(), DRW_render_context_enable(), DRW_shader_exit(), DRW_shader_init(), and blender::eevee::LightBake::LightBake().
| bool GPU_use_parallel_compilation | ( | ) |
Definition at line 134 of file gpu_capabilities.cc.
References blender::gpu::GCaps, and blender::gpu::GPUCapabilities::max_parallel_compilations.
Referenced by blender::gpu::MTLParallelShaderCompiler::batch_compile(), blender::eevee::Instance::draw_viewport(), drw_deferred_shader_compilation_exec(), blender::gpu::MTLContext::MTLContext(), blender::gpu::MTLParallelShaderCompiler::MTLParallelShaderCompiler(), blender::eevee::ShaderModule::precompile_specializations(), blender::gpu::MTLParallelShaderCompiler::precompile_specializations(), blender::eevee::ShaderModule::ShaderModule(), and blender::eevee::ShaderModule::static_shader_get().