207 std::array<StaticShader, MAX_SHADER_TYPE> shaders_;
211 class SpecializationsKey {
216 SpecializationsKey(
int render_buffers_shadow_id,
217 int shadow_ray_count,
218 int shadow_ray_step_count,
219 bool use_split_indirect,
220 bool use_lightprobe_eval)
223 BLI_assert(shadow_ray_count >= 1 && shadow_ray_count <= 4);
224 BLI_assert(shadow_ray_step_count >= 1 && shadow_ray_step_count <= 16);
226 hash_value_ = render_buffers_shadow_id + 1;
227 hash_value_ = (hash_value_ << 2) | (shadow_ray_count - 1);
228 hash_value_ = (hash_value_ << 4) | (shadow_ray_step_count - 1);
229 hash_value_ = (hash_value_ << 1) |
uint64_t(use_split_indirect);
230 hash_value_ = (hash_value_ << 1) |
uint64_t(use_lightprobe_eval);
238 bool operator==(
const SpecializationsKey &k)
const
240 return hash_value_ == k.hash_value_;
260 return static_shaders_load(request_bits,
false);
266 return static_shaders_load(request_bits,
true);
269 bool request_specializations(
bool block_until_ready,
270 int render_buffers_shadow_id,
271 int shadow_ray_count,
272 int shadow_ray_step_count,
273 bool use_split_indirect,
274 bool use_lightprobe_eval);
281 bool deferred_compilation,
286 bool deferred_compilation);
292 static void module_free();
295 const char *static_shader_create_info_name_get(
eShaderType shader_type);
#define ENUM_OPERATORS(_type, _max)
bool operator==(const AssetWeakReference &a, const AssetWeakReference &b)
unsigned long long int uint64_t
ShaderGroups static_shaders_wait_ready(ShaderGroups request_bits)
ShaderGroups static_shaders_load_async(ShaderGroups request_bits)
@ DOF_GATHER_BACKGROUND_LUT
@ SHADOW_TILEMAP_TAG_USAGE_SURFELS
@ SHADOW_TILEMAP_RENDERMAP
@ LIGHTPROBE_IRRADIANCE_RAY
@ DOF_TILES_DILATE_MINABS
@ SHADOW_TILEMAP_FINALIZE
@ DOF_TILES_DILATE_MINMAX
@ MOTION_BLUR_TILE_FLATTEN_RGBA
@ DEFERRED_THICKNESS_AMEND
@ SHADOW_TILEMAP_TAG_USAGE_OPAQUE
@ VOLUME_SCATTER_WITH_LIGHTS
@ MOTION_BLUR_TILE_FLATTEN_RG
@ DOF_GATHER_FOREGROUND_LUT
@ SPHERE_PROBE_IRRADIANCE
@ SHADOW_TILEMAP_TAG_USAGE_TRANSPARENT
@ FILM_PASS_CONVERT_COMBINED
@ FILM_PASS_CONVERT_CRYPTOMATTE
@ LIGHTPROBE_IRRADIANCE_LOAD
@ VOLUME_OCCUPANCY_CONVERT
@ SHADOW_TILEMAP_TAG_USAGE_VOLUME
@ MOTION_BLUR_TILE_DILATE
@ FILM_PASS_CONVERT_COLOR
@ LIGHTPROBE_IRRADIANCE_OFFSET
@ SHADOW_TILEMAP_TAG_UPDATE
@ FILM_PASS_CONVERT_VALUE
@ LIGHTPROBE_IRRADIANCE_WORLD
@ LIGHTPROBE_IRRADIANCE_BOUNDS
@ FILM_PASS_CONVERT_DEPTH
@ DEFERRED_CAPTURE_SHADERS
@ DEFERRED_LIGHTING_SHADERS
@ IRRADIANCE_BAKE_SHADERS
@ DEFERRED_PLANAR_SHADERS
@ AMBIENT_OCCLUSION_SHADERS
gpu::StaticShader StaticShader