Blender V4.3
gpu_capabilities.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2005 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
12#include "DNA_userdef_types.h" /* For `U.glreslimit`. */
13
14#include "GPU_capabilities.hh"
15
17
19
20namespace blender::gpu {
21
23
24}
25
26using namespace blender::gpu;
27
28/* -------------------------------------------------------------------- */
36
41
43{
44 int size = GPU_max_texture_size();
45 int reslimit = (U.glreslimit != 0) ? min_ii(U.glreslimit, size) : size;
46 return min_ii(reslimit, res);
47}
48
53
58
63
68
70{
71 return GCaps.max_textures;
72}
73
75{
76 return GCaps.max_images;
77}
78
80{
81 return GCaps.max_work_group_count[index];
82}
83
85{
86 return GCaps.max_work_group_size[index];
87}
88
93
98
100{
102}
103
108
113
118
120{
121 return GCaps.extensions_len;
122}
123
124const char *GPU_extension_get(int i)
125{
126 return GCaps.extension_get ? GCaps.extension_get(i) : "\0";
127}
128
130{
131 return GCaps.max_samplers;
132}
133
138
143
148
153
155{
156 /* Currently are the same drivers with the `unused_fb_slot` problem. */
158}
159
164
169
174
179
184
186{
188}
189
194
199
204
209
214
219
224
227/* -------------------------------------------------------------------- */
235
236void GPU_mem_stats_get(int *r_totalmem, int *r_freemem)
237{
238 Context::get()->memory_statistics_get(r_totalmem, r_freemem);
239}
240
242{
243 return Context::get()->front_right != nullptr;
244}
245
248/* -------------------------------------------------------------------- */
257
#define BLI_assert(a)
Definition BLI_assert.h:50
MINLINE int min_ii(int a, int b)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
unsigned int U
Definition btGjkEpa3.h:78
static Context * get()
virtual void memory_statistics_get(int *r_total_mem, int *r_free_mem)=0
int GPU_max_batch_indices()
int GPU_minimum_per_vertex_stride()
int GPU_max_textures()
int GPU_max_samplers()
bool GPU_hdr_support()
int GPU_max_work_group_size(int index)
bool GPU_transform_feedback_support()
bool GPU_crappy_amd_driver()
bool GPU_use_parallel_compilation()
int GPU_max_texture_3d_size()
int GPU_max_texture_layers()
void GPU_mem_stats_get(int *r_totalmem, int *r_freemem)
int GPU_max_images()
int GPU_max_uniforms_vert()
int GPU_max_shader_storage_buffer_bindings()
int GPU_texture_size_with_limit(int res)
bool GPU_geometry_shader_support()
bool GPU_depth_blitting_workaround()
int GPU_max_work_group_count(int index)
bool GPU_stencil_export_support()
bool GPU_mem_stats_supported()
bool GPU_stereo_quadbuffer_support()
int GPU_max_textures_geom()
bool GPU_use_main_context_workaround()
int GPU_max_textures_frag()
int GPU_max_vertex_attribs()
bool GPU_use_hq_normals_workaround()
const char * GPU_extension_get(int i)
bool GPU_clear_viewport_workaround()
size_t GPU_max_storage_buffer_size()
int GPU_max_varying_floats()
int GPU_max_compute_shader_storage_blocks()
int GPU_max_batch_vertices()
bool GPU_texture_view_support()
int GPU_extensions_len()
int GPU_max_uniforms_frag()
bool GPU_stencil_clasify_buffer_workaround()
bool GPU_mip_render_workaround()
int GPU_max_texture_size()
bool GPU_shader_draw_parameters_support()
void GPU_compilation_subprocess_override_set(int count)
int GPU_max_textures_vert()
int count
GPUCapabilities GCaps