Files
test2/source/blender/draw/tests/draw_testing.hh
Jeroen Bakker c2c1d6f67b Metal: EEVEE Next shadow unit test enablement
Ensure correct SSBO bindings are present for shadow tests.
Metal validation errors occur if SSBO bindings that are expected are
not bound. In this case, we can bind empty SSBOs, but these should
be of the correct type for the tests.

Also adding missing zero-initializations for required members within
LightData. Without these, unit tests fail with various issues including
prevalence of OOB reads.

Co-authored-by: Michael Parkin-White <mparkinwhite@apple.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/109645
2023-07-03 14:24:34 +02:00

40 lines
874 B
C++

/* SPDX-FileCopyrightText: 2023 Blender Foundation
*
* SPDX-License-Identifier: Apache-2.0 */
#include "gpu_testing.hh"
namespace blender::draw {
/* Base class for draw test cases. It will setup and tear down the GPU part around each test. */
class DrawOpenGLTest : public blender::gpu::GPUOpenGLTest {
public:
void SetUp() override;
};
#define DRAW_OPENGL_TEST(test_name) \
TEST_F(DrawOpenGLTest, test_name) \
{ \
test_##test_name(); \
}
#ifdef WITH_METAL_BACKEND
class DrawMetalTest : public blender::gpu::GPUMetalTest {
public:
void SetUp() override;
};
# define DRAW_METAL_TEST(test_name) \
TEST_F(DrawMetalTest, test_name) \
{ \
test_##test_name(); \
}
#else
# define DRAW_METAL_TEST(test_name)
#endif
#define DRAW_TEST(test_name) \
DRAW_OPENGL_TEST(test_name) \
DRAW_METAL_TEST(test_name)
} // namespace blender::draw