Page MenuHome

Wireframe not updating after applying subsurf
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Windows-10-10.0.17763 64 Bits
Graphics card: GeForce GTX 950M/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.36

Blender Version
Broken: version: 2.80 (sub 75), branch: master, commit date: 2019-07-26 09:51, hash: rB62338abde433
Worked: 2.79 official release

Short description of error
Wireframe doesn't update in viewport after applying subsurf with optimal display enabled.

Exact steps for others to reproduce the error
1: Add suburf modifier to default cube
2: Make viewport setting to like 4
3: Enable wireframe and all edges
4: Enable "Optimal Display" on subsurf modifier
5: Apply modifier

Can enter edit mode and then back to object mode to update wireframe.

Event Timeline

I made a test file:

Sybren A. Stüvel (sybren) lowered the priority of this task from 90 to 50.Jul 31 2019, 12:59 PM

Confirmed on current master (03f652b2c1fc7de685185190ff95bdd240540388).

I tried adding WM_event_add_notifier(C, NC_GEOM | ND_DATA, ob->data); and DEG_id_tag_update((ID *)ob->data, ID_RECALC_GEOMETRY); to the modifier_apply_exec() function, but that didn't solve it. You can even switch between Rendered/Solid/LookDev/Wireframe, or enable/disable drawing of overlays, and it'll still keep drawing the "Optimal Display" subdivision view.

Jeroen Bakker (jbakker) changed the task status from Confirmed to Needs Information from User.Jan 10 2020, 1:03 PM

@Sybren A. Stüvel (sybren) , @Zachary (AFWS) is this still an issue? Or should we close this one.

Sybren A. Stüvel (sybren) changed the task status from Needs Information from User to Confirmed.Jan 10 2020, 2:51 PM

Yup, still an issue.

Jeroen Bakker (jbakker) changed the subtype of this task from "Report" to "Bug".
Ryan (RyanJEC) added a subscriber: Ryan (RyanJEC).EditedFeb 2 2020, 2:46 AM

Wireframe overlay doesn't apply to Subdiv if added right after mirror modifier either.

  1. Mirror Modifier (Clipping)
  2. Subdiv Modifier

You can put Subdiv first to get the Wireframe, but then mirror clipping doesn't work because mirror has to be first.

This may not be related, if not I'll make a new bug task.

Jeroen Bakker (jbakker) claimed this task.EditedMar 17 2020, 3:25 PM

The control edges are provided by subsurf modifier and stored in the mesh. During drawing the draw engine still sees and uses the data.

Solution would be to clean up these control data after applying the subsurf modifier so the base mesh doesn't have the data.