Formalize volume shader include context
This commit is contained in:
@@ -15,6 +15,20 @@ using namespace VolumeIntegrationTestUtils;
|
||||
namespace {
|
||||
|
||||
constexpr const char* kD3D12Screenshot = "volume_occlusion_scene_d3d12.ppm";
|
||||
constexpr const char* kOpenGLScreenshot = "volume_occlusion_scene_opengl.ppm";
|
||||
constexpr const char* kVulkanScreenshot = "volume_occlusion_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 VolumeOcclusionSceneTest : public VolumeIntegrationSceneFixture {
|
||||
protected:
|
||||
@@ -96,10 +110,11 @@ private:
|
||||
};
|
||||
|
||||
TEST_P(VolumeOcclusionSceneTest, RenderNanoVdbVolumeOcclusionScene) {
|
||||
RenderAndCompare(kD3D12Screenshot, 0.0f);
|
||||
const char* screenshotFilename = GetScreenshotFilename(GetBackendType());
|
||||
RenderAndCompare(screenshotFilename, 0.0f);
|
||||
|
||||
const RenderingIntegrationTestUtils::PpmImage image =
|
||||
RenderingIntegrationTestUtils::LoadPpmImage(kD3D12Screenshot);
|
||||
RenderingIntegrationTestUtils::LoadPpmImage(screenshotFilename);
|
||||
RenderingIntegrationTestUtils::ExpectPixelLuminanceAtMost(
|
||||
image,
|
||||
640u,
|
||||
@@ -117,6 +132,12 @@ TEST_P(VolumeOcclusionSceneTest, RenderNanoVdbVolumeOcclusionScene) {
|
||||
} // namespace
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(D3D12, VolumeOcclusionSceneTest, ::testing::Values(XCEngine::RHI::RHIType::D3D12));
|
||||
#if defined(XCENGINE_SUPPORT_OPENGL)
|
||||
INSTANTIATE_TEST_SUITE_P(OpenGL, VolumeOcclusionSceneTest, ::testing::Values(XCEngine::RHI::RHIType::OpenGL));
|
||||
#endif
|
||||
#if defined(XCENGINE_SUPPORT_VULKAN)
|
||||
INSTANTIATE_TEST_SUITE_P(Vulkan, VolumeOcclusionSceneTest, ::testing::Values(XCEngine::RHI::RHIType::Vulkan));
|
||||
#endif
|
||||
|
||||
GTEST_API_ int main(int argc, char** argv) {
|
||||
return RunRenderingIntegrationTestMain(argc, argv);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -17,6 +17,20 @@ using namespace VolumeIntegrationTestUtils;
|
||||
namespace {
|
||||
|
||||
constexpr const char* kD3D12Screenshot = "volume_transform_scene_d3d12.ppm";
|
||||
constexpr const char* kOpenGLScreenshot = "volume_transform_scene_opengl.ppm";
|
||||
constexpr const char* kVulkanScreenshot = "volume_transform_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 VolumeTransformSceneTest : public VolumeIntegrationSceneFixture {
|
||||
protected:
|
||||
@@ -122,10 +136,11 @@ private:
|
||||
};
|
||||
|
||||
TEST_P(VolumeTransformSceneTest, RenderNanoVdbVolumeTransformScene) {
|
||||
RenderAndCompare(kD3D12Screenshot, 0.0f);
|
||||
const char* screenshotFilename = GetScreenshotFilename(GetBackendType());
|
||||
RenderAndCompare(screenshotFilename, 0.0f);
|
||||
|
||||
const RenderingIntegrationTestUtils::PpmImage image =
|
||||
RenderingIntegrationTestUtils::LoadPpmImage(kD3D12Screenshot);
|
||||
RenderingIntegrationTestUtils::LoadPpmImage(screenshotFilename);
|
||||
RenderingIntegrationTestUtils::ExpectPixelLuminanceAtLeast(
|
||||
image,
|
||||
840u,
|
||||
@@ -137,6 +152,12 @@ TEST_P(VolumeTransformSceneTest, RenderNanoVdbVolumeTransformScene) {
|
||||
} // namespace
|
||||
|
||||
INSTANTIATE_TEST_SUITE_P(D3D12, VolumeTransformSceneTest, ::testing::Values(XCEngine::RHI::RHIType::D3D12));
|
||||
#if defined(XCENGINE_SUPPORT_OPENGL)
|
||||
INSTANTIATE_TEST_SUITE_P(OpenGL, VolumeTransformSceneTest, ::testing::Values(XCEngine::RHI::RHIType::OpenGL));
|
||||
#endif
|
||||
#if defined(XCENGINE_SUPPORT_VULKAN)
|
||||
INSTANTIATE_TEST_SUITE_P(Vulkan, VolumeTransformSceneTest, ::testing::Values(XCEngine::RHI::RHIType::Vulkan));
|
||||
#endif
|
||||
|
||||
GTEST_API_ int main(int argc, char** argv) {
|
||||
return RunRenderingIntegrationTestMain(argc, argv);
|
||||
|
||||
Reference in New Issue
Block a user