From 9664cc91f338e34de3a4bd826cd62f73885b5149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Dietrich?= Date: Sat, 15 Jan 2022 01:36:18 +0100 Subject: Fix T94918: GPU subdivision uses viewport levels for final render The resolution for the subdivision grid traversal was always based on the viewport setting. --- source/blender/draw/intern/draw_cache_impl_subdivision.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/draw/intern/draw_cache_impl_subdivision.cc b/source/blender/draw/intern/draw_cache_impl_subdivision.cc index 6eb1fbf26fa..3e6cd01e7cb 100644 --- a/source/blender/draw/intern/draw_cache_impl_subdivision.cc +++ b/source/blender/draw/intern/draw_cache_impl_subdivision.cc @@ -955,7 +955,8 @@ static bool draw_subdiv_build_cache(DRWSubdivCache *cache, const SubsurfModifierData *smd, const bool is_final_render) { - const int level = get_render_subsurf_level(&scene->r, smd->levels, is_final_render); + const int requested_levels = (is_final_render) ? smd->renderLevels : smd->levels; + const int level = get_render_subsurf_level(&scene->r, requested_levels, is_final_render); SubdivToMeshSettings to_mesh_settings; to_mesh_settings.resolution = (1 << level) + 1; to_mesh_settings.use_optimal_display = false; -- cgit v1.2.3