From d1c9637470fa3cea47806fd4102d5b1dfddb53bf Mon Sep 17 00:00:00 2001 From: Alaska Date: Tue, 17 Dec 2024 06:48:38 +0100 Subject: [PATCH] Cycles: Enable OptiX OSL render tests OptiX OSL tests were previously disabled due to a GPU driver bug resulting in many tests failing unexpectedly. The new driver version is now out with the fix so we can now enable OptiX OSL testing. This commit also updates the OptiX OSL block list with better comments, and more tests that are known to fail and need investigating. Ref: #123012 Pull Request: https://projects.blender.org/blender/blender/pulls/129280 --- tests/python/CMakeLists.txt | 3 +-- tests/python/cycles_render_tests.py | 30 ++++++++++++++--------------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/tests/python/CMakeLists.txt b/tests/python/CMakeLists.txt index 97b9dcbd403..18d5804b18d 100644 --- a/tests/python/CMakeLists.txt +++ b/tests/python/CMakeLists.txt @@ -725,7 +725,7 @@ if(WITH_CYCLES OR WITH_GPU_RENDER_TESTS) if(WITH_CYCLES_TEST_OSL AND WITH_CYCLES_OSL) # OSL is only supported with CPU and OptiX # TODO: Enable OptiX support once it's more stable - if("${_cycles_device_lower}" STREQUAL "cpu") + if(("${_cycles_device_lower}" STREQUAL "cpu") OR ("${_cycles_device_lower}" STREQUAL "optix")) add_render_test( ${_cycles_test_name}_osl ${CMAKE_CURRENT_LIST_DIR}/cycles_render_tests.py @@ -734,7 +734,6 @@ if(WITH_CYCLES OR WITH_GPU_RENDER_TESTS) --device ${_cycles_device} --osl ) - # Doesn't do anything until OptiX is enabled if(NOT ("${_cycles_device_lower}" STREQUAL "cpu")) set_tests_properties(${_cycles_test_name}_osl PROPERTIES RUN_SERIAL TRUE) endif() diff --git a/tests/python/cycles_render_tests.py b/tests/python/cycles_render_tests.py index 912d3231a43..420d8d99eb4 100644 --- a/tests/python/cycles_render_tests.py +++ b/tests/python/cycles_render_tests.py @@ -77,29 +77,27 @@ BLOCKLIST_OPTIX_OSL = [ 'ambient_occlusion.*.blend', 'bevel.blend', 'osl_trace_shader.blend', - # The Volumetric noise texture is different for some reason - 'principled_absorption.blend', - # Dicing tests use wireframe node which doesn't appear to be supported in OptiX - 'dicing_camera.blend', - 'offscreen_dicing.blend', - 'panorama_dicing.blend', # Bump evaluation is not implemented yet. See 104276 'compare_bump.blend', 'both_displacement.blend', 'bump_with_displacement.blend', 'ray_portal.blend', - # TODO: Investigate every other failing case and add them here. - # Note: Many tests are failing due to CUDA errors. Some of these are driver issues that NVIDIA is currently looking into. - # - # Currently failing tests that aren't in this list are: - # ray_portal*.blend - CUDA error - # image_mapping_udim*.blend - Can't load UDIM from disk? But can load UDIM if it's packed, but doesn't seem to use it properly. - # points_volume.blend - CUDA error - # principled_emission_alpha.blend - CUDA error related to connected inputs. Probably the same as 122779 - # point_density_*_object - Object scale doesn't appear to be appplied to texture - # All the other tests mentioned in BLOCKLIST_OSL (E.g. Principled BSDF tests having noise differences) + # Volumetric textures use a different default texture mapping in OptiX OSL. See 129279 + 'principled_absorption.blend', + 'denoise_volume.blend', + # The 3D texture doesn't have the right mappings + 'point_density_.*_object.blend', + # Dicing tests use wireframe node which doesn't appear to be supported with OptiX OSL + 'dicing_camera.blend', + 'offscreen_dicing.blend', + 'panorama_dicing.blend', + # The mapping of the UDIM texture is incorrect. Need to investigate why. + 'image_mapping_udim_packed.blend', + # Error during rendering. Need to investigate why. + 'points_volume.blend', ] + BLOCKLIST_METAL = [] if platform.system() == "Darwin":