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
This commit is contained in:
Alaska
2024-12-17 06:48:38 +01:00
committed by Alaska
parent 43e0a5dcf1
commit d1c9637470
2 changed files with 15 additions and 18 deletions

View File

@@ -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()

View File

@@ -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":