GPUShader: Cleanup dependency system to not remove string allocation

Source files are now only referenced and listed for the driver to ingest.
Shader sources now includes generated data if any.
Also cleans up gpu_shader_dependency_get_builtins casts.
This commit is contained in:
2022-02-04 20:06:36 +01:00
parent ae50527c23
commit 671fb286ab
4 changed files with 89 additions and 81 deletions

View File

@@ -242,14 +242,10 @@ void gpu_shader_create_info_init()
for (ShaderCreateInfo *info : g_create_infos->values()) {
if (info->do_static_compilation_) {
info->builtins_ |= static_cast<BuiltinBits>(
gpu_shader_dependency_get_builtins(info->vertex_source_.c_str()));
info->builtins_ |= static_cast<BuiltinBits>(
gpu_shader_dependency_get_builtins(info->fragment_source_.c_str()));
info->builtins_ |= static_cast<BuiltinBits>(
gpu_shader_dependency_get_builtins(info->geometry_source_.c_str()));
info->builtins_ |= static_cast<BuiltinBits>(
gpu_shader_dependency_get_builtins(info->compute_source_.c_str()));
info->builtins_ |= gpu_shader_dependency_get_builtins(info->vertex_source_);
info->builtins_ |= gpu_shader_dependency_get_builtins(info->fragment_source_);
info->builtins_ |= gpu_shader_dependency_get_builtins(info->geometry_source_);
info->builtins_ |= gpu_shader_dependency_get_builtins(info->compute_source_);
}
}