Formalize volume shader include context

This commit is contained in:
2026-04-10 01:05:03 +08:00
parent 34a32b73dd
commit 4111f841d4
9 changed files with 1212 additions and 10 deletions

View File

@@ -15,6 +15,20 @@ using namespace VolumeIntegrationTestUtils;
namespace {
constexpr const char* kD3D12Screenshot = "volume_scene_d3d12.ppm";
constexpr const char* kOpenGLScreenshot = "volume_scene_opengl.ppm";
constexpr const char* kVulkanScreenshot = "volume_scene_vulkan.ppm";
const char* GetScreenshotFilename(RHIType backendType) {
switch (backendType) {
case RHIType::OpenGL:
return kOpenGLScreenshot;
case RHIType::Vulkan:
return kVulkanScreenshot;
case RHIType::D3D12:
default:
return kD3D12Screenshot;
}
}
class VolumeSceneTest : public VolumeIntegrationSceneFixture {
protected:
@@ -82,12 +96,18 @@ void VolumeSceneTest::ReleaseSceneResources() {
}
TEST_P(VolumeSceneTest, RenderNanoVdbVolumeScene) {
RenderAndCompare(kD3D12Screenshot, 0.0f);
RenderAndCompare(GetScreenshotFilename(GetBackendType()), 0.0f);
}
} // namespace
INSTANTIATE_TEST_SUITE_P(D3D12, VolumeSceneTest, ::testing::Values(RHIType::D3D12));
#if defined(XCENGINE_SUPPORT_OPENGL)
INSTANTIATE_TEST_SUITE_P(OpenGL, VolumeSceneTest, ::testing::Values(RHIType::OpenGL));
#endif
#if defined(XCENGINE_SUPPORT_VULKAN)
INSTANTIATE_TEST_SUITE_P(Vulkan, VolumeSceneTest, ::testing::Values(RHIType::Vulkan));
#endif
GTEST_API_ int main(int argc, char** argv) {
return RunRenderingIntegrationTestMain(argc, argv);