Files
test/source/blender/gpu/intern/gpu_codegen.h
Miguel Pozo bcab9de531 Fix: GPU: Avoid GPUMaterial/Pass collisions between engines
Prevent draw engines from using GPUMaterials that were compiled for
other engines by storing the engine they where compiled for along the
shader_uuid.

Fix #115356
Fix #115371

Pull Request: https://projects.blender.org/blender/blender/pulls/115819
2023-12-07 16:48:09 +01:00

45 lines
971 B
C

/* SPDX-FileCopyrightText: 2005 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup gpu
*
* Generate shader code from the intermediate node graph.
*/
#pragma once
#include "GPU_material.h"
#include "GPU_shader.h"
#ifdef __cplusplus
extern "C" {
#endif
struct GPUNodeGraph;
typedef struct GPUPass GPUPass;
/* Pass */
GPUPass *GPU_generate_pass(GPUMaterial *material,
struct GPUNodeGraph *graph,
eGPUMaterialEngine engine,
GPUCodegenCallbackFn finalize_source_cb,
void *thunk,
bool optimize_graph);
GPUShader *GPU_pass_shader_get(GPUPass *pass);
bool GPU_pass_compile(GPUPass *pass, const char *shname);
void GPU_pass_release(GPUPass *pass);
bool GPU_pass_should_optimize(GPUPass *pass);
/* Module */
void gpu_codegen_init(void);
void gpu_codegen_exit(void);
#ifdef __cplusplus
}
#endif