Files
test/source/blender/gpu/tests/gpu_testing.cc
Clément Foucault 209bbf8274 GPU: Rename ROG to SubpassInput, add tests and documentation
This is in order to follow the vulkan terminology
like the rest of the module.

Other implementations (GL, VK) are not supposed to work yet.

Pull Request: https://projects.blender.org/blender/blender/pulls/112026
2023-09-06 14:39:38 +02:00

61 lines
1.3 KiB
C++

/* SPDX-FileCopyrightText: 2023 Blender Authors
*
* SPDX-License-Identifier: Apache-2.0 */
#include "testing/testing.h"
#include "CLG_log.h"
#include "BLI_math_color.h"
#include "GPU_context.h"
#include "GPU_debug.h"
#include "GPU_init_exit.h"
#include "gpu_testing.hh"
#include "GHOST_C-api.h"
#include "BKE_global.h"
namespace blender::gpu {
void GPUTest::SetUp()
{
prev_g_debug_ = G.debug;
G.debug |= G_DEBUG_GPU | G_DEBUG_GPU_RENDERDOC;
CLG_init();
GPU_backend_type_selection_set(gpu_backend_type);
GHOST_GPUSettings gpuSettings = {};
gpuSettings.context_type = draw_context_type;
gpuSettings.flags = GHOST_gpuDebugContext;
ghost_system = GHOST_CreateSystem();
ghost_context = GHOST_CreateGPUContext(ghost_system, gpuSettings);
GHOST_ActivateGPUContext(ghost_context);
context = GPU_context_create(nullptr, ghost_context);
GPU_init();
BLI_init_srgb_conversion();
GPU_render_begin();
GPU_context_begin_frame(context);
GPU_debug_capture_begin();
}
void GPUTest::TearDown()
{
GPU_debug_capture_end();
GPU_context_end_frame(context);
GPU_render_end();
GPU_exit();
GPU_context_discard(context);
GHOST_DisposeGPUContext(ghost_system, ghost_context);
GHOST_DisposeSystem(ghost_system);
CLG_exit();
G.debug = prev_g_debug_;
}
} // namespace blender::gpu