Blender V4.3
gpu_codegen.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2005 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
11#pragma once
12
13#include "GPU_material.hh"
14#include "GPU_shader.hh"
15
16struct GPUNodeGraph;
17
18struct GPUPass;
19
20/* Pass */
21
23 GPUNodeGraph *graph,
25 GPUCodegenCallbackFn finalize_source_cb,
26 void *thunk,
27 bool optimize_graph);
29bool GPU_pass_compile(GPUPass *pass, const char *shname);
30void GPU_pass_acquire(GPUPass *pass);
31void GPU_pass_release(GPUPass *pass);
33
34/* Custom pass compilation. */
35
36GPUShaderCreateInfo *GPU_pass_begin_compilation(GPUPass *pass, const char *shname);
38
39void GPU_pass_begin_async_compilation(GPUPass *pass, const char *shname);
44
45/* Module */
46
47void gpu_codegen_init();
48void gpu_codegen_exit();
eGPUMaterialEngine
void(*)(void *thunk, GPUMaterial *mat, GPUCodegenOutput *codegen) GPUCodegenCallbackFn
struct GPUShader GPUShader
GPUPass * GPU_generate_pass(GPUMaterial *material, GPUNodeGraph *graph, eGPUMaterialEngine engine, GPUCodegenCallbackFn finalize_source_cb, void *thunk, bool optimize_graph)
GPUShaderCreateInfo * GPU_pass_begin_compilation(GPUPass *pass, const char *shname)
void GPU_pass_release(GPUPass *pass)
void GPU_pass_acquire(GPUPass *pass)
void GPU_pass_begin_async_compilation(GPUPass *pass, const char *shname)
void gpu_codegen_init()
void gpu_codegen_exit()
bool GPU_pass_compile(GPUPass *pass, const char *shname)
bool GPU_pass_async_compilation_try_finalize(GPUPass *pass)
bool GPU_pass_should_optimize(GPUPass *pass)
bool GPU_pass_finalize_compilation(GPUPass *pass, GPUShader *shader)
GPUShader * GPU_pass_shader_get(GPUPass *pass)
eGPUMaterialEngine engine